面向对象程序设计实验报告.docx
- 文档编号:24673212
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:23
- 大小:23.94KB
面向对象程序设计实验报告.docx
《面向对象程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计实验报告.docx(23页珍藏版)》请在冰豆网上搜索。
面向对象程序设计实验报告
面向对象的程序设计实验
实验一C#概述
一、实验目的
1.熟悉VisualC#.NET集成开发环境。
2.掌握控制台应用程序的开发方法。
3.掌握Windows应用程序的开发方法。
二、实验要求
1.整理上机步骤,总结经验和体会。
2.完成实验日志和上交程序。
三、实验内容
题目一:
最简单C#程序的开发
(1)选择“文件”
“新建”
“项目”命令,弹出“新建项目”对话框。
仔细观察对话框的内容。
在“项目类型”列表框中选中VisualC#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。
单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。
仔细观察并分析这些代码。
(2)在代码编辑窗口内的Main()方法中添加如下代码:
usingSystem;
namespacehello
{
classHelloWorld
{
publicstaticvoidMain()
{
Console.WriteLine("Helloworld!
");
}
}
}
(1)选择“调试”
“启动调试”命令,或按【F5】键,或单击工具栏上的
按钮,运行程序,查看运行结果。
(2)在项目的保存位置处查看项目中过的所有文件。
题目二:
创建控制台应用程序
(1)选择“开始”
“程序”
“MicrosoftVisualStudio2005”
“MicrosoftVisualStudio2005”命令,启动VisualStudio2005,并仔细观察起始页的内容。
(2)选择“文件”
“新建”
“项目”命令,弹出“新建项目”对话框。
仔细观察对话框的内容。
在“项目类型”列表框中选中VisualC#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。
单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。
仔细观察并分析这些代码。
(3)在代码编辑窗口内的Main()方法中添加如下代码:
Console.Write("当前系统的日期为:
");
//将系统的日期转换为长日期字符串表示形式进行输出
Console.WriteLine(DateTime.Now.ToLongDateString());
Console.Read();
(4)选择“文件”
“全部保存”命令,保存项目。
(5)选择“调试”
“开始执行(不调试)”命令或按【Ctrl+F5】组合键运行程序,并观察运行情况。
(6)在项目的保存位置处查看项目中过的所有文件。
实验二C#数据类型
一、实验目的
1.了解C#中的各种数据类型及其相互转换方法。
2.了解C#中的常量和变量。
3.掌握C#中的常用的操作符与表达式。
4.进一步熟悉C#程序的开发过程。
5.掌握C#中选择结构语句的使用。
6.掌握C#中循环结构语句的使用。
7.掌握C#中的跳转结构语句。
二、实验要求
1.分析程序,上机验证结果。
2.写出程序,并调试程序,要给出测试数据和实验结果。
3.整理上机步骤,总结经验和体会。
4.完成实验日志和上交程序。
三、实验内容
题目一:
程序分析
(1)分析程序,写出程序的运行结果,并上机进行验证。
usingSystem;
publicclassBoolTest
{
publicstaticvoidMain()
{
Console.Write("请输入一个字符:
");
charc=(char)Console.Read();
if(Char.IsLetter(c))
if(Char.IsLower(c))
Console.WriteLine("字符是小写的。
");
else
Console.WriteLine("字符是大写的。
");
else
Console.WriteLine("字符不是字母。
");
}
}
(2)分析程序,写出程序的运行结果,并上机进行验证。
usingSystem;
classtest
{
publicstaticvoidMain()
{
stringa="\u0068ello";
stringb="world";
Console.WriteLine(a+b);
Console.WriteLine(a+b=="helloworld");
}
}
(3)分析程序,写出程序的运行结果,并上机进行验证。
usingSystem;
namespace_1
{
classProgram
{
staticvoidMain()
{
inta=10;
Console.WriteLine("a={0}",a);
intb=newint();
Console.WriteLine("1:
b={0}",b);
b=10;
Console.WriteLine("2:
b={0}",b);
Int32c=10;
Console.WriteLine("c={0}",c);
Int32d=newInt32();
Console.WriteLine("1:
d={0}",d);
d=10;
Console.WriteLine("2:
d={0}",d);
Console.WriteLine("int:
{0}~~{1}",int.MinValue,int.MaxValue);
Console.Read();
}
}
}
(4)分析程序,写出程序的运行结果,并上机进行验证。
usingSystem;
namespace_1
{
classProgram
{
staticvoidMain()
{
charc1='a';
charc2='\x0062';
charc3='\u0063';
Console.WriteLine("c1:
{0}\nc2:
{1}\nc3:
{2}\n",c1,c2,c3);
Console.Read();
}
}
}
(5)分析程序,写出程序的运行结果,并上机进行验证。
usingSystem;
namespace_1
{
classProgram
{
enumWeekDay{sun,mon,tue,wed,thu,fri,sat}
staticvoidMain()
{
WeekDaya=WeekDay.sun;
Console.WriteLine(a);
WeekDayb=(WeekDay)4;
Console.WriteLine(b);
Console.Read();
}
}
}
(6)分析程序,写出程序的运行结果,并上机进行验证。
usingSystem;
namespace_1
{
classProgram
{
staticvoidMain(string[]args)
{
int[][]jagArray=newint[2][]{newint[5],newint[3]};
for(inti=0;i { for(intj=0;j jagArray[i][j]=i+j; } for(intk=0;k<2;k++) { Console.WriteLine("jagArray[{0}]: ",k); for(intm=0;m Console.Write("{0,-3}",jagArray[k][m]); Console.WriteLine(); } Console.Read(); } } } (7)分析程序,写出程序的运行结果,并上机进行验证。 usingSystem; namespace_1 { classProgram { staticvoidMain(string[]args) { objectx; x=1; Console.WriteLine("1: x={0},typeis{1};",x,x.GetType()); x=10.01; Console.WriteLine("2: x={0},typeis{1};",x,x.GetType()); x='\u0061'; Console.WriteLine("3: x={0},typeis{1};",x,x.GetType()); x="Hello! "; Console.WriteLine("4: x={0},typeis{1};",x,x.GetType()); Console.Read(); } } } (8)分析程序,写出程序的运行结果,并上机进行验证。 usingSystem; namespace_1 { classProgram { staticvoidMain(string[]args) { Console.Write("请输入1-12之间的任意一个整数: "); strings=Console.ReadLine(); intmonth=int.Parse(s); switch(month) { case1: Console.WriteLine("January");break; case2: Console.WriteLine("February");break; case3: Console.WriteLine("March");break; case4: Console.WriteLine("April");break; case5: Console.WriteLine("May");break; case6: Console.WriteLine("June");break; case7: Console.WriteLine("July");break; case8: Console.WriteLine("August");break; case9: Console.WriteLine("September");break; case10: Console.WriteLine("October");break; case11: Console.WriteLine("Noveber");break; case12: Console.WriteLine("December");break; default: Console.WriteLine("输入错误,转换失败。 ");break; } Console.Read(); } } } (9)分析程序,写出程序的运行结果,并上机进行验证。 usingSystem; namespace_1 { classProgram { staticvoidMain(string[]args) { int[,]a=newint[5,5]; a[0,0]=1; for(inti=1;i<5;i++) { a[i,0]=1; a[i,i]=1; for(intj=1;j a[i,j]=a[i-1,j-1]+a[i-1,j]; } for(inti=0;i<5;i++) { for(intj=0;j<=i;j++) Console.WriteLine("{0}\t",a[i,j]); Console.WriteLine(); } Console.Read(); } } } (10)分析程序,写出程序的运行结果,并上机进行验证。 usingSystem; namespace_1 { classProgram { staticvoidMain(string[]args) { intodd=0,even=0; int[]array=newint[]{0,4,7,8,9,10,14,17,19,24,56}; foreach(intiinarray) { if(i%2==0) even++; else odd++; } Console.WriteLine("{0}个奇数,{1}个偶数",odd,even); } } } (11)分析程序,写出程序的运行结果,并上机进行验证。 usingSystem; publicclassTestDoWhile { publicstaticvoidMain() { intx; inty=0; do { x=y++; Console.WriteLine(x); } while(y<5); } } (12)分析程序,写出程序的运行结果,并上机进行验证。 usingSystem; namespace_1 { classProgram { staticvoidMain(string[]args) { Console.WriteLine("---break---"); for(inti=0;i<10;i++) { if(i==5)break; Console.WriteLine("iis"+i); } Console.WriteLine("---continue---"); for(inti=0;i<10;i++) { if(i==5)continue; Console.WriteLine("iis"+i); } Console.Read(); } } } 题目二: 程序编写 (1)编写程序,定义一个包括学生基本资料的结构类型数据(要求包括学号、姓名、性别、年龄、家庭住址等),并对其进行测试。 (2)编写程序,将一年中的12个月建立一个枚举类型,并对其进行测试。 (3)编写程序,使用int类型数据进行装箱与拆箱转换。 (4)编写程序,分别用for、while、do…while语句实现求前n个自然数之和。 (5)编写程序,输出九九乘法表。 实验三C#面向对象程序设计 一、实验目的 1.理解C#语言是如何体现面向对象编程基本思想。 2.掌握类对象的定义。 3.了解类的封装方法,以及如何创建类和对象。 4.了解成员变量和成员方法的特性。 5.掌握静态成员的用法。 二、实验要求 1.分析程序,上机验证结果。 2.写出程序,并调试程序,要给出测试数据和实验结果。 3.整理上机步骤,总结经验和体会。 4.完成实验日志和上交程序。 三、实验内容 题目一: 程序分析 (1)分析下面两个程序,确定那个程序好,说明理由。 程序要求: 定义一个圆类,计算圆的面积和周长。 程序1: publicclasscircle { publicstaticvoidMain() { doubleradium,delimeter,square; constdoublepai=3.1415926; radium=Convert.ToInt32(Console.ReadLine()); delimeter=2*pai*radium; square=pai*pai*radium; Console.WriteLine("delimeter={0},square={1}",delimeter,square); Console.ReadLine(); } } 程序2: publicclasscircle { doubledelimeter,square; constdoublepai=3.1415926; publicvoidcalculate(doublerad) { delimeter=2*pai*rad; square=pai*pai*rad; Console.WriteLine("delimeter={0},square={1}",delimeter,square); } publicstaticvoidMain() { doubleradium; circlecir=newcircle(); radium=Convert.ToInt32(Console.ReadLine()); cir.calculate(radium); Console.ReadLine(); } } (2)分析程序,写出程序的运行结果,并上机进行验证。 UsingSystem; publicclassstudents { stringid,name; intage; publicstudents(stringid,stringname,intage) { this.id=id; this.name=name; this.age=age; } publicvoidDisplay() { Console.WriteLine("id={0},name={1},age={2}",id,name,age); } publicstaticvoidMain() { //stringid,name; //intage; studentsstu=newstudents("0001","zhangsan",16); stu.Display(); Console.ReadLine(); } } (3)分析程序,写出程序的运行结果,并上机进行验证。 publicclassDate { privateintYear,Month,Day; publicDate(intYear,intMonth,intDay) { this.Year=Year; this.Month=Month; this.Day=Day; } publicDate(System.DateTimedt) { Year=dt.Year; Month=dt.Month; Day=dt.Day; } publicvoidDisplayDate() { Console.WriteLine("{0}年{1}月{2}日",Year,Month,Day); } } publicclassTester { publicstaticvoidMain() { System.DateTimecurrentTime=System.DateTime.Now; Datedt=newDate(2008,7,18); dt.DisplayDate(); Datedt2=newDate(currentTime); dt2.DisplayDate(); Console.ReadLine(); } } 题目二: 程序编写 (1)实现一个包含类属性方法的简单加法程序,并能显示结果。 (2)实现一个Person类,要求: 属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。 实验四C#面向对象程序设计 (二) 一、实验目的 1.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。 能够根据给定的要求定义类并实现类的成员函数。 2.理解类的成员的访问控制的含义,公有、私有和保护成员的区别。 3.掌握参数传递的用法。 4.掌握属性的作用和使用。 二、实验要求 1.分析程序,上机验证结果。 2.写出程序,并调试程序,要给出测试数据和实验结果。 3.整理上机步骤,总结经验和体会。 4.完成实验日志和上交程序。 三、实验内容 题目一: 程序分析 (1)分析程序,写出程序的运行结果,并上机进行验证,然后回答后面问题。 publicclassBankAccount { staticinttotalAccountNumber=0; stringBankAccountId; doubleinitialDepositAmount=0.00; publicBankAccount(stringmyId) { this.BankAccountId=myId; this.initialDepositAmount=0.00; totalAccountNumber++; } publicvoiddisplayid() { Console.WriteLine("mbaid={0},initialDepositAmount={1}",this.BankAccountId,this.initialDepositAmount); } publicstaticvoiddisplay() { Console.WriteLine("totalAccountNumber={0}",totalAccountNumber); } } publicclassTester { publicstaticvoidMain() { BankAccountmba=newBankAccount("37000001"); BankAccountmba2=newBankAccount("3700002"); BankAccountmba3=newBankAccount(""); BankAccountmba4=newBankAccount("3700004"); //Console.WriteLine("mba2ID={0}",mba2.BankAccountId); mba2.displayid(); BankAccount.display(); Console.ReadLine(); } } 请回答问题: (1)按你自己的算法修改以上程序,比如可只输出生成的账户数。 (2)把注释去掉后会怎样,为什么? (3)为什么display用类名直接引用,可以用对象来引用么? 尝试输出结果。 (4)类的静态变量和非静态变量的引用区别。 判断一下语句的正确性: 静态方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 实验 报告