c#简易学生信息管理系统
2021-06-30 04:06
标签:textbox 简易 .sh scl idv class his str 增删改查 在近期的学习中,我们学习了泛型及泛型集合的概念和使用,泛型是c#中的一个重要概念,为了巩固我们学习的成果,我们可以使用一个实例来进行练习 要求使用Windows窗体应用程序,制作出如上图的界面,并实现增删改查的功能 同往常一样,在编写窗体的代码前,我们需要先编写一个StuInfo类用来存放学生的信息 写好了StuInfo类之后,我们终于可以开始窗体应用程序的编写了,首先我们需要设置一下页面布局 接下来我们来编写代码 c#简易学生信息管理系统 标签:textbox 简易 .sh scl idv class his str 增删改查 原文地址:https://www.cnblogs.com/sunriseblogs/p/9997911.html题目及要求
StuInfo类的编写
StuInfo.cs代码如下:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace cs学生信息管理系统1121
8 {
9 class StuInfo
10 {
11 private string sno; //学号
12 private string name; //姓名
13 private string sclass; //班级
14 private string tele; //电话
15
16 //定义成员变量的索引器
17 public string Sno
18 {
19 get { return sno; }
20 set { sno = value; }
21 }
22 public string Name
23 {
24 get { return name; }
25 set { name = value; }
26 }
27 public string SClass
28 {
29 get { return sclass; }
30 set { sclass = value; }
31 }
32 public string Tele
33 {
34 get { return tele; }
35 set { tele = value; }
36 }
37
38 //构造函数
39 public StuInfo(string sno, string name, string sclass, string tele)
40 {
41 Sno = sno;
42 Name = name;
43 SClass = sclass;
44 Tele = tele;
45 }
46 }
47 }
主窗体代码的编写
页面布局及我的部分控件命名
Form1.cs代码:
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace cs学生信息管理系统1121
12 {
13 public partial class Form1 : Form
14 {
15 //声明值为StuInfo类型数据的泛型字典StuDic
16 Dictionarystring, StuInfo> StuDic = new Dictionarystring, StuInfo>();
17
18 //显示数据方法
19 private void FillGrid(Dictionarystring, StuInfo> dic)
20 {
21 //如果数据网格中没有任何元素,则初始化
22 if(dataGridViewStuInfo.ColumnCount == 0)
23 {
24 //初始化一个新列
25 DataGridViewTextBoxColumn col_sno = new DataGridViewTextBoxColumn();
26 col_sno.HeaderText = "学号"; //设置标题
27 col_sno.DataPropertyName = "Sno"; //设置数据绑定文本
28 col_sno.Name = "sno"; //设置该列的名字
29
30 DataGridViewTextBoxColumn col_name = new DataGridViewTextBoxColumn();
31 col_name.HeaderText = "姓名";
32 col_name.DataPropertyName = "Name";
33 col_name.Name = "name";
34
35 DataGridViewTextBoxColumn col_class = new DataGridViewTextBoxColumn();
36 col_class.HeaderText = "班级";
37 col_class.DataPropertyName = "SClass";
38 col_class.Name = "class";
39
40 DataGridViewTextBoxColumn col_tele = new DataGridViewTextBoxColumn();
41 col_tele.HeaderText = "电话";
42 col_tele.DataPropertyName = "Tele";
43 col_tele.Name = "tele";
44
45 //向数据网格控件中加入我们刚才定义的列
46 dataGridViewStuInfo.Columns.Add(col_sno);
47 dataGridViewStuInfo.Columns.Add(col_name);
48 dataGridViewStuInfo.Columns.Add(col_class);
49 dataGridViewStuInfo.Columns.Add(col_tele);
50 }
51 //声明数据源绑定对象
52 BindingSource bs = new BindingSource();
53 bs.DataSource = dic.Values; //将我们数据字典中的元素绑定到bs中
54 dataGridViewStuInfo.DataSource = bs; //将bs中的数据与数据网格控件绑定
55 }
56
57 public Form1()
58 {
59 InitializeComponent();
60 this.Text = "学生信息管理系统";
61 PanelEdit.Visible = false; //将编辑面板隐藏
62
63 //定义初始的数据
64 StuInfo zhang = new StuInfo("001", "张三", "1601", "18096471357");
65 StuInfo luo = new StuInfo("002", "罗辑", "1503", "13968743218");
66 StuInfo sun = new StuInfo("003", "孙雪", "1704", "13579314567");
67 StuInfo wang = new StuInfo("004", "王莱", "1605", "18034976521");
68
69 //将我们定义的数据加入到数据字典中
70 StuDic.Add(zhang.Sno, zhang);
71 StuDic.Add(luo.Sno, luo);
72 StuDic.Add(sun.Sno, sun);
73 StuDic.Add(wang.Sno, wang);
74
75 FillGrid(StuDic); //显示数据
76 }
77
78 //信息查询方法
79 private void ButtonQuery_Click(object sender, EventArgs e)
80 {
81 PanelEdit.Visible = false; //查询数据时关闭编辑面板
82 //如果输入框中没有输入数据,则默认显示所有数据
83 if(textBoxQuery.Text == "")
84 {
85 FillGrid(StuDic);
86 return;
87 }
88 //若找不到用户要查询的学生,则弹出错误提示
89 if(!StuDic.ContainsKey(textBoxQuery.Text))
90 {
91 MessageBox.Show("查无此人!", "错误",
92 MessageBoxButtons.OK, MessageBoxIcon.Error);
93 return;
94 }
95
96 StuInfo s = StuDic[textBoxQuery.Text]; //找出对应的学生信息
97 //创建一个新的数据字典,用于存放查询的结果
98 Dictionarystring, StuInfo> dic = new Dictionarystring, StuInfo>();
99 dic.Add(s.Sno, s);
100 FillGrid(dic); //显示数据
101 }
102
103 //信息删除方法
104 private void ButtonDel_Click(object sender, EventArgs e)
105 {
106 PanelEdit.Visible = false; //删除数据时关闭编辑面板
107 //如果找不到用户要删除的数据,报错
108 if(!StuDic.ContainsKey(textBoxQuery.Text))
109 {
110 MessageBox.Show("您要删除的元素不存在!", "错误",
111 MessageBoxButtons.OK, MessageBoxIcon.Error);
112 return;
113 }
114
115 StuDic.Remove(textBoxQuery.Text); //删除数据
116 FillGrid(StuDic); //显示数据
117 }
118
119 //修改数据方法
120 private void ButtonEdit_Click(object sender, EventArgs e)
121 {
122 if(!StuDic.ContainsKey(textBoxQuery.Text))
123 {
124 MessageBox.Show("您要修改的数据不存在!", "错误",
125 MessageBoxButtons.OK, MessageBoxIcon.Error);
126 return;
127 }
128
129 PanelEdit.Visible = true; //修改数据时开启编辑面板
130 textBoxStuNo.Enabled = false; //学号不允许修改
131
132 //新建对象存储要修改的元素
133 StuInfo s = StuDic[textBoxQuery.Text];
134
135 //将数据分别放到各个输入框中
136 textBoxName.Text = s.Name;
137 textBoxClass.Text = s.SClass;
138 textBoxStuNo.Text = s.Sno;
139 textBoxTele.Text = s.Tele;
140 }
141
142 //添加数据方法
143 private void ButtonAdd_Click(object sender, EventArgs e)
144 {
145 //将所有输入框中的数据清零
146 textBoxStuNo.Text = "";
147 textBoxName.Text = "";
148 textBoxClass.Text = "";
149 textBoxTele.Text = "";
150
151 PanelEdit.Visible = true; //添加数据时开启编辑面板
152 textBoxStuNo.Enabled = true; //启用学号输入框
153 }
154
155 //编辑面板区域的确定按钮事件
156 private void ButtonOK_Click(object sender, EventArgs e)
157 {
158 //实行添加方法时
159 if(textBoxStuNo.Enabled)
160 {
161 //要添加的学号已存在时,发出警告
162 if(StuDic.ContainsKey(textBoxStuNo.Text))
163 {
164 MessageBox.Show("学号已存在!", "警告",
165 MessageBoxButtons.OK, MessageBoxIcon.Warning);
166 return;
167 }
168 //填写信息不全时,发出警告
169 if(textBoxStuNo.Text == "" || textBoxName.Text == ""
170 || textBoxClass.Text == "" || textBoxTele.Text == "")
171 {
172 MessageBox.Show("请将信息填写完整!", "警告",
173 MessageBoxButtons.OK, MessageBoxIcon.Warning);
174 return;
175 }
176
177 //新建对象s用于存放待添加的数据
178 StuInfo s = new StuInfo(textBoxStuNo.Text, textBoxName.Text,
179 textBoxClass.Text, textBoxTele.Text);
180 StuDic.Add(s.Sno, s); //将数据添加进数据字典
181 }
182 //实行修改方法时
183 else
184 {
185 if(textBoxName.Text == "" || textBoxClass.Text == "" || textBoxTele.Text == "")
186 {
187 MessageBox.Show("请将信息填写完整!", "警告",
188 MessageBoxButtons.OK, MessageBoxIcon.Warning);
189 return;
190 }
191
192 //先将数据删除再添加来实现修改
193 StuDic.Remove(textBoxStuNo.Text);
194
195 //新建对象s用于存放待添加的数据
196 StuInfo s = new StuInfo(textBoxStuNo.Text, textBoxName.Text,
197 textBoxClass.Text, textBoxTele.Text);
198 StuDic.Add(s.Sno, s); //将数据添加进数据字典
199 }
200
201 FillGrid(StuDic); //显示数据
202
203 //将所有输入框中的数据清零
204 textBoxStuNo.Text = "";
205 textBoxName.Text = "";
206 textBoxClass.Text = "";
207 textBoxTele.Text = "";
208
209 PanelEdit.Visible = false; //关闭编辑面板
210 }
211
212 //取消按键
213 private void ButtonCel_Click(object sender, EventArgs e)
214 {
215 //将所有输入框中的数据清零
216 textBoxStuNo.Text = "";
217 textBoxName.Text = "";
218 textBoxClass.Text = "";
219 textBoxTele.Text = "";
220
221 PanelEdit.Visible = false; //关闭编辑面板
222 }
223 }
224 }
实际效果
查询
删除
修改
添加