C#实验报告.docx
- 文档编号:1885598
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:27
- 大小:173.63KB
C#实验报告.docx
《C#实验报告.docx》由会员分享,可在线阅读,更多相关《C#实验报告.docx(27页珍藏版)》请在冰点文库上搜索。
C#实验报告
学生实验报告
(理工类)
课程名称:
C#程序设计教程专业班级:
学生学号:
学生姓名:
XFS
所属院部:
软件工程学院指导教师:
蔡群
2016——2017学年第2学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。
若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。
纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。
各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。
实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:
实验一实验学时:
2学时
同组学生姓名:
XFS实验地点:
A203
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(1)熟悉使用结构体
(2)熟悉使用DATETIME类,并清楚它的各种属性和赋值格式
(3)熟悉使用枚举类型,并清除它的各种用法
(4)了解并使用函数进行封装
二、实验仪器和设备
具备装载MicrosoftVisualStdio2010或者更高级版本的MicrosoftVisualStdio2012/2013,或者VisualStdioUltimate等的电脑都可以。
三、实验过程
1.
usingSystem;
using;
using;
namespaceConsoleApplication2
{
classProgram
{
enumweek{星期日,星期一,星期二,星期三,星期四,星期五,星期六};structStudent
{
publicintno;
publicstringname;
publicDateTimebirthday;
}
staticvoidMain(string[]args)
{
Students1,s2;
=1;
=2;
="李明";
="王丽";
=newDateTime(1985,10,18);
=newDateTime(1986,2,16);
("{0}的生日为{1}",,usingSystem;
using;
using;
namespaceExperiment3
{
classProgram
{
staticvoidMain(string[]args)
{
for(inti=100;i<=999;i++)
{
inttemp=i;
inta=temp%10;
temp/=10;
intb=temp%10;
intc=temp/10;
intsum=a*a*a+b*b*b+c*c*c;
if(sum==i)
(i);
}
();
}
}
}
四、实验结果与分析
1.
分析:
声明Student结构体,里面有no、name、birthday三个成员。
输出生日时,用datetime类的ToShortDateString()方法去除时间。
输出中文的星期几,要定义一个week枚举,成员为星期日到星期一。
2.
分析:
从100到999进行for循环。
对每个数字先对10取余得出第三位,再除以10,去除末位,再对10取余得到第二位,再除以10去除第二位,得到第一位。
然后进行判断看是否满足条件,满足即输出。
实验项目名称:
实验二实验学时:
2学时
同组学生姓名:
XFS实验地点:
A203
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(1)熟悉使用数组:
包括定义数组、初始化数组
(2)掌握如何给数组排序
二、实验仪器和设备
具备装载MicrosoftVisualStdio2010或者更高级版本的MicrosoftVisualStdio2012/2013,或者VisualStdioUltimate等的电脑都可以。
三、实验过程
1.
usingSystem;
using;
using;
namespaceExperiment4
{
classProgram
{
分析:
这题实验的难点在于如何按学号进行排序和如何按姓名进行排序。
按学号进行排序我用了两个for循环,将每个学号与其后的学号进行比较,其后的学号比它小就进行位置的交换,同时名字也进行交换。
按姓名进行排序的原理与上面类似。
实验项目名称:
实验三实验学时:
2学时
同组学生姓名:
XFS实验地点:
A203
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(1)掌握C#中的类声明和对象的定义方法
(2)掌握C#中属性的设计方法
(3)掌握C#中索引器的设计方法
(4)掌握C#中委托的设计方法
(5)掌握C#中事件的设计方法
二、实验仪器和设备
具备装载MicrosoftVisualStdio2010或者更高级版本的MicrosoftVisualStdio2012/2013,或者VisualStdioUltimate等的电脑都可以。
三、实验过程
1.
usingSystem;
using;
using;
namespaceExperiment5_1
{
classCourse
{
stringcName;
intcredit;
intscore;
publicstringCName
{
get{returncName;}
}
publicintCredit
{
get{returncredit;}
}
publicintScore
{
get{returnscore;}
set{score=value;}
}
publicCourse(stringcName,intcredit,intscore)
{
=cName;
=credit;
=score;
}
}
classStudent
{
intno;
stringname;
Course[]course;
floatoyGPA;core/10)
{
case10:
point[i]=;break;
case9:
point[i]=;break;
case8:
point[i]=;break;
case7:
point[i]=;break;
case6:
point[i]=;break;
default:
point[i]=0;break;
}
}
for(inti=0;i<;i++)
{
dividend+=point[i]*course[i].Credit;
}
for(inti=0;i<;i++)
{
divisor+=course[i].Credit;
}
oyGPA=dividend/divisor;
}
core*course[i].Credit;
}
for(inti=0;i<;i++)
{
divisor+=course[i].Credit;
}
dividend*=4;
divisor*=100;
nlGPA=dividend/divisor;
}
Name,course[i].Credit,course[i].Score);
}
("常见算法GPA={0:
f2},标准算法GPA={1:
f2}",oyGPA,nlGPA);
();
}
}
classProgram
{
staticvoidMain(string[]args)
{
Course[]course={newCourse("课程1",4,92),newCourse("课程2",3,80),newCourse("课程3",2,98),newCourse("课程4",6,70),newCourse("课程5",3,89)};
Students=newStudent(1,"王华",course);
();
();
();
}
}
}
2.
usingSystem;
using;
using;
usingExperiment5_2
{
publicdelegatevoidstartExamType(DateTimestartTime);
分析:
定义Course类和Student类,Course类中存储课程信息、学分、分数,Student类存储学号、姓名、两种GPA得出的成绩、Student对象。
Student类中还定义了两种求解GPA的方法,第一种常见算法要用到点数,我使用swtich语句,根据分数不同获得不同的点数。
2、
分析:
第一步声明startExamType委托类型和startExamType事件,第二步在Student类中定义事件处理程序answer(),第三步在mian()函数中,为startExamType事件绑定方法,第四步在Teacher类中定义引发方法declare(),第五步在mian()函数中引发事件。
因为Teacher类与Student类互为委托,所以Student类的事件同理。
实验项目名称:
实验四实验学时:
2学时
同组学生姓名:
XFS实验地点:
A203
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(1)掌握C#继承的概念和设计方法
(2)掌握C#中多态性的设计方法
(3)掌握C#中类对象的转换
二、实验仪器和设备
具备装载MicrosoftVisualStdio2010或者更高级版本的MicrosoftVisualStdio2012/2013,或者VisualStdioUltimate等的电脑都可以。
三、实验过程
usingSystem;
using;
using;
usingExperiment4
{
classBClass
{
protectedstringname;
publicstringName
{
get{returnname;}
}
publicBClass(stringname)
{
=name;
}
}
classBook:
BClass
{
privatestringbookName;
privateintno;
publicstringBookName
{
get{returnbookName;}
}
publicintNo
{
get{returnno;}
}
publicBook(stringbookName,stringname,intno):
base(name)
{
=bookName;
=no;
}
}
classReader:
BClass
{
privateintlibCard;ookName+"<"+book[i].No+">");
}
}
}
classProgram
{
staticvoidMain(string[]args)
{
Readerr1=newReader(1234,"王华");
(newBook("C语言","谭浩强",100));
(newBook("数据结构","韩顺平",110));
(newBook("软件工程","张远",210));
Readerr2=newReader(2600,"李兵");
(newBook("操作系统","郝兵",208));
();
();
();
}
}
}
四、实验结果与分析
分析:
本题要有三个类,分别是Bclass类、Book类、Reader类,其中Bclass是基类,其它两个是子类。
Reader类的成员有一个是book,它对应的是Book类数组,用来存放借了的书的,它还有borrow方法(借书方法),每调用一个就num++一次,最多借5本,还有print()方法,用来输出借书人和所借的书的相关信息。
实验项目名称:
实验五实验学时:
2学时
同组学生姓名:
XFS实验地点:
A203
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
掌握C#窗体的属性和设计方法,窗体类型和调用方法,各种常见的内部控件的特点、属性、方法和事件过程,多窗体之间传递数据的方法,窗体事件的处理机制。
二、实验仪器和设备
具备装载MicrosoftVisualStdio2010或者更高级版本的MicrosoftVisualStdio2012/2013,或者VisualStdioUltimate等的电脑都可以。
三、实验过程
1.
usingSystem;
using;
using;
using;
using;
using;
usingEX9_1
{
structStudent
{
publicintno;
publicstringname;
publicstringsex;
publicintclassId;
publicDateTimebirthday;
publicStudent(intno,stringname,stringsex,intclassId,DateTimebirthday)
{
=no;
=name;
=sex;
=classId;
=birthday;
}
}
publicpartialclassForm1:
Form
{
Student[]s=newStudent[3];
publicForm1()
{
s[0].no=1;
s[0].name="张三";
s[0].sex="男";
s[0].classId=99091;
s[0].birthday=newDateTime(1986,3,5);
s[1].no=2;
s[1].name="李四";
s[1].sex="男";
s[1].classId=99090;
s[1].birthday=newDateTime(1985,12,1);
s[2].no=3;
s[2].name="张丽";
s[2].sex="女";
s[2].classId=99091;
s[2].birthday=newDateTime(1980,3,2);
InitializeComponent();
}
privatevoidbtnOk_Click(objectsender,EventArgse)
{
if==0)
{
=s[0].();
=s[0].();
=s[0].();
=s[0].();
=s[0].();
}
if==1)
{
=s[1].();
=s[1].();
=s[1].();
=s[1].();
=s[1].();
}
if==2)
{
=s[2].();
=s[2].();
=s[2].();
=s[2].();
=s[2].();
}
}
}
}
四、实验结果与分析
1.
分析:
先完成对前台页面的设计,布置好按钮和下拉列表框等控件,在下拉列表框里添加子集学号,并对部分textbox控件设置它们的enabled属性为false。
后台先声明一个Student结构体,成员为学生相关的信息。
再声明一个结构体数字,并在Form1()函数中对其初始化。
最后完成确认按钮的点击事件,通过下拉列表框的slectedindex属性判断它选择的是哪个学号,然后根据学号将相应的文本框赋值。
实验项目名称:
实验六实验学时:
2学时
同组学生姓名:
XFS实验地点:
A203
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
掌握C#菜单的基本结构和组成,下拉式菜单和弹出式菜单的设计方法,掌握通用对话框控件的设计方法、掌握InageList控件的设计方法;掌握TreeView(树视图)和ListView(列表视图)控件的设计的方法,掌握ToolStrip(工具栏)和StatusStrip(状态栏)控件的设计方法。
二、实验仪器和设备
具备装载MicrosoftVisualStdio2010或者更高级版本的MicrosoftVisualStdio2012/2013,或者VisualStdioUltimate等的电脑都可以。
三、实验过程
1.
usingSystem;
using;
using;
using;
using;
using;
usingEX10_1
{
publicpartialclassForm1:
Form
{
String[]subItem=newString[3]{"","",""};
String[]detail=newString[3]{"","",""};
publicForm1()
{
InitializeComponent();
}
privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse)
{
TreeNodenode=;
pg","企鹅.jpg","猩猩.jpg"};
detail=newString[3]{"万物之灵","肥肥胖胖,很可爱,代表人物:
马化腾","体格健壮的家伙"};
break;
case"鸟类":
subItem=newString[3]{"老鹰.jpg","布谷鸟.jpg","麻雀.jpg"};
detail=newString[3]{"天空最强速度","叫声很好听","麻雀虽小,五脏俱全"};
break;
case"鱼类":
subItem=newString[3]{"鲨鱼.jpg","鲸鱼.jpg","小丑鱼.jpg"};
break;
default:
break;
}
inti=0;
foreach(TreeNodenode1in
{
ListViewItemitemx=subItem[i]);
i++;
}
}
privatevoid小图标ToolStripMenuItem_Click(objectsender,EventArgse)
{
=;
rePaint();
}
privatevoid大图标ToolStripMenuItem_Click(objectsender,EventArgse)
{
=;
rePaint();
}
privatevoid列表ToolStripMenuItem_Click(objectsender,EventArgse)
{
=;
rePaint();
}
privatevoid完整图标ToolStripMenuItem_Click(objectsender,EventArgse)
{
=;
rePaint();
}
usingSystem;
using;
using;
using;
using;
using;
using;
namespaceex15_1
{
publicpartialclassForm1:
Form
{
DataViewdv=newDataView();
publicForm1()
{
InitializeComponent();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
StringconStr=@"Provider=Source=";
OleDbConnectionconn=newOleDbConnection(conStr);
DataSetds=newDataSet();
DataSetds1=newDataSet();
();
OleDbDataAdapterda=newOleDbDataAdapter("Select*fromGrade",conn);
(ds,"Score");
dv=["Score"].DefaultView;
OleDbDataAdapterda1=newOleDbDataAdapter("Selectdistinct课程名fromGrade",conn);
(ds1,"Score");
=["Grade"];
utoSizeMode=;
[1].AutoSizeMode=;
[2].AutoSizeMode=;
=true;
=false;
();
}
priv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 实验 报告