学生学籍管理系统设计说明书_第1页
学生学籍管理系统设计说明书_第2页
学生学籍管理系统设计说明书_第3页
学生学籍管理系统设计说明书_第4页
学生学籍管理系统设计说明书_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生学籍管理系统学生学籍管理系统设计说明书目录摘 要3第一章 需求分析4第二章系统设计421数据库设计42.1.1数据库简介42.1.2概念结构设计42.1.3逻辑结构设计52.2总体结构设计102.2.1模块设计102.2.2系统结构设计13第三章 系统实现133.1系统登录模块133.2系统主界面模块153.3系统功能模块163.3.1用户管理163.3.2权限管理模块203.3.3院系管理模块223.3.4班级管理模块263.3.5专业信息管理模块283.3.6课程信息管理模块313.3.7教师管理模块343.3.8学期信息管理模块373.3.9学生成绩管理模块383.3.10学生档案管

2、理模块443.3.11用户操作模块493.4系统测试50第四章总结51摘 要学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息

3、管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。第一章 需求分析详见另一文档“需求规格说明书”。第二章系统设计21数据库设计2.1.1数据库简介在系统设计过程中,数据库的设计是系统的核心和基础,把系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。1数据库的概念数据库是长期储存在计算机内大量的有组织的,可以共享的数据的集合,这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数

4、据库是数据管理的高级阶段,它是由文件管理系统发展起来的。2新建数据库在新建一个数据库时,必须先对它进行分析,比如它的大小、权限和备份等问题。3修改数据库数据库的修改主要包括alter database、drop database等等。当然其中涉及到数据库用户的权限问题,管理用户分配给一般用户有修改的权限时才能进行修改。2.1.2概念结构设计概念结构设计通常是使用e-r图对它的描述工具进行设计,对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型,设计e-r图。本系统的e-r图如图2.1所示。教师用户教师学生教师院系班级教师课程教师编号名称

5、编号学号姓名号编号名称编号用户名密码编号编号选课包括教学属于教学包括教学授课包括教学mnnn1nn1mn111成绩属于n1专业开设n1图逻辑结构设计逻辑结构设计应该首先选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的数据库管理系统。逻辑结构设计时一般要分两步进行: 将概念结构转换为一般的关系、网状、层次模型,并将转化来的关系、网状、层次模型向特定数据库管理系统支持下的数据模型转换 对数据模型进行优化 本系统中逻辑结构设计主要是将概念结构设计阶段设计好的的e-r图转换成具体的数据库管理系统支持的数据模型。关系模型的逻辑结构是一组关系模式的集合。而e-r图则是由实体、实

6、体的属性和实体之间的联系三个要素组成的。所以将e-r图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。现在需要将上面的数据库概念结构转化为sql server 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。学籍管理系统数据库中各个表格的设计结果如下面的几个表所示。每个表表示在据库中的一个数据表。编号字段名数据结构别名1studentidvarchar(15)学号2studentnamechar(8)姓名3classnamevarchar(30)

7、班级名称4agesmallint年龄5sexchar(2)性别6nationchar(4)民族7nativeplacevarchar(30)籍贯8majornamevarchar(20)专业名称9statuschar(8)政治面貌10homeaddressvarchar(30)家庭住址11birthdaydatetime出生日期12indatedatetime入学日期图2.2 学生表编号字段名数据结构别名1departmentidchar(10)院系编号2departmentnamevarchar(30)院系名称图2.3院系表编号字段名数据结构别名1classidvarchar(30)班级编号

8、2classnamevarchar(30)班级名称3departmentnamevarchar(30)院系名称4gradechar(10)年级5studentnumberint学生人数6studentteachercahr(8)班主任图2.4班级表编号字段名数据结构别名1courseidchar(10)课程编号2coursenamevarchr(50)课程名称3creditssmallint学分4coursehourint学时5categoryvarchar(20)类别6teachervarchar(15)任课教师7departmentnamevarchar(30)开课院系8coursenot

9、evarchar(100)备注图2.5课程表编号字段名数据结构别名1teacheridchar(10)教师编号2teachernamechar(8)教师姓名3sexchar(2)性别4teachertitlechar(4)职称5contactvarchar(50)联系方式7departmentnamevarchar(30)院系名称图2.6教师表编号字段名数据结构别名1majoridvarchar(20)专业编号2majornamevarchar(30)专业名称3categoryvarchar(30)类别4departmentnamevarchar(30)所属院系5majornotevarcha

