数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc

上传人:sccc 文档编号:4856161 上传时间:2023-05-20 格式:DOC 页数:26 大小:12.29MB
返回 下载 相关 举报
数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc_第1页
第1页 / 共26页
数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc_第2页
第2页 / 共26页
数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc_第3页
第3页 / 共26页
数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc_第4页
第4页 / 共26页
数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告基于SQL数据库的通用成绩管理系统.doc(26页珍藏版)》请在三一办公上搜索。

1、基于SQL数据库的通用成绩管理 数 据 库 课 程 设 计 报 告课题 基于SQL数据库的通用成绩管理系统 设 计 者 专 业 计算机科学与技术 班 级 学 号 同组成员名单 指导老师 _ _评定成绩 _2010年 1 月 8 日课 程 设 计 任 务 书一、课程名称 数据库系统原理 指导教师 二、本课程设计题目 基于SQL数据库的通用成绩管理系统 三、本设计所要达到的目的和要求 1、主题明确,软体开发要有创新性,能体现SQL的存储过程、触发器、游标技术等; 2、用delphi结合SQL Server数据库进行开发; 3、写出数据库关系模式及相应的数据库表关系图; 4、绘制成绩MIS相应的系统

2、流程图、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

3、 数据库二维表结构65.Delphi常用的几个语句及功能76.系统界面及主要程序961创建公用模块962登录界面及主界面963基础信息管理136.4 账户管理186.5 帮助信息227.系统测试与运行227.1登录测试227.2账户管理测试227.3成绩录入测试237.4成绩查询测试238.参考文献239.总结2323 1.概述本系统是成绩查询管理系统,主要用于学生成绩的管理,包括成绩录入、查找、添加、删除。学生通用成绩管理是学校管理中异常重要的一个环节,它的实现关系到学校办学整体效率的高低,运用通用成绩管理系统可以减轻学院教学人员的工作量,加快查询速度,加强管理, 也让同学们能在任何时候都能

4、查阅到有关自己学科成绩有关的信息,也有利于让他们充分了解有关自己在大学期间所有课程的学习情况,提高查询速度。学生成绩管理系统是系科综合管理信息系统中很重要的组成部分。2.系统需求分析成绩管理系统是面向各校的管理系统,其目的是提高学校对学生的科学化管理。经过充分的系统调研,发现本系统主要应包括系统管理、成绩管理、成绩查询管理,进一步还发现各需管理的信息有:添加或者删除用户,密码修改,各系学生基本信息,学生选课信息等。本系统的具体要求为:(1) 能管理学生的基本成绩信息,可录入,修改,查询。(2) 通过使用计算机能方便地维护各信息表。(3) 方便同时查出总成绩和平均成绩,实现表的统计功能。(4)

5、需要时能即时进行输出与打印。(5) 系统具有操作方便、简捷等特点。 2.1 本系统需要管理的实体信息(1)账户管理:用户名、密码(2)系别:机电系、文法系、经管系(3)成绩录入:机电系成绩录入、文法系成绩录入、经管系成绩录入(4)成绩查询:机电系成绩查询、文法系成绩查询、经管系成绩查询(5)学生基本信息:学号、姓名、性别、年龄、籍贯、原高中(6)学生选课信息:学号、课程号、成绩(7)成绩查询:总成绩、平均成绩2.2 本系统要管理的实体联系信息(1 ) 学生登陆系统时要输入用户名和密码(2)学生的选课情况,信息要根据不同情况而添加、删除、修改信息,还有可以做密码修改等。3功能需求分析31系统功能

6、的描述经过调研分析,通用成绩管理系统共可分为系统对用户的添加,删除,修改,各系成绩的录入,各系成绩的分类查询,查询学生的基本信息,选课情况。系统的维护用于用户的维护及用户权限的设置等。 32系统功能模块示意图4系统设计41数据概念结构设计411数据流程图 系统0级图成绩管理1级图 成绩查询1级图412 E-R图4.1.3 功能模块设计图通用成绩管理系统总模块图系统管理子模块图成绩管理子模块图成绩查询子模块图帮助信息子模块图4.2数据库逻辑结构设计421数据库逻辑结构设计学生信息(编号,学号,姓名,年龄,性别,籍贯,原就读高中)选修信息(学号,课程号,成绩)用户登陆信息(姓名,密码,权限)422

7、数据标的设计学生成绩学生信息登陆信息4.2.3 数据库二维表结构登录信息表机电系学生信息机电系学生选课及成绩经管系学生信息经管系学生选课及成绩文法系学生信息文法系学生选课及成绩5.Delphi常用的几个语句及功能(a)输入语句InputBox函数和InputQuery函数用于显示一个带有编辑组件的消息对话框,该提示框中有一个文本输入框和两个命令按钮,为用户提供输入文本的功能。1) InputBox函数( InputBox返回值是字符串,也就是输入的字符串 )语法:function InputBox(const ACaption,APrompt,ADefault:String):String;A

