《数据库技术》课程设计报告.docx
《《数据库技术》课程设计报告.docx》由会员分享,可在线阅读,更多相关《《数据库技术》课程设计报告.docx(14页珍藏版)》请在冰点文库上搜索。
《数据库技术》课程设计报告
一课程设计的目的意义…………………………………………2
二需求分析………………………………………………………2
三数据库系统设计………………………………………………4
四系统设计与实现………………………………………………5
五总结…………………………………………………………13
学生管理系统设计
一、系统设计的目的意义
学生是个庞大的社会群体,他们在校学习时间较长,因此为了实现学生个人信息以及成绩信息的有效管理,需要一个专门的系统来实现此项功能。
所以学生管理系统的设计是必要的。
二、系统需求分析
1.用户的功能需求
从学生学籍和个人基本信息方面考虑,学生管理系统应该在这两方面有所体现,主要包括一下几项功能:
(1)系统登录
为保证学生信息的安全,要求登录系统时有密码管理功能。
本系统将它分为管理员和用户两种方式。
(2)信息管理
用于对学生基本信息和成绩信息进行管理,可以增加或删除。
(3)信息浏览
将所有学生的成绩信息或个人基本信息显示在界面上,已达到浏览的目的。
(4)信息查询
该项功能可以实现对某个学生信息的精确查询,也可以实现模糊查询,即查询某一类学生信息,如姓王的学生的信息。
(5)信息修改
对学生的个人信息和成绩进行必要的修改。
(6)信息报表
将学生的个人信息和成绩信息以报表的形式表现出来,方便打印输出。
(7)退出系统
从系统的使用状态中退出。
2.用户的安全性要求
为了保证学生信息的安全,在进入系统之前要求进行身份确认,该项功能由登录界面实现。
一旦身份验证成功就可以进入系统,如果三次进入都失败了,则会强行退出系统。
3.系统功能模块结构图
图2-1系统功能模块图
信息管理:
对学生的个人信息和成绩信息进行系统管理。
该项功能可以通过逐个学生信息的浏览来详细了解学生信息,并对学生信息进行增加或删除操作。
信息浏览:
该项功能的实现采用了表格的显示方法,通过在表单中添加表格控件来实现学生信息的整体浏览。
信息查询:
从以上的结构图可以看出,查询功能可以有两种形式。
通过模糊查询可以浏览到具有某些相同信息的学生的情况,便于对某一信息的整体把握。
详细查询,则是查询某一个个人信息。
信息修改:
当学生的个人信息或成绩信息发生改变或原始记录有误时,可以用此项功能实现修正。
信息报表:
用报表的形式显示学生个人信息和成绩信息。
三、数据库系统设计
根据系统需求分析,设计每个数据表的结构如下:
密码表
字段名
类型
宽度
密码
字符型
10
操作员
字符型
10
学生成绩表
字段名
类型
宽度
小数位数
学号
字符型
10
0
姓名
字符型
10
0
班级
字符型
10
0
课程
字符型
20
0
学期
字符型
4
0
成绩
数值型
10
2
学生基本信息表
字段名
类型
宽度
姓名
字符型
10
性别
字符型
2
民族
字符型
10
出生日期
日期型
8
学号
字符型
10
班级
字符型
10
政治面貌
字符型
10
籍贯
字符型
10
家庭住址
字符型
20
照片
通用型
4
备注
备注型
4
四、系统设计与实现
1.系统登录功能实现
⑴功能描述
运用表单显示登录界面,并在登录时进行身份验证,只有身份满足并且密码正确时,才能进入。
在输入密码时,每个人都有三次机会,一旦三次都未能进入系统,就会强行退出。
图4-1用户登录界面图
⑵系统代码实现
登录按钮的click事件源代码:
localczy,mm
czy=allt(bo1.value)
mm=allt(thisform.text1.value)
locatefor(操作员)=czy
ifallt(操作员)==czy.and.allt(密码)==mm
messagebox("欢迎"+czy+"进入本系统",0+48,"提示信息")
thisform.release
else
n=n+1
ifn<=2
messagebox("密码有误,你还有"+str(3-n,2)+"次机会,重新输入!
",0+16,"提示信息")
thisform.text1.value=""
thisform.text1.setfocus
else
messagebox("您没有权利进入本系统!
",0+16,"提示信息")
thisform.release
endif
endif
退出按钮的click事件:
localqn
qn=messagebox("确定退出",4+16+0,"退出窗口")
ifqn=6
thisform.release
endif
2.数据录入删除功能实现
⑴功能描述
同样采用表单显示界面,通过按钮上caption的提示可以进行相关的增删操作,并且在增删后提供保存功能。
图4-2数据录入删除界面
⑵系统代码实现(以学生成绩信息为例)
添加按钮的click事件源代码:
locateforallt(学号)==""
if.not.found()
appendblank
gobottom
endif
thisform.txt学号.setfocus
n=n+1
thisform.txt姓名.value=""
thisform.txt学号.value=""
thisform.txt班级.value=""
thisform.txt学期.value=""
thisform.txt课程.value=""
thisform.txt成绩.value=""
mand1.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.f.
mand5.enabled=.f.
mand6.enabled=.f.
mand7.enabled=.t.
mand8.enabled=.t.
thisform.refresh
保存按钮的click事件源代码:
ifempty(thisform.txt姓名.value).or.empty(thisform.txt学号.value).or.empty(thisform.txt班级.value);
.or.empty(thisform.txt学期.value).or.empty(thisform.txt课程.value).or.empty(thisform.txt成绩.value)
messagebox("记录不能为空,不能保存!
")
else
go1
locatenextrecno()-1for学号==allt(thisform.txt学号.value)
iffound()
ifmessagebox("该记录已存在,要替换吗?
",1+48,"警告")=1
repl姓名withalltrim(thisform.txt姓名.value)
repl学号withalltrim(thisform.txt学号.value)
repl班级withalltrim(thisform.txt班级.value)
repl课程withalltrim(thisform.txt课程.value)
endif
else
gobottom
repl姓名withalltrim(thisform.txt姓名.value)
repl学号withalltrim(thisform.txt学号.value)
repl班级withalltrim(thisform.txt班级.value)
repl学期withalltrim(thisform.txt学期.value)
endif
mand1.enabled=.t.
mand2.enabled=.t.
mand3.enabled=.t.
mand4.enabled=.t.
mand5.enabled=.t.
mand6.enabled=.t.
mand7.enabled=.f.
mand8.enabled=.t.
endif
thisform.refresh
删除按钮的click事件源代码:
ifmessagebox("确实要删除该记录吗?
",1+64+256,"提示")=1
dele
pack
endif
thisform.refresh
3.系统查询功能实现
⑴功能描述
该项功能又细分为模糊查询和详细查询,可以满足用户不同的要求,模糊查询可以浏览具有相似部分的一类信息,而详细查询则精确到个体,并且在这种查询中,采用optiongroup实现不同方式的查询。
图4-3数据查询界面(详细查询)
图4-3数据查询界面(模糊查询)
⑵系统代码实现(以学生成绩信息为例)
详细查询按钮的click事件源代码:
ifempty(thisform.text1.value)
messagebox("不能为空!
")
else
docase
casethisform.optiongroup1.value=1
locateforallt(xschengji.学号)=allt(thisform.text1.value)
casethisform.optiongroup1.value=2
locateforallt(xschengji.姓名)=allt(thisform.text1.value)
endcase
if.not.found()
messagebox("没有符合条件的记录!
",1+32,"信息")
endif
endif
thisform.refresh
模糊查询按钮的click事件源代码:
localxm
xm=allt(thisform.text1.value)
select*fromxschengjiwherexm$xschengji.姓名=.t.;
orderbyxschengji.学号
thisform.release
4.信息浏览功能实现
⑴功能描述
运用表格将全体有记录的学生信息显示出来。
图4-4数据浏览界面
⑵系统代码实现
该功能不涉及代码编写,但要正确添加数据环境。
5.信息修改功能实现
⑴功能描述
当学生的个人信息或成绩信息发生改变或原始记录有误时,可以用此项功能实现修正。
图4-5数据修改界面
⑵系统代码实现(以学生成绩信息为例)
修改按钮的click事件源代码:
ifempty(thisform.text1.value)
messagebox("请输入学号!
")
else
locateforallt(学号)=allt(thisform.text1.value)
thisform.txt姓名.setfocus
if.not.found()
messagebox("查无此人!
")
else
thisform.txt姓名.readonly=.t.
thisform.txt学号.readonly=.t.
thisform.txt班级.readonly=.t.
thisform.txt学期.readonly=.f.
thisform.txt课程.readonly=.f.
thisform.txt成绩.readonly=.f.
mand1.enabled=.f.
mand2.enabled=.t.
mand3.enabled=.t.
endif
endif
thisform.refresh
保存按钮的click事件源代码:
repl姓名withalltrim(thisform.txt姓名.value)
repl课程withalltrim(thisform.txt课程.value)
repl学号withalltrim(thisform.txt学号.value)
repl班级withalltrim(thisform.txt班级.value)
repl学期withalltrim(thisform.txt学期.value)
mand1.enabled=.t.
mand2.enabled=.f.
mand3.enabled=.t.
五、总结
本次课程设计,让我学到了很多新的知识点。
中间也出现了很多问题,有些问题是书本上不曾提到的,通过和其他同学交流,均获得了成功的解答,但有些问题并不是在代码中可修改的,也就是说,有些部分涉及了很细节性的东西,比如说输入法的不同导致出错。
在这次的设计过程中,出现了一个让我十分头疼的问题,就是在执行“删除”功能时,一直出现“文件必须以独占方式打开”的信息,但是通过检查在选择打开方式的复选框中确实选择的是“独占”。
后来通过上网查资料,发现在添加数据环境时属性设置出错。
这个问题给了我一个启示,在学习过程中,要仔细,应该经常动手实践,这样一来就能及早发现问题,解决问题。
通过本次的课程设计,自己在数据库的理论和实践知识上,都有了一定程度的提高,也发现了许多学习过程中的纰漏,我将总结这一次的经验,在以后的学习中努力改正。