10、r(100)备注图2.7专业信息表编号字段名数据结构别名1usernamevarchar(20)用户名2passwordvarchar(20)密码3rolenamevarchar(30)身份图2.8用户表编号字段名数据结构别名1semesteridchar(5)学期编号2semesternamevarchar(50)学期名称图2.9学期表编号字段名数据结构别名1idint编号2studentnamevarchar(15)学生姓名3coursenamechar(10)课程名称4classname varchar(30)班级名称5semesternamevarchar(20)学期名称6scores

11、mallint分数图2.10成绩表编号字段名数据结构别名1rolenamevarchar(3)身份名称2viewmenuitembit查询权限3xtmenuitembit系统管理权限4dmenuitembit院系管理权限5cmenuitembit班级管理权限6mmenuitembit专业管理权限7kmenuitembit课程管理权限8tmenuitembit教师管理权限9qmenuitembit学期管理权限10smenuitembit成绩管理权限11stumenuitembit学生管理权限图2.11权限表2.2总体结构设计2.2.1模块设计本系统是一个典型的信息管理系统,主要目标是让使用它的管

12、理用户,包括系统管理员、教师和学生,能很好地管理有关学生学籍方面的工作,比如系统管理员负责日常的学籍管理工作,如各种基本信息的录入、修改、删除等操作,教师使用该系统可完成教学班级信息查询和成绩管理,而学生使用该系统主要完成选课和成绩查询等操作。根据需求分析中列出的学生学籍管理系统的八个基本模块,设计了如下图2.12所示的学生学籍管理系统总体结构示意图。高校学籍管理系统系统用户管理院系信息管理班级信息管理教师信息管理学生信息管理课程信息管理成绩信息管理专业信息管理用户数据录入与编辑、查询删除删除院系信息录入与编辑、查询专业信息录入与编辑班级信息录入与编辑、查询教师信息录入与编辑、查询学生信息录入

13、与编辑、查询课程信息录入与编辑、查询专业信息查询成绩信息录入与编辑课程成绩查询权限管理角色添加、删除学期信息管理学期信息录入与编辑、查询图2.12学生学籍管理系统总体结构图由上述的系统总体结构图所示,将一个开发的学生学籍管理系统分成九个子模块,他们分别为:系统用户管理模块、权限管理模块、院系信息管理模块 、班级信息管理模块、教师信息管理模块、学生信息管理模块、课程信息管理模块、专业信息管理模块、成绩信息管理模块;通过这些子模块完成各项功能,如课程信息管理模块主要完成对课程信息的录入、编辑与删除。 根据该系统功能分析,该系统主要有九个功能模块,具体功能描述如下:(1)系统用户管理:l 添加用户信

14、息,包括用户名、密码和身份。l 删除已有的用户信息。l 修改用户信息,包括用户名、密码、和身份。(2)系统权限管理:l 添加角色,包括角色名称和它拥有的权限。l 删除已有的角色信息。(3)院系信息管理:l 添加院系信息,包括院系编号和院系名称。l 根据院系编号查询院系信息。l 修改和删除院系信息。(4)班级信息管理:l 添加新的班级信息。l 根据年级或院系查询班级信息。l 修改已存在的班级信息。l 删除已有的班级信息。(5)教师信息管理:l 添加新教师的基本信息。l 根据院系查询教师信息。l 修改已存在的教师信息。l 删除教师相关信息。(6)学生信息管理:l 添加新学生的基本信息。l 根据学号

15、或姓名查询学生信息。l 修改已存在的学生信息。l 删除学生相关信息。(7)课程信息管理:l 添加新的课程基本信息。l 根据开课院系、课程性质、任课教师查询课程基本信息。l 修改或删除已有的课程基本信息。(8)学期信息管理:l 添加新的学期信息。l 修改或删除学期信息。(9)成绩信息管理:l 录入学生的成绩信息。l 根据学号或班级查询相应的成绩信息。l 修改或删除成绩信息。2.2.2系统结构设计在应用程序的设计中,将系统模块用菜单的形式表示出来,这里有5个下拉菜单。 根据对系统结构的分析和结合应用程序中的设计,得出系统结构图,如图2.13。图2.13 系统结构图第三章 系统实现3.1系统登录模块

16、图3.1系统登录图为了系统的安全,在进入系统之前首先会出现一个登录模块,用户登录分为学生、教师、管理员三类用户登录,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。本系统能判断用户权限,不同权限的用户进入系统后执行不同的操作。用户登录窗体中放置了两个文本框(textbox),用来输入用户名和密码;一个按钮(button)用来确认登录。部分代码如下:private void button1_click(object sender, eventargs e) string connstr,sqlstr,sql; connstr = server=(local);database=学籍管理

