已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于sql数据库的通用成绩管理 数 据 库 课 程 设 计 报 告课题 基于sql数据库的通用成绩管理系统 设 计 者 专 业 计算机科学与技术 班 级 学 号 同组成员名单 指导老师 _ _评定成绩 _2010年 1 月 8 日课 程 设 计 任 务 书一、课程名称 数据库系统原理 指导教师 二、本课程设计题目 基于sql数据库的通用成绩管理系统 三、本设计所要达到的目的和要求 1、主题明确,软体开发要有创新性,能体现sql的存储过程、触发器、游标技术等; 2、用delphi结合sql server数据库进行开发; 3、写出数据库关系模式及相应的数据库表关系图; 4、绘制成绩mis相应的系统流程图、e-r图等; 5、完成成绩mis登陆界面、账户管理、主界面、成绩录入、成绩查询和其各项设计与操作。 四、接受任务学生: 班 姓名 五、开始及完成时间 自 2009 年 12 月 28 日 至 2010 年 1 月 8 日2009年 12 月 28 日目录1.概述12.系统需求分析12.1 本系统需要管理的实体信息12.2 本系统要管理的实体联系信息13功能需求分析131系统功能的描述132系统功能模块示意图14系统设计241数据概念结构设计2411数据流程图2412 e-r图44.1.3 功能模块设计图44.2数据库逻辑结构设计5421数据库逻辑结构设计6422数据标的设计64.2.3 数据库二维表结构65.delphi常用的几个语句及功能76.系统界面及主要程序961创建公用模块962登录界面及主界面963基础信息管理136.4 账户管理186.5 帮助信息227.系统测试与运行227.1登录测试227.2账户管理测试227.3成绩录入测试237.4成绩查询测试238.参考文献239.总结2324 1.概述本系统是成绩查询管理系统,主要用于学生成绩的管理,包括成绩录入、查找、添加、删除。学生通用成绩管理是学校管理中异常重要的一个环节,它的实现关系到学校办学整体效率的高低,运用通用成绩管理系统可以减轻学院教学人员的工作量,加快查询速度,加强管理, 也让同学们能在任何时候都能查阅到有关自己学科成绩有关的信息,也有利于让他们充分了解有关自己在大学期间所有课程的学习情况,提高查询速度。学生成绩管理系统是系科综合管理信息系统中很重要的组成部分。2.系统需求分析成绩管理系统是面向各校的管理系统,其目的是提高学校对学生的科学化管理。经过充分的系统调研,发现本系统主要应包括系统管理、成绩管理、成绩查询管理,进一步还发现各需管理的信息有:添加或者删除用户,密码修改,各系学生基本信息,学生选课信息等。本系统的具体要求为:(1) 能管理学生的基本成绩信息,可录入,修改,查询。(2) 通过使用计算机能方便地维护各信息表。(3) 方便同时查出总成绩和平均成绩,实现表的统计功能。(4) 需要时能即时进行输出与打印。(5) 系统具有操作方便、简捷等特点。 2.1 本系统需要管理的实体信息(1)账户管理:用户名、密码(2)系别:机电系、文法系、经管系(3)成绩录入:机电系成绩录入、文法系成绩录入、经管系成绩录入(4)成绩查询:机电系成绩查询、文法系成绩查询、经管系成绩查询(5)学生基本信息:学号、姓名、性别、年龄、籍贯、原高中(6)学生选课信息:学号、课程号、成绩(7)成绩查询:总成绩、平均成绩2.2 本系统要管理的实体联系信息(1 ) 学生登陆系统时要输入用户名和密码(2)学生的选课情况,信息要根据不同情况而添加、删除、修改信息,还有可以做密码修改等。3功能需求分析31系统功能的描述经过调研分析,通用成绩管理系统共可分为系统对用户的添加,删除,修改,各系成绩的录入,各系成绩的分类查询,查询学生的基本信息,选课情况。系统的维护用于用户的维护及用户权限的设置等。 32系统功能模块示意图4系统设计41数据概念结构设计411数据流程图 系统0级图成绩管理1级图 成绩查询1级图412 e-r图4.1.3 功能模块设计图通用成绩管理系统总模块图系统管理子模块图成绩管理子模块图成绩查询子模块图帮助信息子模块图4.2数据库逻辑结构设计421数据库逻辑结构设计学生信息(编号,学号,姓名,年龄,性别,籍贯,原就读高中)选修信息(学号,课程号,成绩)用户登陆信息(姓名,密码,权限)422数据标的设计学生成绩学生信息登陆信息4.2.3 数据库二维表结构登录信息表机电系学生信息机电系学生选课及成绩经管系学生信息经管系学生选课及成绩文法系学生信息文法系学生选课及成绩5.delphi常用的几个语句及功能(a)输入语句inputbox函数和inputquery函数用于显示一个带有编辑组件的消息对话框,该提示框中有一个文本输入框和两个命令按钮,为用户提供输入文本的功能。1) inputbox函数( inputbox返回值是字符串,也就是输入的字符串 )语法:function inputbox(const acaption,aprompt,adefault:string):string;acaption,消息对话框的标题。aprompt,消息对话框的提示信息。adefault,消息对话框首次出现时编辑框中显示的信息2) inputquery函数显示一个带有编辑组件的对话框,为用户提供输入文本的功能,并判断用户是否按下了ok按钮。( inputquery返回值为是否点了ok 输入的字符串放在了变量value中 )语法:function inputquery(const acaption,aprompt:string;var value:string):boolean;acaption,消息对话框的标题。aprompt,消息对话框的提示信息。value,对话框首次出现在编辑框中显示的字符串,并得到用户在消息对话框中输入的字符串。(b)输出语句messagedlg函数可以将信息以对话框的形式输出并显示。语法:function messagedlg(const msg:string;dlgtype:tmsgdlgtype; buttons:tmesgdlgbuttons;helpctx:longint):integer;msg,显示消息的内容。dlgtype,指定消息对话框的类型。buttons,指定消息对话框显示的按钮helpctx,指定应显示帮助标题的正文id dlgtype参数的取值:mtinfromation,显示带感叹号图标的信息框。mtwarnging,显示一个带有提醒符号图标的信息框。mtcustom,无显示图标。mterror,显示一个带有停止符号图标的信息框。mtconfirmation,显示一个带有问好图标的信息框。(c)条件判断语句1)使用if.then语句 语法: if 条件 then begin 语句 end;if.then.else语句语法:if 条件 then语句1else语句22)case.of条件分支语句case.of语句提供了一个可读性更好的多重if嵌套的解决方案。语法:case 条件表达式 of 条件1:语句1; . 条件n:语句n;else 其他语句;end;6.系统界面及主要程序61创建公用模块本系统有一个公用模块,formdata,内有一个connection控件,用于连接数据库,若数据库改变,只要修改connection控件的connection属性即可。另外,所有的窗体都可以被其他窗体引用。62登录界面及主界面uses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, extctrls, stdctrls, db, adodb, jpeg, buttons;var formlogin: tformlogin;implementationuses dataconn,mainform; $r *.dfmprocedure tformlogin.button3click(sender: tobject);beginapplication.terminate;end;procedure tformlogin.button2click(sender: tobject);beginedit1.text :=;edit2.text :=;end;procedure tformlogin.formclose(sender: tobject; var action: tcloseaction);beginapplication.terminate;end;vari:integer=0; /定义i 作用是查看用户是否输入时有三次错误procedure tformlogin.speedbutton1click(sender: tobject);var user,pass:string; begin user:=trim(edit1.text); pass:=trim(edit2.text); adoquery1.close; adoquery1.sql.clear; adoquery1.sql.text:=select * from login where username=+user+ and password=+pass+; /当变量user 和 pass 的内容和login表中的一致时,显示主窗体 adoquery1.open ; if adoquery1.recordset.recordcount = 0 then /未找到用户,提示用户输入错误 begin application.messagebox(用户名或密码不正确!请重新输入!,_注意!,mb_ok); edit1.text :=; edit2.text :=; i:=i+1; if(i=3)then begin showmessage(密码错误三次,系统退出!); application.terminate; end; end else begin formlogin.hide;/隐藏formlogin窗体 /或者用 formlogin.visible:=false; formmain.show; /显示formmain主窗体 /或者用 formmain.visible:=true; end;end;procedure tformlogin.speedbutton2click(sender: tobject);beginapplication.terminate;end;end.uses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, stdctrls, extctrls, menus;var formmain: tformmain;implementationuses usersinfo,jdxio,jdxgrade,helpform, jgxgrade, jgxio, wfxgrade, wfxio;$r *.dfmprocedure tformmain.n10click(sender: tobject);begin hide; formusersinfo.show;end;procedure tformmain.n5click(sender: tobject);beginformmain.hide;formjdxio.show;end;procedure tformmain.n6click(sender: tobject);beginhide;formjdxgrade.show;end;procedure tformmain.n4click(sender: tobject);beginapplication.terminate;end;procedure tformmain.n11click(sender: tobject);beginformhelp.show;end;procedure tformmain.formclose(sender: tobject; var action: tcloseaction);begin application.terminate;/退出程序end;procedure tformmain.radiobutton1click(sender: tobject);begin hide; /隐藏当前窗体 formjdxio.show; /显示 jdxioform窗体end;procedure tformmain.radiobutton2click(sender: tobject);beginhide;formjdxgrade.show;end;procedure tformmain.radiobutton4click(sender: tobject);beginhide;formjgxgrade.show;end;procedure tformmain.radiobutton3click(sender: tobject);beginhide; formjgxio.show;end;procedure tformmain.radiobutton6click(sender: tobject);beginhide;formwfxgrade.show;end;procedure tformmain.radiobutton5click(sender: tobject);begin hide; formwfxio.show;end;procedure tformmain.n8click(sender: tobject);beginformmain.hide;formjgxio.show;end;procedure tformmain.n9click(sender: tobject);beginhide;formjgxgrade.show;end;procedure tformmain.n13click(sender: tobject);beginformmain.hide;formwfxio.show;end;procedure tformmain.n14click(sender: tobject);beginhide;formwfxgrade.show;end;end.63基础信息管理 机电系成绩管理: 主要代码 var formjdxgrade: tformjdxgrade;implementationuses dataconn,mainform;$r *.dfmprocedure tformjdxgrade.speedbutton1click(sender: tobject);begin /查询符合相关学号的记录 adoquery1.close; adoquery1.sql.clear; adoquery1.sql.text:=select 学号,课程号,成绩 from jdxgrade where 学号=+trim(edit1.text)+ ; adoquery1.open; /求出平均成绩和总分,分别赋值给edit adoquery1.close; adoquery1.sql.clear; adoquery1.sql.text:=select sum(成绩) as 求和,avg(成绩) as 平均值 from jdxgrade where 学号=+trim(edit1.text)+ ; adoquery1.open; edit2.text:= adoquery1.fieldbyname(求和).asstring; edit3.text:= adoquery1.fieldbyname(平均值).asstring; /重新恢复sql数据显示 adoquery1.close; adoquery1.sql.clear; adoquery1.sql.text:=select 学号,课程号,成绩 from jdxgrade where 学号=+trim(edit1.text)+ ; adoquery1.open; if adoquery1.recordset.recordcount = 0 then /未找到用户,提示用户输入错误 begin application.messagebox(学号输入不正确!请重新输入!,注意!,mb_ok); edit1.text :=; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.text:=select 学号,课程号,成绩 from jdxgrade; adoquery1.open; endend;procedure tformjdxgrade.button1click(sender: tobject);begin edit1.text :=; /清空edit1.text记录 formmain.show; close; /关闭当前窗体end;procedure tformjdxgrade.formcreate(sender: tobject);begin /在窗体创建时显示sql数据 adoquery1.close; adoquery1.sql.clear; adoquery1.sql.text:=select 学号,课程号,成绩 from jdxgrade ; adoquery1.open;end;procedure tformjdxgrade.formclose(sender: tobject; var action: tcloseaction);beginedit1.text :=; /清空edit1.text的值formmain.show;end;end. 经管系成绩管理 (代码同上) 文法系成绩管理(代码同上)6.4 账户管理uses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, db, adodb, stdctrls, grids, dbgrids, buttons;var formusersinfo: tformusersinfo;procedure tformusersinfo.speedbutton1click(sender: tobject);beginadoquery1.close;formmain.show;formusersinfo.hide;end;procedure tformusersinfo.formclose(sender: tobject; var action: tcloseaction);beginformmain.show;formusersinfo.hide;end;procedure tformusersinfo.button1click(sender: tobject);begin inherited; if textisnull = false then /判断编辑框文本是否为空 begin with datamodule1.query2 do /判断用户名称是否重复 begin close; sql.clear; end; try with datamodule1.add do /向数据表中插入数据 begin close; sql.clear; sql.add(insert into login values(:username,:password); parameters.parambyname(username).value := trim(edit1.text); parameters.parambyname(password).value := trim(edit2.text); execsql; end; application.messagebox(操作成功.,提示,64); button4.click; except on e: exception do /产生异常则抛出异常信息 showmessage(e.message); end; end else begin application.messagebox(用户名或密码不能为空.,提示,64); end;end;/自定义函数,判断编辑框是否为空function tformusersinfo.textisnull: boolean;begin result := false; if (trim(edit1.text)=)or(trim(edit2.text)=) then result := true;end;procedure tformusersinfo.button2click(sender: tobject);begin inherited; if datamodule1.query1.active then /存在可删除的数据 begin /提示是否删除数据 if application.messagebox(pchar(确实要删除库存名称为: + trim(datamodule1.query1.fieldbyname(username).asstring)+用户名的吗?),提示,mb_yesno)= id_yes then begin try datamodule1.query1.delete; button4.click; except on e: exception do showmessage(e.message); /产生异常则抛出异常信息 end; end; end else application.messagebox(当前没有可删除的信息.,提示,64);end;procedure tformusersinfo.button4click(sender: tobject);begin inherited; edit1.clear; /清空编辑框文本 edit2.clear; with datamodule1.query1 do /刷新表格信息 begin close; sql.clear; sql.add(select * from login); open; end; if datamodule1.query1.recordcount0 then datasource1.dataset := datamodule1.query1 else begin datamodule1.query1.close; datasource1.dataset := nil; end;end;procedure tformusersinfo.button5click(sender: tobject);var n:string;begin inherited; if (trim(edit5.text)then /密码是否为空 begin try with datamodule1.update do begin close; sql.clear; sql.add(update login set password = :edit4 where username = :edit3); parameters.parambyname(edit4).value := trim(edit5.text); parameters.parambyname(edit3).value := trim(edit3.text); execsql; end; n:= trim(edit5.text); edit4.text := n; edit5.clear; edit4.clear; edit3.clear; application.messagebox(操作成功.,提示,64); except on e: exception do showmessage(e.message); end; end;end;procedure tformusersinfo.button6click(sender: tobject);beginedit3.clear;edit4.clear;edit5.clear;end;procedure tformusersinfo.button3click(sender: tobject);begin hide; formmain.show;end;end.6.5 帮助信息 7.系统测试与运行系统名称:通用成绩管理系统测试环境:服务器环境microsoft sql server、编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州健康证考试题及答案
- 地下室消防考试题及答案
- 农村会计考试题库及答案
- 老年医学科老年痴呆症护理细则
- 产妇产后导尿护理
- 环形红斑相关护理
- 金融借款信用保证承诺书4篇
- 文档编写标准化流程模板
- 睡眠障碍科普护理
- 中考数学真题与拓展题及答案
- 网格员招聘考试(公共基础知识)历年参考题库含答案详解(5卷版)
- 平衡计分卡在金融绩效管理中的应用研究
- 2025警务辅助人员招聘考试(时事政治+公安基本法律)题库及答案
- 柔性灯带专业知识培训课件
- 2025秋期版国开电大本科《理工英语4》一平台综合测试形考任务在线形考试题及答案
- 2025年河南省中小学教师职称评定答辩题(附答案)
- 轻轨车站工程施工方案
- 智能穿戴设备2025年智能手表在智能办公中的应用可行性分析报告
- 2025广投集团春季校园招聘230人笔试参考题库附带答案详解
- 2025年中国华电集团有限公司“青年骏才”招聘和校园招聘笔试参考题库附带答案详解
- 2025年摄影师(高级)职业技能鉴定考试试卷
评论
0/150
提交评论