数据库学生成绩管理系统课程设计报告文档格式.docx
《数据库学生成绩管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库学生成绩管理系统课程设计报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
1、
问题的提出:
为了高效率的完成学生成绩的管理,决定开发学生成绩管理系统。
2、
需完成的功能:
(1)
能提供管理员及普通用户(除删除和修改)录入、注销、显示当前用户、修改、删除、查询、输出,学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。
(2)触发器,索引,存储过程的建立及使用。
2.概念设计
(1)(E-R图)
(2)物理结构设计
Student
ColumnName
DateType
Width
空值情况
Sno
nchar
10
主关键字
Sname
nchar
不为空
Sex
Birthday
numeric
可为空
Address
Grade
Po;
itic
Cuture
Tel
Nchar
Cource
Cno
Score
User
User_name
20
User_Pswd
User_Type
int
(3)分析关系模式
对于关系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cuture)假定姓名也具有唯一性,那么Student
就有两个码,这两个码都由单个属性组成,彼此不相交。
其它属性不存在对码的传递依赖与部分依赖,又因为Student中除学号、姓名外没有其它的因素,所以Student属于BCNF。
对于关系模式Cource(|Sno|Cno|Score|)有两个码,这两个码都由单个属性组成,彼此不相交,其它属性不存在对码的传递依赖与部分依赖,又因为成绩中除学号、课程号外没有其它的决定因素,所以成绩属于BCNF。
对于关系模式User(|UserName|UserType|UserPswd|)中,它只有一个码,这里没有任何属性对课程号部分依赖或传递依赖,同时用户名是唯一的决定因素,所以课程属于BCNF。
它和学生信息和成绩没有直接的联系,因此它是一张单独的表。
3.SQL语句
3.1创建表
学生表
createtableStudent
(
Snonchar(10)primarykey,
Snamenchar(10)
notnull
Sexnchar(10)
Agenumeric(10)
Addressnchar(10)
Classnchar(10)
Gradenchar(10)
Tel
nchar(10)
Politic
Cuture
nchar(10)
)
成绩表
createtableExam
Snonchar(10)primarykey
//主键约束
Cnonchar(10)
Notnull
Scorenchar(10)
foreignkey(Cno)referencesCourse
//外键约束
check(Score>
=0)
//完整性约束
用户表
createtableTeacher
Username
UserPswd
UserType
3.2数据初始化
将学生类别加入表Student中
insertintoStudent
values('
000’,’张明’,’M’,’’,’哈尔滨’,’计科一班’,’大一’,’15880000’,
’无’,’群众’)
values('
001’,’李三’,’M’,’’,’长春’,’计科二班’,’大三’’15233000’.’无’,
’群众’)
002’,’王强’,’M’,’’,’哈尔滨’,’软件二班’,’大二’’15850040’.’无’,
003’,’张雪’,’F’,’’,’哈尔滨’,’软件一班’,’大一’’156809802’.’无’,
004’,’李力’,’M’,’’,’大连’,’软件一班’,’大三’’15980000’.’无’,
005’,’张小’,’M’,’’,’哈尔滨’,’软件三班’,’大一’’15884444’.’无’,
将考试类别加入Cource表中
insertintoCource
000'
'
A-123'
85'
)
001'
B-123'
77'
002'
C-123'
91'
insertintoCource
003'
80'
insertintoCource
004'
75'
005'
89'
将课程加入User表中
insertintoUser
阿生'
921'
0'
insertintoUser
光光'
111'
1'
甜甜'
索引的使用
usestudent
createuniquenonclusteredindexindex_snoonStudent
(sno)
触发器
createtriggerreminder
onstudent
afterinsert,update
asraiserror('
你在插入或修改学生的数据'
16,10)
droptrigger‘reminder’
select*
fromStudent
wheresno=002
存储过程
createprocedureusp_getStudent
@namenchar(40)
as
select*fromStudentwhereSname=@name
执行存储过程
executeusp_getStudent
'
张明'
4、SQL与C++结合(可视化的界面管理)
1、准备创建好的数据库,创建数据源
在创建数据库的应用程序之前,必须有一个可供应用程序使用的数据库。
2、
(1)建立了数据库之后,必须配备ODBC数据源,使其指向刚刚建立的数据库。
选择“控制面板”中“管理工具”下的“数据源(ODBC)”项。
双击ODBC图标,弹出“ODBC数据源管理器”对话框。
在这里用户可以设置ODBC数据源的一些信息,其中的“用户DSN”选项卡是用户定义的在本地计算机上使用的数据源名(DSN),
(2)
为新的数据源选择数据库驱动程序。
由于使用的是Access数据库,所以选择Driver
doMicrosoftAccess(*.mdb)选项,并单击“完成”按钮。
(3)“ODBC
Microsoft
Access安装”对话框中,为该数据源起一
个简短的名称。
本例为TeacherDB,可以在下一个编辑框中输入对该数据库的说明。
(4)
指定数据库的位置。
单击“选择”按钮,然后指定所创建的Access数据库。
(5)
单击“确定”按钮,刚才创建的用户数据源被添加在“用户DSN”选项卡的“用
户数据源”列表框中。
3.
创建MFCAppWizard应用程序
用MFCAppWizard(exe)创建一个对话框应用程序TeacherMIS。
为了使程序能支持数据库对象,在头文件stdafx.h中加入#include<
afxdb.h>
。
4.
用ClassWizard为数据库中的每一个表映射一个记录集类
首先为表Users映射记录集类CUserSet。
打开项目工作区的ClassView选项卡,
选择项目名称,右击,弹出快捷菜单,选择NewClass命令弹出的NewClass对话框,输入记录集类名称CUserSet,并为其选择基类CRecordset,单击OK按钮,弹出的DatabaseOptions对话框,为记录集类选择ODBC数据源TeacherDB,单击OK按钮,弹出SelectDatabaseTables对话框,为记录集类选择数据库表Users,单击OK按钮,即完成记录集类CUserSet的定义。
5、根据类属性之间的关系添加如下类:
6、C++中实现对数据库的管理(及增加、删除、修改、查找、退出