学生信息管理系统.docx_第1页
学生信息管理系统.docx_第2页
学生信息管理系统.docx_第3页
学生信息管理系统.docx_第4页
学生信息管理系统.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

泉州师范学院软件学院C#程序设计实训报告泉州师范学院软件学院2016 2017学年 第二学期课程名称 数据库访问技术 设计题目 学生信息管理系统 学生姓名 学 号 专业班级 指导教师 2017 年 6 月 1 日目录设计任务书3功能设计4数据库设计5系统实现8总结11致谢11设计任务书:本人计划编写一个学生信息管理系统,该系统主要实现对学生信息的管理以及对学籍异动信息的管理。具体要求如下:关键字:C#,ADO.NET,学生信息1. 建立完整的学生信息,包括年级、专业、班级;2. 每个学生的信息包括:学号、姓名、性别、生日、籍贯、民族、年级、专业、班级、政治面貌、入学时间、联系电话、联系邮箱、家庭地址、身份证号、照片信息、学籍状态、备注信息;3. 年级的编辑;4. 专业的编辑;5. 班级的编辑;6. 学生信息的录入,修改;7. 学籍状态的变更,存档;8. 对休学、转学、退学、复学的操作管理;9. 对学生信息的导出功能;10. 学生信息的统计报表;11. 实现对学生信息的三级筛选;12. 管理员和操作用户的二级权限管理;13. 学生信息的检索功能;本系统涉及的知识点:WinForm常用控件、属性、方法,动态数组ArrayList,泛型,ADO.NET技术(数据连接通道,命令执行者,数据适配器,临时数据库,事务管理,三层架构)。功能设计:在系统功能分析的基础上,考虑Microsoft Visual Studio 2010程序编制的特点,得到下图所示的系统功能模块图:功能模块:1. 登录窗体:用户登录及管理员登录2. 管理员窗体:对操作用户的管理3. 主操作界面:学生信息的展示及功能集合4. 年级窗体:年级管理5. 专业窗体:专业管理6. 班级窗体:班级管理7. 学籍异动信息窗体:学籍异动管理8. 学籍异动记录窗体:对学籍异动信息的查阅9. 统计报表10. Excel的导出数据库设计:1. (概念设计)ER图:2. (逻辑设计)表的关系模式:学生信息表(学号,姓名,性别,生日,籍贯,民族,政治面貌,联系电话,联系邮箱,年级,专业,班级,家庭地址,身份证号,入学时间,照片,学籍状态,备注,操作用户)班级表(年级,专业,班级)用户表/管理员表(帐号,密码)年级表(年级名称)专业表(专业名称)学籍异动信息表(编号,学号,姓名,年级,专业,班级,异动类型,异动原因,异动时间,备注信息,操作用户)3. (数据库物理设计)关系表:用户管理表/操作用户表序号列名数据类型长度主键允许空默认值字段说明1UserNamevarchar322UserPwdvarchar32MD5加密班级表序号列名数据类型长度主键允许空默认值字段说明1gradevarchar 8此处采用整个元组作为主键 2majorvarchar323classvarchar8学生信息表序号列名数据类型长度主键允许空默认值字段说明1Snovarchar302Snamevarchar303Ssexvarchar44Sbirvarchar305SnatPlacevarchar306Snationvarchar307Smajorvarchar308Sgradevarchar89Sclassvarchar810SpolStatusvarchar3011SenterTimevarchar3012Stelvarchar3013Semailvarchar3014Saddvarchar20015SidNumvarchar3016Sremarkvarchar100017Spicvarchar100018SstuStatevarchar3019UserNamevarchar30年级表序号列名数据类型长度主键允许空默认值字段说明1gradevarchar 8专业表序号列名数据类型长度主键允许空默认值字段说明1majorvarchar 32学生信息表序号列名数据类型长度主键允许空默认值字段说明1Snovarchar302Snamevarchar303Ssexvarchar44Sbirvarchar305SnatPlacevarchar306Snationvarchar307Smajorvarchar308Sgradevarchar89Sclassvarchar810SpolStatusvarchar3011SenterTimevarchar3012Stelvarchar3013Semailvarchar3014Saddvarchar20015SidNumvarchar3016Sremarkvarchar100017Spicvarchar100018SstuStatevarchar3019UserNamevarchar304. 程序表设计综合一览:系统实现1. 登录模块:本系统采用了二级权限管理,即管理员与操作用户。操作用户负责对学生信息的管理操作,管理员则只对操作用户的帐号分配及删除修改等操作。登录窗体主要实现操作用户的登录以及管理员的登录,操作用户的登录将进行对学生信息管理,管理员登录将对操作用户进行操作管理。登录操作将在窗体上读取用户名及用户密码,通过ADO.NET的查询统计方法到数据库检索,根据返回记录判断是否登录成功。2. 用户管理模块:此窗体主要实现对用户的管理操作,添加用户,修改用户密码(密码采用MD5 的32位加密存储)以及删除操作用户。3. 主操作窗体模块:该窗体为本系统的主操作界面,功能的集合。该窗体不进行过多的数据操作,主要作为数据展示使用以及快速筛选功能。系统实现之后数据量必然庞大,而如果需要对数据进行操作的话首先需要检索到需要操作的数据,而数据量一旦庞大的话如果没有一个完善的信息检索系统,将会使操作用户的工作量大大增加。所以此处提供了一个完善的检索系统(三级筛选+模糊查询)。三级筛选将使用TreeView构造一个三级树形视图,三级结构依次为:年级专业班级。通过TreeView的节点选中事件对学生信息进行过滤,可以只对年纪进行过滤,也可以进行年级+专业的信息过滤,还能进行年级+专业+班级的精确定位信息过滤。信息检索采用的是学号或者姓名的模糊筛选方法,再配合以上的三级筛选功能,能够使操作用户大大提高对数据检索的时间,将工作重心放在对数据的操作修改等方面。提高整体的工作效率。主操作界面的菜单栏提供了对年级、专业、班级的功能选项入口,由于这三种操作相对来说操作频率相对较低,在此将该功能放于菜单栏,此三种功能模块以下会再进行详细介绍。菜单栏还提供了该程序的版本信息入口。学生信息的录入,修改,学籍异动管理,以及统计报表和导出Excel的常用功能。统计报表主要按年级来统计信息,统计每个年级的:总人数,男生人数,女生人数,专业数量,休学数量,转学数量,退学数量。学生信息表以及统计报表均支持Excel数据的导出。4. 学生信息录入/修改模块:学生信息的录入和修改模块同在一个窗体,主要根据创建窗体时改变该窗体的窗体名称,以此来判定该窗体是进行学生信息的录入还是学生信息的修改。需要注意的是,在进行学生信息的录入或者修改时,学生信息的年级、专业、班级,是不允许手动输入的,只能在已存在的年级、专业、班级上进行录入或者修改,所存在的年级、专业、班级数据则从数据库进行加载,以免在进行学生信息录入及修改时添加到错误数据。除此外,在学生信息的录入时不能添加重复学号,也就是主键。并且某些数据不能为空是必须输入的信息,如:学号,姓名,身份证号码等必要信息,如身份证号码是我国唯一标识一个公民身份的特殊编号,所以不能为空,类似这种重要信息必须输入,在此不再一一赘述。学生信息的录入及修改窗体还提供图片的添加,在添加图片时可能存在错误添加照片,所以在添加照片之后应当提供对照片的删除,否则一旦添加错误图片之后无法删除会影响数据的正确性,甚至误导信息操作员。此种情况下就必然需要提供正确照片才能进行修改,所以此处选择添加了对照片的删除功能。除了对照片的删除功能之外,还有一个细节,在进行修改学生信息时,如果学生存在照片信息,图片框将会根据路径读取照片信息展示,一旦照片被移动/删除,或者路径错误的话,将会出现错误,所以在展示照片时需要异常捕获以及对照片信息的判空。5. 年级管理模块:对年级的添加以及删除操作,学生信息的约束条件。如果需要删除的年级存在学生信息则无法删除。6. 专业管理模块:对专业的添加以及删除操作,学生信息的约束条件。如果需要删除的专业存在学生信息则无法删除。7. 班级管理模块:此处班级模块的字段为:年级,专业,班级 这三个字段,整个元组作为主键,每一个班级只有指明该班级为哪一个年级,哪一个专业,哪一个班,才构成一个唯一的班级。否则一旦只进行班级的字段信息添加会出现错误,将无法识别该班到底是哪一个班。此处班级同样也是学生信息的约束条件,一旦该班级存在学生信息则无法删除该班级。8. 学籍异动管理模块:在选中信息后可以对该学生的学籍进行异动管理,异动类型有:休学,转学,退学,复学这四个操作。在对学籍进行异动操作时,需要记录该操作的异动时间,异动原因,以及一些必要的备注信息。此处使用事务管理进行操作,在对学生进行学籍异动管理时,需要修改学生的学籍状态,同时插入一条学籍异动的操作记录,该记录不可更改删除,始终存在,可以查阅。一旦两项操作存在异常则进行事务回滚,杜绝学生信息学籍状态已更改,但是并没有添加学籍异动的操作记录。在学籍存在异常状态时,不能再对该学生进行学生信息修改,只能对其进行学籍异动管理,存在休学,转学,退学等异常状态的学生,只能对其进行复学操作。同样的,在对学生进行复学操作同样需要记录时间,异动原因以及必要的一些备注信息。同时修改学生学籍状态以及添加异动记录。总结:该程序采用了三层架构模式,主要是出于对于新掌握的知识的一个巩固和练习,但是在实现该程序时发现确实存在很多不必要,不但没有使代码更加简洁,有小部分甚至导致了代码的重复率,后来又修改了部分代码使代码尽量减少重复率以及不必要的内容。在程序调试过程没有遇到太大的问题,很多细节的内容在程序设计一开始时都有考虑在内,但是有部分细节一开始没有详细记录,导致后面程序实现过程中存在疏漏,来回几次补过细节代码,这是不应该的,应当吸取这种教训,在下次实现程序时不仅应该尽可能地详细地考虑细节问题,更应该注意要记录所罗列的细节问题。三级筛选功能在实现过程时遇到一个难点,就是如何判断TreeView的选中节点是否存在父节点,该父节点是否仍存在父节点,一开始的思路是在选中节点的属性中寻找hasParent这方面的属性,直觉上认为应该是有这种属性能够判断是否存在父节点的,后来钻牛角尖一直转不过弯来,在指导老师的提点下豁然开朗,后来选择了用if(selectNode.Parent!=null)来判定选中节点是否存在父节点,如果存在父节点情况下则再次

温馨提示

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

评论

0/150

提交评论