数据库报告学生成绩信息管理系统_第1页
数据库报告学生成绩信息管理系统_第2页
数据库报告学生成绩信息管理系统_第3页
数据库报告学生成绩信息管理系统_第4页
数据库报告学生成绩信息管理系统_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库原理及技术实验报告(20 20 学年 第 一 学期)题 目: 学生成绩信息管理系统 班 级: 电子科学与技术 姓 名: 学 号: 指导教师: 20年月日目录摘要1第一章 绪论51.1 设计目的51.2 开发工具选择51.3 开发环境51.4 本报告的主要内容5第二章 需求分析62.1系统需求简介62.1.1系统目标62.1.2功能需求分析62.1.3性能需求分析6第三章 概要设计73.1设计概述83.2系统总体结构及功能模块划分43.2.1系统的总体结构43.2.2系统处理流程53.2.3功能需求与程序关系53.2.4外部接口63.2.5用户界面63.2.6开课查询模块63.2.7学习成

2、绩查询模块63.2.8学生成绩维护模块73.2.9学生信息维护模块83.2.10数据结构设计9第四章 详细设计134.1概述134.2系统程序流程图134.3系统主要功能模块简介144.3.1系统登录144.3.2学生成绩查询主界面144.3.3开课情况15 4.3.4学生成绩查询.164.3.5学生成绩维护.164.3.6学生信息查询.194.3.7帮助 .214.3.8退出系统.21第五章 主要功能模块代码215.1系统登录235.2学生成绩查询主界面245.3开课情况285.4学生成绩查询295.5学生成绩维护325.6学生信息查询41第六章 课程设计心得45学生成绩管理系统摘要本文描述

3、的是基于windows环境的学生信息管理系统,主要功能模块包括:学生信查询,学生信息管理,学生成绩录入,主要工具microsoft visual studio 2013 设计窗体, sql server2012建立数据库,实现学校信息管理的各个功能。本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的描述。第一章 绪论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单windows窗体应用程序的设计和ado.net的应用,希望通过本次课程

4、设计锻炼学生使用c#语言解决实际问题的能力。1.2 开发工具选择本系统后台数据库采用microsoft sql server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用microsoft 公司的visual studio 2013作为主要开发工具,可与sql server 2012数据库无缝链接。1.3 开发环境系统开发平台:microsoft visual studio2012系统开发语言:c#数据库管理软件:sql server 20131.4 本报告的主要内容本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的

5、需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。第二章 需求分析2.1项目概述鉴于目前学生不便了解自身成绩以及对成绩查询系统需求的情况,为使能够满足用户需求,及时查询到所需信息,开发一款小型,便捷的学习成绩查询系统。 主要功能 总体设计 接口设计 数据结构设计 测试分析 总结主要功能l 运行环境:    硬件环境:p ii233 pc,内存32mb以上, 硬盘1g以上 软件环境: windows操作系统、unix、linixl 普通用户: 开课情况查询 学生成绩查询 帮助l 系统管理员: 开课情况查询 学生成绩查询 学生成绩维护 学生记录维护

6、 帮助l 学生成绩维护 添加成绩记录 修改成绩记录 删除成绩记录l 学生记录维护 添加学生记录 修改学生记录 删除学生记录第三章 概要设计3.1设计概述根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;3.2系统总体结构及功能模块划分3.2.1系统的总体结构总体结构图3.2.1 系统的总体结构3.2.2系统处理流程学生成绩学生成绩查询系统输入选择管理员?查询条件显示显示选择条件开课情况查询添加、修改、删除学习成绩查询学生信息维护学习成绩维护处理结果结果数据库查询系统输入选择管理员?查询条件显示显示选择条件开课情况查询添加、修改、

7、删除学习成绩查询学生信息维护学习成绩维护处理结果结果数据库登陆ny系统处理流程 3.2.3功能需求与程序关系 添加 修改 删除 查询查询 t 学生信息管理 t t t选课信息 管理 t t t功能需求与程序关系3.2.4外部接口动态链接库:成绩查询数据库模块名称: 查询模块 学生信息管理模块 学生成绩管理模块 选课信息管理模块3.2.5用户界面l 开课查询模块l 学生成绩查询模块l 学生成绩维护模块l 学生信息维护模块3.2.6开课查询模块l 模块功能: 查询本学期的开课情况;学生可以通过该功能能够查询出所报的课程号、课程名、学分;l 模块输出 输出: 课程号、课程名、学分 l 接口: 由登陆

