
河北工业大学.net程序设计-c#-实验报告实验三.doc
32页《C#.net》实验报告 姓名: 王璐 学号: 日期: 2016/04/24 实验名称: 面向对象编程 成绩: 实验一 类和对象编程1、 实验目的及要求【实验目的】1.如何创建类和对象2.如何为定义的类编写相应的方法3.如何通过属性访问对象中的数据【实验要求】1.写出程序,并调试程序,要给出测试数据和实验结果2.整理上机步骤,总结经验和体会3.完成实验日志和上交程序 二、实验环境Windows 7操作系统,Visual Studio 2005及以上版本三、实验内容(题目、源代码、关键代码解释、运行结果、实验总结)【实验1-1-1】编写一个控制台应用程序,定义并使用一个时间类,该类包含时、分、秒字段与属性,具有将时间增加1秒、1分和1小时的方法,具有分别显示时、分、秒和同时显示时分秒的方法。
1、 源代码:using System;public class Time{ //字段 private int hour; private int minite; private int second; //属性 public int Hour { get { return hour; } set { hour=value; } } public int Minite { get { return minite; } set { minite=value; } } public int Second { get { return second; } set { second=value; } } //方法 //加时方法 public void SAdd() { second++; if(second>60) { minite++; second=second%60; } if(minite>60) { hour++; minite=minite%60; } if(hour>24) { hour=hour%24; } } public void MAdd() { minite++; if(minite>60) { hour++; minite=minite%60; } if(hour>24) { hour=hour%24; } } public void HAdd() { hour++; if(hour>24) { hour=hour%24; } } //输出方法 public void HPrint() { Console.WriteLine("现在时为:{0}",hour); } public void MPrint() { Console.WriteLine("现在分为:{0}",minite); } public void SPrint() { Console.WriteLine("现在秒为:{0}",second); } public void TimePrint() { Console.WriteLine("得出准确时间为:{0}时{1}分{2}秒",hour,minite,second); }}//主函数public class Text{ public static void Main() { Time time=new Time(); Console.WriteLine("获取系统时间中..."); time.Hour=DateTime.Now.Hour; time.Minite=DateTime.Now.Minute;//刚刚发现前面的minute全写成minute了..英语不太.. time.Second=DateTime.Now.Second; time.TimePrint(); Console.WriteLine("现在加一秒功能:"); time.SAdd(); time.TimePrint(); Console.WriteLine("现在加一分功能:"); time.MAdd(); time.TimePrint(); Console.WriteLine("现在加一时功能:"); time.HAdd(); time.TimePrint(); Console.WriteLine("现在依次调用三个方法输出时分秒:"); time.HPrint(); time.MPrint(); time.SPrint(); }}2、关键代码解释:1)时钟循环需要取模运算,如第25时为25%24=1,即1时;另外还要注意秒的增加带给分、时的影响等。
2)加时功能直接使用time++,并注意判断对其他时间的影响3)获取时间采用了DataTime里的函数,直接获取系统时间3、运行结果4、 实验总结 结合实践明白了属性的用法与含义,并且通过百度了解了怎么从系统中读取现在的时间实验1-1-2】编写一个控制台应用程序,程序中有两个类定义,一个是创建程序时系统自动创建的类Class1,一个是用户自定义的Student类,要求该类包含私有字段:学号(字符串)、姓名(字符串)和性别(字符),具有三个属性:学号(读写)、姓名(只读)、性别(读写),具有有参构造方法、具有同时显示学生个人信息的方法在Class1·中完成以下功能:1)从键盘上输入一个学生的个人信息(学号、姓名、性别)2)修改该学生的学号和性别3)打印修改前后该学生的个人信息1、 源代码using System;public class Student { //字段 private string num; private string name; private char sex; private string oldnum; private char oldsex; //属性 public string Num { get { return num; } set { num=value; } } public string Name { get { return name; } set { name=value; } } public char Sex { get { return sex; } set { sex=value; } } //方法 public Student(string c,string n,char s) { num=c; name=n; sex=s; } public void PrintIn() { Console.WriteLine("学号"); num=Console.ReadLine(); Console.WriteLine("姓名"); name=Console.ReadLine(); Console.WriteLine("性别"); sex=Convert.ToChar(Console.ReadLine()); } public void Revise() { Console.WriteLine("请对输入的学号重新进行编辑:"); oldnum=num; num = Console.ReadLine(); Console.WriteLine("请对输入的性别重新进行编辑:"); oldsex=sex; sex =Convert.ToChar(Console.ReadLine()); } public void PrintOut() { Console.WriteLine("修改前的信息为:学号:{0},姓名:{1},性别:{2}",oldnum,name,oldsex); Console.WriteLine("修改后的信息为:学号:{0},姓名:{1},性别:{2}",num,name,sex); }}。