8、Caption,消息对话框的标题。APrompt,消息对话框的提示信息。ADefault,消息对话框首次出现时编辑框中显示的信息2) InputQuery函数显示一个带有编辑组件的对话框,为用户提供输入文本的功能,并判断用户是否按下了Ok按钮。( InputQuery返回值为是否点了OK 输入的字符串放在了变量Value中 )语法:function InputQuery(const ACaption,APrompt:string;var Value:string):Boolean;ACaption,消息对话框的标题。APrompt,消息对话框的提示信息。Value,对话框首次出现在编辑框中显示

9、的字符串,并得到用户在消息对话框中输入的字符串。(b)输出语句MessageDlg函数可以将信息以对话框的形式输出并显示。语法:function MessageDlg(const Msg:string;DlgType:TMsgDlgType; Buttons:TMesgDlgButtons;HelpCtx:Longint):Integer;Msg,显示消息的内容。Dlgtype,指定消息对话框的类型。Buttons,指定消息对话框显示的按钮HelpCtx,指定应显示帮助标题的正文ID DlgType参数的取值:mtInfromation,显示带感叹号图标的信息框。mtWarnging,显示一个

10、带有提醒符号图标的信息框。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创建公用模块本系统有一个公用模块,Fo

11、rmData,内有一个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

12、 *.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; /定义

13、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表中的

14、一致时,显示主窗体 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窗

15、体 /或者用 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,

16、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 T

17、Formmain.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 Applicatio

18、n.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

19、;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: T

20、Object);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基础信息管理 机电

21、系成绩管理: 主要代码 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

22、; /求出平均成绩和总分,分别赋值给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.c

23、lose; 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; adoquer

24、y1.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.Clea

25、r; 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, G

26、raphics, 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: TClo

27、seAction);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;

28、 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.Messa

29、ge); 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; i

30、f 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); /产生

31、异常则抛出异常信息 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.Que

32、ry1.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 CL

33、ose; 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; Applicati

34、on.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.系统测试与运行系统

35、名称:通用成绩管理系统测试环境:服务器环境Microsoft SQL Server、编程软件环境Borland Delphi 6测试系统:windows XP7.1登录测试登录测试主要用于检测系统能否防止非授权用户使用系统。测试过程: 进入通用成绩管理系统,首先输入正确的用户和密码,并选择正确的操作权限,用户可以登录;然后输入错误的账号和正确的密码或者正确的账号和错误的密码以及错误的账号和错误的密码,都不能登录,并且输入三次错误,自动退出。7.2账户管理测试账户管理测试主要用于检测所输入的用户名和密码是否符合要求,能否实现密码修改。测试过程:进入账户管理界面,首先不输入任何信息,添加信息,则出

36、现错误,信息不能为空,然后输入重复的用户名,则也出现错误,用户名不能重复。然后输入符合要求的用户名信息,则添加成功,显示操作成功。不输入用户和密码修改密码,则提示错误,不能成功,用户名和密码不能为空,输入不正确的用户名,则无法修改密码,出现错误,然后输入正确的用户名和密码,则操作成功。7.3成绩录入测试测试过程:进入成绩录入界面,首先不不输入学号或者姓名,则不成功,出现错误,然后输入符合条件的信息,则录入成功。7.4成绩查询测试成绩查询测试主要用于检测所输入的所对应的系的用户学号信息是否能实现查询。测试过程:进入成绩查询界面,首先输入错误的学生学号,执行查询,则出现错误,无法实现查询,然后输入

37、不对应的系的学生学号,执行查询,无法显示查询结果,再次输入正确的系的学生学号,则查询成功。8.参考文献1数据库原理及技术课程设计 钱雪忠,陈国俊 北京:清华大学出版社,2009.022数据库原理及应用实验指导 钱雪忠,陶向东 北京:北京邮电大学出版社2008.063Delphi开发实用编程200例 周亚玲,苏治中 中国铁道出版社 2006.014Delphi 2006从入门到精通 颜金传 电子工业出版社2008.15SQL Server数据库应用基础与实现 汤承林 电子工业出版社 2008.59.总结通过课程设计我对Delphi这门语言有了更深的认识,对数据库操作更加深入的掌握,虽然我们不是完完整整的做下来这个系统的但是在学习的过程中就懂得了新的知识理论并实践了。同时小组的合作也提高了团队合作能力。在本组我是总程序员,负责总体的组织设计,负责总体的需求分析和有些流程图及最后总体测试等,在其中我懂得了任务的重要性与责任性,在安排等组织方面得到了能力的提高。当然本系统还存在好些缺点,比如,成绩管理系统过于简单,没有班级成绩统计功能等。做编程需要有耐心,不能浮躁,特别在出现错误不能执行时,应一次次试验,而不能气馁,还不行的情况下,应仔细思考与组友商讨研究共同解决。这次设计让我深刻的体会到团队的力量,还有做什么事都不能马马虎虎,需要在思考后再好好实现。

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号