课程设计说明书课程名称:软件开发技术设计题目:学生信息管理系统专业:计算机科学与技术班级:0801学生姓名:欧阳锋学号:0812030111指导教师:何频捷湖南工业大学科技学院教务部制2011年12月10日1引言(或绪论)1.1课题背景随着教育事业的不断发展,学校的规模不断扩大,学生数量及其信息量的急剧增加,有关学生的各种信息管理也随之展开,学生信息管理系统应运而生了,它可用来管理学生信息与提高系统管理工作的效率。学生信息管理系统把Eclipse(前台开发)与SQL数据库(后台管理)有机地结合,并运用SWING等相关技术,完成学生信息的规范管理、科学统计和快速查询,从而可大大减少该管理上的工作量。数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整性和一致性。同时,合理的数据结构也将有利于程序的顺利实现。1.2系统开发关键技术介绍本系统采用的是Eclipse开发工具做为开发系统程序,采用SQLsever数据库访问技术完成对数据库信息的规范管理和统计查询。SQLsever使用更加简单灵活的对象模型,适用于各种程序设计语言。SQLsever提供执行以下操作方式:(1)连接到数据源。(2)指定访问数据源的命令,可以在命令中指定参数。(3)执行命令,例如一个SELECT语句。(4)在适当情况下,可以把缓存行的更改内容写回数据库中,更新数据源。(5)提供常规方法检测错误,错误通常由建立连接或执行命令造成,涉及到SQL的error对象。2系统分析2.1总体设计思想及工作流程用户必须通过已经注册的帐号和密码才能进行对该系统的管理与应用,否则在登录系统前要进行新账号的注册;管理员通过输入密码和帐号可以对数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作;用户根据自己的实际情况选择相应的功能来提取自己所需信息。(1)学生信息管理系统的功能为显示主要操作页面,通过密码验证登陆界面,档案信息处理功能。通过密码验证登陆,可实现安全登录,方便可靠。学生信息处理功能包括输入学生信息,显示学生的档案信息,学生档案信息条件查询(分为:按学生姓名进行查询,按学生学号进行查询),更新学生档案信息。(2)学生信息管理系统的功能模块有:系统登陆界面,美观大方,按enter键进入密码验证登陆界面,输入正确密码登陆主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。1.输入学生档案信息。2.显示学生的档案信息3.学生档案信息条件查询4.更新学生档案信息。0.退出,谢谢使用!!!程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。2.2业务需求(1)安全性:用户必须通过帐号和密码才能进行对该系统的管理。(2)权限分配:超级管理员通过输入密码和帐号可以对数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作。(3)易操作性:可以快速进行查询操作,进行数据的汇总。2.3数据流图用户的需求具体体现在各种信息的提供、保存、更新、查询和统计上,这就要求数据库结构应充分满足各种信息的输入和输出。系统应定义数据结构、收集基本数据以及设置数据处理的流程,组成一份详尽的数据字典,为以后的具体设计打下基础与伏笔。在仔细分析、调查有关学生信息管理需要的基础上,得到了本系统的流程图:图3.2总数据流图图3.3零层数据流图图3.3一层数据流图2.2总体设计流程图图2总体设计流程图该流程图为此次学生信息查询系统的总体流程图,用户进入界面以后可以看到登陆密码界面,密码输入正确进入主菜单选择框架界面,1为输入学生信息档案,2为显示学生档案,3为学生信息档案查询,4为更新学生档案,0为退出系统。用户可以根据自己的需求方便快捷的做出自己的选择。学生信息管理系统密码登陆界面登陆主菜单选择框架界面输入信息模块显示信息模块条件查询模块更新信息模块退出系统模块从键盘输入信息输出信息至屏幕按学生学号查询按学生姓名查询修改学生信息插入学生信息将退出界面显示密码登陆函数流程图:该函数为密码登陆函数模块,当输入的密码不正确的时候,系统会提示“密码输入错误,请重新输入”,直到输入正确密码为止。选择框架函数流程图:进入学生档案管理系统时显示程序名称和选择框架主菜单,提示用户进行选择,完成相应任务。此代码被main()函数调用。输入信息函数流程图:输入信息系统开始输入学号输入姓名输入性别输入联系方式输入班级输入错误重新输入密码函数开始登陆密码重新登陆密码正确密码错误选择框架函数开始用户选择1输入信息2显示信息3查询信息4更新信息0退出输入学生信息函数模块,用户可以根据提示的信息来进行每一步的输入操作,当输入不当时,系统会自动提示,并让用户进行正确的操作。在此系统中,要求用户输入的只有字符型和数值型数据,设计了相应的函数来进行数据校验工作,保证数据输入的准确性。显示信息流程图:当用户进入查询信息模块时,系统会显示内部存储的内容。查询信息流程图:当用户执行此查询任务时,系统会提醒用户进行查询字段的选择,即按学号或姓名进行查询。若此学生档案信息记录存在,则会显示该省的档案信息。此函数完成了节点定位的功能。更新信息流程图:选择按姓名还是学号查询选择查询函数开始输入错误重新输入0按姓名查询1按学号查询输出信息输出信息显示信息函数开始输出学生信息结束在更新学生档案信息的操作中,系统会先按输入的学号查询到该生档案信息记录,然后按顺序填入要修改的学生信息。3系统设计3.1系统功能结构图设计数据库系统时应充分满足各种信息的输入和输出。据此,结学生信息管理系统所需完成的主体任务。学生信息管理系统主要任务如下:(1)基本信息的输入。包括学籍(学生基本)信息,班能、课程和成绩等住处的输入。(2)基本信息的修改。包括学籍信息、班级、课程和成绩等信息的修改。(3)基本信息的查询。包括学籍信息和成绩信息等的查询。(4)年级信息及班级信息的设置等。(5)学校基本课程信息的输入、修改和设置。基于需求分析及主要任务的表述,可对上述各项功能按照结构化程序设计的要求进行集中、分层结构化,自上而下逐层设置得到系统功能模块结构图:更改信息函数开始输入要更改的学号输入错误输入更改后信息输入错误重新输入重新输入输出更改后信息完成图3.1系统功能结构图4系统数据库设计4.1系统E-R图概念结构设计就是E-R方法的分析与设计,概念结构设计是整个数据库设计的关键。在此,将使用实体—联系(E-R)模型来描述系统的概念结构,同时设计出能够满足用户需求的的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这也实体包括各种具体的实际信息,通过相互之间的作用形成数据的流动。本程序根据上面的设计规划出的实体有:学籍实体、班级实体、年级实体、课程实体与成绩实体,学生信息管理系统数据库E-R模型,如下图所示:图4.1学生信息管理系统E-R模型图4.2数据表的创建根据系统特点,由数据模型利用Oracle10g进行数据库的详细设计,学生信息管理系统数据库中各个表格的设计结果如下:表1:学籍信息表表2:学生成绩信息表表3:班级信息表表4:年级课程设置表表5:课程基本信息表表6:系统用户表4.3存储过程和触发器设计为了提高该系统的运行环境,后台有关数据的操作部分使用了存储过程和触发器。1.创建的存储过程进行添加班级信息,代码如下:createorreplaceprocedureinsertclass(p_class_noinclass_no%type,p_gradeingrade%type,p_directorindirector%type,p_classroom_noinclassroom_no%type)isv_countnumber;beginselectcount(*)intov_countfromclass_infowhereclass_no=p_class_no;ifv_count=0theninsertintoclass_infovalues(p_class_no,p_grade,p_director,p_classroom_no);elsedbms_output.put_line('班号已经存在,请重新输入班号');endif;endinsertclass;2.存储过程的调用代码:PrivateSubCommand1_Click()DimsqlconAsNewADODB.ConnectionDimmrcAsADODB.RecordsetDimMsgTextAsStringDimtxtSQLAsStringDimcmdAsNewADODB.CommandDimclassNO,grad,DIRECTO,CLASSROOMNOsqlcon.OpenProvider=OraOLEDB.Oracle.1;Password=1234;PersistSecurityInfo=True;UserID=CC;DataSource=orclIfNotTesttxt(txtClassno.Text)ThenMsgBox请输入班号!,vbOKOnly+vbExclamation,警告txtClassno.SetFocusExitSubEndIfIfNotTesttxt(comboGrade.Text)ThenMsgBox请选择年级!,vbOKOnly+vbExclamation,警告comboGrade.SetFocusExitSubEndIfIfNotTesttxt(txtDirector.Text)ThenMsgBox请输入班主任姓名!,vbOKOnly+vbExclamation,警告txtDirector.SetFocusExitSubEndIfIfNotTesttxt(txtClassroom.Text)ThenMsgBox请输入教室房间号!,vbOKOnly+vbExclamation,警告txtClassroom.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtClassno.Text))ThenMsgBox请输入数字!,vbOKOnly+vbExclamation,警告ExitSubtxtClassno.SetFocusEndIfcmd.ActiveConnection=sqlconcmd.CommandText=insertclasscmd.CommandType=adCmdStoredProcSetclassNO=cmd.CreateParameter(@CLASS_NO,adVarChar,adParamInput,50)cmd.Parameters.Append(classNO)Setgrad=cmd.CreateParameter(@GRADE,adVarChar,adParamInput,50)cmd.Parameters.Append(grad)SetDIRECTO=cmd.CreateParameter(@DIRECTOR,adVarChar,adParamInput,50)cmd.Parameters.Append(DIRECTO)SetCLASSROOMNO=cmd.CreateParameter(@CLASSROOM_NO,adVarChar,adParamInput,50)cmd.Parameters.Append(CLASSROOMNO)cmd(@CLASS_NO)=txtClassno.Textcmd(@GRADE)=comboGrade.Textcmd(@DIRECTOR)=txtDirector.Textcmd(@CLASSROOM_NO)=txtClassroom.TextSetmrc=cmd.Executecmd.Parameters.Delete(@CLASS_NO)cmd.Parameters.Delete(@GRADE)cmd.Parameters.Delete(@DIRECTOR)cmd.Paramete