8、界面中通过选择普通用户界面调查询,通过选择管理员界面调查询、存储分配,录入/修改的数据放在数据库的kc表中3.2.7学生成绩查询模块l 模块描述: 用于成绩查询功能 l 模块功能: 该模块可以让学生通过输入相应的学号通过调用主数据库的数据调出相应的学 号学生及总成绩l 模块输入: 学号l 模块输出: 学号、姓名、班级、以及总成绩开始选择用户选择显示数据返回用户界面返回输入学号调用数据库数据管理员密码错误流程逻辑图l 接口: 由登陆界面中通过选择普通用户界面调查询,通过选择管理员界面调查询、存储分配、录入/修改的数据放在数据库的cjcx-jcb表中 测试(出错检测和处理)1.如果输入的学号不是数

9、字,则弹出“请输入数字”的警告对话框 2.如果输入数据库中不存在的学号,则弹出“学号不存在,请重新输入!”的警告对话框3.如果输入的学号为负,则弹出“学号不存在,请重新输入!”的警告对话框4.如果输入的学号为空,则弹出“学号不能为空”的的警告对话框3.2.8学生成绩维护模块l 模块描述:该模块用来成绩维护管理l 模块功能:该模块有3个功能分别是添加成绩记录。修改成绩记录。删除成绩记录。l 模块输入:l a)  添加成绩记录模块:输入学号 课程号 姓名 课程名 性别 成绩 年龄 学分 班级 l b)  修改成绩记录模块和删除成绩记录模块:输入学号l 模块输出:a) 学生成绩增

10、加成功"l b)学生成绩修改成功.l c)学生成绩删除成功 l 成绩维护流程逻辑图原理及出错处理和信息维护的基本相同,此处不赘述(请参看信息维护的相关内容)l 接口: 由管理员通过管理员界面选择学生成绩维护来调用该模块,存储分配、录入/修改的数据放在数据库的cjpm表中3.2.9学生信息维护模块l 模块描述:学生基本信息维护l 模块功能:该模块有3个功能小模块分别是:添加学生记录、修改学生记录、删除学生记录。l 模块输入:l a)添加学生记录:学号 年龄 姓名 班级 性别l b)修改学生记录和删除学生记录:输入学号l 模块输出:相应的操作成功更新数据库返回主界面开始1选择管理员用户选

11、择返回返回删除录入/修改开始2yn确定yn流程逻辑图l 接口: 由管理员通过管理员界面选择学生基本信息维护来调用该模块存储分配、录入/修改的数据放在数据库的xsxx表出错检测和处理1.添加记录: a)如果输入学号为空,则弹出“学号不能为空”的的对话框 b)如果输入的学号不是数字,则弹出“请输入数字!”的警告框 c)如果输入的学号,数据库中已经存在了,则弹出“该学号已存在!请重新输入!” d)其他姓名、年龄、班级等的出错检测与上类似。3.2.10数据结构设计l 物理结构设计 表的定义xsxx: (学号 char(10) ,姓名 char(10),性别 char(4),班级 varchar (20

12、),年龄 int)kc: (课程号 char(10),课程名 char(20),学分 int )xxxx : (学号 char(10),课程号 char(10),成绩 int ) cjpm : (学号 char(10),姓名 char(10),班级varchar (20),排名 int,总分 int)学号姓名班级排名总分cjpm学号课程号成绩xxxx学号姓名性别班级年龄xsxx 课程号 课程名 学分kc表间关系学号课程号成绩xxxx课程号课程名学分 kc学号姓名班级排名总计成绩 c+电子技术计算机网络组成原理数据结构数值分析英语体育线形代数哲学原理政治经济原理cjcx_jcb学号姓名性别班级年

13、龄xsxx学号姓名性别班级课程号课程名成绩cjcx学号姓名班级排名总分cjpm基本表交叉查询表间关系(视图)开课查询模块 成绩查询模块 学生信息维护 成绩维护模块 学生基本表 t t 成绩排名 t t t课程表 t t t选课表 t t数据结构与程序关系第四章 详细设计4.1概述详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。4.2系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明

14、白的显示出来。如图4.2.1系统总流程图结构。学生成绩学生成绩查询系统输入选择管理员?查询条件显示显示选择条件开课情况查询添加、修改、删除学习成绩查询学生信息维护学习成绩维护处理结果结果数据库查询系统输入选择管理员?查询条件显示显示选择条件开课情况查询添加、修改、删除学习成绩查询学生信息维护学习成绩维护处理结果结果数据库登陆ny图4.2.1系统总体流程图4.3系统主要功能模块简介4.3.1系统登录管理员凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面如图4.3.1 用户登录界面所示。普通用户可直接登录,查看公开的学生成绩信息。如图4.3.2所示。图4.3.1 管理员登录界面图4.

