学生信息管理系统详细设计课程名称:软件工程指导老师:冯**组员:岳一沿、朱隆君、张敏张雨、邵天宇、万文彬2015/5/11、详细设计概述详细设计也叫做程序设计,它不同于编码或编制程序。
在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。
编程设计所开发项目的具体要求和对每个模块规定的功能,以及算法的设计和评价。
详细设计需要给出适当的算法描述,为此应提供详细设计的表达工具。
在理想情况下,算法过程描述应采用自然描述语言来表达,使不熟悉软件的人理解这些规格说明比较容易,无需重新学习。
但是,自然语言在语法上和语义上往往具有多义性,常常要依赖上下文才能把问题交代清楚。
因此,必须使用约束性更强的方式来表达细节。
2、详细设计的基本内容详细设计过程中需要完成的工作主要是确定软件各个组成部分内的算法以及各个部分的内部数据结构,确定各个组成部分的逻辑过程。
另外还有以下工作。
2.1 处理方式的设计(1)数据结构设计:对于需求分析、总体设计确定的概念性的数据类型进行确切的定义。
(2)算法设计:用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来,并为实现软件系统的功能需求确定所必需的算法,评估算法的性能。
(3)性能设计:为满足软件系统的性能需求确定所必需的算法和模块间的控制方式。
(4)确定外部信号的接受发送形式。
2.2 物理设计对数据库进行物理设计,确定数据库的物理结构。
2.3 可靠性设计2.4 其他设计(1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。
(2)输入输出格式设计:针对各个功能,根据界面设计风格,设计各类界面的样式。
(3)人机对话设计:对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。
3、结构程序设计3.1 五种基本控制结构构造程序。
(1)顺序型:几个连续的加工步骤依次排列构成。
此处不是重点,只举例其中几个流程图。
(2)选择型:由某个逻辑判断式的取值决定选择其中的一个。
(3)先判定型循环:在循环控制条件成立时,重复执行特定的加工。
(4)后判定型循环:重复执行某些特定的加工,直至控制条件成立。
(5)多情况行选择:列举多种加工情况,根据控制变量的取值,选择执行其一。
3.2 数据结构设计(1)系统平台总体布局图3.3数据结构的具体设计SQL源模式建立表CREATE TABLE Class([班级号] [char] (10) NOT NULL ,[班级名] [char] (20) NOTNULL ,[班主任] [char] (10) NULL ,[专业号] [char] (10) NULL )CREATE TABLE Audit ([学号] [char] (10) NOT NULL ,[姓名] [char] (10) NOT NULL ,[班级号] [char] (10) NOT NULL ,[审核结果] [char] (60) NOT NULL )CREATE TABLE Student_score([学号] [char] (10) NOT NULL ,[姓名] [char] (10)NULL ,[班级号] [char] (10) NULL ,[课程号] [char] (10) NOT NULL ,[课程名] [char] (20) NULL ,[课程类别] [char] (4) NULL ,[开课时间] [char] (10) NULL ,[教师工号] [char] (10) NULL ,[学分] [float] NULL , [成绩] [int] NULL )CREATE TABLE Reward and punishment ([学号] [char] (10) NOT NULL ,[姓名] [char] (10) NOT NULL ,[班级号] [char] (10) NOT NULL ,[专业] [char]26 (10) NOT NULL ,[所在院系] [char] (16) NOT NULL ,[时间] [datetime] NOT NULL ,[说明] [char] (10) NOT NULL ,[内容] [char] (40) NOT NULL )CREATE TABLE Course ([课程号] [char] (10) NOT NULL ,[课程名] [char] (20) NOT NULL ,[课程类别] [char] (4) NOT NULL ,[学分] [float] NOT NULL )CREATE TABLE Student([学号] [char] (10) NOT NULL ,[姓名] [char] (10) NOT NULL ,[所属院系] [char] (20) NOT NULL ,[专业] [char] (16) NOT NULL , [班级] [char] (10) NOT NULL ,[年级] [char] (10) NOT NULL ,[性别] [char] (2) NOT NULL ,[出生年月] [datetime] NOT NULL ,[籍贯] [char] (16) NOT NULL ,[民族] [char] (10) NOT NULL ,[家庭住址] [char] (40) NOT NULL ,[邮政编码] [char] (6) NOT NULL ,[政治面貌] [char] (8) NOT NULL ,[家庭电话] [char] (10) NULL )学生表成绩表课程表班级表4、功能模块设计4.1 学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。
学生信息管理功能层次图(1)当有新生入学或有学生转入时,学工处需要将其基本信息,比如姓名、学号、所在院校、专业班级、籍贯等录入到学生档案中。
(2)当学生毕业或有学生退学时,学工处需要将其基本信息从学生档案中删除。
(3)当有学生转专业时,需要将其基本信息进行修改。
(4)当需要得到某个学生相关信息时就要进行查询。
(5)当对学生信息进行添加、删除、修改、查询时都需要将其基本信息显示出来。
4.2课程信息管理模块课程信息管理模块包括添加课程和浏览课程,其中浏览课程又包括删除、修改、打印、退出、查询等。
(1)当要开设某门新的课程时,教务处要把新课程的相关信息录入到课程管理档案中。
(2)当要对已有课程进行删除、修改、打印、查询时,需要浏览课程的相关信息,当浏览完成时,退出浏览界面。
课程信息管理系统功能层次图4.3 选课信息管理模块选课信息管理模块包括删除,统计学生选课信息。
(1)当选修该课程的人数少于学校规定的人数时,教务处将取消该课程的开设并删除此课程的相关信息。
(2)当新一轮的选修课选完以后,教务处将对已选的课程进行分类统计。
4.4 成绩信息管理模块该模块主要是实现对学生成绩的录入查询及考试的违规信息的管理工作,包括:学生成绩的录入,学期成绩浏览,学生成绩查询,班级成绩查询,违规信息的增加及浏览。
成绩信息管理功能层次图(1)当成绩录入错误需要修改或当成绩无效需要删除时,首先要对成绩进行浏览,当操作完成时,即可退出。
(2)当教师将某科成绩单交给教务处,教务处将成绩进行录入。
(3)当教师或者辅导员等需要了解关于某科的成绩时,就可以对其成绩进行查询,统计,必要时也可以把成绩单打印出来。
(4)当导师想要了解某个班的学生学习状况时,就可以对整个班级的成绩进行查询,必要时可以将成绩单打印出来。
4.5班级信息管理模块班级信息管理模块包括添加,删除和修改班级信息,以及对班级信息的查询。
4.6 学生信息查看模块该模块能够实现学生查看个人信息等功能。
其中个人信息包括姓名、学号、所在院校、专业班级、入学时间、性别、籍贯、本学期的教学计划安排、本学期的课表等。
学生信息查看功能层次图4.7 成绩信息查看模块该模块能够实现学生查看成绩的功能。
查看的内容包括课程名称,学分,成绩等。
成绩查询时可按以下几种分类:按学期查询、按学年查询、在校学习成绩查询、查询已修课程最高成绩、查看某项单科课程。
成绩信息查看功能层次图4.8总体模块详细设计(1)输出模块的设计(2)输入模块的设计(3)人工接口模块(4) 菜单设计(5)学生查询模块设计5、数据库设计5.1 外部接口与用户界面在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。
在设计语言上,已决定使用Java进行编程。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。
5.2内部接口内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
5.3E-R图6、程序流程图6.1 学生基本信息模块学生基本信息模块包括了学生的个人信息以及成绩查询的选项。
在这里学生可以根据自己的需求选择要进行的操作。
进行相应的操作就会把相应的信息输出,以便能够清楚的查询自己所需要的知识。
6.2学生选课模块该模块主要包括了学生在选课数据库里进行选课的一些操作。
学生可以在这里输入信息,然后选择自己想要选择的课程。
当然,学生在这里也可以查询课程的一些相关信息。
6.3学生成绩查询模块该模块主要提供学生对成绩的查询信息。
学生可以在此输入学号和密码后,查询自己想要查询的课程的成绩信息。
6.4教师基本信息模块该模块主要说明了教师的一些基本信息。
包括自己的授课查询以及对学生成绩的查询等一些操作。
6.5 教师选课模块本模块主要说明了教师能够进行自己授课的一些选择。
可以在选课信息表里选择自己要教授的课程。
6.6管理员基本信息模块该模块主要说明了管理员应该具备的一些权利以及对一些信息的管理以及查询。
管理员可以在这里进行学生成绩的管理以及教师选课的一些信息管理。
6.7管理员信息维护模块该模块主要说明了管理员可以对一些信息进行维护的操作。
其中,这些信息可以是学生的或者是教师的信息都可以在这里进行维护。
7、界面设计用户登陆:该系统根据用户的身份实现了不同的功能,用户登陆时需要选择一种登陆方式(默认情况下是学生),系统再根据用户选择的登陆方式到相应的表中去搜索。
例如,登陆时选择了教师登陆方式,系统将会在教师信息表中搜索是否存在与该用户的输入相符的信息,如果存在则进入教师主页,否则提示用户输入有误,请重新输入。
7.1学生用户界面学生的初始密码是由管理员指定的。