学生档案管理系统
发布时间:2020-03-23 12:58:10
发布时间:2020-03-23 12:58:10
课程设计说明书
(数据库技术及实训)
题目: 学生档案管理系统
院 系: 计算机科学与工程学院
专业班级:物联网工程12-2班
学 号: 99
学生姓名: 吴 晓 路
指导教师: 梁 兴 柱
2014年 5 月 21日
安徽理工大学课程设计(论文)任务书
计算机科学与工程学院 数字媒体系
学 号 | 99 | 学生姓名 | 吴晓路 | 专业(班级) | 物联网工程12-2 | |||
设计题目 | 学生档案管理系统 | |||||||
设 计 技 术 参 数 | 数据库: SQL Server 2005或2000 开发语言:C#、JAVA、 C++ 等 (1)主要的数据表: 学生信息数据表,专业班级数据表,系统用户数据表等。 (2) 主要功能模块 系统管理:管理员帐号添加、修改、删除、密码修改等。 专业班级管理:实现专业班级的添加、删除、修改、查询等功能。 学生信息管理:实现学生信息的添加、删除、修改、查询等功能。 学生检索:要求提供多种检索方式。 | |||||||
设 计 要 求 | (1) 1~3人为一个小组,小组成员既要有团队协作精神,又要分工明确。每个学生都必须充分了解整个设计的全过程。 (3) 从开始的系统需求分析到最后的系统测试,都要有详细的计划,设计文档应按照软件工程的要求书写。 (3) 系统中的数据表设计应合理、高效,尽量减少数据冗余。 (4) 系统界面要友好、安全性高。 | |||||||
工 作 量 | 课程设计说明书字数要求3000以上,不包括图表。 | |||||||
工 作 计 划 | 第 6 周:需求分析,总体设计 第 7~10 周:详细设计,上机调试 第 11周:编写课程设计说明书及验收 | |||||||
参 考 资 料 | [1] 王珊,萨师煊. 数据库系统概论[M]. 北京:高等教育出版社,2005. [2] 周奇.SQL Server 2005数据库基础与应用技术[M].北京:电子工业出版社,2008 [3] C#高级编程(第6版)中文版[M]. | |||||||
指导教师签字 | 教研室主任签字 | |||||||
2014年4 月1 日
指导教师评语: 成绩: 指导教师:
年 月 日 |
安徽理工大学课程设计(论文)成绩评定表
摘要
学生档案管理系统是典型的管理信息系统(MIS),其系统开发主要包括数据库的规划设计与维护、客户端应用程序的开发两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,而对于后者则要求程序界面友好、功能完备,容易使用,具有流行软件的操作习惯等特点。经过详细的调查分析,我选用JAVA作为前端开发工具,利用其提供的集成开发环境及支持面向对象的各种标准化的控件,达到对学生学籍管理的目的。设计时首先在短时间内先建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。
关键词:学生档案, 管理, 分析, 设计, 实现
1系统分析
一、概述
1、项目背景:数据库原理课程设计
2、编写目的:掌握数据库设计原理及相关软件的使用
3、软件定义:学生档案管理系统
4、开发环境:SQL Server 2005
二、需求分析
1、问题的提出:
为了高效率的完成学生档案的管理,决定开发学生档案管理系统。
2、需完成的功能:
(1)能录入、修改、查询、输出学生的档案信息,这些信息包括学生的基本情况、简历情况、获得奖励情况、受到处分情况、学生的家庭信息、学生的体检情况等。
(2)能录入、修改、查询、输出学生的入校成绩、各学期各门课的成绩信息,并支持按年级、班级等条件的统计、查询、报表输出。2系统设计
3、目的和意义:
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践
更好的结合起来,巩固所学知识。
数据库应用 课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
数据库原理 软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
4可行性分析
1 实现学生基本情况的录入,修改,删除等基本操作.
2 对学生基本信息提供灵活的查询方式.
3 完成一个班级的学期选课功能.
4 实现学生成绩的录入,修改,删除等基本操作.
5 能方便的对学生的各学期成绩进行查询.
6 具有成绩统计,排名等功能.
?
2系统设计
数据字典
表1 学生信息表
字段名 | 字段类型 | 长度 | 主键或外键 | 字段值约束 |
学号 | int | 4 | Primary Key | Not Null |
姓名 | char | 10 | ||
性别 | Char | 2 | ||
出生日期 | Datetime | |||
班号 | char | 12 | ||
联系电话 | Char | 11 | ||
入学日期 | datetime | |||
年级 | char | 10 | ||
专业 | char | 10 | ||
状态 | char | 10 | ||
表2 课程信息表
字段名 | 字段类型 | 长度 | 主键或外键 | 字段值约束 |
课程号 | Char | 10 | Primary Key | Not Null |
课程名 | char | 10 | ||
学分 | Char | 10 | ||
课程类型 | char | 10 | ||
表3 班级信息
对应中文属性名 | 字段类型 | 长度 | 主键或外键 | 字段值约束 |
班号 | Char | 12 | Primary Key | Not Null |
年级 | char | 10 | ||
专业 | Char | 10 | ||
班主任 | Char | 10 | ||
表4 选课表
字段名 | 字段类型 | 长度 | 主键或外键 | 字段值约束 |
学号 | int | 4 | Foreign Key | Not Null |
姓名 | Char | 10 | ||
课程号 | Char | 10 | Foreign Key | Not Null |
课程名 | Char | 10 | ||
学分 | Char | 10 | ||
表5 成绩信息表
表 成绩信息表字段名 | 字段类型 | 长度 | 主键或外键 | 字段值约束 |
学号 | int | 4 | Foreign Key | Not Null |
姓名 | Char | 10 | ||
课程号 | Char | 10 | Foreign Key | Not Null |
课程名 | Char | 10 | ||
学分 | Char | 10 | ||
课程名 | Char | 10 | ||
学期 | int | 4 | ||
表.6 教学计划表
字段名 | 字段类型 | 长度 | 主键或外键 | 字段值约束 |
年级 | int | 4 | Foreign Key | Not Null |
班号 | Char | 12 | Foreign Key | Not Null |
专业 | Char | 10 | ||
学期 | int | 4 | ||
课程号 | Char | 10 | Foreign Key | Not Null |
课程名 | Char | 10 | ||
关系图:
学生信息:(学号,姓名,入学时间,班号,性别,联系电话,出生日期,专业,状态)
课程信息:(课程号,课程名,课程类型,学分)
班级信息:(班号,年级,专业,班主任)
选课表: (学号,姓名,课程号,课程名)
教学计划:(年级,专业,学期,课程名)
3系统实现
主要代码
⑴ 建立数据库对象,查询语句的全部SQL命令(存储过程)
create table 学生信息
(学号int primary key NOT NULL,
姓名char(10),
性别char(2),
出生日期datetime,
班号char(12),
年级char(10),
电话号码char(11),
入学日期datetime,
专业char(10),
状态char(10),
)
create table 课程信息(
课程号char(10) primary key not null,
课程名char(10),
课程类型 char(10),
学分char(10) )
create table 班级信息(
班号char(12)primary key not null,
年级char(10),
班主任char(10),
专业char(10) )
create table 选课表(
学号char(10),
姓名char(10),
年级char(10),
课程号char(10),
课程名char(10),
)
create table 成绩信息(
学号int not null,
姓名char(10),
课程号char(10),
课程名char(10),
成绩float(8),
学分char(10),
学期int )
Create table 教学计划表(
年级char(10),
专业char (10),
班号char(12),
学期int,
课程号char(10),
课程名char(10), )
CREATE procedure 添加学生信息
(@学号int,
@姓名char(10),
@性别char(2),
@出生日期datetime,
@班号char(12),
@电话号码char(11),
@入学日期datetime,
@专业char(10),
@状态char(10),
@回复char(20)output)
as
if exists(select*from 学生信息where 学号=@学号)
begin
set @回复='本条记录已经存在'
end
else
insert
into
学生信息
values(@学号,@姓名,@性别,@出生日期,@班号,@电话号码,@入学日期,@专业,@状态)
GO
CREATE procedure 删除学生信息
(@学号int)
as
if exists(select*from 学生信息where 学号=@学号)
DELETE
FROM学生信息WHERE学号in(@学号)
if exists(select*from 选课表where 学号=@学号)
DELETE
FROM选课表WHERE学号in(@学号)
if exists(select*from 成绩信息where 学号=@学号)
DELETE
FROM成绩信息WHERE学号in(@学号)
Go
CREATE PROCEDURE 修改学生信息
(@学号int,
@姓名char(10),
@性别char(2),
@出生日期datetime,
@班号char(12),
@电话号码char(11),
@入学日期datetime,
@专业char(10),
@状态char(10) )
as
UPDATE 学生信息
SET 学号=@学号,姓名=@姓名,性别=@性别,出生日期=@出生日期,班号=@班号,电话号码=@电话号码,入学日期=@入学日期,专业=@专业,状态=无
WHERE 学号=@学号
Go
create procedure 查询学生信息
@姓名char(10)
as
SELECT * FROM 学生信息WHERE 姓名=@姓名
go
create procedure 班级选课
(@班号char(12),
@年级char(10),
@专业char(10),
@学期int)
As
Insert
Into选课表
Values('select学号from学生信息where(年级=@年级and班号=@班号and专业=@专业)','select姓名from学生信息where(年级=@年级and班号=@班号and专业=@专业)','select课程号from教学计划where(年级=@年级and班号=@班号and专业=@专业and学期=@学期)','select课程名from教学计划where(年级=@年级and班号=@班号and专业=@专业and学期=@学期),select学分from课程信息where课程号=(select课程号from教学计划where年级=@年级and班号=@班号and专业=@专业)')
Go
Create procedure 添加成绩信息
(@学号int,
@姓名char(10),
@课程号char(10),
@课程名char(10),
@成绩float(8),
@学分char(10))
As
Insert into成绩信息
Values(@学号,@姓名,@课程号,@课程名,@成绩,@学分)
Go
Create procedure 删除成绩信息
(@学号int)
As
DELETE
FROM成绩信息WHERE学号in(@学号)
Go
Create procedure 修改成绩信息
(@学号int,
@姓名char(10),
@课程号char(10),
@课程名char(10),
@成绩float(8),
@学分char(10) )
As
Update 成绩信息
set 学号=@学号, 姓名=@姓名,课程号=@课程号,课程名=@课程名,成绩=@成绩,select学分from课程信息where课程号=@课程号
where 学号=@学号
Go
Create procedure 成绩查询
@学号,
@学期
As
Select学号,姓名.成绩from成绩信息where学号=@学号and学期@学期、
Go
Create procedure 成绩排名
(@班号char(12),
@年级char(10),
@专业char(10))
As
Select 学号,姓名,成绩
from成绩信息,班级信息
where成绩信息.(select学号from学生信息where班号=@班号and年级=@年级and专业=@专业)=班级信息.(select学号from学生信息where班号=@班号and年级=@年级and专业=@专业)
Order by 成绩DESC
Go
Create procedure 成绩统计
(@班号char(12),
@年级char(10),
@专业char(10))
As
Select sum(成绩) 总成绩
from 成绩信息,班级信息
where成绩信息.(select学号from学生信息where班号=@班号and年级=@年级and专业=@专业)=班级信息.(select学号from学生信息where班号=@班号and年级=@年级and专业=@专业)
Group by学号
Go
Create procedure 留级休学
As
If ((select sum(学分)from成绩信息group by 学期)<=20)
Begin update 学生信息set 状态='留级'
End
Else
Begin
Update 学生信息set 状态='null'
End
Go
数据库备份
Use master
Go
Exec sp_addumpdevice’disk’,’学生管理系统_1’,
DISK=”c:\Program Files\Microsoft SQL Sever\MSSQL\BACKUP\学生管理系统”
Go
BACKUP DATABASE 学生管理系统TO学籍管理系统_1
Go
还原数据库备份
RESTORE DATABASE 学生管理系统
From学籍管理系统_1
Go
4总结
设计体会
经过一个星期的课程设计,我终于完成这次的课程设计:学生档案管理系统。我主要针对的是对代码部分的基本操作。
整个系统是一个综合的信息管理系统,其开发主要包括数据库的建立以及前端应用程序的开发两个方面。其重点核心为数据库建立和开发过程。
本次课程设计在数据库系统的设计方面深入地讨论了学生信息管理系统设计的技术要点,在本次的课程设计过程中,遵循了数据库开发过程的基本步骤,基本实现了数据库的建立和能够实现数据库的基本操作。通过这次的实践,我对数据库的设计有了深刻的了解,同时对于开发一个数据库系统过程也有了一个比较全面的认识。。
由于课程设计时间较短,加上本人能力有限,因此该系统还有些不尽如人意的地方,有待进一步改善。我会从这些设计中汲取经验总结,在今后的学习加强锻炼,同时我对加强对数据库学习,加强了动手实践能力。
系统改进
此次的数据库的数据库课程设计,这个系统达到了基本的要求,可分别对用户及管理员登录情况进行验证,能够通过对页面实现对数据库的查询,显示,添加、修改和删除数据库中的数据并显示出来。但本次的数据库课程设计还有很多可以改进的地方,如可以实现对数据库中多个表的操作,以及数据库系统中的关系表可以实现更紧密关联。另外可以加入系统管理员的相关信息表。在这些可改进功能的基础上也可以对页面进行更友好,更加人性化的设计。
参考文献
.
[1]赛奎春.Visual Basic 工程应用与项目实践.北京:机械工业出版社,2005
[2]刘瑞新.Visual Basic 管理信息系统开发毕业设计指导及实例.北京:机械工业出版社,2005
[3]赵斯思.Visual Basic 数据库编程技术与实例.北京:人民邮电出版社,2004
[4]占维 刘伟编.Visual Basic 数据库实用编程100例.北京:中国铁道出版社,2004
[5]潘地林.Visual Basic程序设计.合肥:中国科学技术出版社,2005
[6]张海藩.软件工程.北京:人民邮电出版社,2002
[7]张湘辉.软件开发的过程与管理.北京:清华大学出版社,2005
[8]Joseph Schmuller.李虎 赵龙刚译.UML基础、案例与应用(第三版).北京:人民邮电出版社,2004
[9]Ryan Ronald .张启镛译.轻松掌握SQL(第四版) .北京:电子工业出版社,2003
[10]王珊 萨师煊.数据库系统概论.北京:高等教育出版社,2006
[11]辛立伟 张帆.Java从入门到精通.北京:电子工业出版社,2010