15、3.2 普通用户登录界面代码:4.3.2学生成绩查询主界面学生信息查询:在程序主界面(如图4.3.2 程序主界面)可以看到有很多选项,有开课情况查询,学生成绩查询,学生成绩维护,学生信息维护,帮助,退出登录等选项。管理员可以进行对每个选项的管理。图4.3.2 程序主界面4.3.3开课情况查询开课情况查询:管理员通过点击程序主界面的开课情况查询按钮可查看本专业当前所开课程编号,名称和学分信息。(如图4.3.3)图4.3.3开课情况查询4.3.4学生成绩查询 管理员点击学生成绩查询选项,弹出如图4.3.4窗口,管理员可通过输入学号对该学生的成绩进行查询。图4.3.4学生成绩查询4.3.5学生成绩维

16、护学生成绩维护:内置三个选项:添加学生成绩(图4.3.5),修改学生成绩(图4.3.6),删除学生成绩(图4.3.7)。管理员通过点击学生成绩维护按钮可进行对本专业学生成绩的添加,修改,删除处理。 添加学生成绩 图4.3.5添加学生成绩 修改学生成绩 图4.3.6修改学生成绩删除学生成绩图4.3.7 删除信息提示4.3.6学生信息维护学生信息维护:内置三个选项:添加学生信息(图4.3.8),修改学生信息(图4.3.9),删除学生信息(图4.3.10)。管理员通过点击学生成绩维护按钮可进行对本专业学生信息的添加,修改,删除处理。 添加学生信息 图4.3.8 修改学生信息 图4.3.9 删除学生信

17、息 图.7帮助帮助:管理员和用户通过点击帮助栏可查看本成绩查询系统的制作说明。4.3.8退出系统 退出系统:管理员和普通用户通过点击该按钮直接退出成绩查询系统。第五章 主要功能模块代码5.1系统登录using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.threading.tasks;using system.w

18、indows.forms;namespace student public partial class login : form public login() initializecomponent(); private void button2_click(object sender, eventargs e) this.close(); private void button1_click(object sender, eventargs e) if (combobox1.selectedindex=-1) messagebox.show("请选择身份"); else

19、if (combobox1.itemscombobox1.selectedindex.tostring() = "管理员") mdiparent1 mdi = new mdiparent1(); mdi.show(); / this.hide(); else string s = textbox1.text; mdiparent1 mdi = new mdiparent1(s); mdi.show(); / this.hide(); 5.2学生成绩查询主界面using system;using system.collections.generic;using system.

20、componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.threading.tasks;using system.windows.forms;namespace student public partial class mdiparent1 : form private int childformnumber = 0; public mdiparent1() initializecomponent(); public mdiparent1(str

21、ing s) initializecomponent(); 学生成绩维护toolstripmenuitem.visible=false; 学生信息维护toolstripmenuitem.visible = false; private void shownewform(object sender, eventargs e) form childform = new form(); childform.mdiparent = this; childform.text = "窗口 " + childformnumber+; childform.show(); private v

22、oid openfile(object sender, eventargs e) openfiledialog openfiledialog = new openfiledialog(); openfiledialog.initialdirectory = environment.getfolderpath(environment.specialfolder.personal); openfiledialog.filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" if (openfiledialog.showdialog(this) = di

23、alogresult.ok) string filename = openfiledialog.filename; private void saveastoolstripmenuitem_click(object sender, eventargs e) savefiledialog savefiledialog = new savefiledialog(); savefiledialog.initialdirectory = environment.getfolderpath(environment.specialfolder.personal); savefiledialog.filte

24、r = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" if (savefiledialog.showdialog(this) = dialogresult.ok) string filename = savefiledialog.filename; private void exittoolsstripmenuitem_click(object sender, eventargs e) application.exit(); private void cuttoolstripmenuitem_click(object sender, eventargs

25、 e) private void copytoolstripmenuitem_click(object sender, eventargs e) private void pastetoolstripmenuitem_click(object sender, eventargs e) private void cascadetoolstripmenuitem_click(object sender, eventargs e) layoutmdi(mdilayout.cascade); private void tileverticaltoolstripmenuitem_click(object

26、 sender, eventargs e) layoutmdi(mdilayout.tilevertical); private void tilehorizontaltoolstripmenuitem_click(object sender, eventargs e) layoutmdi(mdilayout.tilehorizontal); private void arrangeiconstoolstripmenuitem_click(object sender, eventargs e) layoutmdi(mdilayout.arrangeicons); private void cl

