学生信息管理系统第1页共9页学生信息管理系统概要设计2.总体结构设计2.1.层次图2.2结构图2.3功能设计登陆学生端教师端教务处查询成绩查询基本信息录入成绩修改成绩删除成绩查询成绩录入基本信息修改学生信息删除学生信息查询信息学生信息管理系统第2页共9页学生成绩单录入部分可以对某一个学生进行成绩录入,但是一次只能录入一条成绩记录,同时可对缺考、免考、补考学生成绩进行录入。学生成绩显示/修改部分可以对已录入的成绩进行显示和修改,但是只能对系统默认的当前学期的记录进行修改。学生成绩显示/删除部分可以对已录入的成绩进行显示和删除,但是也只能对系统默认的当前学期的记录进行删除。2.3.运行环境设计2.3.1.硬件设计1.服务器:CPU:P42.0G以上内存:512M硬盘:60G以上网络:100M/1000MEthenet2.客户机:CPU:500Mz内存:64M以上硬盘:1G以上网络:10MEthenet2.3.2.软件设计1.服务器:操作系统:Windows2000/XP/2003WEB服务:IIS5.0数据库:SQLServer2000(建议打ServicePack3补丁)2.客户机:操作系统:Windows系列之一浏览器:IE6.0以上版本学生信息管理系统第3页共9页2.3.3.网络设计采用sqlserver2000网络关系型数据库,存储读取数据将同步进行。3.详细设计一.系统模块的实现在系统中包括以下功能:系统管理、学籍信息管理、课程信息管理、成绩信息管理、帮助。分为以下几个模块主窗体标题名称系统管理sysMenu……用户管理Control……退出系统Exit学籍管理sInfo课程管理cInfo成绩管理rInfo学生信息管理系统第4页共9页帮助help……使用说明howto……关于about1.1登录模块为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。用户登录窗体中放置了两个文本框(Textbox),用来输入用户名和密码;两个按钮(CommandButton)用来确定或者取消登录。设置一个SSTab控件,供不同用户登录时选择用户权限,超级用户拥有一切权限(包括添加删除和修改以及对用户的管理),普通用户拥有受限制的权限(查询及修改密码),提高了数据库的安全性。1.2系统管理模块1.2.1添加用户窗体的创建进入系统后,将会出现一个主窗体,选择系统管理模块下的添加用户,就可以进入添加用户窗体,可以通过该窗体增加新的用户。在这个窗体中放置了三个文本框,用来输入用户名和密码;两个按钮用来确定是否添加用户;三个标签用来标示文本框的提示。1.2.2修改密码窗体的创建在系统管理模块下,进入修改密码窗体,用户可根据需要修改自己的密码。在这个窗体中放置了两个文本框,用来输入密码和确认密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。1.3学籍管理模块1.3.1添加学籍信息功能选择主窗体中学籍管理模块下的添加学籍信息,就可进入添加学籍信息的窗体,在该窗体中我们可以对学生的学号、姓名、性别、出生日期、班号等学生的信息进行添加。设计时我尽可能设想各种边界条件,如记录为空,输入为空,输学生信息管理系统第5页共9页入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库中。在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息;两个按钮用来确定是否输入学籍信息;一个按钮用来退出窗体;多个标签用来提示文本框中需要输入的内容。1.3.2修改学籍信息功能点击学籍管理模块下的修改学籍信息,就进入修改学籍信息的窗体,在该窗体中我们可以对前面添加的学籍信息进行修改。由于用户的需求不同,有的是要对学生的信息做个别的改动,有的是需要删除该条记录,所以该窗体同时包括了修改记录的功能和删除记录的功能。又考虑到用户的误操作,为了方便,我在该窗体中增添了取消修改的功能,可一次性把输入文本框的内容全部置空。1.3.3查询学籍信息功能进入学籍管理模块下的查询学籍信息窗体,在该窗体中可以对学生的信息进行查询,有三种查询方式。我在设计时,一方面考虑到简洁的因素,用户可以只设置一种查询方式进行查询;另一方面又为了避免数据的重复,用户可以输入详细的信息,也就是同时设置多种查询方式进行查询。进入查询窗体时,myflexgrid中会显示出所有学生的学籍信息,如果不设置查询方式就进行查询,是无效查询,系统会给出提示。在设置好查询方式后,便开始查询,将在myflexgrid中显示出用户所需的学生的学籍信息。1.4课程管理模块1.4.1课程信息浏览功能点击主窗体中课程管理模块下的课程信息浏览,可进入课程信息浏览窗体。为了用户的使用方便,我使用了SSTab控件,故在该窗体中同时包含了课程信息的添加和修改的功能。并且我还在窗体上设置了myflexgrid控件。添加和修改记录后,对于数据有何变化都可以在myflexgrid中显示出来,使用户对所做的操作一目了然。1.4.2年级课程设置功能进入课程管理模块下的年级课程设置窗体,可以对每一个年级的课程进行设学生信息管理系统第6页共9页置。1.5成绩管理模块1.5.1成绩信息管理功能点击成绩管理模块下的成绩信息浏览,进入成绩信息浏览窗体,考虑到美观和实用性,界面设置如下图。用Frame控件在窗体中划定一个可浏览成绩信息地方,再在Frame中添加MSFlexGrid控件,运行时将在MSFlexGrid中显示所有学生的成绩信息。使用Toolbar来建立工具条。点击工具条中的修改、添加和查询按钮就可分别进入修改成绩信息窗体、添加成绩信息窗体和查询成绩信息窗体。这三个窗体的界面设置分别类似于学籍管理下修改学籍信息窗体、添加学籍信息窗体和查询学籍信息窗体。1.6其它操作人员在遇到困难时即可进入帮助菜单寻求帮助。帮助菜单下的“使用说明”将解答你的疑问。帮助菜单下的“关于”详细地列出了关于作者的一些情况,关于版权的一些情况和关于系统的一些情况。进入打印菜单栏,可对你所需要的信息进行打印。二系统后期工程在开发这个软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程中,我采用循环测试法,力求在每个阶段结束之前通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。在该设计中,我偏重考虑了当用户输入的信息出错时,系统就会出现提示,以便让用户知道出错的原因,并能及时做出修改,所以我站在用户的角度考虑,尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,以此来发现错误,纠正错误,取得了一定的效果。当然,该学生信息管理系统也存在一些不足之处。在成绩管理界面,当3次改变成绩为不同的内容时,程序会出错。虽然尝试了很多方法,仍不能解决。再一点就是关于打印和年级课程信息设置都未能实现,这有待于以后的进一步提高。学生信息管理系统第7页共9页一个应用系统性能的优劣,效率的高低始终应当由用户来做出判决,应用系统在运行过程中,用户会提出一些新的需求和建议,我就会根据用户需求的变化,对本系统做出一定的修改,使其进一步地得到完善和提高。4.数据结构设计4.1.数据分析第一层:基础数据及基础数据库分析此类报表主要反映学校教师、学生和课程等的资料情况。此类报表是将系统中较为常用的学生、教师和课程等基础资料以报表的形式予以反映。在本层需要设计三个主表,分别用来存储学生资料、教师资料和课程资料。第二层:业务流程数据及业务流程数据库分析在编辑此类表单时,可以点击相应的下拉按钮,这时所有的选项资料都会显来,您可以根据实际情况来编制表单,使整个过程更加清晰,操作更加简便。在本层需要设计一个学生成绩主表,用来存储学生的平时成绩表。4.2.数据库设计4.2.1.设计原则1.密码管理:学生修改学生查询密码;教师可以修改查询密码。2.每个教师可以查看所有学生的成绩,包括每门课程的成绩、每门课程的平均成绩、每个分数段的成绩。3.学生根据自己的学号查询本人的成绩。4.教师可以登记、修改、查询自己所讲授课程的学生的成绩、该课程的总分、平均成绩、各分数段成绩人数统计、不及格学生的名单、成绩等等。4.2.2.数据库组成学生信息管理系统第8页共9页数据表3个:学生表(5个字段:xh,xm,xb,csrq,bj),其中有各班学生的记录课程表(4个字段:kch,kcm,js,xf),其中有课程的记录;成绩表(3个字段:xh,kch,cj),其中有学生成绩的记录。学生基本信息表(Student)描述如下:学生期末成绩表(Grade)描述如下:学生的课程管理(Course)描述如下:表Grade学号姓名课程编号课程名称成绩表Student学号姓名性别班级系别学生信息管理系统第9页共9页4.2.3.面向对象数据库设计方法1)考虑对象的静态和动态属性对象属性决定了数据库或包含具有相同类型对象的表的内容。2)描述数据实体及其属性包含所有静态属性的单个对象被称作数据实体。每个单独的数据实体必须唯一,这样可以与其他实体区分。包含在数据实体中的对象的性质被称作为属性。(attribute)3)用方法来说明对象的行为关系数据库对象的行为决定了数据对象参与事务的特征。事务的发生对应着事件,通过使用响应事件的方法来实现事务。4)在单个表中合并不同实体可以在单个表中包含不同对象类型的说明,只要可以按照相同方式描述属性和行为,以及区分不同对象类型即可。表Course课程名称先行课学分任课教师