C#实验作业00.docx
- 文档编号:4883096
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:53
- 大小:60.31KB
C#实验作业00.docx
《C#实验作业00.docx》由会员分享,可在线阅读,更多相关《C#实验作业00.docx(53页珍藏版)》请在冰豆网上搜索。
C#实验作业00
成都理工大学管理科学学院
教学实验报告
2011~2012学年第1学期
实验项目
实验一C#基本语法编程练习
课程名称
面向对象编程设计
实验日期
第7周---第8周
实验学时
4
实验总学时
专业方向
实验目的
1.了解C#的数据类型
2.掌握各种变量的声明方式
3.理解运算符的优先级
4.掌握c#基本数据类型、运算符与表达式的使用方法
5.理解C#程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法
实验要求
1.写出程序,并调试程序,要给出测试数据和实验结果。
2.整理上机步骤,总结经验和体会。
3.完成实验日志和上交程序。
实
验
目
的
与
要
求
1.编写一个程序,输出两行结果:
Hello,MynameisLiNing,Thisismyfirstcsharpprogram;我的C#学习之旅开始了。
usingSystem;
namespaceAscent
{
classHello
{
//变量
staticstrings="Hello,MynameisLiNing,Thisismyfirstcsharpprogram;我的C#学习之旅开始了!
";
//方法
staticvoidMain()
{
System.Console.WriteLine(s);
Console.ReadKey();
}
}
2.编写一个声明c#不同数据类型变量的程序
usingSystem;
namespaceConsoleApplication1
{
publicclassDate
{
publicstaticvoidMain()
{
byteb=0x55;
shorts=0x55ff;
inti=1000000;
longl=0xffffL;
charc='a';
floatf=0.23F;
doubled=0.7E-3;
StringS="这是字符串类数据类型";
System.Console.WriteLine("字节型变量b="+b);
System.Console.WriteLine("短整型变量s="+s);
System.Console.WriteLine("整型变量i="+i);
System.Console.WriteLine("长整型变量l="+l);
System.Console.WriteLine("字符型变量c="+c);
System.Console.WriteLine("浮点型变量f="+f);
System.Console.WriteLine("双精度变量d="+d);
System.Console.WriteLine("字符串类对象S="+S);
System.Console.ReadKey();
}
}
}
3.编写一个使用运算符、表达式、变量的程序
usingSystem;
publicclassMathTest
{
publicstaticvoidMain()
{
inta=1+2;
System.Console.WriteLine("a="+a);
Console.ReadKey();
}
}
4.编写一个使用c#数据的程序
usingSystem;
publicclassExplicitDataCastingTest
{
publicstaticvoidMain(String[]args)
{
byteb;
inti=257;
doubled=123.456;
System.Console.WriteLine("\nCastingofinttobyte.");
b=(byte)i;
System.Console.WriteLine("bis:
"+b);
System.Console.WriteLine("\nCastingofdoubletoint.");
i=(int)d;
System.Console.WriteLine("iis:
"+i);
Console.ReadKey();
}
}
5.编写表达式语句、复合语句的程序
usingSystem;
publicclassBitEqualsTest
{
publicstaticvoidMain(String[]args)
{
inta=1;
intb=2;
intc=a*(b+a);
System.Console.WriteLine("c="+c);
Console.ReadKey();
}
}
6.编写使用不同选择结构的程序
usingSystem;
publicclassIfTest
{
publicvoidJudge(inti)
{
intsw=0;
if(i>0)sw=1;
elseif(i<0)sw=-1;
switch(sw)
{
case1:
System.Console.WriteLine("iisapositivenumber");
break;
case0:
System.Console.WriteLine("iiszero");
break;
case-1:
System.Console.WriteLine("iisanegativenumber");
break;
}
}
publicstaticvoidMain(String[]args)
{
IfTestit=newIfTest();
it.Judge(10);
it.Judge(0);
it.Judge(-2);
Console.ReadKey();
}
}
7.编写使用不同循环结构的程序
usingSystem;
classTest
{
staticvoidMain()
{
inti=1;
intk=3;
for(i=1;i<=3;i++)
Console.WriteLine(i);
do
{
k=k+1;
}while(k<=5);
Console.WriteLine(k);
Console.ReadKey();
}
}
实
验
内
容
实验结果及分析:
1.定义了类Hello,然后将要所输出的字符付给变量s,输出结果。
2.定义了类Date,将各个代表各个不同类型的数据付给各个变量,输出不同数据类型的具体数值。
3.定义了类MathTest,将含有运算符的表达式直接付给变量a,输出结果。
4.定义了类ExplicitDataCastingTest,将数据类型进行转化。
5.定义了类BitEqualsTest,用含有变量a与b的复合语句表示c,实现对c的输出。
6.定义了类IfTest,运用if和switch两种选择语句来实现对结果的输出。
7.定义了类Test,运用了for和do-while两种循环语句实现对结果的输出。
通过本次实验我了解到:
1.C#语言中,数据类型分为数值类型和引用类型,运用以上类型时,应首先明确其中各类型的声明方式,其中,数值类型存储实际数值,引用类型是对已有的类型的引用。
数值类型运用时要了解该类型具体的取值范围与占据位数。
2.C#语言同C语言相同,也存在运算符的优先级问题,使用时应该注意区分。
3.C# 语言中,表达式的应用和控制语句的应用于C语言的具体实现方法相同,foreach语句的应用使得循环语句的算法实现效率提高,要多加掌握。
实
验
总
结
教师签字:
注1:
实验内容至少包括实验过程与步骤,实验结果及分析,实验心得三部分(可根据实验特殊性增加相应实验内容)。
注2:
若实验内容较多,提交的纸质文档中可只填写主要的、结论性的内容,其余内容以电子稿提供。
成都理工大学管理科学学院
教学实验报告
2011~2012学年第1学期
实验项目
实验二类与对象编程练习
课程名称
面向对象编程设计
实验日期
第9周---第10周
实验学时
7
实验总学时
实
验
目
的
与
要
求
实验目的
1.理解C#语言是如何体现面向对象编程基本思想;
2.掌握类对象的定义;
3.了解类的封装方法,以及如何创建类和对象;
4.了解成员变量和成员方法的特性;
5.掌握静态成员的用法;
6.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;
7.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;
8.掌握参数传递的用法;
9.掌握属性的作用和使用。
实验要求
1.编写一个包含类和类方法的程序;
2.编写一个创建对象和使用对象的方法程序;
3.编写不同成员变量、方法修饰方法的程序;。
4.编写含有构造方法的类的程序;
5.编写重载构造方法的程序;
6.编写类含有静态变量的程序;
7.编写通过ref、out修饰符传递参数的类程序;
8.编写含有属性的类程序。
实
验
内
容
一、定义一个圆类,计算圆的面积和周长
usingSystem;
classcircle
{
staticvoidMain()
{
doublearea=3.14*5*5;
doubleround=2*3.14*5;
Console.WriteLine(area);
Console.WriteLine(round);
Console.ReadKey();
}
}
二、实现一个学生类
程序要求如下:
其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:
使用成员函数实现对数据的输出;使用构造函数实现对数据的输入。
usingSystem;
publicclassStudent
{
privateStringname;
privateintnumber;
privateintage;
publicStudent(){}
publicStudent(Stringname,intnumber,intage)
{
this.name=name;
this.number=number;
this.age=age;
}
publicvoidSetName(Stringname){this.name=name;}
publicStringGetName(){returnname;}
publicvoidSetNumber(intnumber){this.number=number;}
publicintGetNumber(){returnnumber;}
publicvoidSetAge(intage){this.age=age;}
publicintGetAge(){returnage;}
publicstaticvoidMain(String[]args)
{
Students=newStudent("刘一泽",224,20);
System.Console.WriteLine("学生:
"+s.GetName());
System.Console.WriteLine("学号:
"+s.GetNumber());
System.Console.WriteLine("年龄:
"+s.GetAge());
System.Console.ReadKey();
}
}
三、实现一个日期类型
程序要求如下:
定义日期类型Date。
要求有以下面成员:
年、月、日变量,重载的构造方法,一个实现年、月、日单独的输入,一个实现从系统时间里读出年月日,并实现打印方法成员,该方法要按照“XXXX年XX月XX日”格式输出日期。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
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(2011,5,12);
dt.DisplayDate();
Datedt2=newDate(currentTime);
dt2.DisplayDate();
Console.ReadLine();
}
}
四、实现一个包含类属性方法的简单加法程序
程序要求如下:
建立一个类,使其可以进行简单的加法运算。
该程序要包含类、属性、方法等面向对象的基本元素。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceshangjiyi
{
///
///此示例演示计算机两个数的加减乘除取余
///
classProgram
{
staticvoidMain(string[]args)
{
intfirst;//第一个操作数
intsecond;//第二个操作数
stringmyOprator;//运算符
intresult;//计算结果
//输入参与计算操作数和运算符
Console.Write("请输入第一个操作数:
");
first=int.Parse(Console.ReadLine());
Console.Write("请输入第二个操作数");
second=int.Parse(Console.ReadLine());
Console.Write("请输入运算符(+-*%):
");
myOprator=Console.ReadLine();
//计算,并输出运算符
if(myOprator=="+")//加法
{
result=first+second;
Console.WriteLine("{0}加上{1}等于{2}",first,second,result);
}
elseif(myOprator=="-")//减法
{
result=first-second;
Console.WriteLine("{0}减去{1}等于{2}",first,second,result);
}
elseif(myOprator=="*")//乘法
{
result=first*second;
Console.WriteLine("{0}乘以{1}等于{2}",first,second,result);
}
elseif(myOprator=="%")//取余
{
result=first%second;
Console.WriteLine("{0}除以{1}等于{2}",first,second,result);
}
else
{
Console.WriteLine("无法识别运算符!
");
}
Console.ReadLine();
}
}
}
五、通过类程序说明静态变量/方法与实例变量/方法的区别
static声明的成员变量/方法被视为类的成员变量/方法,而不把它当作实例对象的成员变量/方法。
换句话说,静态变量/方法是类固有的,可以直接引用,其它成员变量/方法仅仅被声明,生成实例对象后才存在,才可以被引用。
基于这样的事实,也把静态变量/方法称为类变量/方法,非静态变量称为实例变量/方法。
1.程序功能要求
编写帐户类,对每一账号赋值帐户并设置初始化存款为0.00元,设计一变量统计账号生成的数目。
usingSystem;
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("3700003");
BankAccountmba4=newBankAccount("3700004");
mba2.displayid();
BankAccount.display();
Console.ReadLine();
}
}
六、方法中参数传递的练习
在其它语言中,函数调用或过程调用时参数有传值调用和传地址调用之分。
在C#中,方法中的参数传递可以分为传值调用或对象方法调用等方式。
传值调用即传递的参数是基本数据类型,调用方法时在方法中将不能改变参数的值,这意味着只能使用它们。
对象调用是指先调用对象,再调用对象的方法,这种方式可以修改允许存取的成员变量。
所以,如果不想改变参数的值,可以采用传值调用的方法。
如果想改变参数的值,可采用对象调用的方法,间接修改参数的值。
1.编写一个传值调用的程序
程序功能要求:
程序首先给整型变量x和y赋初值3,5,然后使用传值调用方式调用方法对x和y做乘方并及输出x和y的乘方值,最后输出x和y得值。
再将此方法给为对象调用加ref修饰查看输出结果差异。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
publicclassPower
{
//publicvoidMyPower(refintx,refinty)
publicvoidMyPower(intx,inty)
{x=1;y=2;
Console.WriteLine("x={0},y={1}",x,y);
Console.WriteLine("x*x={0},y*y={1}",x*x,y*y);
}
}
publicclassTester
{
publicstaticvoidMain()
{
intx,y;
x=3;y=5;
Powermp=newPower();
//mp.MyPower(refx,refy);
mp.MyPower(x,y);
Console.WriteLine("x={0},y={1}",x,y);
Console.ReadLine();
}
}
实
验
总
结
实验结果及分析:
1.定义类circle,求解变量面积和周长。
2.定义类Student,方法重载,将类中的name,number,age变量输出
3.定义类,实现对两个时间的输出。
4.定义类shangjiyi,各种运算方法,用以实现运算结果。
5.定义类BankAccount,用以实现对静态变量/方法与实例变量/方法的区别
6.定义类EXP,通过方法ff1将实现x与y的传值调用。
通过本次实验我了解到:
1.类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作,所以类作为陈旭的基本单元,是为对象而专门设定的,类的成员包括了方法和变量,类的实例通过“.”运算符来实现对变量的访问和方法的调用。
2.封装作为C#设计的一个重要原则,其实当我们建立一个类时,就进行了封装。
类中成员的访问问题,就要取决于修饰类的指示符,例如当一个类成员被public指示符修饰时,该成员可以被程序中的任何其它代码访问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 实验 作业 00