数据库综合实验报告(学生成绩管理系统)
学生成绩管理系统实验报告

高校成绩管理系统数据库设计与实现班级计科1201 班学号201226100105 姓名何霞1、需求分析计算机已经深入到日常工作和生活的方方面面,成为我们学习和工作的得力助手,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
随着越来越多的应用软件出现,人们对它的要求也越来越高;虽然现在世界上的各种软件层出不穷,但它们依然不能满足用户的各种特殊需要,所以人们仍是不得不开发适合特殊需求的软件。
高校成绩管理系统记录了一个大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。
使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率,也是高校成绩正规化管理的重要途径。
本软件控件均以中文形式表示,对普通程序使用者的查询提供简单方便的快捷操作,不需要技术含量。
以SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应用系统开发能力。
操作人员与维护人员应懂的SQL语言。
运行环境:硬件环境:高性能计算机一台软件环境:A.windows系列B.Microsoft SQL Server 2012C.MyEclipse Professional1.1 数据需求描述①.系统整体需求分析②.系统重要功能需要分析成绩查询功能教师授课信息查询功能班级课程安排查询功能1.2 系统功能需求(1)学生成绩按每学年进行成绩统计;(2)学生成绩名次排定,按升序排列;(3)每门课程平均成绩统计;(4)学生所学课程及学分统计;(5)输入每个学生成绩时,自动生成该学生已修总学分;(6)学生成绩查询;(7)教师任课查询;(8)班级课程开设查询;系统功能图:1.3 其他性能需求(1)可供多用户同时使用(2)用户输入出错时,有错误提示(3)安全性高(4)存储需求描述2、概念结构设计局部E-R图全局E-R图3、逻辑结构设计3.1 关系模式设计教师(教师编号,教师姓名,教师性别,教师年龄,职称,联系电话)上课(教师编号,班级编号)授课(教师编号,课程编号)课程(课程编号,课程名称,教师姓名,开课学期,学时,考试或考察,学分)学习(学号,课程编号,学期,课程名称,成绩教师姓名)学生(学号,学生姓名,学生性别,学生年龄,生源所在地,已修学分总数,班级编号)开设(课程编号,班级编号)班级(班级编号,班级名称,专业编号)专业(专业编号,专业名称)3.2 数据类型定义(1)Dept_Hx(学院信息)数据项名数据类型长度完整性约束学院编号(Dno_hx) char 20 主键,唯一,非空学院名称(Dname_hx) char 20(2)Teacheres_Hx(教师信息)数据项名数据类型长度完整性约束教师编号(Tno_hx) char 10 主键,唯一,非空教师姓名(Tname_hx) char 20教师性别(Tsex_hx) char 2教师年龄(Tage_hx) int职称(Tposi_hx) char 20联系电话(Ttele_hx) char 20学院编号(Dno_hx) char 20(3)Major_Hx(专业信息)数据项名数据类型长度完整性约束专业编号(Mno_hx) char 20 主键,唯一,非空专业名称(Mname_hx) char 20学院编号(Dno_hx) char 20(4)Class_Hx(班级信息)数据项名数据类型长度完整性约束班级编号(CLno_hx) char 20 主键,唯一,非空班级名称(CLname_hx) char 20(5)Students_Hx(学生信息)长度完整性约束数据项名数据类型学号(Sno_hx) char 12 主键,唯一,非空学生姓名(Sname_hx) char 20学生性别(Ssex_hx) char 2学生年龄(Sage_hx) int生源所在地(Shome_hx) char 20int已修学分总数(ScreditAccess_hx)班级编号(CLno_hx) char 20 外键(6)Course_Hx(课程信息)数据项名数据类型长度完整性约束课程编号(Cno_hx) char 20 主键,唯一,非空课程名称(Cname_hx) char 20学时(Chour_hx) int >0考试或考察(Cexam_hx) char 4学分(Ccredit_hx) char 4 >0(7)Teach_Hx(教师授课信息)数据项名数据类型长度完整性约束教师编号(Tno_hx) char 20 外键,唯一,非空课程编号(Cno_hx) char 20 外键(8)Study_Hx(学生成绩信息)数据项名数据类型长度完整性约束学号(Sno_hx) char 12 外键,唯一,非空课程编号(Cno_hx) char 20 外键学期(STterm_hx) char 10成绩(STgrade_hx) char 10教师号(Tno_hx) char 10 外键(9)Setup_Hx(班级课程信息)数据项名数据类型长度完整性约束班级编号(CLno_hx) char 20 外键,唯一,非空课程编号(Cno_hx) char 20 外键(9)3.3 关系模式的优化对关系模式进行规范化处理,对关系模式进行评价与修正4、物理结构设计4.1 聚簇设计该高校成绩管理系统数据库可建立一下聚簇:Teachers_Hx(教师编号Tno_hx)Courses_Hx(课程编号Cno_hx)Students_Hx(学生学号Sno_hx,班级编号CLno_hx)Class_Hx(班级编号CLno_hx)这几个聚簇设计是因为这几张表都是实体表,,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。
数据库应用课程设计实验报告---学生成绩管理系统

