河工城市学院C#Net实验报告范例文档格式.docx
《河工城市学院C#Net实验报告范例文档格式.docx》由会员分享,可在线阅读,更多相关《河工城市学院C#Net实验报告范例文档格式.docx(51页珍藏版)》请在冰豆网上搜索。
4、理解了C#的基本语句知识点及学科之间的融合渗透。
将之前所学的编程基本知识应用于软件设计,达到了学以致用的目的。
实验二C#.NET面向对象程序设计实验
1.理解面向对象思想,体会面向对象思想在编程中的应用。
2.掌握VisualC#.NET类的创建(成员,方法,属性),类的继承,类的多态性及类的方法的重载。
1.为某公司创建一个类来建立员工的人事记录:
包括员工的姓名、性别、工资、到公司的日期、部门以及联系方式等信息。
构建该类,并做出适当的测试。
2.从上面的类中派生出一个类,来记录公司干部的情况。
包括职位、提职时间、管理的员工人数及姓名。
3.编写程序,使得一个大学书店可以用它来记录和确定教科书的零售价。
所有计算应该用一个类TextBook的实例来完成。
这个类应该具有属性Title(书名)、Author(作者)、Cost(批发费用)、Quantity(库存量)和Price(零售价)。
同时假设零售价是批发价的1.25倍。
4.编写程序相加两个分数,并将它们的和以化简后的分数形式表现出来。
程序使用类Fraction来存放分数的分子和分母,具有方法Reduce来化简结果。
1.题目1和题目2
Using指令集:
usingSystem;
定义Employee类
publicclassEmployee
protectedstringname;
privatestringsexy;
privateintsalary;
privatestringdate;
privatestringdepartment;
privatestringtelnum;
publicEmployee()
{}
publicEmployee(string[]args)
name=args[0];
sexy=args[1];
salary=Convert.ToInt32(args[2]);
date=args[3];
department=args[4];
telnum=args[5];
//virtual关键字,方法可以重写
publicvirtualvoidDisplay()
Name:
{0}"
name);
Sexy:
sexy);
Salary:
salary);
Date:
date);
Department:
department);
Telephone:
telnum);
定义Employer类,继承基类Employee
publicclassEmployer:
Employee
privatestringposition;
privatestringpromote_date;
privatestringnumber;
privatestring[]Ename=newstring[50];
publicEmployer(string[]args):
base(args)
position=args[6];
promote_date=args[7];
number=args[8];
for(inti=0;
i<
Convert.ToInt32(number);
i++)
Ename[i]=args[9+i];
//重写基类的Display的方法
publicoverridevoidDisplay()
base.Display();
Position:
position);
Promote_date:
promote_date);
Numberofemployee:
number);
Convert.ToInt32(number);
Nameofemployee{0}:
{1}"
i+1,Ename[i]);
Main函数调用Employee和Employer的构造函数和方法并显示:
publicclassClass1
----------------软件051------孔令民------051023----------------------"
string[]employee1=newstring[50];
Pleaseinputimformationofemployee:
(name,sexy,salary,date,department,telephonenumber)"
employee1=Console.ReadLine().Split('
'
//调用Employee构造函数
EmployeenewEmployee=newEmployee(employee1);
-----------------Thisistheimfomationofemployee:
-------------------"
//调用EmployeeDisplay()方法显示数据
newEmployee.Display();
-----------------------------------------------------------------------------"
Pleaseinputimformationofemployer:
(name,sexy,salary,date,department,telephonenumber,position,promote_date,numberofemployees,nameofemployees(name1name2name3...))"
//调用Employer构造函数
EmployernewEmployer=newEmployer(employee1);
------------------Thisistheimfomationofemployee:
//调用EmployerDisplay()方法显示数据
newEmployer.Display();
----------------------------------------------------------------------------"
题目1和题目2调试通过运行结果如下所示:
2.题目3
定义类TextBook
TextBook类包括Title,Author,Cost,Quantity,Price属性和Display方法
publicclassTextBook
publicstringTitle;
publicstringAuthor;
publicdoubleCost;
publicintQuantity;
publicdoublePrice;
publicTextBook(stringt,stringa,doublec,intq)
Title=t;
Author=a;
Cost=c;
Quantity=q;
Price=1.25*c;
publicvoidDisplay()
Title:
{0}"
Title);
Author:
Author);
Cost:
Cost);
Quantity:
Quantity);
Price:
Price);
Main函数调用Textbook的构造函数和方法并显示:
---------------软件051------孔令民------051023--------------------"
Pleaseinputinformationofthebook:
Title,Author,Cost,Quantity"
string[]info=Console.ReadLine().Split('
//不用初始化
stringt=info[0];
stringa=info[1];
doublec=Convert.ToDouble(info[2]);
intq=Convert.ToInt32(info[3]);
TextBooknewTextBook=newTextBook(t,a,c,q);
-----------------Thisistheimfomationofbook:
newTextBook.Display();
------------------------------------------------------------------------"
题目3调试通过运行结果如下所示:
输入C#BeginnerWaston8050
计算得Price=Cost×
1.25=100
3.题目4
定义了Faction类用来计算两分数相加
Faction类包括分子和分母两个属性,以及Reduce()和Display()两个方法
classPraction
publicintDenominator;
//分母
publicintMolecule;
//分子
publicPraction(intm,intd)
Denominator=d;
Molecule=m;
publicvoidReduce()
intt=Molecule;
for(inti=t;
i>
=1;
i--)
if((Molecule%i==0)&
&
(Denominator%i==0))
Molecule/=i;
Denominator/=i;
Console.WriteLine("
{0}/{1}"
Molecule,Denominator);
Main函数
-------------软件051------孔令民------051023--------------------"
Pleaseinputthemolecule(分子)ofthe1stpration:
intm=Convert.ToInt32(Console.ReadLine());
Pleaseinputthedenominator(分母)ofthe1stpration:
intd=Convert.ToInt32(Console.ReadLine());
PractionnewPraction=newPraction(m,d);
Console.Write("
您输入的第一个分数为:
newPraction.Display();
Pleaseinputthemolecule(分子)ofthe2ndpration:
intm1=Convert.ToInt32(Console.ReadLine());
Pleaseinputthedenominator(分母)ofthe2ndpration:
intd1=Convert.ToInt32(Console.ReadLine());
PractionnewPraction1=newPraction(m1,d1);
您输入的第二个分数为:
newPraction1.Display();
PractionaddPraction=newPraction(m*d1+m1*d,d*d1);
//化简分数
addPraction.Reduce();
两分数之和为:
addPraction.Display();
----------------------------------------------------------------------------"
题目4调试成功,运行结果如下所示:
四.实验感想
1、对实验原理有更深刻的理解,掌握了VisualC#.NET类的创建(成员,方法,属性),类的继承,类的多态性及类的方法的重载。
实验三文本编辑器的设计
1.熟悉VisualC#.NET的可视化界面,掌握控件的使用。
2.掌握System.IO类的文件流操作,会处理文件。
1.假设有要排序的20个数存在文件Data.txt中。
编写程序,打开该文件并将排好序的数重新写回该文件。
2.重新打开第1题创建的文件,在文件的结尾再添加10个随机数。
3.参考Windows的记事本程序,编写一个简单的文本编辑器程序。
4.编写程序,在用户选择了一个目录后,找出该目录及其子目录中所有后缀名为doc的文件。
5.假设有文本文件1.txt和2.txt。
编写程序,创建一个新的文本文件,将1.txt中的内容和2.txt中的内容重复两遍,交替写入新的文本文件,并删除1.txt和2.txt。
Winform窗体主界面
主界面由“排序/添加随机数”,“文本编辑器”,“文件查找”,“文件合并”,“退出”,五个按钮构成。
每个按钮实现内容的一个部分。
主界面如下所示:
1.排序添加随机数
源程序:
//窗体载入事件,把文本文件Test.txt的内容读入RichTextBox1中
privatevoidForm2_Load(objectsender,EventArgse)
FileStreamfs=newFileStream("
test.txt"
FileMode.Open,FileAccess.ReadWrite);
StreamReadersr=newStreamReader(fs);
richTextBox1.Text=sr.ReadToEnd();
sr.Close();
fs.Close();
//将文件中的10个随机数用冒泡法排序,并在RichTextBox2中显示
privatevoidbutton1_Click(objectsender,EventArgse)
string[]myDate=sr.ReadToEnd().Split('
'
myDate.Length;
for(intj=0;
j<
myDate.Length-i-1;
j++)
if(Convert.ToInt32(myDate[j])>
Convert.ToInt32(myDate[j+1]))
stringt;
t=myDate[j];
myDate[j]=myDate[j+1];
myDate[j+1]=t;
foreach(stringsinmyDate)
Console.WriteLine(s);
//将排好序的数写回到文件中
FileStreamfs1=newFileStream("
StreamWritersw=newStreamWriter(fs1);
myDate.Length-1;
sw.Write(myDate[i]);
sw.Write("
"
sw.Write(myDate[myDate.Length-1]);
sw.Close();
fs1.Close();
FileStreamfs2=newFileStream("
StreamReadersr2=newStreamReader(fs2);
richTextBox2.Text=sr2.ReadToEnd();
sr2.Close();
fs2.Close();
//往文件中写入随机数
privatevoidbutton2_Click(objectsender,EventArgse)
RandomnewRandom=newRandom();
//声明产生随机数对象
FileInfofi=newFileInfo("
using(StreamWritersw=fi.AppendText())
//写入随机数
10;
sw.Write('
sw.Write(newRandom.Next());
运行结果:
2.文本编辑器
界面设计如下所示:
主菜单栏设有文件,编辑,格式,帮助,返回主界面5个主菜单项,各主菜单的子菜单如下:
(1)文件
新建,打开,保存,退出
(2)编辑
剪切,粘贴,复制,撤销,恢复,查找
(3)格式
字体,颜色
功能设计如下: