c#简易学生信息管理系统
在近期的学习中,我们学习了泛型及泛型集合的概念和使用,泛型是c#中的一个重要概念,为了巩固我们学习的成果,我们可以使用一个实例来进行练习
题目及要求
要求使用Windows窗体应用程序,制作出如上图的界面,并实现增删改查的功能
StuInfo类的编写
同往常一样,在编写窗体的代码前,我们需要先编写一个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 }
主窗体代码的编写
写好了StuInfo类之后,我们终于可以开始窗体应用程序的编写了,首先我们需要设置一下页面布局
页面布局及我的部分控件命名
接下来我们来编写代码
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 Dictionary<string, StuInfo> StuDic = new Dictionary<string, StuInfo>(); 17 18 //显示数据方法 19 private void FillGrid(Dictionary<string, 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 Dictionary<string, StuInfo> dic = new Dictionary<string, 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 }
实际效果
查询
删除
修改
添加
转载于:https://www.cnblogs.com/sunriseblogs/p/9997911.html
c#简易学生信息管理系统相关推荐
- python制作个人信息管理系统_python实现简易学生信息管理系统
本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 简易学生信息管理系统主要功能有 1 录入学生信息 2 查找学生信息 3 删除学生信息 4 修改学生信息 5 排 ...
- Python程序设计之 —— 简易学生信息管理系统
大家好,我是 Enovo飞鱼,今天分享一个 Python程序设计之 -- 简易学生信息管理系统 ,小白或者正在学习Python的小伙伴推荐阅读,加油
- python制作学生管理系统_Python——面向对象,简易学生信息管理系统
一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...
- 基于JAVA实现的简易学生信息管理系统(附源码)
一.前言 最近在学习JAVA,这几天跟着网上的视频学完基础知识之后,做了一个学生信息管理系统,写的比较普通,没太大亮点,希望可以给初学者一些参考经验,另外,如有不恰当的地方还请各位指正! 学生信息管理 ...
- MySQL课程设计——简易学生信息管理系统
学生信息管理系统 一 分析 1.1 系统需求分析 1.1.1 业务分析 1.1.2 分析系统 1.2 功能模块 1.2.1 学生模块 1.2.2 教师模块 二 构建模型 2.1 概念模型:ERP模型 ...
- 基于Python实现简易学生信息管理系统
目录 一.系统简介 二.步骤分析 三.需求实现 四.具体实现 4.1 添加学生信息的函数 4.2 删除学生信息的函数 4.3 修改学生信息的函数 4.4 查询学生信息的函数 4.5 显示所有学生信息 ...
- 简易学生信息管理系统(Python版)
点击上方"菜学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 来源于网络,侵删 一.系统简介 实现一个学生信息的管理系统:主要功能有: 添 ...
- 如何用Python做一个简易学生信息管理系统
一.系统简介 实现一个学生信息的管理系统:主要功能有: 添加学生信息 删除学生信息 修改学生信息 查询学生信息 显示学生信息 退出当前系统 二.步骤分析 显示功能界面 用户输入功能序号 对不同序号的功 ...
- 结构体数组实现的简易学生信息管理系统
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<fstream> #include<conio.h ...
- java写的学生信息查询系统_用JAVA写一个简易的学生信息管理系统
前言:写这篇文章的目的: 为了以后复习方便,当你回头看自己的代码的时候不至于想不起你写下这段代码的思路: 慢慢锻炼自己总结的能力,养成习惯以后去写自己的技术博客,古人云,温故而知新 作为一个技术拓荒者 ...
最新文章
- Alisql源码编译安装(详细篇)
- 判断人工智能是否可信的“四把尺子”
- 利用Use Case为系统行为建模(2)
- Android开发--详解SharedPreference/PreferenceActivity
- 配置思路ensp_配置OSPF的Stub区域示例
- Python defaultdict 模块和 namedtuple 模块 1
- 世界不是gameBoy
- 利用云安监控和管理云
- 后端技术:JDK 8 Stream 数据流效率测试
- “价值互联网”时代,带你读懂区块链
- Shell脚本学习-阶段四-mysqladmin
- Java中对象及常量,局部变量,全局变量的存储位置
- 52. Element item() 方法
- 冰点破解版,百度文库免费下载
- 最小二乘法的应用(2015A题A题太阳影子定位)
- 双边滤波器和高斯滤波器
- android 百度地图语音播报,百度地图APP中的语音播报如何打开或关闭
- 算法工程师的一万小时定律
- 基于socket.io的php扩展介绍---phpsocket.io
- k22.第九章 K8s进阶篇-高级调度计划任务临时容器 (三)