《软件工程导论课程设计-学生学籍管理系统.doc》由会员分享,可在线阅读,更多相关《软件工程导论课程设计-学生学籍管理系统.doc(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计报告科 目: 软件工程概论 设计题目: 学生学籍管理系统 专 业: 软件工程09-1班 姓 名: XXXXX XXXXX 学生学籍管理一 需求分析开发环境和软件(1) 操作系统:Windows xp (2) 数据库软件:SQL Server 2000 (3) Java开发工具:系统设计与功能分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2000数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODB
2、C驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2000数据库高效安全,两者结合可相互利用各自的优势。该系统实现的大致功能:1 用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,修改登录密码等功能。2 教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除。修改密码等功能。3 管理员管理界面。拥有最高的权限。允许添加教师信息。4 登录的用户信息分别
3、存储在SQL数据库的“管理员信息表”, “教师信息表”, “学生表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。保证了本学生管理系统的安全性。二. 系统概要设计1数据需求:(1)数据字典实体属性表:实体属性教师教师ID,教师姓名,登录密码管理员管理员ID,登录密码学生学号,姓名,性别,班级号,籍贯,登录密码,学生成绩系统逻辑结构设计教师信息表:字段名 类型空值约束条件教师ID varchar(8)not null主键教师姓名varchar(8)not null登录密码varchar(8)not null管理员信息表:字段名 类型空值约束条件管理员ID varchar(10)no
4、t null主键登录密码varchar(10)not null学生表:字段名 类型空值约束条件学号int not null主键姓名varchar(30)not null性别char(2)班级号varchar(30)not null外键籍贯char(10) 登录密码moneynot null学生成绩Char(2)数据流图第一层 学生名单学籍管理系统学 生教 师 学生信息 成绩 学 生管理人员 统计表 成绩单第二层1录入存储处理2查询处理学生记录学生信息 成绩 3统计 处理4升留级处理本次考试成绩历次考试成绩 班平均成绩 升留级表 各科平均成绩第三层13录入存储学生信息各科成绩1.2是否新生审计1
5、.1学生信息 合格单 新生信息 学生信息学生成绩第四层班级平均成绩3.1 班级统计选择3.1学生信息 统计成绩 各科平均成绩3.3 各科第五层是否升留级4.1更新记录4.2学生信息 升留级名单 学生记录成绩标准2功能需求:(1)实现学生基本情况的录入,修改,删除等基本操作。(2)对学生基本信息提供灵活的查询方式。(3)完成一个班级的学期选课功能。(4)实现学生成绩的录入,修改,删除等基本操作。(5)能方便的对学生的个人学期成绩进行查询。(6)具有成绩统计,排名等功能。(7)具有留级,休学等特殊情况的处理功能。(8)能输出常用的各种报表。(9)具有数据备份和数据恢复功能。三系统详细设计1概念结构
6、设计局部ER图性别姓名人数专业名专业号 学生学号出生年月专业院系课程号学时课程名课程整体的ER图专 业学生课程院系专业号 学时出生年月性别姓名学号密码课程号专业名人数专业号设置课程号学期课程号选课属于 学号成绩学期课程名 2. 逻辑结构设计(1)ER图转换为关系模型由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:学生基本信息表: S (sno, sname, ssex, sbirth, spasw) 课程基本信息表: C
7、(cno, cname, cperiord)专业基本信息表: P (pno, pname, pnum, psdept)对应的属性分别为:学号,姓名,性别,出生日期,登陆密码 课程编号,课程名,学期 专业编号,专业名,专业人数,所在院系对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一部分。 以上ER图的三个联系为多对多,所以转换为关系模式为:课程设置表:pc ( pno, psenior, cno) 与设置相连的实体有专业和课程,根据多对多的转换原则:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所
8、以该关系模式的码为全码。学生选课表:SC (sno, psenior, cno, grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即(sno,cno,psenior)。此外,选课表还有一个非主属性grade。学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。(2)关系模式的优化:学生表 s (sno,sname,ssex,sbirth,spasw)该关系模式的码为sno,由于只有一个码,所以不存
9、在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: sno - sname, sno - ssex, sno - ssex,sno - sbirth, sno - spasw,其间不存在传递依赖,故学生表可达到3NCF.课程表 C ( cno ,cname , cperiod)该关系模式的码为cno, cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:cno-cname, cno-cperiod, cname -cno ,cnam
10、e - cperiod. 因为cno - cname,cname - cperiod cno - cperiod, 所以该关系模式中存在传递依赖,不能达到3NCF。故优化该表为:C1(cno,period),C2(cname,cperiod).从而两表都达到了3NCF。专业表 P (pno,pname,pnum,pdept)该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的部分函数依赖,故可达到2NCF。另外,此关系模式的函数依赖为:pno-pname, pno- pnum, pno - pdept , pnam
11、e - pno, pname-pnum, pname - pdept; 由于存在传递依赖:pno - pname, pname-pnum, pno - pnum., 所以未能达到3NCF。优化分解为:P1 (pno,pnum,pdept), P2 (pname,pnum,pdept)明显,两表都达到了3NCF.课程设置表PC(pno,psenior,cno),该关系模式的码为:(pno,psenior,cno)为全码,所以可直接达到3NCF学生选课表 SC(sno,psenior,cno,grade)该关系模式的码为:(sno,psenior,cno),因为不存在非主性grade对码的部分函数
12、依赖,所以可达到2NCF,由于不存在函数依赖(表中的函数依赖只有(sno,psenior,cno)- grade)故也达到了3NCF属于表 SP(sno,pno)该关系模式的码(sno,pno)也是全码,所以也达到了3NCF用户表 U(uname,upasw)该表的码为uname,明显upasw对码uname是完全函数依赖的,从而达到2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表达到了3NCF3 物理结构设计(1)基本表学生表s列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)sname否否否无是Char(20)ssex否否否无是Char(2)只可取
13、男或女sbirth否否否无是Char(20)spasw否否否无是Char(10)课程表 c1列名主码候选码外码被参照表允许空数据类型约束条件cno是否否无否Char(10)cperiod否否否无是smallint课程表c2列名主码候选码外码被参照表允许空数据类型约束条件cname是否否无否Char(20)cperiod否否否无是smallint专业表p1列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)pnum否否否无是smallintPnum =0psdept否否否无是Char(20)专业表p2列名主码候选码外码被参照表允许空数据类型约束条件pname是否否无否
14、Char(20)pnum否否否无是smallintPnum =0psdept否否否无是Char(20)课程设置表 pc列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)学生选课表sc列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)grade否否否无是smallintgrade=0学生与专业属于表sp列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)pno是否否无
15、否Char(10)管理人员密码表u列名主码候选码外码被参照表允许空数据类型约束条件uname是否否无否Char(20)upasw否否否无否Char(10)(2)视图,索引a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。表s的主索引列为:sno表c1的主索引列为:cno表c2的主索引列为:cname表p1的主索引列为:pno表p2的主索引列为:pname表sc的主索引列为:(pno,psenior,cno)表sp的主索引列为:(sno,pno)表u的主索引列为:unameb视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑
16、到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.4系统功能设计学生学籍管理系统添加用户学生信息管理人员信息基本信息信息查询成绩查询系统管理查询管理成绩统计个人成绩专业成绩欢迎界面身份及密码验证基本信息维护删除更新添加四系统测试方案1. 建立数据库模式、视图及索引以下将对数据库进行实现,实现的环境为 SQL SERVER2000。create database Expulsionon( name=Expulsion, filename=D:TestSQLExpulsionexpulsion.mdf, size=5,
17、 filegrowth=10%, maxsize=10 )log on( name=expulsion_log, filename=D:TestSQLExpulsionexpulsion_log.ldf, size=5, filegrowth=10%, maxsize=10)gouse Expulsiongo(1). 建立管理员表create table tb_Admin( admin_ID int identity, admin_User varchar(10) not null, admin_Pass varchar(20) not null, admin_Perm int not nul
18、l, constraint pk_Admin primary key (admin_ID)go (2). 登陆日志表create table tb_Log( log_ID int identity, log_UsID int, log_Time smalldatetime default getDate(), log_IP varchar(16), constraint pk_Log primary key (log_ID), constraint fk_Log_Admin foreign key (log_UsID) references tb_Admin(admin_ID),)go(3).
19、 院系表create table tb_Department( depart_ID int, depart_Name varchar(40) not null, -院系名 depart_Dire varchar(10), -系主任 depart_Note varchar(200), constraint pk_Depart primary key (Depart_ID),)go(4). 课程表create table tb_Course( course_ID int, course_Name varchar(20), course_PrNo int , -先行课号 course_credit
20、int not null, course_Note varchar(200),-备注 constraint pk_Course primary key (course_ID), constraint fk_Course foreign key (course_PrNo) references tb_Course(course_ID)go(5). 专业表create table tb_Professional( prof_ID int, prof_DeID int,-院系编号 prof_Name varchar(40),-专业名 prof_Note varchar(200) constraint
21、 pk_Prof primary key (prof_ID), constraint fk_Prof_Depart foreign key (prof_DeID) references tb_Department(depart_ID) on delete cascade on update cascade,)go(6). 班级表create table tb_Class( class_ID int, class_Year varchar(4) default Year(getDate(),-入学年份哪一级的 class_PrID int,-专业编号 class_Name varchar(40)
22、, class_Inst varchar(10),-指导员instructor class_Note varchar(200), constraint pk_Class primary key (class_ID), constraint fk_Class_Prof foreign key (class_PrID) references tb_Professional(prof_ID) on delete cascade on update cascade, )go(7). 学生信息表create table tb_Information( info_No varchar(20), info_
23、Name varchar(10), info_Sex char(2) check(info_Sex in(男,女), info_Birt varchar(10), info_NaFa varchar(8) default 汉族, info_Bipl varchar(10) default 山东省,-籍贯 info_Addr varchar(50), info_Post char(6), -邮政编码 info_Tele varchar(20), info_ID char(18),-返回不带前导空格(LTrim)、后续空格(RTrim) 或前导与后续空格(Trim) 的字符串副本。 info_Po
24、La varchar(10) check( rtrim(info_PoLa) in (其他, 群众,共青团,中共党员), info_Phot varchar(100), info_Year varchar(10),-入学时间 info_Depa int, -院系 info_Prof int, -专业 info_Clas int, -班级 info_Note varchar(1000), constraint pk_Info primary key(info_No), constraint fk_Info_clas foreign key (info_Clas) references tb_Cl
25、ass (Class_ID) on delete cascade on update cascade,) go(8). 学生成绩表create table tb_Result( resu_ID int,-成绩编号 resu_CoID int,-课程号 resu_Year varchar(4), -年份 resu_Term char(2) check(resu_Term in (上,下),-学期 resu_Scor int not null default 0, constraint pk_Resu primary key(resu_ID,resu_CoID), constraint fk_Re
26、su_Cour foreign key (resu_CoID) references tb_Course(Course_ID) on delete cascade on update cascade,) go(9). 奖罚记录create table tb_RewardPunishment( rePu_ID int identity, rePu_Type varchar(4) check(rePu_Type in(奖励,惩罚), rePu_Time varchar(10) not null, rePu_Note varchar(1000) not null, constraint pk_ReP
27、u primary key (rePu_ID),)(10). 专业课程联系表gocreate table tb_Prof_Cour( course_ID int, prof_ID int, constraint pk_Prof_Cour primary key(course_ID,prof_ID), constraint fk_Prof_Cour_Cour foreign key(course_ID) references tb_Course(course_ID), constraint fk_Prof_Cour_Prof foreign key(prof_ID) references tb_
28、Professional(prof_ID),)go(11). 课程学生联系表create table tb_Cour_Info( info_No varchar(20), course_ID int, constraint pk_Cour_Info primary key(info_No,course_ID), constraint fk_Cour_Info_Info foreign key(info_No) references tb_Information(info_No), constraint fk_Cour_Info_Cour foreign key(course_ID) refer
29、ences tb_Course(course_ID),)go(12). 学生奖惩联系create table tb_Info_RePu( info_No varchar(20), rePu_ID int, constraint pk_Info_RePu primary key(info_No,rePu_ID), constraint fk_Info_RePu_Info foreign key(info_No) references tb_Information(info_No), constraint fk_Info_RePu_RePu foreign key(rePu_ID) referen
30、ces tb_RewardPunishment(rePu_ID)go(13). 学生成绩联系create table Info_Resu( info_No varchar(20), resu_ID int, resu_CoID int, constraint pk_Info_Resu primary key(info_No,resu_ID,resu_CoID), constraint fk_Info_Resu_Info foreign key(info_No) references tb_Information(info_No), constraint fk_Info_Resu_Resu_ID
31、 foreign key(resu_ID,resu_CoID) references tb_Result(resu_ID,resu_CoID),)use Expulsiongo查看某用户的登录日志create view vi_Admin_Log(UserName,IP,LoginTime) asselect a.admin_User,l.log_IP,l.log_Timefrom tb_Admin as a,tb_Log as l where a.admin_ID=l.log_UsIDgoselect * from vi_Admin_Log where UserName=cachego建立专业
32、课程视图create view vi_Prof_Cour(Professional,Course,Credit,Note) asselect p.prof_Name,c.course_Name,c.course_credit,c.course_Notefrom tb_Professional as p,tb_Course as c, tb_Prof_Cour as pcwhere p.prof_ID=pc.prof_ID and c.course_ID=pc.course_IDgoselect * from vi_Prof_Courgo查看学生奖惩信息create view vi_Info_R
33、ePu(Sno,Name,Prof,Clas,rePu_Type,rePu_Time,Note) asselect i.info_No,i.info_Name,p.prof_Name,c.class_Name,r.rePu_Type,r.rePu_Time,r.rePu_Notefrom tb_Information as i,tb_RewardPunishment as r, tb_Info_RePu as ir,tb_Professional as p,tb_Class as cwhere i.info_No=ir.info_No and r.rePu_ID = ir.rePu_ID an
34、d p.prof_ID=i.info_Prof and c.class_ID=i.info_Clasgo select * from vi_Info_RePugo建立学生成绩视图create view vi_Info_Resu(Sno,Name,Prof,Clas,Cour,RYea,Term,Scor) asselect i.info_No,i.info_Name,p.prof_Name,c.class_Name,co.course_Name,r.resu_Year,r.resu_Term,r.resu_Scorfrom tb_Information as i,tb_Result as r,
35、 tb_Info_Resu as ir, tb_Professional as p,tb_Class as c,tb_Course as cowhere i.info_No =ir.info_No and r.resu_CoID=ir.resu_CoID and r.resu_ID=ir.resu_ID and co.course_ID=r.resu_CoID and p.prof_ID=i.info_Prof and c.class_ID=i.info_Clas goselect * from vi_Info_Resu2. 装载数据use Expulsiongo插入用户表insert tb_
36、Admin (admin_Pass,admin_Perm,admin_User) values (123,1,cache)-0普通用户,管理员go插入登录日志表insert tb_Log (log_UsID,log_IP) values (1,192.168.1.109)go插入系院表insert tb_Department (depart_ID,depart_Name,depart_Dire,depart_Note)values (1,信息工程学院,韩剑 ,青岛滨海学院)go插入课程表insert tb_Course (course_ID,course_Name,course_PrNo,co
37、urse_credit,course_Note)values(1,数据库原理,1,2,一门重要的课程)go插入专业表insert tb_Professional (prof_ID,prof_DeID,prof_Name,prof_Note)values (1,1,软件工程,09软件工程)go插入班级表insert tb_Class (class_ID,class_Inst,class_Name,class_PrID,class_Year,class_Note)values (2,曹锋,09软件工程,1,09,)go插入学生信息表insert tb_Information(info_No,inf
38、o_Name,info_Sex,info_Birt,info_NaFa,info_Bipl,info_Addr,info_Post,info_Tele,info_Year,info_Depa,info_Prof,info_Clas)values(,曹锋,男,1988-12-6,汉族,山东省,潍坊市,2009-9-1,1,1,2)go插入成绩表insert tb_Result(resu_ID,resu_clas,resu_CoID,resu_Year,resu_Term,resu_Scor)values(1,2,1,2009,下,90)go插入奖惩表insert tb_RewardPunishment (rePu_Type,rePu_Time,rePu_Note)values(奖励,2009-1-1,*)go插入联系表tb_Prof_Courinsert tb_Prof_Cour (course_ID,prof_ID) values(1,1)go插入联系表tb_Info_RePuinsert tb_Info_RePu (info_No,rePu_ID) values(,1)