南京信息工程大学题目:SQL+C#学生信息管理系统姓名: 才央学号:20131344071班级:软工3班专业:软件工程教师指导: 崔萌萌2015年6月24 日目录一、设计目的3ﻩ二、需求分析 .................................................................... 4三、模块分析及设计5ﻩ四、数据库设计说明 (6)4.1数据表6ﻩ4.2数据库的完整性和安全性6ﻩ五、制作过程及要点 ........................................................ 7六、设计总结 ................................................................ 15七、参考文献 (17)一、设计目的随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一个重要部分,信息查询系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。
学生信息查询系统是学校地方管理工作过程中不可缺少的部分,对学生信息管理工作,具有着手工管理所无法比拟的优点,检索迅速、查找方便、可靠性高、存储量大等。
这些优点能够极大地提高日常查询的效率。
因此,开发学生信息查询系统成为很有必要的事情。
数据库技术是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。
而在互联网日益发展、壮大的背景下,在因特网普及浪潮持续高涨的情况下,如何让原来在单机中使用的数据库可供多机使用,也成了必然的趋势。
随着计算机技术的发展和互联网时代的到来和飞速发展,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校传统的管理方法和办学水平都受到了极大的挑战。
Internet技术持续迅猛的发展,也给传统的办学提出了新的模式。
绝大部分大学和学院都已接入互联网并建成校园网,各校的硬件设施已经比较完善。
通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便管理者、老师和学生间信息发布、信息交流和信息共享。
以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化的目标迈进。
与网络技术相结合的新型办学模式具有对于教育、教学过程来说极为宝贵的特性,可以为新型办学模式的建构提供理想的环境。
通过设计达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ADO.N ET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。
根据题目的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握C#语言的运用和Visual Studio2005工具的使用。
二、需求分析用户的需求具体体现在各种信息的录入、修改、删除和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
更重要的是数据库设计经验在今后其他项目的开发过程中同样有着很重要的借鉴作用。
学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。
本系统需要完成的功能有:1 .登录学生的学号.姓名.性别.年龄. 籍贯.系别.专业.班级;2 .修改已知学号的学生信息;3 .删除已知学号的学生信息;4 .查找已知学号的学生信息;三、模块分析及设计四、数据库设计说明备注字段代号字段类型字段长度是否可以为空姓名Char10否学生姓名性别char 10 否学生性别班级char100 是学生班级专业char 10是4.2数据库的完整性和安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改,或者破坏.安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题,只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全笥问题更为突出,系统安全保护措施是否有效是数据库系统的主要指标之一.数据库的完整性是指数据的正确性和相容性.例如本系统中;学生的学号必须唯一;性别只能是男或女;学生所在的系统必须是学校已开设的系.等.数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完事性是非常重要的.五、制作过程及要点这次设计和数据库紧密相连,首先我们根据题意设计相关的数据库(lab)以及相关的数据表(book,manager,user)。
然后我们把这次的设计内容分成了若干个模块,逐次实现各个模块的功能,这样不仅便于功能的实现,而且外观美观,层次清晰。
制作过程主要是页面的设计和相关代码的编写。
主要分成以下几种模块:登录模块登陆系统代码using System;using System.Collections.Generic;using SysteponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;//引入命名空间namespace Program{publicpartial classLogin:Form{publicstatic string managename =string.Empty;publicLogin(){InitializeComponent();txtName.Text ="admin";txtPwd.Text ="admin";//===========================DataTabledt = newDataTable();dt.Columns.Add("DisplayValue");dt.Columns.Add("Value");DataRow dr= dt.NewRow();dr["DisplayValue"] ="管理员";dr["Value"] = "1";dt.Rows.Add(dr);dr=dt.NewRow();dr["DisplayValue"] = "老师";dr["Value"] ="2"; dt.Rows.Add(dr);dr= dt.NewRow();dr["DisplayValue"] = "学生"; dr["Value"] = "3"; dt.Rows.Add(dr);ddlGrade.ValueMember = "Value";ddlGrade.DisplayMember="DisplayValue";ddlGrade.DataSource =dt;lblMessage.Text= "";}#region登录private void button1_Click(object sender, EventArgse){lblMessage.Text="";string name= txtName.Text.Trim();string pwd =txtPwd.Text.Trim();DataTabledt =App_Code.DB.getDataTable("select * from manager where managername='"+ name+ "' and managerpwd='" + pwd + "' and grade="+ddlGrade.SelectedValue);if(dt.Rows.Count> 0){//truemanagename= name;Main main = new Main(int.Parse(ddlGrade.SelectedValue.T oString()),name);main.Show();this.Hide();}else{//falselblMessage.Text = "帐号或密码错误.";}}#endregion#region关闭登录窗口系统主界面登陆成功后,即可进入,系统主界面模块。
窗体名称为界面功能介绍。
主界面为进入学生管理系统各模块的入口,,从而进行对系统的管理操作。
1 班级管理查找界面(能进行查找,修改,删除,添加等操作,这里以查找为例)2 教师管理添加教师界面部分代码如下:publicpartial classJiaoShiManage: Form{string expcon = string.Empty;string wordname ="*";stringtempexpcon =" (jiaoshiname like '%{0}%')";public int Grade=0;public JiaoShiManage(int _grade){InitializeComponent();Grade =_grade;if(Grade !=1){button1.Visible = false;}this.Text ="教师信息管理";expcon=string.Format(tempexpcon, "");BindData(true);}#region绑定信息///<summary>///绑定信息///</summary>///<paramname="IsBindColumns">初始加载时为true,其它情况时为false</param>publicvoidBindData(bool IsBindColumns){this.dgvInfo.DataSource = App_Code.DB.getDataTable("select "+wordname+"from JiaoShiwhere" + expcon);if(IsBindColumns){this.dgvInfo.Columns[0].HeaderText ="ID";this.dgvInfo.Columns[0].Width = 50;this.dgvInfo.Columns[1].HeaderText = "姓名"; this.dgvInfo.Columns[1].Width= 80;this.dgvInfo.Columns[2].HeaderText = "性别";this.dgvInfo.Columns[2].Width = 60;this.dgvInfo.Columns[3].HeaderText ="职称"; this.dgvInfo.Columns[3].Width = 100;this.dgvInfo.Columns[4].HeaderText ="所教班级"; this.dgvI nfo.Columns[4].Width = 120;if (Grade== 1){DataGridViewButtonColumn btnupdate = newDataGridViewButtonColumn();btnupdate.HeaderText = "";btnupdate.Text = "修改";btnup= "edit";btnupdate.Width= 60;btnupdate.UseColumnTextForButtonValue= true;this.dgvInfo.Columns.Add(btnupdate);DataGridViewButtonColumn btndel=new DataGridViewBu ttonColumn();btndel.HeaderText="";btndel.Text = "删除";btndel.Name = "del";btndel.Width = 60;btndel.UseColumnTextForButtonValue = true;this.dgvInfo.Columns.Add(btndel);}}}3学生信息管理界面查找学生部分代码如下:publicvoid BindData(bool IsBindColumns){string swhere= "";if(Grade == 2){swhere = " and yuanxiname='"+App_Code.DB.getDataTab le("select top 1 yuanxiname from jiaoshi where jiaoshiname='" + username +"'").Rows[0][0]+"'";}this.dgvInfo.DataSource=App_Code.DB.getDataTable("sele ct " + wordname +" from XueSheng where" +expcon +swhere);if (IsBindColumns){this.dgvInfo.Columns[0].HeaderText ="ID";this.d gvInfo.Columns[0].Width = 50;this.dgvInfo.Columns[1].HeaderText="学生姓名";th is.dgvInfo.Columns[1].Width =70;this.dgvInfo.Columns[2].HeaderText="性别"; this.dgvInfo.Columns[2].Width =40;this.dgvInfo.Columns[3].HeaderText ="所在班级";this.dgvInfo.Columns[3].Width = 100;this.dgvInfo.Columns[4].HeaderText ="班级职务"; thi s.dgvInfo.Columns[4].Width = 100;this.dgvInfo.Columns[5].HeaderText="所在楼号";this.dgvInfo.Columns[5].Width=80;this.dgvInfo.Columns[6].HeaderText ="宿舍号";this.dgvInfo.Columns[6].Width= 80;if(Grade==1){DataGridViewButtonColumnbtnupdate = new DataGridVie wButtonColumn();btnupdate.HeaderText ="";btnupdate.Text="修改";btnupdate.Name ="edit";btnupdate.Width = 60;btnupeColumnTextForButtonValue= true;this.dgvInfo.Columns.Add(btnupdate);DataGridViewButtonColumn btndel =newDataGridV iewButtonColumn();btndel.HeaderText ="";btndel.Text ="删除";btndel.Name= "del";btndel.Width=60;btndel.UseColumnTextForButtonValue = true;this.dgvInfo.Columns.Add(btndel);}}}六、设计总结通过两周的上机实习,我对C#又有了崭新的认识。