还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
西北大学继续教育学院成人高等教育毕业论文题目教学管理系统的设计与实现指导教师学生姓名学号专业软件技术年级2011级学历层次专科学历形式函授完成时间二0年月日摘要随着全球信息化的飞速发展,信息网络在人们的日常生活中已占据了十分重要的地位以往面对面的教学方式已显然不能满足现在社会的需要,逐渐也开始把信息化引入教育领域中,从而打破了孔家和时间的限制,为老师和学生提供了更加便捷的途径目前我校的教学资源库,具有海量的、无序的、共享性差的特点,导致了他的利用率也相当的低各个院系都有各自的教学资源库,又导致了资源库的重复建设,造成了人力、物力、财力的严重浪费考虑到以上存在的问题,本文研究并设计了一套基于Web的网络教学资源管理系统,本系统中教师可以通过网络教授学生知识,给学生布置作业,完成网上批阅学生提交的作业,实现部分网络教学工作;学生可以通过网络学习,在网上查看并完成老师布置的作业,可查看本系统中提供的教学资源,岁时随思利用网络在线学习,提高学习效率另一方面我们集中收集并规范我校内部各个学院零散的教学资源,充分发挥本系统教学资源可以共享的优势该系统的开发研制弥补了传统教学方式中的不足之处,同时减轻了我校管理人员在教学资源管理工作中的压力,有效的提高教学质量本文首先接受了网络教学及教学资源的发展背景和现状并对教学资源管理系统的必要性、可行性进行了分析根据教师、学生、教辅人员给出的需求分析,确定了系统所应具有的基本功能采用B/S模式和当前流行的JSP技术对系统进行开发,然后根据需求分析设计出系统的总体结构及分析了各个子系统的具体功能,并给出了系统部分界面和实现的部分代码最后对论文做了总结并对该系统的进一步研究做了展望,明确了下一步的工作和目标该系统经过测试运行,基本达到了预期目标随着软件技术的不断发展和教学需要,本系统也为以后的不断更新升级留有空间我相信本系统在我校的教学工作和管理工作中都能起到较高的实用价值和较好的应用前景关键词教学资源管理系统,B/S模式,SQLServer2005,查询目录TOC\o1-3\h\z\u前言1第1章背景、目的及概述
21.1项目背景
21.2编写目的
21.3软件定义
21.4开发环境2第2章需求分析
32.1信息要求
32.2处理要求
32.3安全性与完整性要求4第3章概念结果设计
53.1基本E-R图设计5第4章逻辑结构设计
84.1E-R图的转换
84.2数据约束设计9第5章主要模块的设计以及代码
105.1登陆模块设计
115.2管理员、教师、学生模块设计
145.3存储过程
275.4触发器27第6章预测结果
296.1遇到的问题以及解决方法
296.
1.1不同对话框数据的传递
296.
1.2数据的级联删除
296.
1.3学生成绩的分析
296.2设计的体会29结束语31致谢32参考文献33前言教学管理是学校运作的中心枢纽,教学管理的质量直接关系到一所高校在当代社会竞争中的地位甚至生存与发展当今时代,计算机信息处理技术的广泛应用,为高校教学管理提供了有力手段一所高等学校要走在时代的先进行列,实现教学管理工作的现代化和科学化,其关键就在于要运用现代网络信息技术建立计算机教学管理系统,实现管理的电脑化教学工作在学校的发展和建设中占有重要地位教学管理水平的高低,在某种程度上反映了一所学校管理水平的整体状况他与学校工作的其他方面有着密切的联系,对学校的教学工作、思想工作、管理工作、建设工作、教育改革以及教育方针的贯彻执行等产生重要作用与影响,而这一系列的工作有影响到整个学校的发展进程在当前的形势下,随着社会的不断进步与发展,教育的现代化、规范化和管理现代化的步伐也不断加快教育的现代化要求教学工作也应当现代化、规范化管理现代化既包括管理思想、管理体制的现代化,也包括管理方法、管理手段的现代化建立教学管理信息系统,加强计算机技术在高校教学管理中的应用,必将使高校教学管理工作更加科学化、规范化、现代化,从而大大提高高校教学管理水平第1章背景、目的及概述
1.1项目背景随着科学技术、管理方法的不断进步传统的方式、方法和手段已经不能适应现代化管理的需要作为培养高质量合格人才为宗旨的高等学校总是走在科技的最前沿教学管理的计算机化已成为高校管理现代化、决策科学化的一个重要环节是开创教学管理工作新局面的必由之路教学管理系统是一个辅助学校教务人员完成日常工作中,涉及学籍管理、教师管理、课程管理和成绩管理等项目的日常比较繁重的工作它应用计算机在数据处理和数据整理保存方面的优异性能,帮助工作人员提高工作的效率、减少出错情况同时还能提供快速的查询检索功能
1.2编写目的本系统的设计旨在实现管理员、教师以及学生对信息的查询、修改以及更新提供便利性教学管理系统是一个辅助学校教务人员完成日常工作中,涉及教师管理、课程管理和成绩管理等项目的日常比较繁重的工作它应用计算机在数据处理和数据整理保存方面的优异性能,帮助工作人员提高工作的效率、减少出错情况
1.3软件定义本系统做成了C/S模式,本系统的登陆模块提供了远程连接数据库的方法,以及不同的登陆模式管理员、教师、学生),不同的登陆权限对应着可以实现操作功能是有区别的
1.4开发环境经过思考和选择,决定以.netC#来实现本系统第2章需求分析
2.1信息要求本次系统设计主要需要的信息如下所示,这些信息都是以表的形式存在数据库中,当需要输入、删除、修改等信息时可以通过执行SQL语句来实现
1、学生信息学号、姓名、性别、出生日期、入学成绩、所在系号
2、教职工信息职工号、姓名、性别、出身年月、所在系号、职称、专业及教学方向
3、系的基本信息系号、系名称、系的简介
4、课程信息课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间
5、成绩信息学号、课程号、平时成绩、考试成绩、总评成绩
2.2处理要求
1、学生基本信息管理新生信息录入、学生信息修改按学号查询出某学生的信息并做信息修改学生转学(转入和转出),学生毕业等毕业和转学的学生有关信息存储到历史库中
2、系基本信息管理系的基本信息输入、修改、删除
3、课程信息管理课程信息的输入、修改、删除
4、教职工信息管理教职工信息的输入、修改、删除
5、选课管理每学期所选课程的学分不能超过15分、学生可以同时选修一门或多门课程、可以同时为多个学生选修某一门或某几门课程、删除和修改选课信息
6、成绩管理按课程输入和修改成绩、按学生输入和修改成绩
7、信息查询按学号、姓名、系号查询学生基本信息按职工号、姓名、系号查询教职工基本信息按系号、系名称查询系的基本信息按课程号、课程名称、上课教师姓名查询课程基本信息按学号、学生姓名、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况若查询涉及多门课程,则按课程分组每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)
8、统计报表成绩登记表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)、选课学生名单(学号、姓名、性别),每个学生的平时成绩(空格)、考试成绩(空格)和总评成绩(空格),按学号排序顺序输出所有课程的成绩登记表按课程号、课程名称、教师姓名输出对应课程的成绩登记表按系号输出对应课程的成绩登记表(本系所有教师担任的课程)成绩报表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩,=90分、=80分、、=70分、=60分及不及格学生的人数及比例,按学号排序顺序输出所有课程的成绩报表(报表格式自己订制,可以参考学校的系统的输出格式)按课程号、课程名称、教师姓名输出对应课程的成绩报表按系号输出对应课程的成绩报表(本系所有教师担任的课程)
2.3安全性与完整性要求在数据库中,各个表之间是有联系的,它们存在着参照完整性,在删除数据时,要考虑到一个表中的数据删除的同时也要删除另一个表中对应的数据项第3章概念结果设计
3.1基本E-R图设计E-R图设计E-R图中实体有教师、学生、系部、课程实体属性学生学号、姓名、性别、出生日期、入学成绩、所在系号教师职工号、姓名、性别、出身年月、所在系号、职称、专业及教学方向系系号、系名称、系的简介课程课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间其中各个之间的关系如下学生可以选多个课程,一个课程可以被多个学生选修学生存在一个系中,一个系可以存在多个学生一个教师可以教多个课程,一个课程可以被多个教师教一个教师只能在一个系中,一个系中可以有多个教师学生图3-1学生关系教师图3-2教师关系系图3-3系关系课程图3-4课程关系全局E-R图图3-5学生课程系教师E-R图第4章逻辑结构设计
4.1E-R图的转换表一览Account(用户登录表)、Course(课程表)、Student(学生表)、Teacher(教师表)、Dept(系表)、Grades成绩表表结构
1、Account(用户登录表)图4-1用户登录
2、Course(课程表)图4-2课程
3、Student(学生表)图4-3学生
4、Teacher(教师表)图4-4教师
5、Dept(系表)图4-5系
6、Grades成绩表图4-6成绩
4.2数据约束设计数据安全性设计用户权限的划分总体设计时分为三大类用户数据库管理员、教职工、在校学生其各自的权限如下数据库管理员具有最高权限可以对数据库中的任意数据项进行维护和更新教师权限可以对Student关系表访问,可对Teacher关系表进行访问,可以对Grades(成绩表)进行学生成绩的输入、修改和删除学生权限可以对Student关系表访问,可对Teacher关系表进行访问,可以查询某个课程的信息,可以对课程选课,以及查询自己的成绩数据完整性设计在各个关系模式设计的时候,在满足数据库涉及基本要求的同时,考虑到了外码问题,为后续操作想,各关系模式中部分表定义了外码,以便进行级联操作第5章主要模块的设计以及代码在进行各个模块的说明前有必要说明一下面向对象的程序设计思想,在本系统中,为方便对数据库的连接、SQL语句的执行以及数据库的关闭本程序封装了一个SQLDatabase类,类中定义了一系列的函数来完成数据库的连接等操作代码及说明如下classSQLDatabase{publicSqlConnectionSQLConnection;publicSqlCommandMyCommand;publicSqlDataAdaptersdr;staticpublicstringServerIP;publicvoidGetServerIPstringIPServerIP=IP;publicvoidSQLDataConnectionOpen{//本函数完成对数据库的连接SQLConnection=newSqlConnection;SQLConnection.ConnectionString=Server=+ServerIP+;Userid=sa;pwd=123456;DataBase=TeachingManagementSystem;SQLConnection.Open;}publicvoidSQLDataConnectionClose//实现数据库的关闭SQLConnection.Close;publicintSQLExecuteNonQuerystringstr{//ExecuteNonQuery方法执行不返回结果的命令MyCommand=newSqlCommandstrSQLConnection;returnMyCommand.ExecuteNonQuery;}publicobjectSQLExecuteScalarstringstr{//只返回结果集中第一行的第一列MyCommand=newSqlCommandstrSQLConnection;returnMyCommand.ExecuteScalar;}publicSqlDataAdapterSQLDataAdapterstringstrCmd{sdr=newSqlDataAdapterstrCmdSQLConnection;returnsdr;}publicSqlDataReaderSQLExecuteReaderstringstrCmd{//执行返回数据集的Select语句,返回一个DataReader对象MyCommand=newSqlCommandstrCmdSQLConnection;SqlDataReadersdr=MyCommand.ExecuteReader;returnsdr;}}
5.1登陆模块设计在本程序的登陆模块中,当用户输入用户名、密码及其登陆权限后,会对数据与数据库的数据进行对比,若相同则进入相应的权限界面,以进行相应的操作登陆界面如下图所示图5-1登录登陆按钮的单击消息响应当用户输入用户名、密码及登陆权限,单击登陆按钮后,数据会与数据库的数据进行对比,若相同则通过,否则会提示用户响应的错误报告代码如下privatevoidbutton1_ClickobjectsenderEventArgse{iftextBox
1.Text=={MessageBox.Show服务器IP地址不能为空,请输入用户名!提示;textBox
1.Focus;return;}elseiftextBox
2.Text=={MessageBox.Show用户名不能为空,请输入用户名!提示;textBox
2.Focus;return;}elseiftextBox
3.Text=={MessageBox.Show密码不能为空,请输入密码!提示;textBox
3.Focus;return;}elseiftextBox
4.Text=={MessageBox.Show校验码不能为空,请输入!提示;textBox
4.Focus;return;}elseiftextBox
4.Text!=label
6.Text{MessageBox.Show校验码输入不正确,请重新输入!提示;textBox
4.Text=;label
6.Text=ProduceCheckCode;textBox
4.Focus;return;}stringidentity=0;ifradioButton
1.Checkedidentity=3;elseifradioButton
2.Checkedidentity=2;elseifradioButton
3.Checkedidentity=1;SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPtextBox
1.Text;SQLConn.SQLDataConnectionOpen;stringstrCmd=select*fromAccountwhereAname=+textBox
2.Text+andApassword=+textBox
3.Text++andApermissions=+identity+;SqlDataReadersdr=SQLConn.SQLExecuteReaderstrCmd;intn=0;whilesdr.Read{n=1;Form2form2=newForm2identitytextBox
1.Text;form
2.Show;this.Hide;}ifn==0{MessageBox.Show没有此用户!\n或者用户名或密码错误!\n请重新输入或者注册当前用户!提示;label
6.Text=ProduceCheckCode;}sdr.Close;SQLConn.SQLDataConnectionClose;}另外本模块也提供了校验码认证、用户注册功能用户单击登陆按钮后,系统会对用户输入的校验码与系统随机生成的校验码进行对比,不相同会提示用户重新输入当用户想注册一个账户时,系统会根据用户输入的用户名、密码、权限,在数据库中查找是否已存在相同的用户名若相同则提示用户注册成功,否则提示用户错误报告代码与登陆响应类似不再列出
5.2管理员、教师、学生模块设计这里需要说明一点的是,本程序的操作端是通过TabControl控件实现的,各个tabPage页都放在了一个对话框上,对于不同的登陆权限,会在对话框的初始化函数中通过调用tabControl
1.TabPages.Remove;函数来实现某个tabPage页的隐藏,以体现不同的权限功能所以这里只需要对管理员端的各个操作进行说明即可,整个界面如下图所示图5-2管理员、教师、学生tabPage1学生管理在学生管理页面中,管理员可以对学生信息进行查询、删除、修改、录入、及其转学/毕业操作等另外,各个表之间是有联系的,当删除一个学生的信息后,如果此学生选了课,并且有了成绩,系统会同时把此学生的选课记录、成绩记录删除当录入一个学生的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该学生的信息,若存在提示不同录入其录入按钮的单击消息响应函数代码为privatevoidbutton1_ClickobjectsenderEventArgse{iftextBox
1.Text=={MessageBox.Show学号不能为空,请输入学号!提示;textBox
1.Focus;return;}elseiftextBox
2.Text=={MessageBox.Show姓名不能为空,请输入姓名!提示;textBox
2.Focus;return;}stringsex=;ifradioButton
1.Checkedsex=男;elseifradioButton
2.Checkedsex=女;SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;stringstrCmd;stringstrCmd2;stringstrCmd3;strCmd=insertintoStudentvalues+textBox
1.Text++textBox
2.Text++sex++textBox
3.Text++textBox
4.Text++textBox
5.Text+;;strCmd2=select*fromStudentwhereSno=+textBox
1.Text+;;strCmd3=select*fromDeptwhereDno=+textBox
5.Text+;;objectob=SQLConn.SQLExecuteScalarstrCmd2;ifConvert.ToStringob!={MessageBox.Show已存在学号为+textBox
1.Text+的信息!\n请重新输入!提示;textBox
1.Text=;textBox
2.Text=;textBox
3.Text=;textBox
4.Text=;textBox
5.Text=;textBox
1.Focus;SQLConn.SQLDataConnectionClose;return;}objectob1=SQLConn.SQLExecuteScalarstrCmd3;ifConvert.ToStringob1=={iftextBox
5.Text!={MessageBox.Show不存在系号为+textBox
5.Text+的系信息!\n请重新输入!提示;textBox
5.Text=;textBox
5.Focus;}SQLConn.SQLDataConnectionClose;return;}SQLConn.SQLExecuteNonQuerystrCmd;MessageBox.Show录入成功!提示;//控件清空!textBox
1.Text=;textBox
2.Text=;textBox
3.Text=;textBox
4.Text=;textBox
5.Text=;textBox
1.Focus;SQLConn.SQLDataConnectionClose;button5_Clicksendere;}tabPage2系管理在系管理页面中,管理员可以对系信息进行查询、删除、修改、输入另外,各个表之间是有联系的,当删除一个系的信息后,在该系的所以学生记录会同时删除,与此相应的选课、成绩记录也会被删除当录入一个系的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该系的信息,若存在提示不同录入其输入按钮的单击消息响应函数代码为privatevoidbutton7_ClickobjectsenderEventArgse{iftextBox
7.Text=={MessageBox.Show系号不能为空,请输入系号!提示;textBox
7.Focus;return;}elseiftextBox
8.Text=={MessageBox.Show系名不能为空,请输入系名!提示;textBox
8.Focus;return;}SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;stringstrCmd;stringstrCmd2;strCmd=insertintoDeptvalues+textBox
7.Text++textBox
8.Text++textBox
9.Text+;;strCmd2=select*fromDeptwhereDno=+textBox
7.Text+;;objectob=SQLConn.SQLExecuteScalarstrCmd2;ifConvert.ToStringob!={MessageBox.Show已存在系号为+textBox
7.Text+的信息!\n请重新输入!提示;textBox
7.Text=;textBox
8.Text=;textBox
9.Text=;textBox
7.Focus;SQLConn.SQLDataConnectionClose;return;}elseSQLConn.SQLExecuteScalarstrCmd;MessageBox.Show输入成功!提示;//控件清空!textBox
7.Text=;textBox
8.Text=;textBox
9.Text=;textBox
7.Focus;SQLConn.SQLDataConnectionClose;button10_Clicksendere;}tabPage3课程管理在课程管理页面中,管理员可以对课程信息进行查询、删除、修改、输入另外,各个表之间是有联系的,当删除一个课程的信息后,选择此课程的选课记录,成绩记录也会被同时删除当录入一个课程的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该课程的信息,若存在提示不同录入其输入按钮的单击消息响应函数代码为privatevoidbutton12_ClickobjectsenderEventArgse{iftextBox
10.Text=={MessageBox.Show课程号不能为空,请输入课程号!提示;textBox
10.Focus;return;}elseiftextBox
11.Text=={MessageBox.Show课程名不能为空,请输入课程名!提示;textBox
11.Focus;return;}elseiftextBox
12.Text=={MessageBox.Show任课教师号不能为空,请输入课程名!提示;textBox
12.Focus;return;}SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;stringstrCmd;stringstrCmd2;strCmd=insertintoCoursevalues+textBox
10.Text++textBox
11.Text++textBox
12.Text++textBox
13.Text++textBox
14.Text++textBox
15.Text++textBox
16.Text++textBox
17.Text+;strCmd2=select*fromCoursewhereCno=+textBox
10.Text+;;objectob=SQLConn.SQLExecuteScalarstrCmd2;ifConvert.ToStringob!={MessageBox.Show已存在课程号为+textBox
10.Text+的信息!\n请重新输入!提示;textBox
10.Text=;textBox
11.Text=;textBox
12.Text=;textBox
13.Text=;textBox
14.Text=;textBox
15.Text=;textBox
16.Text=;textBox
17.Text=;textBox
10.Focus;SQLConn.SQLDataConnectionClose;return;}stringstrCmd3=select*fromTeacherwhereTno=+textBox
12.Text+;;objectob1=SQLConn.SQLExecuteScalarstrCmd3;ifConvert.ToStringob1=={iftextBox
12.Text!={MessageBox.Show不存在教师号为+textBox
12.Text+的教师信息!\n请重新输入!提示;textBox
12.Text=;textBox
12.Focus;}SQLConn.SQLDataConnectionClose;return;}SQLConn.SQLExecuteNonQuerystrCmd;MessageBox.Show课程信息输入成功!提示;//控件清空!textBox
10.Text=;textBox
11.Text=;textBox
12.Text=;textBox
13.Text=;textBox
14.Text=;textBox
15.Text=;textBox
16.Text=;textBox
17.Text=;textBox
10.Focus;SQLConn.SQLDataConnectionClose;button14_Clicksendere;}tabPage4教师管理在教师管理页面中,管理员可以对教师信息进行查询、删除、修改、输入当录入一个教师的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该教师的信息,若存在提示不同录入其输入按钮的单击消息响应函数代码为privatevoidbutton17_ClickobjectsenderEventArgse{iftextBox
6.Text=={MessageBox.Show职工号不能为空,请输入!提示;textBox
6.Focus;return;}elseiftextBox
18.Text=={MessageBox.Show姓名不能为空,请输入!提示;textBox
18.Focus;return;}elseiftextBox
20.Text=={MessageBox.Show所在系号不能为空,请输入!提示;textBox
20.Focus;return;}stringsex=;ifradioButton
11.Checkedsex=男;elsesex=女;SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;stringstrCmd;stringstrCmd2;strCmd=insertintoTeachervalues+textBox
6.Text++textBox
18.Text++sex++textBox
19.Text++textBox
20.Text++textBox
21.Text++textBox
22.Text++textBox
23.Text+;strCmd2=select*fromTeacherwhereTno=+textBox
6.Text+;;objectob=SQLConn.SQLExecuteScalarstrCmd2;ifConvert.ToStringob!={MessageBox.Show已存在职工号为+textBox
6.Text+的信息!\n请重新输入!提示;textBox
6.Text=;textBox
19.Text=;textBox
20.Text=;textBox
21.Text=;textBox
22.Text=;textBox
23.Text=;textBox
6.Focus;SQLConn.SQLDataConnectionClose;return;}stringstrCmd3=select*fromDeptwhereDno=+textBox
20.Text+;;objectob1=SQLConn.SQLExecuteScalarstrCmd3;ifConvert.ToStringob1=={iftextBox
20.Text!={MessageBox.Show不存在系号为+textBox
20.Text+的系信息!\n请重新输入!提示;textBox
20.Text=;textBox
20.Focus;}SQLConn.SQLDataConnectionClose;return;}SQLConn.SQLExecuteNonQuerystrCmd;MessageBox.Show职工信息输入成功!提示;//控件清空!textBox
6.Text=;textBox
18.Text=;textBox
19.Text=;textBox
20.Text=;textBox
21.Text=;textBox
22.Text=;textBox
23.Text=;textBox
6.Focus;SQLConn.SQLDataConnectionClose;button19_Clicksendere;}tabPage5选课管理在选课管理页面中,管理员可以对选课信息进行查询、删除、修改、输入当录入一个选课的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该选课的信息,若存在提示不同录入其提交按钮的单击消息响应函数代码为privatevoidbutton22_ClickobjectsenderEventArgse{iftextBox
24.Text=={MessageBox.Show学号不能为空,请输入!提示;textBox
24.Focus;return;}elseiftextBox
25.Text=={MessageBox.Show课程号不能为空,请输入!提示;textBox
25.Focus;return;}iftextBox
24.Text.Contains==true||textBox
24.Text.Contains,==true{CourseManyStudentsendere;return;}iftextBox
25.Text.Contains==true||textBox
25.Text.Contains,==true{StudentManyCoursesendere;return;}SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;stringstrCmd1strCmd2strCmd3strCmd4strCmd5;stringcredits=;strCmd1=select*fromStudentwhereSno=+textBox
24.Text+;;strCmd2=select*fromCoursewhereCno=+textBox
25.Text+;;strCmd3=selectSnoCnofromCourseSelectionTablewhereSno=+textBox
24.Text+andCno=+textBox
25.Text+;;strCmd4=selectCcreditsfromCoursewhereCno=+textBox
25.Text+;;objectob1ob2ob3ob4;ob1=SQLConn.SQLExecuteScalarstrCmd1;ifConvert.ToStringob1=={iftextBox
24.Text!={MessageBox.Show不存在学号为+textBox
24.Text+的学生信息!\n请重新输入!提示;textBox
24.Text=;textBox
24.Focus;}SQLConn.SQLDataConnectionClose;return;}ob2=SQLConn.SQLExecuteScalarstrCmd2;ifConvert.ToStringob2=={iftextBox
25.Text!={MessageBox.Show不存在课程号为+textBox
25.Text+的课程信息!\n请重新输入!提示;textBox
25.Text=;textBox
25.Focus;}SQLConn.SQLDataConnectionClose;return;}ob4=SQLConn.SQLExecuteScalarstrCmd4;credits=ob
4.ToString;strCmd5=insertintoCourseSelectionTablevalues+textBox
24.Text++textBox
25.Text++credits+;;ob3=SQLConn.SQLExecuteScalarstrCmd3;ifConvert.ToStringob3!={MessageBox.Show已存在学号为+textBox
24.Text+课程号为+textBox
25.Text+的信息!\n请重新输入!提示;textBox
24.Text=;textBox
25.Text=;textBox
24.Focus;SQLConn.SQLDataConnectionClose;return;}doublesum=TotalCredittextBox
24.Text;ifConvert.ToDoublecredits+sum=15{MessageBox.Show选择此课程后,总学分将超过15,不能再选课!提示;SQLConn.SQLDataConnectionClose;button25_Clicksendere;return;}elseSQLConn.SQLExecuteNonQuerystrCmd5;intZongSum=intConvert.ToDoublecredits+sum;stringCcreditsSum=选课信息提交成功!\n学号为+textBox
24.Text+\n的学生选课的总学分为+ZongSum.ToString;MessageBox.ShowCcreditsSum提示;SQLConn.SQLDataConnectionClose;button25_Clicksendere;}tabPage6成绩管理在成绩管理页面中,管理员可以对成绩信息进行查询、删除、修改、输入当录入一个成绩的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该选课的信息,若存在提示不能输入另外当输入一个学生的成绩时,系统会从选课表中查找是否该学生选了此课程若没有选,则提示用户不能输入该学生的成绩信息其提交按钮的单击消息响应函数代码为privatevoidbutton27_ClickobjectsenderEventArgse{iftextBox
27.Text=={MessageBox.Show学号不能为空,请输入!提示;textBox
27.Focus;return;}elseiftextBox
28.Text=={MessageBox.Show课程号不能为空,请输入!提示;textBox
28.Focus;return;}iftextBox
29.Text==textBox
29.Text=0;iftextBox
30.Text==textBox
30.Text=0;SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;stringstrCmd1strCmd2strCmd3strCmd4;doubletotalresults;totalresults=Convert.ToDoubletextBox
29.Text*
0.3+Convert.ToDoubletextBox
30.Text*
0.7;textBox
31.Text=totalresults.ToString;strCmd1=select*fromStudentwhereSno=+textBox
27.Text+;;strCmd2=select*fromCoursewhereCno=+textBox
28.Text+;;strCmd3=selectGsnoGcnofromGradeswhereGsno=+textBox
27.Text+andGcno=+textBox
28.Text+;;strCmd4=insertintoGradesvalues+textBox
27.Text++textBox
28.Text++textBox
29.Text++textBox
30.Text++totalresults.ToString+;;objectob1ob2ob3;ob1=SQLConn.SQLExecuteScalarstrCmd1;ifConvert.ToStringob1=={iftextBox
27.Text!={MessageBox.Show不存在学号为+textBox
27.Text+的学生信息!\n请重新输入!提示;textBox
27.Text=;textBox
27.Focus;}SQLConn.SQLDataConnectionClose;return;}ob2=SQLConn.SQLExecuteScalarstrCmd2;ifConvert.ToStringob2=={iftextBox
28.Text!={MessageBox.Show不存在课程号为+textBox
28.Text+的课程信息!\n请重新输入!提示;textBox
28.Text=;textBox
28.Focus;}SQLConn.SQLDataConnectionClose;return;}stringstrCmd5;strCmd5=select*fromCourseSelectionTablewhereSno=+textBox
27.Text+andCno=+textBox
28.Text+;;objectob4;ob4=SQLConn.SQLExecuteScalarstrCmd5;ifConvert.ToStringob4=={iftextBox
27.Text!=textBox
28.Text!={MessageBox.Show该学生没有选课程号为+textBox
28.Text+的课程!不能输入成绩!提示;textBox
27.Text=;textBox
28.Text=;textBox
29.Text=;textBox
30.Text=;textBox
31.Text=;textBox
27.Focus;}SQLConn.SQLDataConnectionClose;return;}ob3=SQLConn.SQLExecuteScalarstrCmd3;ifConvert.ToStringob3!={MessageBox.Show已存在学号为+textBox
27.Text+课程号为+textBox
28.Text+的成绩信息!\n请重新输入!提示;textBox
27.Text=;textBox
28.Text=;textBox
29.Text=;textBox
30.Text=;textBox
31.Text=;textBox
27.Focus;SQLConn.SQLDataConnectionClose;return;}SQLConn.SQLExecuteNonQuerystrCmd4;MessageBox.Show成绩信息输入成功!提示;SQLConn.SQLDataConnectionClose;ShowListView;button29_Clicksendere;button33_Clicksendere;}tabPage7报表在报表页面中,管理员可以通过报表的显示来查看学生的成绩登记表、成绩报表界面如下图5-3报表在程序中利用了listView控件来实现=90分、=80分、、=70分、=60分及不及格学生的人数及比例的显示,其函数的代码为privatevoidShowListView{inttemp=0;intn=0;floatsum=0;int[]records=newint[]{00000};stringstr=selectGgradesshouldfromGrades;SQLDatabaseSQLConn=newSQLDatabase;SQLConn.GetServerIPSerIP;SQLConn.SQLDataConnectionOpen;SqlDataReadersdr=SQLConn.SQLExecuteReaderstr;whilesdr.Read{sum++;n=intConvert.ToDoublesdr[Ggradesshould].ToString;temp=n/10;switchtemp{case10:case9:records
[0]++;break;case8:records
[1]++;break;case7:records
[2]++;break;case6:records
[3]++;break;default:records
[4]++;break;}}listView
1.Items.Clear;string[]Itemstr={=9080-8970-7960-69不及格};SQLConn.SQLDataConnectionClose;//.ConnectionClose;float[]note=newfloat
[5];forinti=0;i5;i++{note[i]=records[i]/sum;ListViewItemitem=newListViewItem;item.Text=Itemstr[i];item.SubItems.Addnote[i].ToString
0.0%;listView
1.Items.Additem;}}
5.3存储过程在本程序中,为了方便提高程序的运行效率,程序使用了存储过程来实现数据的删除,在查询分析器的定义如下删除Student表中的学生信息createprocedureDeleteStudentData@DeleteSnochar10asdeletefromStudentwhereSno=@DeleteSno;删除Dept中的系信息createprocedureDeleteDeptData@DeleteDnochar10asdeletefromDeptwhereDno=@DeleteDno;
5.4触发器另外程序也定义了两个触发器来实现判断是否该学生已经选了15学分的课程,和成绩的判断触发器,定义如下实现15学分的判断createtriggerCcreditsJudgeonCourseSelectionTableforinsertasdeclare@SumCcreditsint@Snochar10select@Sno=Snofrominsertedselect@SumCcredits=sumCcreditsfromCourseSelectionTablewhereSno=@Snoif@SumCcredits15beginrollbacktransactionend实现学生成绩信息的修改createtriggerGradesInsertUpdateonGradesforinsertupdateasupdateGradessetGusuallyresults=100Gtestscores=100Ggradesshould=100*
0.3+100*
0.7whereGusuallyresults100andGtestscores100第6章预测结果
6.1遇到的问题以及解决方法在编写此程序时,主要遇到了以下几个方面的问题
6.
1.1不同对话框数据的传递解决方法在弹出第二个对话框时,需要把服务器的IP地址以及登陆用户的权限传递到第二个对话框中,实现的方法是在为第二个对话框显示时通过传递两个参数来实现的代码为Form2form2=newForm2identitytextBox
1.Text;form
2.Show;
6.
1.2数据的级联删除因为各个表是有联系的,在删除一个数据时有时候也需要把另一个表的数据也要删除,这可以通过在创建表时加上以下两句以实现级联删除ondeletecascadeonupdatecascade
6.
1.3学生成绩的分析在程序中需要对学生的总成绩进行统计,这是通过调用自定义的一个函数来实现的,在函数中通过对数据库进行读取学生的总成绩,并进行记数以确定总学生数,如何对此成绩所属的成绩段进行记数以确定此成绩段的总学生数,最后再用成绩段的学生数去除总学生数,进而得到不同成绩段的百分比
6.2设计的体会本程序的设计主要是通过使用TabControl控件来实现各个功能模块的,在TabControl控件的页面上通过添加各个控件进一步实现对数据库中数据的删除、修改以及添加等在登录用户的权限方面,显示出的是同一个对话框,但是根据用户的权限,在对话框的初始化函数中通过使某些页面显示与隐藏以及某些按钮的显示与隐藏来实现不同的登陆权限在报表方面,由于对报表不是很熟悉,刚开始并不清楚如何利用报表来实现数据的显示以及图表的美化,通过查找资料,对报表的设计已经满足了课设的要求本程序在报表中插入的图表主要是用来显示成绩比例的,在设计时需要在“图表专家”的“数据”标签下进行一些数据的定义,这里需要定义5个“定义命令组”(=90分、=80分、、=70分、=60分及不及格)以实现各个学生总成绩的统计另一方面,在对数据库中的数据进行操作时,需要考虑到各个表中数据之间的联系例如,在删除一个学生的信息时,如果此学生选了课并且有了该课程的成绩,那么在删除此学生信息时需要同时把选课、成绩信息删除,这就需要进行表中数据的级联删除总的来说,此次数据库课设,通过自己对课设题目的理解,进而实现程序的整体架构,对各个功能模块进行设计后,还是学到了不少的东西结束语教学管理系统的实现,通过多方面的测试是可行的通过myEclipse工具开发该系统,更熟练的掌握该工具的使用熟练的运用MVC框架技术,在编程的过程中,减少大量的代码Hibernate技术主要掌握JavaBean与关系数据库的映射关系,一对
一、一对多,减少了重复去写数据库连接;Spring技术主要掌握控制反转和依赖注入,以及applicationContext.xml的配置控制层中,主要掌握JSf技术,熟练的运用了JSF的组件该系统中,有些功能实现了,但不是特别的完善要具体的完善,需要对css样式有所了解,这样做出来的系统更加完善Css样式正在学习当中,该系统也会在我学习当中完善致谢大学专科生活即将画上一个句号,在这紧张而丰富的三年学习和生活过程中,在各位老师和同学的帮助下,我获益匪浅本论文的完成也正是我这一学习阶段的总结在此谨向所有支持、关心和帮助过我的老师、同学、朋友以及家人致以最诚挚的感谢首先要感谢我的指导老师——赵文娟老师,本论文是在赵老师的精心指点下完成的,导师严谨求实的治学态度、渊博的专业知识、丰富的实践经验、前瞻开阔的科学视野、孜孜不倦的敬业精神和诲人不倦的长者风范,给我影响至深,足以使我受益终身,也培养了我独立工作的能力和不畏挑战的创新精神在完成论文中的工作时,得到了导师的悉心指点和谆谆教诲,在此向赵老师表示最诚挚的敬意和衷心的感谢!感谢学院能给我提供学习的机会,感谢全体老师在我学习过程中给予我的指导和帮助,特别感谢论文答辩委员会的诸位老师能在百忙之中审阅我的论文,并出席论文答辩会感谢和我共同走过三年学习生活的舍友、同学给我的支持和鼓励感谢我的家人,学业的完成离不开你们的支持,没有你们无私的奉献和默默支持,没有你们在我遇到困难时的激励和帮助,我是不可能顺利完成学业的,在此,谨表衷心感谢!最后,再一次感谢所有给我帮助、支持和关心的人们!祝愿你们永远幸福、快乐!参考文献
[1]萨师烜.数据库系统概论.高等教育出版社
[2]杨长春.Delphi程序设计教程.清华大学出版社
[3]刘卫国.等数据库技术与应用.清华大学出版社
[4]石志国.ASP.NET实用案例教程.清华大学山版社.2003年7月
[5]周桓.JSP项目开发全程实录[M].北京清华大学出版社.2008
[6]李洋.NET平台在教学资源管理系统中的应用[J].福建电脑,2010
(6)84-85
[7]李莹.基于校园网的教学资源管理系统的设计与研究[J].科技广场.
2006.1184-86
[8]董西尚.基于Web的网络教学辅助系统的设计与实现[J].茂名学院学报,2010
(10)57-59
[9]卢汉鹏等.JSP开发技术详解[M].北京化学工业出版社.2010
[10]陈志超.浅谈现代远程开放教育网络平台下教学资源管理系统的构建及应用[J]
[11]褚洪彦.基于Web的校际专业教学资源管理系统设计与实现[J]学生学号姓名性别出生日期所在系号入学成绩教师职工号姓名性别出生日期职称所在系号专业及教学方向系信息系号系名系简介课程课程号课程名教师号学时上课时间学分上课地点考试时间学生系教师课程选课系/教学/系课教mnn11nnm。