【C#】选课程序增加、删除统计学时
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pages_127__例6_2_选课程序
{
public partial class Form1 : Form
{
private int totalHours = 0; // 用于存储已选课程的总学分
// 构造函数,初始化窗体
public Form1()
{
InitializeComponent(); // 初始化窗体上的控件
}
// 当窗体加载时,初始化课程数据并添加到ComboBox控件中
private void Form1_Load(object sender, EventArgs e)
{
// 初始化课程数组
Course[] courses = new Course[7] {
new Course("大学英语", 50),
new Course("高等数学", 55),
new Course("数理统计", 35),
new Course("大学物理", 60),
new Course("电子电工", 25),
new Course("计算机应用基础", 65),
new Course("C语言程序设计", 80)
};
// 将课程添加到 ComboBox
foreach (Course course in courses)
{
comboBox1.Items.Add(course); // 将每个课程对象添加到ComboBox的Items集合中
}
}
// Course类定义,用于表示课程信息
public class Course
{
public string Name; // 课程名称
public int Hours; // 课程学分
// 构造函数,用于创建Course对象
public Course(string name, int hours)
{
Name = name;
Hours = hours;
}
// 重写ToString方法,用于返回课程名称和学分的字符串表示
public override string ToString()
{
return Name + " (" + Hours + " 学分)";
}
}
// 当ComboBox的选中项发生变化时,更新TextBox显示的学分
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// 获取选中的课程
if (comboBox1.SelectedItem is Course selectedCourse)
{
// 更新 textBox1 的文本为选中课程的学分
textBox1.Text = selectedCourse.Hours.ToString();
}
}
// 当点击添加按钮时,将选中的课程添加到ListBox中,并更新总学分
private void button1_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedItem is Course selectedCourse)
{
if (!listBox1.Items.Contains(selectedCourse))
{
listBox1.Items.Add(selectedCourse); // 将选中的课程添加到ListBox中
totalHours += selectedCourse.Hours; // 更新总学分
textBox1.Text = totalHours.ToString(); // 更新TextBox显示的总学分
}
}
}
// 当点击删除按钮时,从ListBox中移除选中的课程,并更新总学分
private void button2_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItem is Course selectedCourse && listBox1.SelectedIndex != -1)
{
listBox1.Items.Remove(selectedCourse); // 从ListBox中移除选中的课程
totalHours -= selectedCourse.Hours; // 更新总学分
textBox1.Text = totalHours.ToString(); // 更新TextBox显示的总学分
}
}
}
}