17、系统;integrated security=true; sqlconnection conn = new sqlconnection(connstr); if (this.textbox1.text.trim() = | this.textbox2.text.trim() = ) messagebox.show(用户名和密码不能为空!, 登录失败,messageboxbuttons.ok,messageboxicon.warning); else try conn.open(); sqlstr = select rolename from userinfo where username= +

18、 textbox1.text.trim() + and password= + textbox2.text.trim() + ; sqlcommand mycomm = new sqlcommand(sqlstr, conn); mycomm.commandtext = sqlstr; string rolename; if (null != mycomm.executescalar()/用户权限控制 rolename = mycomm.executescalar().tostring(); this.hide(); sql = select * from role where rolenam

19、e= + rolename + ; mycomm.commandtext = sql; sqldatareader myreader = mycomm.executereader(); mainform main = new mainform(); myreader.read(); main.xtmenuitem.visible = (bool)(myreader.getvalue(2); main.viewmenuitem2.visible = (bool)(myreader.getvalue(1); main.dmenuitem11.visible = (bool)(myreader.ge

20、tvalue(3); main.cmenuitem12.visible = (bool)(myreader.getvalue(4); main.mmenuitem13.visible = (bool)(myreader.getvalue(5); main.kmenuitem14.visible = (bool)(myreader.getvalue(6); main.tmenuitem15.visible = (bool)(myreader.getvalue(7); main.qmenuitem16.visible = (bool)(myreader.getvalue(8); main.smen

21、uitem17.visible = (bool)(myreader.getvalue(9); main.stumenuitem20.visible = (bool)(myreader.getvalue(10); main.toolstripstatuslabel2.text = textbox1.text.trim(); main.toolstripstatuslabel4.text = rolename;/读取用户身份 main.showdialog(); else messagebox.show(用户名或密码不正确 请确认后重新输入!, 登录失败,messageboxbuttons.ok,

22、messageboxicon.error); textbox2.text = ; textbox2.focus(); catch (exception exp) messagebox.show(exp.message, 错误); finally conn.close(); 3.2系统主界面模块图3.2系统主界面登陆成功后,即可进入,系统主界面模块。窗体名称为界面功能介绍。主界面为进入学生管理系统各模块的入口,用户可根据菜单上面各个模块名称单击进入各个管理模块,从而进行对系统的管理操作。主界面下面的statusstrip显示了当前登录的用户名和身份。3.3系统功能模块3.3.1用户管理图3.3用

23、户管理本窗体只有系统管理员才可以进行管理,可对用户进行添加、删除、查找功能,用户属性有:用户名、密码、角色。清空按钮用于清空文本。代码如下:private void listbox1_selectedindexchanged(object sender, eventargs e) string connstr, sqlstr; connstr = server=(local);database=学籍管理系统;integrated security=true; sqlconnection conn = new sqlconnection(connstr); try conn.open(); sq

24、lstr = select * from userinfo where username= + listbox1.selecteditem + ; sqlcommand mycomm = new sqlcommand(sqlstr, conn); sqldatareader myreader = mycomm.executereader(); myreader.read(); textbox1.text = myreader.getvalue(0).tostring(); textbox2.text = myreader.getvalue(1).tostring(); combobox1.te

25、xt = myreader.getvalue(2).tostring(); catch (exception exp) messagebox.show(exp.message, 错误); finally conn.close(); button1.enabled = true;/恢复删除按钮 private void usermanage_load(object sender, eventargs e) user.fillrolename(combobox1); string connstr, sqlstr; connstr = server=(local);database=学籍管理系统;i

26、ntegrated security=true; sqlconnection conn = new sqlconnection(connstr); try conn.open(); sqlstr = select username from userinfo; sqlcommand mycomm = new sqlcommand(sqlstr, conn); sqldatareader myreader = mycomm.executereader(); while (myreader.read() listbox1.items.add(myreader.getvalue(0).tostrin

27、g(); listbox1.selectedindex = 0; catch (exception exp) messagebox.show(exp.message, 错误); finally conn.close(); private void button4_click(object sender, eventargs e) textbox1.text = ; textbox2.text = ; combobox1.text = ; button1.enabled = false;/删除按钮不可用 private void button1_click(object sender, even

28、targs e) string connstr, sqlstr; connstr = server=(local);database=学籍管理系统;integrated security=true; sqlconnection conn = new sqlconnection(connstr); try conn.open(); sqlstr = delete from userinfo where username= + listbox1.selecteditem + ; sqlcommand mycomm = new sqlcommand(sqlstr, conn); dialogresu

29、lt r = messagebox.show(确认要删除此用户吗?, 警告, messageboxbuttons.yesno, messageboxicon.question); if (r = dialogresult.yes) mycomm.executenonquery(); textbox1.text = ; textbox2.text = ; combobox1.text = ; listbox1.items.clear(); string updatesql = select username from userinfo; mycomm.commandtext = updatesq

30、l; sqldatareader myreader = mycomm.executereader(); while (myreader.read() listbox1.items.add(myreader.getvalue(0).tostring(); catch (exception exp) messagebox.show(exp.message, 错误); finally conn.close(); private void button2_click(object sender, eventargs e) string connstr, sqlstr; connstr = server

31、=(local);database=学籍管理系统;integrated security=true; try if (textbox1.text = | textbox2.text = | combobox1.text = ) messagebox.show(请把信息填写完整!, 错误, messageboxbuttons.ok, messageboxicon.warning); else /*判断当前用户是否存在*/ sqlconnection conn1 = new sqlconnection(connstr); conn1.open(); sqlstr = select username

32、 from userinfo where username= + textbox1.text + ; sqlcommand comm = new sqlcommand(sqlstr, conn1); sqldatareader myreader =comm.executereader(); if (myreader.hasrows) messagebox.show(已存在该用户!, 提示, messageboxbuttons.ok, messageboxicon.warning); conn1.close(); else /*添加当前用户*/ sqlconnection conn2 = new

33、 sqlconnection(connstr); conn2.open(); string insertstr = insert into userinfo values( + textbox1.text + , + textbox2.text + , + combobox1.text + ); sqlcommand mycomm = new sqlcommand(insertstr,conn2); mycomm.executenonquery(); messagebox.show(添加成功!, 提示, messageboxbuttons.ok, messageboxicon.informat

34、ion); textbox1.text = ; textbox2.text = ; combobox1.text = ; listbox1.items.clear(); string updatesql = select username from userinfo; mycomm.commandtext = updatesql; sqldatareader reader = mycomm.executereader(); while (reader.read() listbox1.items.add(reader.getvalue(0).tostring(); conn2.close();

35、catch (exception exp) messagebox.show(exp.message, 错误); 3.3.2权限管理模块 图3.4 权限管理一个窗体用来添加,一个用来删除,本模块只有管理员才能进入,新增角色是在textbox中输入角色名,然后选择相应的权限,点击确认即可;删除时在listbox中选择一个角色名,点击删除后即可删除。代码如下: private void button1_click(object sender, eventargs e) if (textbox1.text = ) messagebox.show(你还没有填写身份名称!, 提示, messageboxb

36、uttons.ok, messageboxicon.warning); else if(user.isrole(textbox1.text) myconnection.openconn(); sqlcommand mycmd = new sqlcommand(, myconnection.conn); mycmd.commandtext = insert into role values( + textbox1.text+ , + convert.touint16(checkbox1.checked) + , + convert.touint16(checkbox2.checked) + ,

37、+convert.touint16( checkbox3.checked )+ , + + convert.touint16(checkbox4.checked) + , + convert.touint16(checkbox5.checked) + , + convert.touint16(checkbox6.checked) + , + convert.touint16(checkbox7.checked) + , + convert.touint16(checkbox8.checked) + , + convert.touint16(checkbox9.checked) + , + co

38、nvert.touint16(checkbox10.checked) + ); int i = mycmd.executenonquery(); if (i = 1) messagebox.show(恭喜你!已成功添加该身份!, 提示, messageboxbuttons.ok, messageboxicon.information); textbox1.text = ; checkbox1.checked = checkbox2.checked = checkbox3.checked = checkbox4.checked = checkbox5.checked = checkbox6.ch

39、ecked = checkbox7.checked = checkbox8.checked = checkbox9.checked = checkbox10.checked = false; private void button1_click(object sender, eventargs e) myconnection.openconn(); sqlcommand mycmd = new sqlcommand(, myconnection.conn); mycmd.commandtext = delete from role where rolename=+listbox1.select

40、editem+; dialogresult result = messagebox.show(确认删除吗?, 警告, messageboxbuttons.okcancel, messageboxicon.question); if (result = dialogresult.ok) mycmd.executenonquery(); listbox1.items.remove(listbox1.selecteditem); myconnection.closeconn();3.3.3院系管理模块包含了院系设置和院系查询两个窗体窗体,但它们在不同的下拉菜单中。图3.5院系管理模块窗体院系设置窗体可以进行添加、删除、修改操作,查询窗体可以选择院系编号查询,也可以点击查看全部按钮查询全部的院系信息。部分代码如下:private void department_load(object sender, eventargs e) myconnection.openconn(); str

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论