《数据库语言》课设报告Word文档下载推荐.docx
《《数据库语言》课设报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《数据库语言》课设报告Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
![《数据库语言》课设报告Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/16/255d1676-43c8-4f37-ab21-c3eb5b04c2a1/255d1676-43c8-4f37-ab21-c3eb5b04c2a11.gif)
而今计算机科技飞速发展,应用数据库技术可以实现学生信息的计算机管理,从而大大简化了学生信息的手工登录与查询,节省了许多人力和物力。
本课程设计旨在对学生信息实现计算机管理,方便学生对信息查询、管理员对信息编辑,提高工作效率,提高管理水平。
2.系统目标
查询大学的学生、教师信息,课程信息及学生的选课情况和成绩。
管理员进入该系统可以对以上信息依据实际情况进行编辑修改,学生进入该系统可以查询自己的相关信息,如自己的选课情况、成绩等。
该系统旨在方便学校对学生信息的管理。
二.功能模块结构设计
图1教务管理系统功能模块图
功能说明:
该系统根据登录用户身份的不同分别打开两个界面,分别是学生界面和管理员界面。
在学生界面中,学生用户可以进行自己成绩的查询和选课情况的查询;
在管理员界面中,管理员可以有权进行各种信息的查询,其中包括学生的一些基本信息、考试成绩、选课情况、教师授课情况。
管理员还可以依据不同的查询条件进行按条件打印和全部打印以及对所有数据表的数据进行修改维护。
举例说明:
在管理员界面点击菜单中的“信息查询”选择“学生选课查询”从而进入查询学生选课界面,通过输入要查询的学生学号,然后点击“查询”按钮方可查询到该生选课的课程号和考试成绩。
图2管理员界面
↓
图3查询学生选课界面
三.数据库结构设计
教务管理系统
表1学生表
字段名
字段类型
字段长度
学号
字符型
6字节
姓名
8字节
性别
2字节
籍贯
4字节
出生日期
日期型
入学成绩
数值型
6字节(2位小数)
少数民族否
逻辑性
1字节
简历
备注型
照片
通用型
注:
学号的编排以190111和210123为例说明。
首位数字表示学生的学历,“1”代表本科生,“2”代表研究生;
后一位数字表示所属学院,“9”代表理学院,“1”代表人文学院;
后两位数字表示学生所在届,“01”表示2001届;
后一位数表示学生所在班级,“1”代表一班,“2”代表二班;
最后一位数字表示学生在班级里的序号。
因此,“190111”表示该生是理学院2001届一班的本科生,在班里的序号为1;
“210123”表示该生是人文学院2001届二班的研究生,在班里的学号为3。
表2选课表
课程号
5字节
成绩
5字节(2位小数)
课程号的编排以15104和01103为例说明。
首位数字表示授课范围,“1”代表本科生所学课程,“2”代表研究生所学课程;
后一位数字表示所属学院,“5”代表管理学院,“1”代表人文学院;
后两位数字表示课程的类别,“10”表示必修课;
最后一位数字表示课程在学院里的序号。
因此,“15104”表示该课程是管理学院本科生所学的必修课,在学院里的序号为4;
“01103”表示该课程是人文学院研究生所学的必修课,在班里的学号为3。
表3课程表
课程名
20字节
学分
数字型
3字节(1位小数)
表4授课表
教师号
学生人数
3字节
教师号的编排以15001和16101为例说明。
首位数字表示授课范围,“1”代表给本科生授课;
后一位数字表示所属学院,“5”代表管理学院,“6”代表材料学院;
后两位数字表示教师的职称,“00”表示副教授,“10”表示讲师;
最后一位数字表示教师在学院里的序号。
因此,“15001”表示该教师是管理学院给本科生授课的副教授,在学院里的序号为1;
“16101”表示该教师是材料学院给本科生授课的讲师,在学院里的序号为1。
表5教师表
职称
表6管理员表
密码
四.主要功能及程序界面说明
图4登录界面
功能:
根据登录用户身份的不同分别打开两个界面,分别是学生界面和管理员界面。
登录(command1)
setexacton
ifempty(thisform.text1.text)
messagebox("
用户名不能为空!
"
48+0+0,"
操作提示"
)
thisform.text1.setfocus
else
ifthisform.optiongroup1.value=2
use管理员
locateforalltrim(姓名)=alltrim(thisform.text1.value)andalltrim(密码)=alltrim(thisform.text2.value)
iffound()
doform主菜单.scx
thisform.release
else
用户名或密码错误,请重新输入!
"
警告!
!
thisform.text1.value="
thisform.text2.value="
endif
ifthisform.optiongroup1.value=1
use学生
locateforalltrim(姓名)=alltrim(thisform.text1.value)andalltrim(学号)=alltrim(thisform.text2.value)
doform学生菜单.scx
thisform.hide
endif
closeall
说明:
当管理员在选择“学生”登录会提示错误,同样,学生在选择“管理员”登录也会提示错误。
只有当用户身份和用户名及密码完全匹配时,才能进入不同的菜单选择界面。
重置(command2)
thisform.text1.value="
thisform.text2.value="
thisform.refresh
将text1和text2的内容清空,方便用户重新输入信息。
退出(command3)
thisform.release
关闭该界面。
图5学生选择界面
学生用户可以在菜单中选择自己需要的操作,打开不同功能的查询界面。
图6成绩查询界面
学生用户可以查询自己当前所修的课程、成绩和相应学分。
查询(command1)
ff="
学号="
+"
alltrim(登录界面.text2.value)"
thisform.dataenvironment.cursor1.filter=ff
return
点击查询,学生即可在表格中看到自己当前所修的课程、成绩和相应学分。
打印(command2)
reportform成绩单.frxtoprintpreview
点击打印,进入打印预览界面(图7)。
图7打印预览界面
该界面方便用户在打印前预览,可以对不满意的地方进行修改。
图8选课查询界面
学生用户可以查询自己当前所选的课程和相应学分。
点击查询,学生即可在表格中看到自己当前所选的课程和相应学分。
点击打印,进入打印预览界面(图9)。
图9打印预览界面
图10管理员选择界面
管理员可以在菜单中选择自己需要的操作,打开不同功能的界面。
图11基本信息查询界面
管理员可以任意查询每个学生的基本信息,也可以增加、修改、删除信息。
第一个(cmdtop)
gotop
this.enabled=.f.
thisform.cmdpre.enabled=.f.
thisform.cmdnext.enabled=.t.
thisform.cmdbot.enabled=.t.
将记录指针移到第一条记录,同时“上一个”按钮不可用。
上一个(cmdpre)
ifbof()=.t.
gotop
thisform.cmdtop.enabled=.f.
this.enabled=.f.
skip-1
将记录指针上移一条记录,当指向第一条记录时,“第一个”按钮不可用。
下一个(cmdnext)
ifeof()=.t.
gobottom
thisform.cmdbot.enabled=.f.
skip
thisform.cmdtop.enabled=.t.
thisform.cmdpre.enabled=.t.
将记录指针下移一条记录,当指向最后一条记录时,“最后一个”按钮不可用。
最后一个(cmdbot)
gobottom
thisform.cmdnext.enabled=.f.
将记录指针移到最后一条记录,同时“下一个”按钮不可用。
插入(cmdinsert)
appendblank
插入一条空白记录,管理员可以增加一条新的学生记录。
查询(cmdsearch)
doform学生数据查询.scx
进入学生信息查询界面(图12),管理员可以进行有选择条件的查询。
删除(cmdcancle)
select学生
delete
pack
管理员可以删除当前的记录,即当前界面显示的学生信息。
关闭(cmdclose)
图12学生信息查询界面
管理员可以进行有选择条件的查询。
docase
casethisform.optiongroup1.option1.value=1
ff="
姓名="
alltrim(thisform.text1.value)"
casethisform.optiongroup1.option2.value=1
性别="
casethisform.optiongroup1.option3.value=1
endcase
点击查询,管理员即可在表格中看到自己想要查询的相关学生信息。
退出(command2)
图13成绩信息查询界面
管理员可以查询某位学生的最高分、最低分、平均分。
locateforalltrim(学号)=alltrim(thisform.text1.value)
iffound()
selectmax(成绩)asmaxcj,min(成绩)asmincj,avg(成绩)asavgcjfrom选课;
intocursorlsb
selectlsb
thisform.text2.value=maxcj
thisform.text3.value=mincj
thisform.text4.value=avgcj
管理员通过输入要查询学生的学号,即可查到该生的最高分、最低分、平均分。
图14学生选课查询界面
管理员可以查询某位学生的选课情况。
thisform.text1.setfocus
点击查询,管理员即可在表格中看到自己想要查询的某位学生的选课情况。
图15教师课程查询界面
管理员可以查询某位教师的基本信息和授课情况。
退出(command1)
图16信息维护界面
管理员可以对相应的表的内容进行维护、修改。
确定(command1)
ifthisform.check1.value=1
browse
=messagebox("
请选择“编辑”!
提示"
Endif
当选择要维护的表是,必须将“编辑”打勾,否则会出现提示信息。
图17课程表信息维护界面
管理员选择对课程表进行维护后出现的课程表。
图18按条件打印界面
管理员可以进行有选择条件的查询并且将信息进行打印。
点击查询,管理员即可在表格中看到自己想要查询的某位学生的基本信息。
点击打印,进入打印预览界面(图19)。
图19打印预览界面
图20全部打印预览界面
五.系统的主要优点和不足
1.优点
该教务管理系统基本上能够实现一些现实生活中的操作功能。
如:
管理员进入该系统可以对所有信息依据实际情况进行编辑修改,学生进入该系统可以查询自己的相关信息,如自己的选课情况、成绩等。
该系统能够方便学校对学生信息的管理、学生对信息查询、管理员对信息编辑,提高管理员的工作效率,提高学校的管理水平。
2.需要进一步改进的地方
(1)学生的基本信息补充不是很完善,如有的学生的简历、照片等信息不全,造成在系统运行后,管理员查询学生的基本信息不全面。
(2)在学生基本信息查询的界面里,查询按钮的功能没有设计成现实生活中的功能。
所以需要将它的功能,即打开一个新的表单改成将查询到的信息显示在已打开的学生基本信息查询的表单里。
(3)在登录界面,不论是学生还是管理员登录后,分别对应的操作选择界面都是以最小化的形式打开。
需要将其改成以正常窗口大小的形式打开,这样也方便用户的操作,无需每次用鼠标点击两次操作选择界面才能进行选择。
(4)在登录时,学生用户使用的密码是自己的学号,这与现实生活不相符。
应该在学生表里多建立个字段来储存学生的密码。
六.总结
1.课程设计中遇到的主要问题及解决办法
问题一:
在编辑登录界面的登录按钮程序时,运行即便是没有输入任何登录信息,即用户名和密码,结果都是弹出信息框,显示登录成功。
解决办法:
取消了原来docase的程序,将其改成用empty来运行。
问题二:
在设计学生登录查分数和选课时,初始设计是建立一个和管理员查询界面类似的表单。
在编辑登录界面时,把thisform.release命令改成thisform.hide,这样在学生查询分数和选课时,可以调用登录界面的学生学号,不需要建立一个和管理员查询界面类似的表单。
这样更加符合现实生活。
2.主要收获
通过此次数据库课程设计,我才真正理解了“纸上得来终觉浅,绝知此事要躬行。
”这句话的真谛,并且了解了自己的真实水平。
刚开始做教务管理系统时,我的初衷是想要模拟西安理工大学的教务管理系统,可是刚做了一个登录界面就出现了报告里提到的问题一,最后不得不把自己的目标降低,运用自己已经学过的基础知识把设计好的表单创建出来。
我在做很多程序设计时,常常顾此失彼,编写程序代码也不算熟练,可能是有段时间没看过VisualFoxpro的缘故吧。
所幸经过这几天的熟悉、练习,我回忆起了一些建立数据库的基本知识,也能够较熟练的完成部分程序代码的编写。
这次课程设计即将结束,我深刻体会到了VisualFoxpro功能的强大。
我相信通过人的努力和创造力,即便是再复杂的操作系统也能创建出来!