《数据库系统》课程设计专业计算机科学与技术班级2班姓名学号指导教师二O一三年十二月二十日学生成绩管理系统一、概述1、目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。2、系统总体功能描述●完成学生、班级、课程、教师、选课表的维护●完成成绩表的维护、浏览查找●按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率●按不同的条件统计学生课程的平均成绩●完成权限控制功能●完成数据备份与恢复功能其中,基础数据包括学生、班级、课程、教师的录入、修改、删除、查询、打印;成绩管理包括选课、成绩信息的录入、删除、修改、查询、打印以及相关统计查询等;用户管理包括用户、用户组、权限的录入、修改、删除、查询、打印以及权限分配、用户登录等功能;数据备份与恢复包括数据备份、数据恢复功能,要求可以备份数据到指定的文件夹、文件和从指定的文件夹、文件恢复数据到数据库。3、设计环境①MicrosoftSQLServer2005SQLServer是一个关系数据库管理系统。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在Unix操作系统上的应用。MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商商业智能(BI)工具提供了企业级的数据管理。MicrosoftSQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。②MicrosoftVisualStudio2005VisualStudio是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。VisualStudio是目前最流行的Windows平台应用程序开发环境。二、需求分析1、概括描述通过对学校日常教学管理中的课程、选课、学生、班级、教师、成绩等相关内容进行分析,完成具有教师管理、学生管理、成绩管理、课程管理、选课管理、班级管理等相关功能的小型数据库管理应用系统。2、数据流程图用户登录验证学生登录教师登录管理员登录成绩查询修改密码学生成绩管理首页登录退出退出平均成绩统计成绩统计用户管理学生管理退出班级管理教师管理课程管理退出图1系统主要流程图学生信息管理模块显示信息修改删除修改信息取消更新删除记录添加填写信息提交取消图2学生信息增删改课程信息管理模块查看课程信息修改课程信息添加课程信息删除课程信息验证数据无法删除删除成功通过无法通过图3课程信息管理模无法通过通过无法通过通过图4教师信息管理模块学生选课子模块显示所有课程和已选课程选择未选课程删除已选课程更新选课班级信息管理模块无法删除添加修改查询删除删除成功验证数据教师信息管理模块添加无法删除修改删除成功查询验证数据删除图5学生选课流程3、数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQLServer2005建立“XSGL”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名StudentTeacherClassCourseGradeStudentLoadTeacherLoadManageLoad关系模式名称学生教师班级课程选课学生登录教师登录管理员登录Student基本情况数据表,结构如下:Teacher基本情况数据表,结构如下:Class基本情况数据表,结构如下:Course基本情况数据表,结构如下:Grade基本情况数据表,结构如下:StudentLoad、TeacherLoad、ManageLoad基本情况数据表,结构如下:三、数据库概念结构设计1、局部E-R图(1)学生信息E-R图备(2)教师信息E-R图(3)班级信息E-R图(4)课程信息E-R图(5)选课信息E-R图学生姓名出生时间总学分班级号备注性别专业名学号教师班级课程教师号姓名出生时间性别学院课程号学院辅导员班长班级名称班级号课程号课程名授课教师学时学分上课地点开课学期(6)用户登录E-R图3、基本E-R图nnn1114、关系模式Student表:成绩用户学生教师课程班级课程所在选修讲授学号课程号成绩NamePasswdTeacher表:Class表:Course表:Grade表:StudentLoad表:TeacherLoad表:ManageLoad表:5、存储过程(1)创建学号的存储过程(2)创建课程号的存储过程(3)创建班级号存储过程6、视图(1)创建及格人数、考试人数、及格率视图(2)班级平均成绩视图四、各模块功能实现1、欢迎界面,点击登录会进入登录界面2、用户登录模块(1)用户验证分为学生、教师和管理员三种类型,如果密码或账号不正确就无法登录。3、学生登录界面模块(1)该实现的是学生成绩查询和密码修改(2)学生成绩查询,学生可以查询自己所选的所有课程成绩,或者查询某一门课程的成绩。(3)修改密码,用户在输入正确的旧密码之后,便可修改密码,当两次新密码输入都一致时密码修改成功并保存到数据库中。4、教师登录界面(1)该模块实现的是,学生成绩的增删改,按班级、课程统计学生成绩,按不同条件统计学生平均成绩,教师密码修改。(2)教师对学生所选课程进行成绩的增、删、改,当学生选了该课程后教师便可添加成绩或修改、删除成绩,但如果学生没有选择该课程,则教师无法对其进行操作。图6添加成绩图7删除成绩(2)分班级和课程统计学生最高、最低平均成绩和及格率。图8班级最高成绩图9班级平均成绩图10班级最低成绩图12课程平均成绩图13课程最高成绩图14课程最低成绩图15课程及格率(3)按不同条件统计学生成绩的平均成绩(学号、专业名、性别、课程名)。图16按学号统计平均成绩图17按性别统计平均成绩图18按专业名统计平均图19按课程名统计平均成绩(4)用户密码修改,其过程和学生密码修改过程相同。五、核心代码1、登录界面privatevoidForm1_Load(objectsender,EventArgse){TxtUser.Text=;TxtPass.Text=;}privatevoidBtnOK_Click(objectsender,EventArgse){SqlConnectioncon=DBConnect.con();con.Open();if(rBtnStudent.Checked){stringsql=selectName,PasswdfromStudentLoginwhereName='+TxtUser.Text+'andPasswd='+TxtPass.Text+';SqlCommandcmd=newSqlCommand();cmd.CommandText=sql;cmd.Connection=con;SqlDataReaderrd=cmd.ExecuteReader();if(rd.Read()){stu1=TxtPass.Text.Trim();学生登录界面mForm=new学生登录界面();mForm.Show();con.Close();this.Visible=false;stu=TxtUser.Text;}else{MessageBox.Show(请输入正确的用户名和密码!);}}if(rBtnTeacher.Checked){stringsql=selectName,PasswdfromTeacherLoadwhereName='+TxtUser.Text+'andPasswd='+TxtPass.Text+';SqlCommandcmd=newSqlCommand();cmd.CommandText=sql;cmd.Connection=con;SqlDataReaderrd=cmd.ExecuteReader();if(rd.Read()){stu1=TxtPass.Text.Trim();教师登陆界面mForm=new教师登陆界面();mForm.Show();con.Close();this.Visible=false;stu=TxtUser.Text;}else{MessageBox.Show(请输入正确的用户名和密码!);}}if(rBtnManage.Checked){stringsql=selectName,PasswdfromManageLoadwhereName='+TxtUser.Text+'andPasswd='+TxtPass.Text+';SqlCommandcmd=newSqlCommand();cmd.CommandText=sql;cmd.Connection=con;TxtUser.Text=;TxtPass.Text=;SqlDataReaderrd=cmd.ExecuteReader();if(rd.Read()){管理员界面mForm=new管理员界面();mForm.Show();con.Close();this.Visible=false;}else{MessageBox.Show(请输入正确的用户名和密码!);}}}privatevoidBtnExit_Click(objectsender,EventArgse){this.Close();}}}2、信息增、删、改、查(以学生信息为例)//信息的添加privatevoidBtnAdd_Click(objectsender,EventArgse){if(TxtXH.Text!=)if(!Check(TxtXH.Text)){SqlConnectioncon=DBConnect.con();con.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText=INSERTINTOStudentVALUES('+TxtXH.Text+','+TxtXM.Text+','+TxtZYM.Text+','+comboXB.Text+','+TxtCSSJ.Text+','+TxtBZ.Text+','+TxtZXF.Text+','+comboBJH.Text+');cmd.Connection=con;cmd.ExecuteNonQuery();cmd.CommandText=INSERTINTOStudentLogin(Name,Passwd)VALUES('+TxtXH.Text+','+TxtXH.Text+');cmd.Connection=con;cmd.ExecuteNonQuery();MessageBox.Show(输入数据成功!);TxtXH.Text=;TxtXM.Text=;TxtZYM.Text=;TxtCSSJ.Text=;TxtZXF.Text=;comboXB.Text=;TxtBZ.Text=;comboBJH.Text=;Stringsql=SELECT*FROMStudent;SqlDataAdapterAdapt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adapt.Fill(ds,Studen