




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生成绩管理系统 -数据库原理课程设计姓 名: _班 级: _学 号: _指导老师: _成 绩: _ 评 语 计算机工程学院 基于VC的学生成绩管理系统摘要 学生成绩管理工作是学校管理工作的重要组成部分,随着学校规模的扩大、学生人数的增加,利用计算机技术和数据库技术设计开发学生成绩管理系统、实现学生成绩理工作的自动化成为学生管理部门的迫切需要。本系统提供了学生的基本信息的查询、学生成绩的管理程教师的基本信息的管理等,主要包据了成绩的查询、录入、修改、删除和数据库的备份等功能。好的学生成绩管理系统为管理学生成绩提供了方便,有效提高了对学生的成绩的管理。本文介绍此次课程设计的选题背景和意义,相关的研究和设计的过程,以及设计思路和实现细节的考虑,为便于说明,文中绘制了程序结框图、数据流程图和部分界面图。最后给出了我在本次课程设过中的体会。关键词 VC+ SQL语言 ODBC 数据库 存储过程 触发器 视图目录第一章 引言11.1 课题研究背景与意义11.2 本课题研究内容与目标11. 开发环境11.体系结构设计1第二章 需求分析12.1 信息要求22.2 处理要求.22.3 安全性与完整性要求.2第三章 概念结构设计13.1 分图23.2 总图2第四章逻辑结构设计1.1 关系模型2.2 数据模型优化2.数据字典2.视图设计2第五章 数据库的实施和维护15.1 储存过程设计25.2 触发器设计25.3模块设计2结论6参考文献2第一章引言1.1课题研究背景与意义 学生成绩管理工作是学校管理工作的重要组成部分,利用计算机技术和数据库技术设计开发学生学籍管理系统、实现学生学籍管理工作的自动化成为学生管理部门的迫切需要。学生的成绩管理系统能大幅度地提高对成绩管理的效率,方便教师及教务处对学生成绩的管理.本系统主要完成对学生和教师的基本信息的录入、查询和删除;对学生的成绩的管理(包括成绩的查询、录入、修改、删除);以及数据库的备份等操作。由于刚开始数据库设计的不是很好以及对VC运用的不熟练,所以有些功能想加上去,迫于水平和时间的有限,只能粗略地实现这些功能。1.2本课题研究内容与目标本课题研究对学生成绩管理系统要实现哪些功能才能为广大师提供方便,应用对数据据原理的理论学习,通过上机实践的方式将理论知识与实践更好的给合起来,巩固所学的知识。实践和巩固在课堂教学中学习的关于数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个学生成绩管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。1. 开发环境硬件:PC,CPU:AMD Core Processor 4000+,内存:1.00GB,硬盘:160GB;操作系统:Microsoft WindowsXP;软件:Visual C+ 6.0 Server 20001.4体系结构设计登陆界面输入用户名和密码用户名和密码正确?执行主菜单YN退出基本信息查看学生信息查看教师信息学生信息管理教师信息管理成绩查询学号查询班级查询系查询显示全部平均分个人平均分班级平均分成绩管理添加成绩修改成绩删除成绩系统管理修改密码退出数据库管理数据库完全备份数据库差异备份删除数据库作者信息Author第二章 需求分析2.1 信息要求(1)学生成绩管理系统包含学生和教师的基本信息的处理,学生成绩的管理,数据库的管理,登陆用户的管理。(2)学生信息包括学号、姓名、性别、年龄、电话、系名、班级;通过学号可查找相应学生的各科成绩。(3)课程表包括课程号、课程名称、学时、学分、任课老师号。(4)系包括系名、系主任、系人数。(5)班级包括班级名、班主任、班级人数、系名。(6)教师表包括教师号、教师名、学历、联系方式。0层数据流图:1层数据流图:2.2 处理要求能对学生和教师的信息进行查询、录入、修改、删除;能够查询学生的各科成绩、平均分,并能对其进行修改、删除等操作。2.3 安全性与完整性要求安全性:(1) 管理员能够方便的对信息进行添加、修改、删除、查询、汇总、统计等操作。(2)教师可以在自己的权限内,对学生的成绩进行录入、修改、删除操作。(3) 学生可以在自己的权限内对信息进行访问,查询相关信息。完整性:(1) 能够防止合法用户使用数据库向数据库中添加不合语义的数据。(2) 通过各个表之间的联系来实现数据完整性约束。第三章 概念结构设计3.1 分图登陆表E-R图 主键:用户名,用户类型学生信息表E-R图 主键:学号 外键:系名,班级系表E-R图 主键:系名成绩表E-R图 主键:学号,课程号 外键:学号,课程号班级表E-R图 主键:班级 外键:系名课程表E-R图 主键:课程号 外键:任课老师教师表E-R图 主键:教师号3.2 总图 合并E-R图第四章逻辑结构设计4.1 关系模型将总体概念结构E-R图转化成关系模型登陆(用户类型,用户名,密码)学生信息(学号,姓名,性别,年龄,电话,系名,班级)系(系名,系主任,系人数)成绩(学号,课程号,学年学期,成绩)班级(班级,班主任,班人数,系名)课程表(课程号,课程名称,学时,学分,任课老师)教师(教师号,教师名,学历,联系方式)4.2 数据模型优化将转化的关系模型进行优化,最终达到第三范式(1) 确定数据依赖登陆(用户类型,用户名,密码)(用户类型,用户名)-密码学生信息(学号,姓名,性别,年龄,电话,系名,班级)学号-姓名,学号-性别,学号-年龄,学号-电话,学号-系名,学号-班级,(学号,姓名)-性别,班级-系名,系(系名,系主任,系人数)系名-系主任,系名-系人数成绩(学号,课程号,学年学期,成绩)(学号,课程号)-学年学期,(学号,课程号)-成绩,班级(班级,班主任,班人数,系名)班级-班主任,班级-班人数,班级-系名,(班级,班主任)-班人数课程表(课程号,课程名称,学时,学分,任课老师)课程号-课程名称,课程号-学时,课程号-学分,课程号-任课老师教师(教师号,教师名,学历,联系方式)教师号-教师名,教师号-学历,教师号-联系方式(2) 这些关系都符合要求,属于第三范式,所以不用再对这些模式进行分解了.4.3数据字典 表1:学生信息表字段名称数据类型长度约束课程号varchar20不为空课程名称varchar20不为空学时float8不为空学分float8不为空任课老师varchar10不为空 表2系表字段名称数据类型长度约束系名varchar20不为空系主任varchar10不为空系人数int 4 表3登陆表字段名称数据类型长度约束用户类型varchar10不为空用户名varchar10不为空密码varchar10不为空 表4班级表字段名称数据类型长度约束班级varchar20不为空班主任varchar10班人数int 4系名varchar20不为空 表5教师字段名称数据类型长度约束教师号varchar10不为空教师名char10不为空学历varchar20联系方式varchar20 表6成绩字段名称数据类型长度约束学号char10不为空课程号varchar20不为空学年学期varchar20不为空成绩float80150 表7学生信息字段名称数据类型长度约束学号char10不为空姓名varchar10不为空性别char2不为空年龄int 4不为空电话varchar20系名varchar20不为空班级varchar20不为空4.4视图设计(1)打印成绩60分的学生create view V_gradeasselect A.学号,A.姓名,A.性别,B.课程号,C.课程名称,B.成绩from 学生信息 A,成绩 B,课程表 Cwhere A.学号=B.学号 and B.课程号=C.课程号 and 成绩60执行:select * from V_grade(2) 查看计算机工程学院的考试情况create view V_computerasselect B.学年学期,A.学号,A.姓名,A.班级,C.课程名称,B.成绩from 学生信息 A,成绩 B,课程表 Cwhere A.学号=B.学号 and B.课程号=C.课程号 and A.系名=计算机工程学院执行: select * from V_computer第五章 数据库的实施和维护5.1约束关系:(1)为成绩表添加约束 成绩只能在0150之内alter table 成绩add constraint CK_成绩 check (成绩 between 0 and 150)(2)为成绩表创建索引create index IX_成绩 on 成绩(学年学期 ASC)5.2 储存过程设计(1)根据输入的参数删除学生信息create proc DeleteNum_procnumber char(10)as delete 学生信息 from 学生信息where 学号=number(2) 根据参数添加教师信息create proc AddTeacher_procteanumber varchar(10),teaname char(10),teasc varchar(20),teaphone varchar(20)asinsert into 教师values(teanumber,teaname,teasc,teaphone)(3) 根据传入的参数删除相应的教师信息create proc DeleteTea_procteanumber varchar(10)asdelete 教师from 教师where 教师号=teanumber(4)添加学生的信息create proc AddStu_procstunum char(10),stuname varchar(10),stusex char(2),stuyear int,stuphone varchar(20),stuxi varchar(20),stuclass varchar(20)asinsert into 学生信息values(stunum,stuname,stusex,stuyear,stuphone,stuxi,stuclass)5.3 触发器设计(1) 为学生信息表创建触发器,当删除学生信息时,删除相应的成绩表中的内容。create trigger tri_学生信息on 学生信息 for delete asdelete 成绩 from 成绩 A,deleted Bwhere A.学号=B.学号(2)当教师退休后,删除其资料,并将其从课程表中删除,所以创建一个触发器create trigger tri_教师on 教师 for delete asdelete 课程表 from 课程表 as A,deleted as Bwhere B.教师号=A.任课老师(3) 添加学生信息时,就为其添加登入信息create trigger tri_login on 学生信息 for insertasdeclare name varchar(2)declare password varchar(10)select name=姓名 from inserted select password from insertedinsert into 登陆values(学生,name,password)(4)删除学生信息时,也删除登陆表中的信息create trigger tri_destuon 学生信息 for deleteasdeclare name varchar(2)declare password varchar(10)select name=姓名 from deletedselect password=学号 from deleteddelete 登陆 from 登陆where 用户名=name and 密码=password5.4模块设计(1)模块一:基本信息该模块主要完成对学生及教师的查询、添加、以及删除等功能,在添加学生信息时,自动将其添加到登陆列表中,为其添加登陆的权限.先在SQL分析器中创建一个触发器,在向学生信息表中添加信息时,就会触发.建四个对话框,两个对话框用来显示学生信息和教师信息,另外两个对话框用来实现对学生和教师信息的管理.在显示基本信息对话框中,为其添加CLIST CONTRL控件,弄成报表的形式,在程序中调用建立的几个记录集.利用滚动记录的几个函数,实现向报表控件中添加数据,这样就可以把学生和老师的信息给显示出来.而在对学生和教师信息管理的对话框中,设立几个变量与对话框中的EDIT编辑框相关联.调用UpateData(),可以把输入的值传给变量,这样就可以实现所想要的功能.(2)成绩查询模块. 该模块主要用于查询学生的成绩,实现学生成绩的查询.按学号查询该学生的全部考试信息.按班级查询,可以获得该班级学生的考试信息,不分学期.按系查询,可以获得某系的全部考试信息.另外两个对话框实现查询个人平均分和班级成绩情况的查询.前两个对话框就不再叙述了,原理与前面的一样,在求平均分时,根据输入的学年学期和学号,可以查询该学生在这个学年的考试平均分,考试门数程不及格的门数.在实现求平均分过程中,本想用存储过程进行实现的,但由于在MFC中不知道如何调用有返回值的存储过程,所以用一个个比较过去,记录总和和考试课程数.这样就可以求出相应的平均分.不及格数也呼之欲出.求班级成绩也同理可得。(3) 成绩管理模块 该模块实现对成绩的录入、修改、删除功能。三个模块的功能是类似的,所以只要实现一个,其他的两个就相当容易了,在这里,我是调用SQL语句进行添加、修改和删除的。首先把几个编辑框与几个变量进行关联,其实不用关联也是可以的,可以利用GetDlgItem(ID号)-GetWindowText(字符串变量),这样也可以把值传送给变量。建立一个数据类对象CDatabase m_db,用这个对象打开相对应的数据库,用str.Format(“SQL语名”),对字符串进行格式化成SQL语句,这样就可以用m_db.ExecuteSQL(str),执行SQL语句,这样相写一个函数进行查询,省了很多的代码,比较简洁。也可以调用存储过程进行实现,因为获取返回值的存储过程不会,所以这里有调用的存储过程是没有返回值的。(4) 系统管理模块和数据库管理模块这两个模块,一个用于修改用户的密码,一个用于数据库的备份与删除。在修改密码这个对话框中,把用户登陆名给显示出来,旧密码保存在全局变量中,用来检验用户输入的旧密码是否正确,如果正确的话,调用SQL语句的Update对数据库中的相应元组进行修改。数据库备份这个模块,用了一个CCOMBOX控件,用来让用户选择进行哪种数据操作,有数据库完全备份,差异备份和移除设备。这三个都是调用数据库的相应命令进行操作。如完作备份,刚调用如下语句:sql.Format(backup database student to disk=%s,m_getpathname);此处是利用CFileDlg进行相应的操作。不过这段内容有点缺陷,就是在退出程序后,原来保存的那个路径名会清空,所以还得再选择路径进行备份。结论 在本次课程设计过程中,学到了很多知识,由于课程设计起草的比较晚,所以功能比较差些,功能也未能进行更深入的思考,自己也对VC涉足不深,所以在运用方面有所欠缺,数据库方面,整体考虑也不周到。在课设的前一周有对课设考虑了一下,本来有考虑了好几个模块,像成绩录入模块、班级统计模块、年级统计模块。在成绩录入模块中再分别进行录入、修改、增加、删除、查询、打印等功能。班级统计模块又分别有学生总成绩、平均成绩、班级排名、统计班级某分数段内的学生成绩人数、各学生该科成绩、班级排名等功能(只相对于某个学期)。还有年级统计模块,分为各年级各专业学生总成绩还有排名、各学生各科成绩年级排名,各班各分数段人数等功能。不过在考完试之后再开始真正做课程设计,时间有些伧促,所以只是实现其中的一部分功能。在用VC与SERVER 2000进行学生成绩管理系统的设计时,开始对用ODBC连接数据库时,经过了一天的时间,本打算用ADO进行连接,不过对我来说有点眼高手低,对ADO与ODBC都是一点都不懂,最后还是决定用ODBC进行连接,相对比较容易上手。通过本次课程设计,对在VC+中如何编写基本的ODBC数据库等有了初步的认识,还有也提高了Windows编程技术,进一步提高了Visual C+的操作能力,虽然在之前看过孙鑫的一些视频,由于很少进行操作,忘了差不多了,只记得些基本的操作。就比如在求平均分时,就花了我一个下午的时间进行实现这个功能,主要是对属性表单的创建不知道,所以要查找资料,翻出孙鑫的视频,进行摸索,在程序中把属性表单的类建成基于对话框的类,在改过来的过程中经历
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI赋能高校思政教育的策略及实施路径
- 散文的鉴赏技巧:初中语文高级教学
- 写人绘形画影的绘画作文(12篇)
- 上海建平中学高一(下)期末语文试题及答案
- 我心中的老师抒情作文5篇
- 描写月全食作文八年级(8篇)
- 廉颇蔺相如列传故事解析:初中语文教案
- 案件执行协议书
- 详细工作经历及岗位证明文书(6篇)
- 公交公司学雷锋活动方案
- 人工智能导论习题答案
- 企业招标投标法律实务讲座课件
- dzz4四、六要素自动气象站用户手册
- 网络舆情概论(微课版)全书电子讲义完整版课件
- GB/T 31.1-2013六角头螺杆带孔螺栓
- GB/T 2900.50-2008电工术语发电、输电及配电通用术语
- GB/T 2518-2008连续热镀锌钢板及钢带
- GB/T 20145-2006灯和灯系统的光生物安全性
- GB 14784-2013带式输送机安全规范
- 常用公文的写作方法和要求课件
- 学前儿童发展评价课件
评论
0/150
提交评论