数据库学生成绩管理系统课程设计报告Word文件下载.docx

上传人:b****2 文档编号:5580032 上传时间:2023-05-05 格式:DOCX 页数:13 大小:137.18KB
下载 相关 举报
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第1页
第1页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第2页
第2页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第3页
第3页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第4页
第4页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第5页
第5页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第6页
第6页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第7页
第7页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第8页
第8页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第9页
第9页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第10页
第10页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第11页
第11页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第12页
第12页 / 共13页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库学生成绩管理系统课程设计报告Word文件下载.docx

《数据库学生成绩管理系统课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库学生成绩管理系统课程设计报告Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。

数据库学生成绩管理系统课程设计报告Word文件下载.docx

(1) 

能提供管理员及普通用户(除删除和修改)录入、注销、显示当前用户、修改、删除、查询、输出,学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。

(2)触发器,索引,存储过程的建立及使用。

2.概念设计

(1)(E-R图)

(2)物理结构设计

Student

Column 

Name

Date 

Type 

Width

空值情况

Sno 

nchar

10

主关键字

Sname 

nchar 

不为空

Sex 

Birthday

numeric

可为空

Address

Grade 

Po;

itic

Cuture

Tel

Nchar

Cource

Type

Sno

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)notnull

Agenumeric(10)

Addressnchar(10)

Classnchar(10)notnull

Gradenchar(10)notnull

Telnchar(10)notnull

Politicnchar(10)notnull

Cuturenchar(10)notnull

成绩表

createtableExam

Snonchar(10)primarykey//主键约束

Cnonchar(10)Notnull

Scorenchar(10)

foreignkey(Cno)referencesCourse//外键约束

check(Score>

=0)//完整性约束

用户表

createtableTeacher

Usernamenchar(10)notnull

UserPswdnchar(10)notnull

UserTypenchar(10)notnull

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'

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)“ODBCMicrosoftAccess安装”对话框中,为该数据源起一

个简短的名称。

本例为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++中实现对数据库的管理(及增加、删除、修改、查找、退出)

(1)增加:

voidCScore:

:

OnBUTTONAdd()

strSQL.Format("

insertintoScoreVALUES('

%s'

)"

m_sno,m_cno,m_score);

DoExecuteSQL(strSQL);

(2)删除:

CScore:

OnBUTTONDel()

deletefromScorewhereSNO='

andCNO='

"

m_sno,m_cno);

DoExecuteSQL(strSQL);

(3)修改:

OnBUTTONEdit()

UpdateScoreSETCNO='

SCORE='

wheresno='

andcno='

andscore='

m_cno,m_score,save_sno,save_cno,save_score);

(4)查找:

voidCSore:

OnBUTTONFind()

select*fromteacherswhere%s='

"

strField,

m_FieldValue);

(5)退出:

OnCancel()

CDialog:

OnCancel();

(6)显示当前用户:

m_corr_user=login.GetUserNm();

(7)注销:

voidCTeacherMISDlg:

OnLogout()

m_score.Close();

CDialog:

CLoginDlglogin;

login.SetUser();

login.DoModal();

7、运行截图

(1)用户登录:

(2)学生信息管理系统:

3、成绩管理系统:

5、设计中遇到的问题及心得

在设计中遇到的几个问题:

1、关系图的连接:

当数据库创建的时候没把他们的关系图连接起来,导致在投影时出问题,查询的时候也出现了错误

2、删除时错误:

在删除操作的时候,由于没考虑表之间的关系,和删除次序。

导致了一张表的数据元素删除了,而另外一张的任然存在。

3、对同一学生插入同一课程号:

刚开始的思想是使用notin进行判断该记录是否存在,再插入我用的下面的这句语句strSQL.Format("

insertintoSCVALUES('

)where'

notin(selectcnofromSCwhere'

=SNO)"

m_sno,m_cno,m_score,m_cno,m_sno);

结果未能实现禁止对对统一学生插入统一课程号。

几番周折后还是没能看出问题的所在。

一是我便自己写了一个判断的FindScore函数,来判断是否表中又该记录决定插入与否。

通过此函数也能解决这个问题。

这个学生成绩管理系统实现了管理的基本功能,此外我还添加了一些小的功能。

但是这个系统任然有些不足和漏洞,比如软件代码交冗余、效率不高等等随着学习的深入讲不断地完善它。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2