下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 刘文洲数据库课程设计

刘文洲数据库课程设计.doc

刘文洲数据库课程设计

qingping977
2012-01-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《刘文洲数据库课程设计doc》,可适用于高等教育领域

数据库原理课程设计一、概述数据库的普及学校利用数据库设计的学生管理系统大大减少了学校学生管理的工作量。通过对学校日常教学管理中的课程、选课、学生、班级、教师、成绩等相关内容进行分析完成具有学生管理、成绩管理、班级管理、教师管理、课程管理等相关功能的小型数据库管理应用系统。通过课程设计使学生掌握数据库的基本概念结合实际的操作和设计巩固课堂教学内容使学生掌握数据库系统的基本概念、原理和技术将理论与实际相结合应用现有的数据建模工具和数据库管理系统软件规范、科学地完成一个小型数据库的设计与实现把理论课与实验课所学内容做一综合并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。设计环境:本学期学习了PB在这里就采用PB环境进行数据库原理课程设计。二、需求分析、 问题的提出:为了对数据库的学习进行深入的理解和使用做一个高效率的学生信息管理管理系统进行本次的数据库课程设计。、 需完成的功能:通过对学校日常教学管理中的课程、选课、学生、班级、教师、成绩等相关内容进行分析完成具有学生管理、成绩管理、班级管理、教师管理、课程管理等相关功能的小型数据库管理应用系统。、ER图:三、数据表:数据项是数据库的关系中不可再分的数据单位下表分别列出了数据的名称、数据类型、长度、取值能否为空。设计学生成绩管理数据库包括课程、学生、教师、成绩四个关系,其关系模式中对每个实体定义的属性如下:课程信息表course:(课程号课程名教师号学分学时)学生信息表info:(学号姓名性别年龄专业系别)成绩信息表Exam:(学号号课程名成绩)教师信息表Teacher:(教师号教师名教师性别教师系别)、课程信息表(course)字段名描述数据类型字段限制cno课程号char()主关键字cname课程名char()不能为空teano教师号char()不能为空credit学分char()不能为空ctime学时char()不能为空、学生信息表(info)字段名描述数据类型字段权限sno学号char()主关键字sname姓名char()不能为空ssex性别char()不能为空sage年龄char()不能为空major专业char()不能为空depart系别char()不能为空教师表(teacher)字段名属性数据类型字段权限teano教师号char()主关键字tname教师名char()不能为空Tsex教师性别char()不能为空Tdepart教室系别char()不能为空成绩表(Exam)字段名属性数据类型字段权限sno学号char()主关键字cno课程名char()不能为空degree成绩char()不能为空四、视图索引数据库权限:create view temp (sno,sname,cname,score)as select infosno,infosname,coursecname,examscore from info,exam,course where infosno=examsno and examcno=coursecnoCREATE UNIQUE INDEX STUSNO ON info(sno)GRANT SELECT ON TABLE examTO PUBLIC五、软件功能设计功能表:系统维护(下设系统退出)  信息录入(下设学生基本信息录入|学生成绩录入)   信息查询(下设学生基本信息查询|学生成绩查询*)报表功能描述:退出系统:退出程序。学生数据输入:输入学号、姓名、性别、年龄、出生年月等学生基本信息。成绩输入:输入各学期学生考试成绩。学生信息查询:查询学生基本信息。学生成绩查询:查询学生考试成绩。按年级输出报表:输出全年级学生各科目考试成绩。按班级输出报表:输出全班学生各科目考试成绩。六、程序代码及控件描述启动封面:(wstart)Open事件代码:SQLCAdbms="ODBC"SQLCAdatabase=""SQLCAuserid=""SQLCAdbpass=""SQLCAlogid=""SQLCAlogpass=""SQLCAdbparm="ConnectString='DSN=studentUID=dbaPWD=sql'"SQLCAlock=""SQLCAautocommit=falseconnect using SQLCAIF SQLCASqlcode <>  then        messagebox("无法连接数据库!",SQLCAsqlerrtext)        close(wstart)    else        open(wstartscc)        end ifCommandButtontext=“进入系统”CommandButton clicked事件代码:open(wmain)close(wstart)主程序窗口(wmain):title=“学生信息管理系统”包含菜单mmain窗口(winfoinput)Open事件代码:    dwSetTransObject(SQLCA)dwRetrieve()控件datawindow的dataobject属性:iinfo(一个freeform风格的数据窗口对象显示info表的全部列)commandbutton(text属性:保存)clicked事件的代码:dwUpdate()commandbutton(text属性:取消)clicked事件的代码:dwRetrieve()commandbutton(text属性:插入)clicked事件的代码:dwInsertRow(dwGetRow())commandbutton(text属性:删除)clicked事件的代码:dwDeleteRow(dwGetRow())窗口(wscoreinput)Open事件代码:    dwSetTransObject(SQLCA)dwRetrieve()控件datawindow的dataobject属性:iscore(一个freeform风格的数据窗口对象显示exam表的全部列)commandbutton(text属性:保存)clicked事件的代码:dwUpdate()commandbutton(text属性:取消)clicked事件的代码:dwRetrieve()commandbutton(text属性:插入)clicked事件的代码:dwInsertRow(dwGetRow())commandbutton(text属性:删除)clicked事件的代码:dwDeleteRow(dwGetRow())窗口(wquery)控件statictext的text属性:“请输入学号:”控件groupbox包含个statictext控件它们的text属性分别对应info表的字段名和查询结果控件SingleLineEdit的text属性为commandbutton(text属性:查询)clicked事件的代码:Connectif SQLCASQLCode< then    MessageBox("连接错误",SQLCASQLErrText,Exclamation!)end ifMessageBox("done",SQLCASQLErrText,Exclamation!)int     Stuidstring  Stuname,Stuxuehao,Stusex,Stuage,Stuhomestring  Stubirth,Studepart,Stuprice,Stuinfo,StuhealthStuid=Integer(sleidText)select infosno,infosname,infosex,infoage,        infodepart,infoprize,infoexp,infohome,        infohealth,infograde,infoclass,infoother                Into :Stusno,:Stusname,:Stusex,:Stuage,                :Studepart,:Stuprize, :Stuexp,:Stuhome,                :Stuhealth,:Stugrade:Stuclass, :Stuother        From student Where infosno=:Stuid                IF SQLCASQLCode= THEN    MessageBox("学生查询","对不起,没有该学生")ELSEIF SQLCASQLCode> THEN    MessageBox("数据库错误",SQLCASQLErrText,Exclamation!)END IF窗口(wsquery)控件groupbox(text属性为:“选择查询模式”)包含个RadioButton控件它们的text属性分别为按年级查询和按班级查询控件SingleLineEdit(text属性为)功能为获得输入的年级班级编号控件CommandButton(text属性为确定)的Clicked事件代码:integer ninteger slenslen=Len(sletext)n=asc(sletext)if (slen> or slen=) then    messagebox("错误","数据非法!")    sletext=""elseif  (n< or n>) then    messagebox("错误","数据非法!")end ifconnect using SQLCAif rbchecked=true then select infosno,infosname,examcno,coursecname,examscore       from info,course,exam        where infosno =examsno and ,examcno =coursecno and infograde=nend ifif rbchecked=true thenselect infosno,infosname,examcno,coursecname,examscore       from info,course,exam        where infosno =examsno and ,examcno =coursecno and infoclass=nend if窗口(wtable)控件groupbox(text属性为:“选择模式”)包含个RadioButton控件它们的text属性分别为按年级输出和按班级输出控件SingleLineEdit(text属性为)功能为获得输入的年级班级编号控件CommandButton(text属性为确定)的Clicked事件代码:integer ninteger slenslen=Len(sletext)n=asc(sletext)if (slen> or slen=) then    messagebox("错误","数据非法!")    sletext=""elseif  (n< or n>) then    messagebox("错误","数据非法!")end ifconnect using SQLCAif rbchecked=true thenselect * from depexam,info where infograde=nend ifif rbchecked=true thenselect * from depexam,info where infoclass=n主菜单(mmain)代码:退出系统clicked事件的代码:close(wmain)学生基本信息输入clicked事件的代码:Open(winfoinput)学生成绩输入clicked事件的代码:Open(wscoreinput)学生基本信息查询clicked事件的代码:Open(wquery)学生成绩查询clicked事件的代码:Open(wsquery)报表clicked事件的代码:Open(wtable)七、设计心得通过这次课程设计学到很多很多以前没有接触过的东西除了提高了自己开发数据库系统的能力培养了多方面思考问题的能力是我这次课程设计最大的收获。在设计的过程中遇到过各种各样的问题因为这个学期初次接触powerbuilder而且在平常的上机实验过程中没有涉及到学习过这个软件一开始确实是感觉到不知所措无从下手但是借助参考图书馆的资料和以前别人开发的例子还是慢慢的对它熟悉起来最终完成了学校日程管理系统课程设计。通过这次课程设计加深了我对数据库基础理论和基本知识的理解使我很好的掌握了数据库应用系统设计开发的基本方法并且提高了我综合运用所学知识和增强实际动手能力。通过这个设计我了解到一个大型的计算机管理系统必须有一个正确的设计指导思想通过合理的选择数据结构操作系统以及开发环境构成一个完善的系统才能充分发挥计算机信息管理优势。因为数据库的设计需要人性化考虑各个方面的问题这就需要设计者本身有这方面的能力。同时也反映出自己的许多不足掌握知识不是很牢固很难把书本上的知识运用到实际这是自己的一个缺点和不足同时我还发现自己考虑问题不够全面有的问题是实际操作中会遇到的但是自己却很难把这一问题体现在设计中并很好的解决它。这是以后学习中需要引以为戒的地方。这个系统的功能虽然有所欠缺但是心理还是比较高兴的因为这是到目前为止自己开发的第一个实用系统在以后的学习中一定回经常复习数据库的知识一步步的提高自己的开发数据库系统的能力。课程信息表学分教师号课程号课程名学时学生信息表学号姓名专业年龄系别性别选课成绩课程号学号教师信息表教师号教师名教师性别教课教师系别成绩

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/9

刘文洲数据库课程设计

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利