27、osealltoolstripmenuitem_click(object sender, eventargs e) foreach (form childform in mdichildren) childform.close(); private void mdiparent1_load(object sender, eventargs e) private void 帮助toolstripmenuitem_click(object sender, eventargs e) private void 退出系统toolstripmenuitem_click(object sender, eve

28、ntargs e) this.close(); private void 开课情况查询toolstripmenuitem_click(object sender, eventargs e) 开课情况查询 kkckcx = new 开课情况查询(); kkckcx.show(); private void 学生成绩查询toolstripmenuitem_click(object sender, eventargs e) 学生成绩查询 xscjcx = new 学生成绩查询(); xscjcx.show(); private void 添加学生成绩toolstripmenuitem_click(o

29、bject sender, eventargs e) 添加学生成绩 tjxscj = new 添加学生成绩(); tjxscj.show(); private void 添加学生信息toolstripmenuitem_click(object sender, eventargs e) 添加学生信息 tjxsxx = new 添加学生信息(); tjxsxx.show(); private void 修改学生信息toolstripmenuitem_click(object sender, eventargs e) 修改学生信息 xgxsxx = new 修改学生信息(); xgxsxx.show

30、(); private void 删除学生信息toolstripmenuitem_click(object sender, eventargs e) 删除学生信息 scxsxx = new 删除学生信息(); scxsxx.show(); private void 删除学生成绩toolstripmenuitem_click(object sender, eventargs e) 删除学生成绩 scxscj = new 删除学生成绩(); scxscj.show(); private void 修改学生成绩toolstripmenuitem_click(object sender, eventa

31、rgs e) 修改学生成绩 xgxscj = new 修改学生成绩(); xgxscj.show(); 5.3开课情况查询using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.threading.tasks;using system.windows.forms;namespace student public partial class 开课情况查询 :

32、 form public 开课情况查询() initializecomponent(); private void 开课情况查询_load(object sender, eventargs e) / todo: 这行代码将数据加载到表“studentdataset3.kc”中。您可以根据需要移动或删除它。 this.kctableadapter2.fill(this.studentdataset3.kc); / todo: 这行代码将数据加载到表“studentdataset2.kc”中。您可以根据需要移动或删除它。 this.kctableadapter1.fill(this.student

33、dataset2.kc); / todo: 这行代码将数据加载到表“studentdataset1.kc”中。您可以根据需要移动或删除它。 this.kctableadapter.fill(this.studentdataset1.kc); / todo: 这行代码将数据加载到表“studentdataset.xsxx”中。您可以根据需要移动或删除它。 this.xsxxtableadapter.fill(this.studentdataset.xsxx); datagridview1.autoresizecolumns(); 5.4学生成绩查询using system;using syste

34、m.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.threading.tasks;using system.windows.forms;using system.data.sqlclient;namespace student public partial class 学生成绩查询 : form public 学生成绩查询() initializecomponent();

35、 private void 学生成绩查询_load(object sender, eventargs e) / todo: 这行代码将数据加载到表“studentdataset2.cjpm”中。您可以根据需要移动或删除它。 this.cjpmtableadapter1.fill(this.studentdataset2.cjpm); / todo: 这行代码将数据加载到表“studentdataset1.cjpm”中。您可以根据需要移动或删除它。 this.cjpmtableadapter.fill(this.studentdataset1.cjpm); private void button

36、1_click(object sender, eventargs e) string text = textbox1.text; try int itext = convert.toint32(text); if (itext < 0) messagebox.show("学号不存在,请重新输入!"); return; if (text=null) messagebox.show("学号不能为空"); catch messagebox.show("请输入数字"); return; const string connstr = &q

37、uot;data source=(local);initial catalog=student;user id=sa;password=sa" sqlconnection mysqlconnection = new sqlconnection(); mysqlconnection.connectionstring = connstr; string sqlstr = string.format("select * from cjpm_jcb where 学号=0",textbox1.text); try mysqlconnection.open(); sqlcom

38、mand mycmd = new sqlcommand(sqlstr, mysqlconnection); sqldatareader sdr = mycmd.executereader(); if (sdr.hasrows=false) messagebox.show("学号不存在,请重新输入!"); else bindingsource bs = new bindingsource(); bs.datasource = sdr; this.datagridview1.datasource = bs; catch (exception ex) messagebox.sho

39、w(ex.message); private void button2_click(object sender, eventargs e) const string connstr = "data source=(local);initial catalog=student;user id=sa;password=sa" sqlconnection mysqlconnection = new sqlconnection(); mysqlconnection.connectionstring = connstr; string sqlstr = string.format(&

40、quot;select * from cjpm_jcb "); try mysqlconnection.open(); sqlcommand mycmd = new sqlcommand(sqlstr, mysqlconnection); sqldatareader sdr = mycmd.executereader(); if (sdr.hasrows = false) messagebox.show("学号不存在,请重新输入!"); else bindingsource bs = new bindingsource(); bs.datasource = sdr; this.datagridvie

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论