社会实践报告设计题目:_____小雨点学生成绩管理系统设计时间: 2012.7.10 至2012.7.21指导教师:评语:________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____目录设计总说明 (3)关键词 (4)绪论 (5)第1章数据库设计 (6)1.1 需求分析 (6)1.1.1 数据需求 (6)1.1.2 数据字典 (6)1.1.3 数据流程图 (7)1.2 概念分析 (7)1.3 逻辑结构设计 (9)1.4 物理实施 (9)1.4.1 创建数据库 (9)1.4.2 创建数据表 (10)1.4.3 像数据表中插入数据 (10)1.4.4 创建视图 (12)1.4.5 触发器和完整性约束 (12)1.4.6 存储过程 (13)第2章系统界面设置及主要功能 (14)2.1 添加主菜单和功能按钮 (14)2.2 登录界面设置 (15)2.3 学生信息增、删、改界面 (17)2.4 对学生信息多角度查询 (21)总结 (27)参考文献 (28)附录程序代码 (29)1 StuConStr.h头文件的代码 (29)2 登录界面“确定”按钮代码 (29)3 添加登录界面背景图片的代码 (29)4 使控件变为透明的代码 (30)5 主界面“添加”按钮代码 (30)6 主界面“查找”按钮代码 (31)7 主界面“修改”按钮代码 (33)8 主界面“删除”按钮代码 (35)9 添加菜单栏和工具栏代码 (35)10 信息查询界面“查询”按钮代码 (36)11 成绩录入界面“查询”代码 (36)12 成绩录入界面“添加”代码 (37)13 成绩录入界面“修改” (37)14 成绩录入界面“删除”按钮代码 (38)小雨点学生成绩管理系统设计总说明:在当今社会,无论中小学还是大学,成绩管理是一项必要而且很关键的工作。
数据库学生成绩管理系统课程设计报告

02
系统需求分析
功能需求
用户管理
系统需要提供用户注册、登录、权限 管理等基本功能,以确保不同用户能 够安全、有效地使用系统。
报表生成与打印
系统需要支持生成各类报表,如学生 成绩单、成绩统计表等,并提供打印 功能。
01
02
学生信息管理
系统需要支持对学生基本信息的录入 、修改、查询和删除等操作,包括学 生姓名、学号、班级等。
性能测试
在压力测试下,系统能够保持稳定的性能表现, 响应时间、吞吐量等指标均满足设计要求。
3
安全测试
系统具有一定的安全防护能力,如用户身份验证 、权限控制等,但仍需加强数据安全保护措施。
系统性能评估
响应时间
系统响应时间较快,用户操 作流畅,无明显延迟现象。
吞吐量
系统能够处理较大的数据量 ,满足多用户同时使用的需 求。
定性和可靠性。
数据表设计
根据系统需求,设计合理的数 据表结构,包括学生表、课程 表、成绩表等,并建立表之间 的关系。
数据完整性保障
通过设定主键、外键、约束等 机制,确保数据的完整性和一 致性。
数据安全性
采用密码加密、权限控制等手 段,保障数据库的安全性。
界面设计
用户界面
设计简洁、直观的用户界面,提供友 好的用户操作体验。
界面风格
采用统一的界面风格,保持整体美观 和一致性。
交互设计
通过合理的交互设计,引导用户完成 操作流程,减少错误操作的可能性。
响应式设计
界面支持响应式布局,适应不同设备 和屏幕尺寸的显示需求。
04
系统实现
开发环境搭建
开发工具
Visual Studio Code
运行环境
(2023)学生成绩管理系统数据库设计实验报告(一)

