




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统一、功能:能够完成学生信息管理的事务处理,包括学籍管理、系统管理、课程管理、成绩管理及报表等模块。1、用户信息管理:添加、删除用户,修改密码等2、基本信息管理:添加课程信息和班级信息3、学生档案管理:添加、修改、删除和查询学生信息4、学生成绩管理:输入、修改和查询成绩5、报表管理:显示和打印成绩报表二、数据库设计:系统中相关的数据表有AdminInfo、ClassInfo、Courses、DepartmentInfo、Results、StudentInfo表,和StuResultsView视图三、实现:用Visual Studio 2008创建一个基于C#语言的Windows应用程序,命名为“StudentInfo”。(一)主界面窗体frmMain功能:用户可通过单击菜单项,打开对应的窗体,实现相关操作。实现:菜单中包括如下菜单项:菜单菜单项用户信息管理用户信息添加用户信息修改基本信息管理课程信息添加班级信息修改学生档案管理学生信息添加学生信息查询学生信息管理学生成绩管理学生成绩添加学生成绩修改学生成绩成绩报表管理成绩报表窗口帮助版本信息退出系统 菜单及菜单项的名字请大家用tsmi+有意义的名字。工具栏及工具栏项的名字请大家用tsbn+有意义的名字。状态栏及状态栏项的名字请大家用ssl+有意义的名字。 将该程序设置为MDI多文档应用程序,打开的其他窗体都能显示在主界面窗体中。该窗体的代码:(二)添加一个类DataBase.cs,实现功能,详见书上。在DataBase类的代码public class DataBase中添加以下代码:private static string ConnString = server=CSY-0269009EFECSQLEXPRESS;database=StudentManagement;uid=sa;pwd=sasasa; public static string username; public static string pwd; /获取数据表的方法,输入Sql语句,返回数据表 public DataTable GetListReDataTable(string paramSql) DataTable myDt = new DataTable(); SqlConnection myConn = new SqlConnection(ConnString); SqlCommand myCmd = new SqlCommand(); myConn.Open(); myCmd.Connection = myConn; myCmd.CommandText = paramSql; SqlDataAdapter myDa = new SqlDataAdapter(myCmd); myDa.Fill(myDt); myConn.Close(); return myDt; /返回插入删除结果的方法,输入Sql语句,返回int结果 public int myExecuteNonQuery(string paramStr) int returnValue = 0; SqlConnection myConn = new SqlConnection(ConnString); myConn.Open(); SqlCommand mySqlCom = new SqlCommand(paramStr, myConn); returnValue = mySqlCom.ExecuteNonQuery(); myConn.Close(); return returnValue; (三)登录窗体frmLogin:功能: 连接到StudentManagement数据库,查询AdminInfo表 判断用户名和密码是否正确。若正确,则显示主界面。实现:详见书在该窗体的按钮单击事件的代码中,在if (count = 1) 后面增加以下两行代码:DataBase.username = txtLoginName.Text.Trim();DataBase.pwd = txtLoginPwd.Text.Trim();(四)用户信息添加窗体frmUserInfoAdd:功能:添加新的登录用户的用户名和密码,将信息添加到AdminInfo表实现:该窗体的主要控件及属性如表:控件属性属性值FormNamefrmUserInfoAddText用户信息添加TextBoxNametxtUserNameTextBoxNametxtPwdPasswordChar*TextBoxNametxtPwd2PasswordChar*ButtonNamebtnAddText添加该窗体的代码:(五)用户信息修改窗体frmUserInfoUpdate:功能:登录用户,会显示登录的用户名,可以修改自己的登录密码,将结果修改到AdminInfo表实现:该窗体的主要控件及属性如表:控件属性属性值FormNamefrmUserInfoUpdateText用户信息修改TextBoxNametxtUserNameReadOnlyTrueTextBoxNametxtOldPwdPasswordChar*TextBoxNametxtPwdPasswordChar*TextBoxNametxtPwd2PasswordChar*ButtonNamebtnConfirmText确定该窗体的代码:(六)课程信息添加窗体frmCourse:功能:添加课程的信息,将信息添加到Courses表。可以直接修改已有的课程名称,并更新到Courses表。实现:该窗体的主要控件及属性如表:控件属性属性值FormNamefrmCourseText课程信息添加TextBoxNametxtCourseNameButtonNamebtnAddText添加DataGridViewNamedgvCourseAutoSizeColumnsModeFillColumns添加两个列:1、Name:CoursesID DataPropertyName:CoursesID HeaderText:课程编号2、Name:CoursesName DataPropertyName:CoursesName HeaderText:课程名称该窗体的代码:(七)班级信息添加窗体frmClass:功能:可以添加班级的信息实现:该窗体的主要控件及属性如表:控件属性属性值FormNamefrmClassText班级信息添加TextBoxNametxtClassIDTextBoxNametxtClassNameComboBoxNamecboDepartmentDropDownStyleDropDownListButtonNamebtnAddText添加DataGridViewNamedgvClassColumns添加两个列:1、Name:ClassID DataPropertyName:ClassID HeaderText:班级编号2、Name:ClassName DataPropertyName:ClassName HeaderText:班级名称3、Name:DepartmentID DataPropertyName:DepartmentID HeaderText:系部编号该窗体的代码:(八)学生信息添加窗体frmStuInfoAdd功能:输入学生的各项信息,将学生信息添加到StudentInfo表实现:详见书。(九)学生信息查询窗体frmSearch:功能:可以根据用户输入的学生姓名部分内容,实现模糊查询;在不输入任何信息的情况下,单击“查询”按钮,则可以查询所有学生信息。实现:详见书。(十)学生信息管理窗体frmStudentManage:功能:用户可以根据学生的姓名或学号进行模糊查询;可以删除任何选定的记录;可以更新选定的学生信息。实现:窗体上各控件的设置,详见书208页。代码如下:/方法重载,用于不带参数的查询 private void stuSearch() DataTable myDt = new DataTable(); string sqlQuery = select * from StudentInfo; /实例化自定义数据库访问类DataBase的对象myDB DataBase myDB = new DataBase(); /将SQL命令字符串作为实参调用DataBase类中定义的GetListReDataTable方法 myDt = myDB.GetListReDataTable(sqlQuery); this.dgvList.DataSource = myDt; /方法重载,用于将姓名和学号作为参数,实现模糊查询 private void stuSearch(string paramStuName, string parmaStuID) DataTable myDt = new DataTable(); string sqlQuery = SELECT * FROM StudentInfo WHERE 1=1; if (paramStuName.Length 0) sqlQuery += AND StudentName like % + paramStuName + %; if (parmaStuID.Length 0) sqlQuery += and StudentID like % + parmaStuID + %; DataBase myDB = new DataBase(); myDt = myDB.GetListReDataTable(sqlQuery); if (myDt.Rows.Count 0) this.dgvList.DataSource = myDt; else MessageBox.Show(没有您找的学生); /执行删除操作的方法 private int doDelete(string paramID) string sqlQuery = delete from StudentInfo where ID= + paramID + ; DataBase myDa = new DataBase(); /调用DataBase类中定义的myExecuteNonQuery方法 return myDa.myExecuteNonQuery(sqlQuery); private void frmStudentManage_Load(object sender, EventArgs e) /stuSearch方法重载调用无参数版本 /stuSearch(); if (rdoStuName.Checked) txtStuName.Enabled = true; txtStuID.Enabled = false; else txtStuID.Enabled = true; txtStuName.Enabled = false; private void rdoStuName_CheckedChanged(object sender, EventArgs e) txtStuName.Enabled = true; /txtStuID.Text = string.Empty; txtStuID.Enabled = false; private void rdoStuID_CheckedChanged(object sender, EventArgs e) / txtStuName.Text = string.Empty; txtStuName.Enabled = false ; txtStuID.Enabled = true ; private void btnSearch_Click(object sender, EventArgs e) string parmaStuName; string parmaStuID; if (rdoStuName.Checked) parmaStuName = this.txtStuName.Text.Trim(); /调用stuSearch(string parmaStuName, string parmaStuID)方法 stuSearch(parmaStuName, string.Empty); else parmaStuID = this.txtStuID.Text.Trim(); stuSearch(string.Empty, parmaStuID); private void btnDelete_Click(object sender, EventArgs e) string paramID = string.Empty; /判断用户是否选中要删除的行 int selectCount = this.dgvList.SelectedRows.Count; if (selectCount = 0) MessageBox.Show(请选择所要删除的行); return; int returnvalue = 0; /将用户选中行的“编号”单元格信息分别取出来(用户按Ctrl健可以选择多行) for (int i = 0; i selectCount; i+) paramID += this.dgvList.SelectedRowsi.Cells0.Value.ToString(); /若用户在提示框中选择“取消”按钮则取消删除操作 if (MessageBox.Show(你确定要删除自动编号为 + paramID + 的信息吗?, 提示信息, MessageBoxButtons.OKCancel) = DialogResult.Cancel) return; for (int i = 0; i 0) MessageBox.Show(删除成功); /重载调用stuSearch方法无参版本,重新绑定DataGridView控件显示结果 this.stuSearch(); else MessageBox.Show(删除不成功); private void button1_Click(object sender, EventArgs e) int selectCount = this.dgvList.SelectedRows.Count; /判断用户是否选中要更改的行 if (selectCount = 0) MessageBox.Show(请选择所要更新的行!); return; /将DataGridView控件中被选中行的单元格信息分别取出 string paramID = this.dgvList.SelectedRows0.Cells0.Value.ToString(); string paramStudentID = this.dgvList.SelectedRows0.Cells1.Value.ToString(); string paramStudentName = this.dgvList.SelectedRows0.Cells2.Value.ToString(); string paramStudentSex = this.dgvList.SelectedRows0.Cells3.Value.ToString(); string paramStudyDate = this.dgvList.SelectedRows0.Cells4.Value.ToString(); string paramDepartName = this.dgvList.SelectedRows0.Cells5.Value.ToString(); string paramClassName = this.dgvList.SelectedRows0.Cells6.Value.ToString(); string paramStudentIDCard = this.dgvList.SelectedRows0.Cells7.Value.ToString(); string paramAddress = this.dgvList.SelectedRows0.Cells8.Value.ToString(); string paramStudentTel = this.dgvList.SelectedRows0.Cells9.Value.ToString(); string paramExtendField = this.dgvList.SelectedRows0.Cells10.Value.ToString(); /调用自定义方法doUpdate doUpdate(paramID,paramStudentID,paramStudentName,paramStudentSex, paramStudyDate,paramDepartName,paramClassName,paramStudentIDCard, paramAddress,paramStudentTel,paramExtendField); private void doUpdate(string paramID, string paramStudentID, string paramStudentName, string paramStudentSex, string paramStudyDate,string paramDepartName, string paramClassName, string paramStudentIDCard, string paramAddress, string paramStudentTel, string paramExtendField) /将需要修改的记录各字段作为参数模式调用“修改学生信息”窗体frmStuInfoUpdate myfrmStuInfoUpdate = new frmStuInfoUpdate(paramID, paramStudentID, paramStudentName,paramStudentSex,paramStudyDate,paramDepartName,paramClassName,paramStudentIDCard, paramAddress, paramStudentTel, paramExtendField); myfrmStuInfoUpdate.ShowDialog(); /调用stuSearch方法重载调用无参数版本,重新绑定DataGridView控件 stuSearch(); (十一)学生信息修改窗体frmStuInfoUpdate:功能:用户在选中的学生已有的记录上进行信息的修改。实现:窗体上的各控件,请将学生信息添加窗体frmStuInfoAdd中的控件复制到此窗体上。代码如下:public partial class frmStuInfoUpdate : Form string ID = string.Empty; string StudentID = string.Empty; string FullName= string.Empty; string StudentSex = string.Empty; string StudyDate = string.Empty; string DepartName = string.Empty; string ClassName = string.Empty; string StudentIDCard = string.Empty; string Address = string.Empty; string StudentTel = string.Empty; string ExtendField = string.Empty; public frmStuInfoUpdate() InitializeComponent(); public frmStuInfoUpdate(string paramID, string paramStudentID, string paramStudentName,string paramStudentSex, string paramStudyDate, string paramDepartName,string paramClassName, string paramStudentIDCard, string paramAddress,string paramStudentTel, string paramExtendField) InitializeComponent(); ID = paramID; StudentID = paramStudentID; FullName = paramStudentName; StudentSex = paramStudentSex; StudyDate = paramStudyDate; DepartName = paramDepartName; ClassName = paramClassName; StudentIDCard = paramStudentIDCard; Address = paramAddress; StudentTel = paramStudentTel; ExtendField = paramExtendField; private void frmStuInfoUpdate_Load(object sender, EventArgs e) /将传递过来的学生信息设置到窗体各个控件上 this.txtStudentID.Text = StudentID; this.txtStudentName.Text = FullName; this.txtStudentID.Enabled = false;/学号不可更改 this.txtStudentDCard.Text = StudentIDCard; this.txtStudentTel.Text = StudentTel; this.txtAddress.Text = Address; this.txtExtendField.Text = ExtendField; /设置“性别”单选按钮 if (StudentSex = 男) this.rbtM.Checked = true; else this.rbtW.Checked = true; dtpStudyDate.Value = Convert.ToDateTime(StudyDate);/出生日期 /将“系部名称”列表框的数据源绑定到“系部信息”数据表 DataTable myDt = new DataTable(); string sqlQuery = select DepartmentID,DepartmentName from DepartmentInfo; DataBase myDB=new DataBase(); myDt =myDB.GetListReDataTable(sqlQuery); cboDepartName.DataSource =myDt ; cboDepartName.DisplayMember=DepartmentName; cboDepartName.ValueMember = DepartmentID; /将传递过来的学生的系部名称设置为列表框的当前选择项 for (int i = 0; i -1) DataRowView drv = (DataRowView)cboDepartName.SelectedItem; string dId = drv.RowDepartmentID.ToString().Trim(); DataTable myDt = new DataTable(); /根据“系部名称”列表框当前选中值查询所属班级并绑定到“班级名称”列表框string sqlQuery = select ClassID,ClassName from ClassInfo where DepartmentID= + dId + ; DataBase myDB = new DataBase(); myDt = myDB.GetListReDataTable(sqlQuery); cboClassName.DataSource = myDt; cboClassName.DisplayMember = ClassName; cboClassName.ValueMember = ClassID; /将传递过来的学生的班级名称设置为列表框的当前选择项 for (int i = 0; i 0) /根据方法返回值判断更新是否成功 MessageBox.Show(更新成功!); this.Close(); else MessageBox.Show(更新不成功); (十一)学生成绩添加窗体frmScoreAdd:功能:可以根据班级和课程,输入学生的成绩,将其添加到Results表实现:该窗体的主要控件及属性如表:控件属性属性值FormNamefrmScoreAddText学生成绩录入ComboBoxNamecboCourseDropDownStyleDropDownComboBoxNamecboClassDropDownStyleDropDownButtonNamebtnConfirmText确定DataGridViewNamedgvScoreColumns添加两个列:1、Name:StudentID DataPropertyName:StudentID HeaderText:学号2、Name:StudentName DataPropertyName:StudentName HeaderText:姓名3、Name:Result DataPropertyName:Result HeaderText:成绩该窗体的代码:(十二)学生成绩修改窗体frmScoreUpdate:功能:用户可以根据课程修改、删除成绩,并将修改更新到Results表。实现:该窗体的主要控件及属性如表:控件属性属性值FormNamefrmScoreUpdateText学生成绩修改ComboBoxNamecboCourseNameDropDownStyleDropDownButtonNamebtnConfirmText查询ButtonNamebtnDeleteText删除DataG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025辽宁沈阳综保区陆港建设有限公司招聘2人笔试历年参考题库附带答案详解
- 2025贵州毕节市金沙县兴旺粮油储备有限公司招聘5人笔试历年参考题库附带答案详解
- 2025福建福港拖轮有限公司招聘3人笔试历年参考题库附带答案详解
- 2025福建省福鼎市福鼎时代新能源科技有限公司招聘(市公共就业和人才服务中心招用工信息2025年第86期)笔试历年参考题库附带答案详解
- 2025黑龙江哈尔滨市松北区卫生健康局招聘乡村医生10人考前自测高频考点模拟试题及答案详解(必刷)
- 2025福建建工工程集团有限公司校园招聘68人笔试历年参考题库附带答案详解
- 2025福州市仓山区劳务派遣服务有限公司招聘1人笔试历年参考题库附带答案详解
- 2025湖南衡阳市水务投资集团有限公司招聘拟聘用人员笔试历年参考题库附带答案详解
- 2025浙江绍兴滨海新区国有企业第一批招聘拟录用人员(一)笔试历年参考题库附带答案详解
- 2025年6月山东临沂高新控股集团有限公司三级子公司招聘管理人员笔试历年参考题库附带答案详解
- 采光顶玻璃拆除施工方案
- 医院电梯乘坐安全培训课件
- 2025重庆市勘测院有限公司招聘6人考试参考题库及答案解析
- 钢厂安全教育培训课件
- 生涯发展报告
- 企业活跃度分析报告
- 管理学原理说课课件
- 关于自愿放弃缴纳社保协议书
- 梦想课程《去远方》(版)分享课程
- 2023年政府采购评审专家考试真题模拟汇编(共681题)
- 年6万吨废植物油回收利用项目立项申请报告
评论
0/150
提交评论