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

上传人:b****5 文档编号:16523080 上传时间:2022-11-24 格式:DOCX 页数:12 大小:57.20KB
下载 相关 举报
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第1页
第1页 / 共12页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第2页
第2页 / 共12页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第3页
第3页 / 共12页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第4页
第4页 / 共12页
数据库学生成绩管理系统课程设计报告Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

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

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

Sex

Birthday

numeric

可为空

Address

Grade

Po;

itic

Cuture

Tel

Nchar

Cource

Cno

Score

User_name

20

User_Pswd

User_Type

int

(3)分析关系模式

对于关系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cutui)假定姓名也具有唯一性,那么Student

就有两个码,这两个码都由单个属性组成,彼此不相交。

其它属性不存在对码的传递依赖与部分依赖,又因为Student中除学号、姓名外没有其它的因素,所以Student属于BCNF。

于关系模式Cource(|Sno|Cno|Sco0有两个码,这两个码都由单个属性组成,彼此不相交,其它属性不存在对码的传递依赖与部分依赖,又因为成绩中除学号、课程号外没有其它的决定因素,所以成绩属于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'

王强'

哈,'

软件二班'

大二'

15850040'

003'

张雪'

F'

软件一班'

大一'

156809802'

群众’)

insertintoStudent

004'

李力'

太连'

15980000'

无'

insertintoStudentvalues('

005'

张小'

哈尔滨'

软件三班'

15884444'

5no

Shame

Age

Class

张明

M

17

哈尔填

软件一班

大一

001

李三

22

长春

软件二班

大三

002

王强

昭尔滨

大二

003

张雪

F

IS

004

李力

25

犬连

005

张小

15

跆尔滨

软件三班

丈一

NULL

ML

将考试类别加入Cource表中

insertintoCourcevalues('

000'

A-123'

85'

)insertintoCourcevalues('

001'

B-123'

77'

002'

C-123'

91'

003'

80'

004'

75'

)insertintoCource

005'

89'

000

A-123

85

8-123

77

C-123

91

A-L23

SO

B-123

7S

wsz

将课程加入User表中

insertintoUser

阿生'

921'

O'

insertintoUser

光光'

111'

1'

甜甜'

索引的使用

usestudent

createuniquenonclusteredindexindex_snoonStudent(sno)

触发器

createtriggerreminder

onstudent

afterinsert,update

asraiserror('

你在插入或修改学生的数据'

16,10)

droptriggerreminder'

select*

fromStudentwheresno=002

」结果|消扈

存储过程

createprocedureusp_getStudent

@namenchar(40)as

select*fromStudentwhereSname=@name

执行存储过程

tl26.studenl:

-SQLQueryS.sql*

executeusp_getStudent

表-dbo.Student

一i结果|j消息|

Sno1Sname

Sen

Address|Class

1

i0001

■1・1■EB1■■1

哙尔滨软件一班

4、SQ与C++吉合(可视化的界面管理)

1、准备创建好的数据库,创建数据源

在创建数据库的应用程序之前,必须有一个可供应用程序使用的数据库。

2、

(1)建立了数据库之后,必须配备ODBC数据源,使其指向刚刚建立的数据库。

择“控制面板”中“管理工具”下的“数据源(ODBC)”项。

双击ODBC图标,弹出“ODBC数据源管理器”对话框。

在这里用户可以设置ODBC数据源的一些信息,其中的“用户DSN”选项卡是用户定义的在本地计算机上使用的数据源名(DSN),

(2)为新的数据源选择数据库驱动程序。

由于使用的是Access数据库,所以选择DriverdoMicrosoftAccess(*mdb)选项,并单击“完成”按钮。

(3)“ODBCMicrosoftAccess安装”对话框中,为该数据源起一

个简短的名称。

本例为TeacherDB,可以在下一个编辑框中输入对该数据库的说明。

(4)指定数据库的位置。

单击“选择”按钮,然后指定所创建的Access数据库。

(5)单击“确定”按钮,刚才创建的用户数据源被添加在“用户DSN”选项卡的“用户数据源”列表框中。

3、创建MFCAppWizard应用程序

用MFCAppWizard(exe)创建一个对话框应用程序TeacherMIS。

为了使程序能支持数据库对象,在头文件stdafx.h中加入#include<

afxdb.h>

4.用ClassWizard为数据库中的每一个表映射一个记录集类

首先为表Users映射记录集类CUserSe。

打开项目工作区的ClassView选项卡,选择项目名称,右击,弹出快捷菜单,选择NewClass命令弹出的NewClass对话框,

输入记录集类名称CUserSet,并为其选择基类CRecordset单击0K按钮,弹出的DatabaseOptions对话框,为记录集类选择ODBC数据源TeacherDB,单击0K按钮,弹出SelectDatabaseTables寸话框,为记录集类选择数据库表Users,单击OK按钮,

即完成记录集类CUserSet的定义。

5、根据类属性之间的关系添加如下类:

I'

J&

J

(6)显示当前用户:

m_corr_user=login.GetUserNm();

(7)注销:

voidCTeacherMISDIg:

:

OnLogout()m_score.Close();

CDialog:

:

OnCancel();

CLoginDlglogin;

login.SetUser();

login.DoModal();

7、运行截图

(1)用户登录:

用户登录魂

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

乂学生管浬'

言息苣理矣続■JLP••〔—

学生信息

学号

200923333

姓名

|舒适当前用户

|阿生

班级

191092

所在学f完

|计算机学院|

注硝

班级职务

性别,

禺G女

政治面貌

鮮介MJ

出生年:

1990▼]月:

I06工|

联系电话15S6S6332

刪除

退出

咸绩查询

学号雄S丨学院I性别J出生年月班级I毕业院校丨页治面貌

?

009...

2009.

2009...

2005...

算算算算

计计计计

男女女女

芋£

■亍芋

1950....

1990…

1983…

1990...

无无无无

1^1092

1310^

*众众介

•t^r

R•二eFTmTRRH

■--1■I---■I-■—r

iri

3、成绩管理系统:

学主成蓬

学号:

课程号:

成绩:

20092333T

课程号

成绩

12

55

添加修改

删除显示所有学生咸绩确定

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

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

1、关系图的连接:

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

2、删除时错误:

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

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

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

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

insertintoSCVALUES('

%s'

)where'

notin(selectcnofromSCwhere'

=SNO)"

m_sno,m_cno,m_score,m_cno,m_sno);

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

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

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

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

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

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

B@TescherMISclasses

*4CAboutDIg

1+CLoginDIg

+"

r;

CScore

l+-弋CScSet

CTeacherMISApp

i+"

CTeacherMISDlg

L+CTeacherSetl

1+"

r5CuserSet

+_jGlobals

6C++中实现对数据库的管理(及增加、删除、修改、查找、退出)

(1)增加:

voidCScore:

OnBUTTONAdd()

strSQL.Format("

insertintoScoreVALUES('

)"

m_sno,m_cno,m_score);

DoExecuteSQL(strSQL);

(2)删除:

CScore:

OnBUTTONDel()

deletefromScorewhereSNO='

andCNO='

"

m_sno,m_cno);

(3)修改:

OnBUTTONEdit()

UpdateScoreSETCNO='

SCORE='

wheresno='

andeno='

andscore='

m_cno,m_score,save_sno,save_cno,save_score);

DoExecuteSQL(strSQL);

(4)查找:

voidCSore:

OnBUTTONFind()strSQL.Format("

select**fromteacherswhere%s='

"

strField,m_FieldValue);

(5)退出:

OnCancel()

OnCancel();

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

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1