(2023)学生成绩管理系统数据库设计实验报告(一)学生成绩管理系统数据库设计实验报告实验背景随着信息技术的快速发展,学生成绩管理系统变得越来越重要。
一个好的学生成绩管理系统可以方便学生和教师查询成绩,促进教学和学习效果的提高。
实验目的本实验的目的是设计一个学生成绩管理系统的数据库,以方便学生和教师查询成绩。
数据库设计实体关系图我们先画出实体关系图,来帮助我们更好地理解数据库的关系。
学生 -- 选课 -- 课程|- 成绩|- 学期数据库表设计学生表字段名称类型约束条件说明id int primary key, auto_increment 学生ID name varchar(20) not null 学生姓名gender varchar(10) not null 学生性别age int not null 学生年龄字段名称类型约束条件说明grade int not null 学生年级major varchar(50) not null 学生专业phone varchar(20) not null 学生电话选课表字段名称类型约束条件说明id int primary key, auto_increment 选课ID student_id int not null 学生ID course_id int not null 课程ID semester varchar(20) not null 学期课程表字段名称类型约束条件说明id int primary key, auto_increment 课程ID name varchar(50) not null 课程名称credit int not null 学分成绩表字段名称类型约束条件说明id int primary key, auto_increment 成绩ID student_id int not null 学生ID course_id int not null 课程ID score int not null 成绩semester varchar(20) not null 学期实验结论通过本实验的设计,我们成功构建了一个学生成绩管理系统的数据库,包含学生、选课、课程和成绩四张表,满足了学生和教师查询成绩的需求。
成绩管理系统实验报告

成绩管理系统实验报告成绩管理系统实验报告一、引言近年来,随着教育信息化的发展,成绩管理系统逐渐成为学校管理和教育教学的重要工具。
本实验旨在设计和实现一套成绩管理系统,以提高学校成绩管理的效率和准确性。
二、系统设计与实现1.需求分析在进行系统设计之前,我们首先进行了对学校成绩管理的需求分析。
通过与学校管理人员和教师的沟通,我们了解到他们对成绩管理系统的期望主要包括:成绩录入、查询、统计、分析等功能。
2.系统架构基于需求分析的结果,我们设计了一个分层架构的成绩管理系统。
系统包括三个主要模块:学生信息管理模块、成绩录入与查询模块、成绩统计与分析模块。
每个模块都有相应的功能和界面。
3.数据库设计为了存储和管理学生的成绩信息,我们设计了一个关系型数据库。
数据库中包含学生信息表、课程信息表、成绩信息表等。
通过合理的表结构和关联,实现了学生信息与成绩信息的关联和查询。
4.界面设计为了提高用户的使用体验,我们注重界面的友好性和简洁性。
通过使用合适的颜色、布局和图标,使得用户能够方便地进行成绩录入、查询和统计等操作。
5.系统实现我们使用了Java语言和MySQL数据库来实现成绩管理系统。
通过使用Java的面向对象特性和MySQL的数据库操作,我们成功地实现了系统的各个功能模块。
三、系统功能介绍1.学生信息管理模块该模块主要用于管理学生的基本信息,包括学号、姓名、性别、年龄等。
教师可以通过该模块进行学生信息的录入、修改和删除等操作。
2.成绩录入与查询模块该模块用于录入和查询学生的成绩信息。
教师可以通过该模块录入每个学生的课程成绩,并可以根据学号或姓名进行成绩的查询和修改。
3.成绩统计与分析模块该模块用于对学生的成绩进行统计和分析。
教师可以通过该模块查看某门课程的平均分、最高分、最低分等统计结果,并可以生成相应的报表。
四、实验结果与分析通过对成绩管理系统的实际使用和测试,我们得出了以下实验结果和分析:1.系统的功能完善性经过实验,我们发现成绩管理系统的各个功能模块都能够正常运行,并且能够满足学校管理人员和教师的需求。
数据库学生信息管理系统实验报告

