一.实验目的
1.练习如何创建类和对象。
2.练习如何为定义的类编写相应的方法。
3.练习如何通过属性访问对象中的数据。
4.练习如何创建基类及其派生类。
二.实验内容
1.编写一个控制台应用程序,定义并使用一个时间类,该类包含时、分、秒字段与属性,具有将时间增加1秒、1分和1小时的方法,具有分别显示时、分、秒和同时显示时分秒的方法。
2.编写一个控制台应用程序,程序中有两个类定义,一个是创建程序时系统自动创建的类Class1,一个是用户自定义的Student类,要求该类包含私有字段:学号(字符串)、姓名(字符串)和性别(字符),具有三个属性:学号(读写)、姓名(只读)、性别(读写),具有有参构造方法、具有同时显示学生个人信息的方法。在Class1类的Main方法中完成以下功能:
(1)从键盘上输入一个学生的个人信息(学号、姓名、性别)。
(2)修改该学生的学号和性别。
(3)打印修改前后该学生的个人信息。
3.编写一个控制台应用程序,定义和使用cylinder类,cylinder类的构造方法被传递了两个double值,分别表示圆柱体的半径和高度。用cylinder类计算圆柱体的体积,并存储在一个double变量中。在cylinder类中包含一个方法vol(),用来显示每个cylinder对象的体积。
4.编写一个控制台应用程序,程序中有两个类定义,一个是创建程序时系统自动创建的类Class1,一个是用户自定义的Student类,要求该类包含私有实例字段:学号(字符串)、姓名(字符串)、成绩(double)以及私有静态字段:学生人数、学生总成绩、学生平均成绩,具有有参构造方法、显示学生个人信息的公有实例方法和显示学生人数、总成绩及平均成绩的公有静态方法。在Class1类的Main方法中完成以下功能:
(1)从键盘上依次输入三个学生的个人信息(学号、姓名、成绩)。
(2)统计全部学生的人数、总成绩和平均成绩。
(3)打印学生们的个人信息及全部学生的人数、总成绩和平均成绩。
三、实验代码
1.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Timer
{
public int hour;
public int minute;
public int second;
//构造函数
public Timer(int hour, int minute, int second)
{
this.hour = hour;
this.minute = minute;
this.second = second;
}
public int Hour
{
get
{
return hour;
}
set
{
hour = value;
}
}
public int Minute
{
get
{
return minute;
}
set
{
minute = value;
}
}
public int Second
{
get
{
return second;
}
set
{
second = value;
}
}
public void AddHour()
{
if (Hour < 23)
{
Hour++;
}
else
{
Hour = 0;
}
}
public void AddMinute()
{
if (Minute < 59)
Minute++;
else
{
AddHour();
Minute = 0;
}
}
public void AddSecond()
{
if (Second < 59)
Second++;
else
{
AddMinute();
Second = 0;
}
}
public void DisplayHour()
{
Console.WriteLine("小时:{0}", hour);
}
public void DisplayMinute()
{
Console.WriteLine("分钟:{0}", minute);
}
public void DisplaySecond()
{
Console.WriteLine("秒钟:{0}", second);
}
public void DisplayTime()
{
Console.WriteLine("当前时间为:{0}时{1}分{2}秒", hour, minute, second);
}
static void Main(string[] args)
{
System.DateTime currentTime = new System.DateTime();
currentTime = System.DateTime.Now;
int hours = currentTime.Hour;
int minutes = currentTime.Minute;
int seconds = currentTime.Second;
Timer hms = new Timer(hours, minutes, seconds);
Console.WriteLine("同时显示时分秒:");
hms.DisplayTime();
Console.WriteLine("");
Console.WriteLine("分别显示时分秒:");
hms.DisplayHour();
hms.DisplayMinute();
hms.DisplaySecond();
Console.WriteLine("");
Console.WriteLine("小时加一:");
hms.AddHour();
hms.DisplayHour();
Console.WriteLine("");
Console.WriteLine("分钟加一:");
hms.AddMinute();
hms.DisplayMinute();
Console.WriteLine("");
Console.WriteLine("秒钟加一:");
hms.AddSecond();
hms.DisplaySecond();
Console.WriteLine("");
Console.Write("更改后的时间为:");
hms.DisplayTime();
Console.WriteLine("");
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Student
{
private string stuno;
private string name;
private string sex;
public string Stuno
{
get
{
return stuno;
}
set
{
stuno = value;
}
}
public string Name
{
get
{
return name;
}
}
public string Sex
{
get
{
return sex;
}
set
{
sex = value;
}
}
public Student(string stuno, string name, string sex)
{
this.stuno = stuno;
this.name = name;
this.sex = sex;
}
public void StudentInfo()
{
Console.WriteLine("学生信息如下");
Console.WriteLine("学号:{0}", stuno);
Console.WriteLine("姓名:{0}", name);
Console.WriteLine("性别:{0}", sex);
}
}
class Class1
{
static void Main(string[] args)
{
Console.WriteLine("请输入学生的学号:");
string stuno = Console.ReadLine();
Console.WriteLine("请输入学生的姓名:");
string name = Console.ReadLine();
Console.WriteLine("请输入学生的性别:");
string sex = Console.ReadLine();
Student student = new Student(stuno, name, sex);
student.StudentInfo();
Console.WriteLine();
//修改学生信息
student.Stuno = "164574";
student.Sex = "男";
Console.WriteLine("修改后的学生信息为:");
student.StudentInfo();
Console.WriteLine();
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Cylinder
{
private double radius;
private double height;
public double Radius
{
get
{
return radius;
}
set
{
radius = value;
}
}
public double Height
{
get
{
return height;
}
set
{
height = value;
}
}
public Cylinder(double r, double h)
{
radius = r;
height = h;
}
public double Volume()
{
return System.Math.PI * radius * radius * height;
}
static void Main(string[] args)
{
double r, h;
Console.WriteLine("圆的半径:");
r = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("圆的高:");
h = Convert.ToDouble(Console.ReadLine());
Cylinder cylinder = new Cylinder(r, h);
Console.WriteLine(string.Format("体积是 {0}", cylinder.Volume()));
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StudentGrade
{
class Student
{
private string stuno;
private string name;
private double grade;
private static int studentNumber = 0;
private static double sumGrade = 0;
private static double avgGrade = 0;
public Student(string stuno,string name,double grade){
this.stuno = stuno;
this.name = name;
this.grade=grade;
studentNumber++;
sumGrade += grade;
}
public void studentInfo()
{
Console.WriteLine("学号:{0}", stuno);
Console.WriteLine("姓名:{0}", name);
Console.WriteLine("成绩:{0}", grade);
}
public static void sumInfo()
{
Console.WriteLine("学生总人数:{0}", studentNumber);
Console.WriteLine("学生总成绩:{0}", sumGrade);
avgGrade=sumGrade/studentNumber;
Console.WriteLine("平均成绩{0}", avgGrade);
}
}
class Class2
{
static void Main(string[] args)
{
Student[] student = new Student[3];
string stuno;
string name;
double grade;
for (int i = 0; i < 3; i++)
{
Console.WriteLine("请输入第{0}个学生的学号", i + 1);
stuno = Console.ReadLine();
Console.WriteLine("请输入第{0}个学生的姓名", i + 1);
name = Console.ReadLine();
Console.WriteLine("请输入第{0}个学生的成绩", i + 1);
grade = Convert.ToDouble(Console.ReadLine());
student[i] = new Student(stuno, name, grade);
}
for (int j = 0; j < 3; j++)
{
student[j].studentInfo();
}
Student.sumInfo();
Console.ReadLine();
}
}
}
四、实验结果
1.
3.
4.
五、实验总结
代码资源下载链接:https://download.csdn.net/download/XIARIANNUAN/13137627



