1、三、实验内容设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号、姓名、语文、数学和英语3门课程的期末考试成绩(1)能查询每个学生的总成绩;(2)能显示全班前3名的名单;(3)能显示单科成绩最高分和不及格的学生名单;(4)能统计全班学生的平均成绩;(5)能显示各科成绩在不同分数段的学生人数百分比。四、设计思路(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩、英语成绩)和属性(总成绩)等;(2)定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等;(3)设计用户
2、操作界面,首先让用户能输入一个学生的信息,当单击“添加”按钮时把这些信息添加班级对象的学生数组中。当单击“完成”按钮时调用班级类的方法来显示所要求统计的统计结果。当用户在查询框中输入学生的名字,并单击“查询”按钮时显示该学生的总成绩。五、实验步骤1、添加必要控件:6个able控件,5个textbox控件,6个button控件2、对其属性进行修改如下表控件类型控件名称属性设置结果FromFrom1Text期末考试成绩TextBoxtextBox1NametextBox2textBox3textBox4ButtonButton1添加addButton2查询chaxunButton3前三名third
3、Button4最高成绩和挂科BestButton5平均总成绩pingjunButton6及格率jigeAbleable1姓名Able2学号Able4英语成绩Able5语文成绩Able6数学成绩Able73.编写代码namespace WindowsApplication3 public partial class Form1 : Form studentlist ss = new studentlist(); public Form1() InitializeComponent(); private void add_Click_1(object sender, EventArgs e)/添加
4、 Student S = new Student(); S.name = txtname.Text; S.ID = txtID.Text; S.math = Convert.ToInt32(txtmath.Text); S.chinese = Convert.ToInt32(txtchinese.Text); S.english = Convert.ToInt32(txtenglish.Text); ss.addstu(S); private void chaxun_Click_1(object sender, EventArgs e)/查询 int pos = ss.searchstu(th
5、is.txtname.Text); if (pos != -1) txtID.Text = ss.studentspos.ID; txtmath.Text Convert.ToString(ss.studentspos.math); txtchinese.Text Convert.ToString(ss.studentspos.chinese); txtenglish.Text = Convert.ToString(ss.studentspos.english); else MessageBox.Show(没有此人, 提示信息); private void third_Click_1(obje
6、ct sender, EventArgs e)/前三名 label6.Text = ; ss.sort(); for (int i = 0; i 3; i+) label6.Text += ss.studentsi.name + n private void best_Click_1(object sender, EventArgs e)/最高成绩和挂科 label6.Text = ss.getMaxAndLoser(); private void pingjun_Click_1(object sender, EventArgs e)/平均总成绩 label6.Text = Convert.T
7、oString(ss.allavescore(); private void jige_Click_1(object sender, EventArgs e) label6.Text = ss.jigelv(); private void Form1_Load(object sender, EventArgs e) class Student/学生类 public string name; public string ID; public int chinese; public int math; public int english; public int Totalscore get re
8、turn chinese + math + english; class studentlist/学生表 public Student students = new Student10; public int snums; public studentlist() snums = 0; public void addstu(Student s) studentssnums = s; snums+; public int searchstu(string name) int i; for (i = 0; snums; if (studentsi.name = name) break; if (i
9、 = snums) return -1; else return i; public void sort()/查询 int k = i; for (int j = i + 1; j studentsk.Totalscore) k = j; if (k != i) Student temp; temp = studentsk; studentsk = studentsi; studentsi = temp; private int getMaxer(int k) int p = 0; if (k = 0) for (int i = 1; if (studentsi.math studentsp.
10、math) p = i; else if (k = 1) if (studentsi.chinese studentsp.chinese) else return p; public string getMaxAndLoser() string Maxer = , Loser = Maxer += 单科数学最高: + studentsgetMaxer(0).name + n单科语文最高: + studentsgetMaxer(1).name + 单科英语最高: + studentsgetMaxer(2).name + Loser += 单科数学挂科名单: + getLoser(0) + 单科语
11、文挂科名单: + getLoser(1) + 单科英语挂科名单: + getLoser(2) + return Maxer + + Loser; private string getLoser(int k) string result = if (studentsi.math 60) result += studentsi.name + if (studentsi.chinese if (studentsi.english return w / (double)snums; public string jigelv() string pass = pass += 数学及格率为: + jige(0) + 语文及格率: + jige(1) + 英语及格率: + jige(2) + return pass; 4.实现运行
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1