第三次c#上机实习
实验目的及要求
1) 掌握窗体的常用属性、事件和方法;
2) 掌握标签、文本框、单选按钮、复选框、列表框、组合框、图形框、命令按钮、计
数器等常用控件的使用方法;
3) 熟练运用集成开发环境设置窗体和控件的属性,为窗体和控件调价事件;
4) 初步掌握在程序中访问和设置窗体和控件的属性和方法;
5) 能够编写简单窗体和控件的事件处理过程。
实验内容
1) 设计一个学生选课系统。要求:
能够根据学生姓名找到该学生,同时显示该学生功能的基本信息;根据学生的要求选择所需课程。
2) 设计一个简易四则运算练习系统。要求:
系统每次出一道题,由用户回答。并把题目和结果显示出来;
用户能够选择做加减运算,还是乘除运算;
答题有时间限制;
计算用户答题的正确率。
上机练习
(一) 把学生选课系统的组合框comboBox1换成列表框。其他要求不变。
(二) 改变简易四则运算练习系统的出题方式,由一次出题变为一次性地出20道题,然
后用户逐题练习。
编写思路:
把源代码中的“comboBox1”完全用“listBox1”代替,然后删除掉原来的
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
DisplayStudent(students[comboBox1.SelectedIndex]);
}
点击列表框控件后会弹出在“Form.cs”中会自动的编写好一个“SelectedIndexChanged”方法类,添加新的列表框的事件代码就行了,改写后的源代码如下:
namespace WindowsApplication3
{
struct Student
{
public string SID;//学号
public string SName;//姓名
public string SGrade; //班级
public bool[] Courses; //选课信息
public Student(string id, string name, string grade)
{
SID = id;
SName = name;
SGrade = grade; 1.第一个上机练习的思路较容易,重要将原来组合框控件删除,添加新的列表框控件后,
Courses = new bool[] { false, false, false };
}
}
public partial cla Form1 : Form
{//存储学生信息
Student[] students;
//辅助函数,用于在界面上显示学生基本信息和选课信息
private void DisplayStudent(Student s)
{
label1.Text = s.SID;
label2.Text = s.SName;
label3.Text = s.SGrade;
checkBox1.Checked = s.Courses[0];
checkBox2.Checked = s.Courses[1];
checkBox3.Checked = s.Courses[2];
}
public Form1()
{
InitializeComponent();
}
//窗体加载事件处理过程
private void Form1_Load(object sender, EventArgs e)
{
students = new Student[5];
students[0] = new Student(\"学号:\", \"姓名:王小\", \"班级:机械\");students[1] = new Student(\"学号:\", \"姓名:李东\", \"班级:机制\");students[2] = new Student(\"学号:\", \"姓名:赵招\", \"班级:软件\");students[3] = new Student(\"学号:\", \"姓名:张照\", \"班级:软件\");students[4] = new Student(\"学号:\", \"姓名:王丽\", \"班级:机制\");foreach (Student s in students)
listBox1.Items.Add(s.SName);
listBox1.SelectedIndex = 0;
DisplayStudent(students[0]);
}
//组合框选项改变事件处理过程,用于根据学生姓名显示学生信息
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){
DisplayStudent(students[listBox1.SelectedIndex]);
}
//选课按钮单击事件处理过程
private void button1_Click(object sender, EventArgs e)
{
Student s = students[listBox1.SelectedIndex];
s.Courses[0] = checkBox1.Checked;
s.Courses[1] = checkBox2.Checked;
s.Courses[2] = checkBox3.Checked;
}
//重置按钮单击事件处理过程
private void button2_Click(object sender, EventArgs e)
{
checkBox1.Checked = false;
checkBox2.Checked = false;
checkBox3.Checked = false;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e){
DisplayStudent(students[listBox1.SelectedIndex]);
}
} }