数据库学生信息管理系统实验报告一、实验目的本次实验的目的是设计并实现一个基于数据库的学生信息管理系统,通过该系统可以对学生的基本信息进行增删改查等操作,方便高效地管理学生信息。
二、实验内容1. 创建数据库:首先,在MySQL中创建一个名为"student_info"的数据库,用于存储学生信息的表。
2. 创建表结构:在数据库中创建一个名为"student"的表,用于存储学生的基本信息,包括学号、姓名、性别、年龄、班级等字段。
3. 实现增加学生信息的功能:设计一个界面,在界面上输入学生的基本信息,然后将这些信息插入到数据库的"student"表中。
4. 实现删除学生信息的功能:设计一个界面,在界面上输入要删除的学生的学号,然后根据学号将该学生的信息从数据库的"student"表中删除。
5. 实现修改学生信息的功能:设计一个界面,在界面上输入要修改的学生的学号和需要修改的字段信息,然后根据学号将该学生的相应字段信息更新到数据库的"student"表中。
6. 实现查询学生信息的功能:设计一个界面,在界面上输入要查询的学生的学号,然后根据学号从数据库的"student"表中查询相应学生的信息并显示在界面上。
三、实验过程1. 创建数据库:在MySQL中执行以下指令创建名为"student_info"的数据库:CREATE DATABASE student_info;2. 创建表结构:在"student_info"数据库中执行以下指令创建名为"student"的表:CREATE TABLE studentid INT PRIMARY KEY AUTO_INCREMENT,student_id VARCHAR(20) NOT NULL,name VARCHAR(20) NOT NULL,gender VARCHAR(4) NOT NULL,age INT NOT NULL,class VARCHAR(20) NOT NULL3. 实现增加学生信息的功能:使用Java编写一个程序,通过JDBC 连接到MySQL数据库,然后通过用户界面输入学生的基本信息,将这些信息插入到"student"表中。
数据库应用课程设计实验报告---学生成绩管理系统

社会实践报告设计题目:_____小雨点学生成绩管理系统设计时间: 2012.7.10 至2012.7.21指导教师:评语:________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____目录设计总说明 (3)关键词 (4)绪论 (5)第1章数据库设计 (6)1.1 需求分析 (6)1.1.1 数据需求 (6)1.1.2 数据字典 (6)1.1.3 数据流程图 (7)1.2 概念分析 (7)1.3 逻辑结构设计 (9)1.4 物理实施 (9)1.4.1 创建数据库 (9)1.4.2 创建数据表 (10)1.4.3 像数据表中插入数据 (10)1.4.4 创建视图 (12)1.4.5 触发器和完整性约束 (12)1.4.6 存储过程 (13)第2章系统界面设置及主要功能 (14)2.1 添加主菜单和功能按钮 (14)2.2 登录界面设置 (15)2.3 学生信息增、删、改界面 (17)2.4 对学生信息多角度查询 (21)总结 (27)参考文献 (28)附录程序代码 (29)1 StuConStr.h头文件的代码 (29)2 登录界面“确定”按钮代码 (29)3 添加登录界面背景图片的代码 (29)4 使控件变为透明的代码 (30)5 主界面“添加”按钮代码 (30)6 主界面“查找”按钮代码 (31)7 主界面“修改”按钮代码 (33)8 主界面“删除”按钮代码 (35)9 添加菜单栏和工具栏代码 (35)10 信息查询界面“查询”按钮代码 (36)11 成绩录入界面“查询”代码 (36)12 成绩录入界面“添加”代码 (37)13 成绩录入界面“修改” (37)14 成绩录入界面“删除”按钮代码 (38)小雨点学生成绩管理系统设计总说明:在当今社会,无论中小学还是大学,成绩管理是一项必要而且很关键的工作。
学生成绩管理系统数据库设计实验报告

学生成绩管理系统数据库课题: 雇员信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间:2012年6月4号----2012年6月10日一、需求分析阶段1.信息需求对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。
2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
3. 安全性与完整性要求对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。
另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。
二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
设计成绩管理数据库包括学生、成绩、课程、教师四个关系。
E-R图如下三、详细设计阶段详细结构是独立于任何一种数据模型的信息结构。
详细结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)2、学生信息表(student1)四、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库综合实验报告班级:计科*** 班学号: ****姓名: ***2011年12月数据库应用系统的初步开发一、实验类别:综合型实验 二、实验目的1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。
2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。
3.进一步提高学生的知识综合运用能力。
三、实验内容在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。
四、实验过程(一.)系统需求说明1 系统功能要求设计:此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。
容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
2 系统模块设计成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:登陆失败退出系统用户 验证登陆成功3 数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student 学生学生学籍信息表Course 课程课程基本信息表Score 成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型Not Null 说明Student _sno Char Primary key 学号Student _sn char Not Null 学生姓名Student _sex char ‘男’或‘女’性别Student _dept char 系别Student_age char 年龄Student_address char 地址course数据表,结构如下:字段名字段类型约束控制说明course_cno char 主键(primary key)课程号char not null 课程名称course_cnamecourse_hour int not null 课时course_score numeric(2,1) not null 学分score情况数据表,结构如下:字段名字段类型约束控制说明score_id int not null 成绩记录号course_cno char 外部键课程号student_sno char 外部键学号score int 成绩(二)数据库结构设计1.概念结构设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
(2)课程基本信息:课程名,课程号,分数,学时,学分。
2.逻辑结构设计这些实体间的联系包括:(1)每位学生可以学习多门课程,每门课程可供多位学生学习。
由上述分析可得到系统的E —R 图:由系统E —R 图转化而得到的关系模式如下:(1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号;(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。
可以与学生关系模式合 并 为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。
3. 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。
可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。
在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。
才能充分利用索引的作用避免因索引引起的负面作用。
4.确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。
因为该成绩管理系统的数据量小,,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。
(1)创建学生基本信息表: create table Student (学号 varchar(11) not null, 系别 varchar(5) not null,选修课程成绩 学生 课程号课程名学时学分分数学号姓名性别系别地址 年龄姓名varchar(6) not null,性别varchar(2) not null,年龄char(2) not null,地址varchar(20) not null,constraint PK_STUDENT primary key (学号))goexecute sp_addextendedproperty 'MS_Description','学生基本信息描述','user', '', 'table', 'StudentsInfo'go(2)创建课程表:create table Course (cno varchar(5) not null,cname varchar(10) null,xueshi smallint null,xuefen int null,constraint PK_COURSE primary key (课程号))goexecute sp_addextendedproperty 'MS_Description',(3)创建学生与课程的成绩表create table SC ( sno varchar(11) not null,cno varchar(5) not null,chengji varchar(4) not nullconstraint PK_SC primary key (学号, 课程号))go在SC表上创建索引SC_FK与SC2_FKcreate index SC_FK on SC (学号ASC)Gocreate index SC2_FK on SC (课程号ASC)go建立课程号索引create index TC_FK on TC (课程号ASC)go下图显示了学生,课程和成绩三个关系的物理设计其中课程号与学号号分别为关系的主码。
五数据库的实施与维护5.1 数据库的实施:此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等。
首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。
主要代码如下:#include "stdafx.h"#include "StudentScore.h"#include "Course.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;// CCourseIMPLEMENT_DYNAMIC(CCourse, CRecordset)CCourse::CCourse(CDatabase* pdb): CRecordset(pdb){ //{{AFX_FIELD_INIT(CCourse)//}}AFX_FIELD_INITm_nDefaultType = snapshot;CString CCourse::GetDefaultConnect(){ return _T("ODBC;DSN=");}CString CCourse::GetDefaultSQL(){ return _T("");}void CCourse::DoFieldExchange(CFieldExchange* pFX){//{{AFX_FIELD_MAP(CCourse)pFX->SetFieldType(CFieldExchange::outputColumn);//}}AFX_FIELD_MAP}// CCourse diagnosticsvoid CCourse::AssertValid() const{ CRecordset::AssertValid();}void CCourse::Dump(CDumpContext& dc) const{ CRecordset::Dump(dc);}// MainFrm.h : interface of the CMainFrame classclass CMainFrame : public CFrameWnd{protected: // create from serialization onlyCMainFrame();DECLARE_DYNCREATE(CMainFrame)// Attributespublic:// Operationspublic:// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CMainFrame)virtual BOOL PreCreateWindow(CREATESTRUCT& cs);//}}AFX_VIRTUAL// Implementationpublic:virtual ~CMainFrame();protected: // control bar embedded members//CStatusBar m_wndStatusBar;//CToolBar m_wndToolBar;// Generated message map functionsprotected://{{AFX_MSG(CMainFrame)afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);afx_msg void OnPassword();afx_msg void OnUser();afx_msg void OnStudent();afx_msg void OnTeach();afx_msg void OnTeacher();afx_msg void OnScore();afx_msg void OnQueryTeach();afx_msg void OnQueryScore();afx_msg void OnCourse();//}}AFX_MSGDECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line. // CScoreAddDlg dialogCScoreAddDlg::CScoreAddDlg(CWnd* pParent /*=NULL*/): CDialog(CScoreAddDlg::IDD, pParent){/{{AFX_DATA_INIT(CScoreAddDlg)//}}AFX_DATA_INIT}void CScoreAddDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CScoreAddDlg)DDX_Control(pDX, IDC_SCORE_STUDENT, m_cStudent);DDX_Control(pDX, IDC_SCORE_SCORE, m_cScore);DDX_Control(pDX, IDC_SCORE_COURSE, m_cCourse);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CScoreAddDlg, CDialog)//{{AFX_MSG_MAP(CScoreAddDlg)//}}AFX_MSG_MAPEND_MESSAGE_MAP()void CScoreAddDlg::OnOK(){CString student,course,score,student_no,course_no;m_cStudent.GetWindowText(student);m_cCourse.GetWindowText(course);m_cScore.GetWindowText(score);else//成绩不为空{CString strSQL;//查出该学生的学号strSQL.Format("select * from student where active_status='Y' and student_name='%s'",student);CRecordset m_recordSet=&m_database;m_recordSet.Open(CRecordset::forwardOnly,strSQL);m_recordSet.GetFieldValue("student_no",student_no);m_recordSet.Close();//查出该课程的课程号strSQL.Format("select * from course where active_status='Y' and course_name='%s'",course);m_recordSet.Open(CRecordset::forwardOnly,strSQL);m_recordSet.GetFieldValue("course_no",course_no);;m_recordSet.Close();BOOL CScoreAddDlg::OnInitDialog(){CDialog::OnInitDialog();CRecordset m_recordSet;if(!m_database.IsOpen()){m_database.Open(_T("student"));m_recordSet.m_pDatabase=&m_database;}CString strSQL;strSQL.Format("select course_name from course where active_status='Y'");m_recordSet.Open(CRecordset::forwardOnly,strSQL);for(int i=0;i<m_recordSet.GetRecordCount();i++){CString temp;m_recordSet.GetFieldValue("course_name",temp);m_cCourse.AddString(temp);m_recordSet.MoveNext();}m_recordSet.Close();m_cCourse.SetCurSel(1);strSQL.Format("select student_name from student where active_status='Y'");m_recordSet.Open(CRecordset::forwardOnly,strSQL);for(int j=0;j<m_recordSet.GetRecordCount();j++){CString temp;m_recordSet.GetFieldValue("student_name",temp);m_cStudent.AddString(temp);m_recordSet.MoveNext();}m_recordSet.Close();m_cStudent.SetCurSel(1);{this->SetWindowText("成绩窗口");}return true;}void CScoreAddDlg::OnCancel(){// TODO: Add extra cleanup hereCDialog::OnCancel();}5.2部分操作截图:下图显示了学生登陆系统进行查询时界面:下图显示了进行课程查询时界面:成绩查询功能:5.3数据库的维护当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在sqlserver中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。