基于java的教务管理系统.doc
第一章 绪论1.1 项目的背景和意义 学校中有大量教师信息,学生管理信息,教职工日常工资管理,学生成绩管理,以及学生评语的生成还有基本数据的维护都难于通过传统的方法进行管理;这就迫切需要利用计算机技术来帮助学校管理者来处理这些日常管理.电子教务管理系统是管理信息系统的一个典型用例。 管理信息系统是一个集信息技术、经济管理理论、统计学与运筹学、数据库技术为一体的综合性系统,是一个资金技术密集型、劳动密集型、智力密集型的项目。我国拥有广阔的市场和丰富的人才资源,有几十年的技术积累和经验积累,有一定的后发优势。管理信息系统的创新工作既不能妄自菲薄,更不能夜郎自大。要抓住当前网络经济兴起的有利时机,以实现我国信息技术和信息产业的跨越式发展,更好地发挥信息产业对国民经济增长的拉动作用。系统是高校教学、教务管理应用软件。熟悉教务管理工作的全部过程,从教务工作的实际出发,解决工作中关键性的难点问题,并充分利用计算机网络功能,实现教务工作全过程的计算机管理,帮助具体管理人员从复杂烦琐工作中解放出来。使得教务管理走向无纸化办公和规范化、现代化管理。教务管理是大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。迫切需要研制开发一台基于INTERNET网的综合网上教育管理软件。纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。因此,教务管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。1.2 开发技术本系统所涉及的开发技术主要是指MySQL技术和Java技术。1.2.1 MySQL 技术(一)优化对于MySQL的优化,我们可以说,主要的问题在于你的硬件条件,而非MySQL本身。不过对于Access,(以及其他桌面数据库软件)事情就不是这样了。没错,MicrosoftJetDatabase的确实有效率,不过它还不是最快的。如果你的数据库设计得非常差,你的网站还是会受到影响而速度变慢的。数据库结构设计也会影响到MySQL,例如,MySQL并不支持外键(foreignkey)。这个缺点会影响到你的数据库设计以及网站的效率。对于使用MySQL做数据库的网站,你应该注意的是,如何让硬盘存取IO减少到最低值、如何让一个或多个CPU随时保持在高速作业的状态、以及适当的网络带宽,而非实际上的数据库设计以及资料查询语句。事实上,有些网站开发者将MySQL称为目前市面上跑得最快的数据库。不过,当你的数据库有很多表格需要同时在一个事务过程(transaction)内完成更新的时候,MySQL的确跑得不怎么样。(二)备份如果你曾经有过抢救一个损坏的MDB档案的惨痛经验,那么你会对MySQL表示非常激赏。这是MySQL另一个胜过Access的地方。首先,mysqldump会产生一个比Access好很多而且也更可靠的备份档案。相比之下,在Access中你只是将一个MDB档拷贝起来做备份。其次,即使MySQL的备份有部分损坏,复原起来也要比一个损坏的MDB档要容易得多了。(三)可延伸性(Scalability)以及资料处理能力套句登山者的话来说,将Access数据库来跟MySQL相比,简直就是像把印第安那的小山丘拿来跟科罗拉多洛矶山脉的Pike'sPeak顶相比较。事实就是这么简单MySQL可以处理的档案比Access所能处理的档案大很多。如果你硬将Access数据库弄到100MB的MDB档案时,你要准备好一个字典厚的纪录本来记录来自客户对于网站效率低下的抱怨。而类似的数据库在MySQL上面跑,就不会发生承载过重的迹象。(四)MySQL同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言介面,例如C+,Perl,Java,PHP,以及Python。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL可用于Unix,Windows,以及OS/2等平台,因此它可以用在个人电脑或者是服务器上。(1) MYSQL支持5000万条记录的数据仓库(3.X版本就支持了),不知道现在MYSQL5是怎样的。5000条是个什么概念?这样来说吧蓝色理想的论坛大家都知道吧,里面的帖子总数加起来不过200万不到你可以自己去数下。所以我很难想象有什么数据库需要5000万条以上的记录,恩想到一个,给全中国13亿人都做一个登记。不过我想在座的各位都不大有机会去做这样的项目。 (2) MYSQL适应所有平台 。你无法确定MS到底什么时候会完蛋,如同浏览器大战一样。整个战斗过程简直是一瞬间完成的。给自己一条后路总是好的 (3) MYSQL开源软件 我这倒不是说开源怎么样好,中国人没多数人没那个条件,也没那个觉悟。饭都吃不饱了,谁还想着奉献?这里有一个例子就是MM.现在MM的所有产品都前途未卜,虽然我比较聪明,当WEB标准开始流行的时候,我就知道FLASH的最佳应用范围会有所改变。后来的收购,更是加重了我的看法,LUAR说的一点没错,不要跟一家商业公司做同一根绳子上的蚂蚱。就象宝蓝正是如此。所以如果你选择其他商业公司的软件也多少会遇到这个问题。即使公司不垮台,在版本更新上也会遇到一些从商业角度出发所做出的结论的影响。而开源的东西似乎总是比较实在一点,不会有太多商业化的考虑。(4) 学起来简单,或许不能这样说,因为大多数数据库都是用的SQL语句,而且其他数据库我也没学过。但是我想贵总有贵的道理,我想MSSQL跟O*(抱歉我又不记得全称了,甲骨文公司出的最牛X的数据库软件),的功能总是会比MYSQL要强。排除价格不说,一般情况下越复杂功能越强的数据库,总是会比较缓慢些。试问同一件事情三个数据库都能做到,为什么不选择又便宜又快的?其实如果有更小的数据库我想我会选其他的。很可惜ACCESS 连SQL好象都不支持,并且如果用ACCESS跟PHP配合使用,我会认为这样使用的人是脑袋进水的人。而SQL LITTLE(PHP5 默认支持的数据库,据说跟ACCESS差不多,使用时不需要安装驱动并且支持部分SQL)又才刚起步,书也很少。我是不追逐技术上的第一的,没那本事,英语太菜,况且也没必要。 (5) MYSQL 因为是开源的,所以支持任意修改,也就是说你可以去除你不需要的功能,从而简化MYSQL,提高速度。不得不能说这是一个非常好的功能,任何商业数据库都做不到的。很可惜对我来说没什么用,因为我不打算当数据库程序员。 大概就这么多了,缺点我暂时还不知道,但是任何东西都有他的缺点的,所以MYSQL也不例外,至于是什么,我想多半是功能上的不够强大,但是目前我刚学,还感受不到有什么需要的功能还MYSQL不具备其他数据库具备的。1.2.2 JAVA技术选择Java主要是因为:1. Java是目前使用最为广泛的网络编程语言之一。它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点。 2.简单 Java 语言简单是指这门语言既易学有好用。不要将简单误解为这门语言很干瘪。你可能很赞同这样的观点 英语要比阿了伯语言容易学。但这并不意味着英语就不能表达丰富的内容和深刻的思想,许多文学若贝尔奖的作品都是英文写的。如果你学习过 C+语言,你会感觉 Java很眼熟,因为 Java中许多基本语句的语法和 C+一样,像常用的循环语句,控制语句等和 C+几乎一样,但不要误解为 Java 是 C+的增强版,Java 和 C+是两种完全不同的语言,他们各有各的优势,将会长期并存下去,Java 语言和 C+语言已成为软件开发者应当掌握的语言。如果从语言的简单性方面看,Java要比 C+简单,C+中许多容易混淆的概念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方式实现,例如,Java不再有指针的概念。 3.面向对象 基于对象的编程更符合人的思维模式,使人们更容易编写程序。在实际生活中,我们每时每刻都与对象在打交道。我们用的钢笔,骑的自行车,乘的公共汽车等。而我们经常见到的卡车,公共汽车,轿车等都会涉及以下几个重要的物理量 可乘载的人数,运行速度,发动机的功率,耗油量,自重,轮子数目等。另外,还有几个重要的功能 加速功能,减速功能,刹车,转弯功能等。我们也可以把这些功能称作是他们具有的方法,而物理量是它们的状态描述。仅仅用物理量或功能不能很好的描述它们。在现实生活中,我们用这些共有的属性和功能给出一个概念 机动车类。一个具体的轿车就是机动车类的一个实例对象的模板,它包含被创建的对象的状态描述和方法的定义。 4.与平台无关 与平台无关是 Java 语言最大的优势。其它语言编写的程序面临的一个主要问题是 操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了 Java虚拟机 JVM 的计算机上正确的运行,Sun公司实现了自己的目标 “一次写成,处处运行”。 5.解释型 我们知道C,C+等语言,都是只能对特定的CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CUP有关。例如,在C语言中,我们都碰到过类似下面的问题 int 型变量的值是10 ,那么下面代码的输出结果是什么呢 printf(“%d,%d”,x,x=x+1) 如果上述语句的计算顺序是从左到右,结果是 10,11, 但是,有些机器会从右到左计算,那么结果就是11,11.Java不像C+,它不针对特定的CPU芯片进行编译,而是把程序编译为称做字节码的一个“中间代码”。字节码是很接近机器码的文件,可以在提供了 Java 虚拟机 JVM 的任何系统上被解释执行。Java 被设计成为解释执行的程序,即翻译一句,执行一句,不产生整个的机器代码程序。翻译过程如果不出现错误,就一直进行到完毕,否则将在错误处停止执行。同一个程序,如果是解释执行的,那么它的运行速度通常比编译为可执行的机器代码的运行速度慢一些。但是,对Java来说,二者的差别不太大,Java的字节码经过仔细设计,很容易便能使用JIT 即时编译方式 编译技术将字节码直接转化成高性能的本地机器码,Sun 公司在 Java 2发行版中提供了这样一个字节码编译器JIT(Just In Time),它是Java虚拟机的一部分。Java运行系统在提供JIT的同时仍具有平台独立性,因而“高效且跨平台”对Java来说不再矛盾。如果把 Java 的程序比做“汉语”的话,字节码就相当于“世界语”,世界语不和具体的“国家”关,只要这个“国家”提供了“翻译”,就可以再快速地把世界语翻译成本地语言。 6.多线程 Java 的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为,目前的计算机的处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好象多个任务在同时执行。C+没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。 7.安全 当你准备从网络上下载一个程序时,你最大的担心是程序中含有恶意的代码,比如试图读取或删除本地机上的一些重要文件,甚至该程序是一个病毒程序等。当你使用支持Java的浏览器时,你可以放心地运行Java的小应用程序 Java Applet ,不必担心病毒的感染和恶意的企图,Java小应用程序将限制在 Java运行环境中,不允许它访问计算机的其它部分。 8.动态 Java 程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得 Java 可以在分布环境中动态地维护程序及类库,而不像 C+那样,每当其类库升级之后,相应的程序都必须重新修改,编译。 1.3 系统主要目标在系统的实现过程中,主要工作包括:整个系统设计和实现;经过反复论证和分析,确定了数据库表以及表与表之间的关系,建立了数据库;完成了系统的需求分析,系统设计,对象设计。第二章 需求分析2.1 系统可行性分析系统的可行性分析主要是技术可行性,经济可行性。2.1.1 技术可行性在目前的网络管系统开发中,主要分成两大编程体系,一种是基于浏览器的B/S机构,另一种是C/S结构。考虑到本系统是基于C/S模式的,作者可以通过Java + MySQL的开发体系来开发。先在MySQL上建立好数据库,然后用Java语言编写程序实现系统功能。2.1.2 经济可行性现在的教务管理系统大部分还处于手工阶段,手工劳作不仅耗费了大量的时间,人为出错的几率也比较大,这势必将影响到整个教学的质量,一个错误甚至可能给学生和老师带来很大的影响,直接影响到学生的成绩。因此,建立一个合理的教务管理系统既要体现投资效益原则,也要保证系统质量和性能,尽量使用性能价格比比较高的硬件和软件,从而达到节约投资和增加效益的目的。基于C/S模式的教务管理系统便是最佳的选择,利用先进的计算技术和强大的JAVA语言体系进行开发,不仅能提供一致的用户界面,还能实现客户端零配置和客户端平台无关性;服务器端是系统开发、维护和升级的所在,能够较容易地升级、扩展和集成系统。这样,在提高了学生和教职工工作效率的同时,也减轻了学校在教务管理工作方面的开销。开发此系统的价值远远超过了开发系统的成本,因此,作者认为进行此项开发是可行的。2.2需求概述2.2.1设计目标开发的系统是一个单机版的教务管理系统 如表2.1。表2.1设计目标表需求对学校教务信息进行信息化管理用户超级管理员基本教务管理员学生用户所做的事填写、删除用户基本信息 填写、修改、查询、删除教师信息填写、修改、查询、删除学生信息填写、修改、查询、删除班级信息填写、修改、查询、删除课程信息填写、修改、查询、删除考试信息查询成绩信息用户需求管理教师的基本信息管理学生的基本信息管理班级的基本信息管理课程的基本信息管理考试的基本信息现在已经存在的有最好的解决方案用MYSQL数据库来实现,用语言是JAVA来开发最好方案的理由选MYSQL是因为系统简单,MYSQL成本很小,且使用普遍,一般学校均已具备。用JAVA语言是因为我对它比较熟悉。2.2.2 用户特点用户为非专业技术人员,对计算机技术没有详细了解,必须尽可能的提供友好的操作界面和使用提示。2.3需求描述2.3.1教务管理系统的总需求目标在计算机数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的教务管理系统,实现教师,学生,课程,班级,考试管理自动化,高效的计算机系统。2.3.2数据需求(1)数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。(2)数据的安全性本系统为学校教务管理设计,因此只有特定的教务管理者才能对数据实现增,删、改、查等操作。未获授权人员不能进入系统。(3)数据的备份要定期对数据库中的数据进行全部或新增部分的备份工作,以保证在硬件出现故障或人为原因导致无法运行时是可以快速及时的还原到原来的正常状态。2.3.3功能性需求概述(1)、能够管理用户的基本信息。(2)、能够管理教师、学生、课程、班级、考试信息。(3)、以上这些信息都应用于查询、添加、修改、删除。2.3.4约束 操作系统:Windows. 数据库系统:MySQL.2.3.5系统模型(1)参与者汇总超级管理员:负责管理用户相关信息教务基本管理员:管理教师、学生、课程、班级、考试信息拥有查询成绩权限的用户:查询考试成绩(2)用例汇总管理用户信息;添加教师信息;修改教师信息;删除教师信息;添加学生信息;修改学生信息;查询学生信息;删除学生信息;添加班级信息;修改班级信息;查询班级信息;删除班级信息;添加课程信息;修改课程信息;查询课程信息;删除课程信息;添加考试信息;修改考试信息;删除考试信息;查询学生成绩信息。(3)顶层用例图 顶层用例图描述信息 如图2.3 : 用户管理添加用户删除用户超级管理员 查询成绩 学生成绩查询教务管理员添加学生删除学生修改学生学生管理添加成绩删除成绩考试管理班级管理添加班级修改班级删除班级课程管理添加课程修改课程删除课程教师管理添加教师修改教师删除教师图2.3 顶层用例图(5)用例描述表2.1 用户信息管理表用例编号1用例名称用户信息管理触发事件超级管理员添加或删除新用户主成功场景步骤活动1管理员选择用户管理2选择添加用户或删除用户3管理员按要求填写用户信息4管理员选择提交操作5系统保存提交操作表2.2 教师信息管理表用例编号2用例名称教师信息管理触发事件管理员希望管理教师信息主成功场景步骤活动1管理员选择教师信息管理2系统显示可用的功能,管理员选择其中之一执行:添加教师信息修改教师信息删除教师信息3管理员可重复选择以上操作4管理员退出系统或转入其它操作 表2.3 添加教师信息表用例编号3用例名称添加教师信息触发事件学校有新教师加入主成功场景步骤活动1管理员选择添加教师信息的操作2系统显示教师信息录入界面(内容见数据表)3管理员按要求填写教师信息4管理员选择提交操作5系统保存新加教师信息表2.4 修改教师信息表用例编号4用例名称修改教师信息触发事件教师信息发生变动在录入教师信息时由于误操作而将信息填错主成功场景步骤活动1管理员选定要修改记录信息的教师2管理员选择修改信息操作3管理员修改记录信息4管理员选择提交操作5系统保存被修改教师信息的记录 表2.5 删除教师信息表用例编号5用例名称删除教师信息触发事件在录入教师信息时由于误操作而将信息填错或 教师辞职主成功场景步骤活动1管理员选定要删除记录信息的教师2管理员选择删除信息操作3系统将显示操作信息4系统删除被选定的教师的信息 表2.6 学生信息管理表用例编号6用例名称学生信息管理触发事件管理员希望管理学生信息主成功场景步骤活动1管理员选择学生信息管理2系统显示可用的功能,管理员选择其中之一执行:添加学生信息修改学生信息删除学生信息3管理员可重复选择以上操作4管理员退出系统或转入其它操作 表2.7 添加学生信息表用例编号7用例名称添加学生信息触发事件学校有新学生加入主成功场景步骤活动1管理员选择添加学生信息的操作2系统显示学生信息录入界面(内容见数据表)3管理员按要求填写学生信息4管理员选择提交操作5系统保存新加学生信息 表2.8 修改学生信息表用例编号8用例名称修改学生信息触发事件学生信息发生变动在录入学生信息时由于误操作而将信息填错主成功场景步骤活动1管理员选定要修改记录信息的学生2管理员选择修改信息操作3管理员修改记录信息4管理员选择提交操作5系统保存被修改学生信息的记录 表2.9 删除学生信息表用例编号9用例名称删除学生信息触发事件在录入学生信息时由于误操作而将信息填错或 学生退学主成功场景步骤活动1管理员选定要删除记录信息的学生2管理员选择删除信息操作3系统将显示操作信息4系统删除被选定的学生的信息 表2.10 课程信息管理表用例编号10用例名称课程信息管理触发事件管理员希望管理课程信息主成功场景步骤活动1管理员选择课程信息管理2系统显示可用的功能,管理员选择其中之一执行:添加课程信息修改课程信息删除课程信息3管理员可重复选择以上操作4管理员退出系统或转入其它操作 表2.11 添加课程信息表用例编号11用例名称添加课程信息触发事件学校有新学生加入主成功场景步骤活动1管理员选择添加课程信息的操作2系统显示课程信息录入界面(内容见数据表)3管理员按要求填写课程信息4管理员选择提交操作5系统保存新加课程信息 表2.12 修改课程信息表用例编号12用例名称修改课程信息触发事件课程信息发生变动在录入课程信息时由于误操作而将信息填错主成功场景步骤活动1管理员选定要修改记录信息的课程2管理员选择修改信息操作3管理员修改记录信息4管理员选择提交操作5系统保存被修改课程信息的记录 表2.13 删除课程信息表用例编号13用例名称删除课程信息触发事件在录入课程信息时由于误操作而将信息填错或 课程删除主成功场景步骤活动1管理员选定要删除记录信息的课程2管理员选择删除信息操作3系统将显示操作信息4系统删除被选定的课程的信息 表2.14 班级信息管理表用例编号14用例名称班级信息管理触发事件管理员希望管理班级信息主成功场景步骤活动1管理员选择班级信息管理2系统显示可用的功能,管理员选择其中之一执行:添加班级信息修改班级信息删除班级信息3管理员可重复选择以上操作4管理员退出系统或转入其它操作 表2.15 添加班级信息表用例编号15用例名称添加班级信息触发事件学校有新学生加入主成功场景步骤活动1管理员选择添加班级信息的操作2系统显示班级信息录入界面(内容见数据表)3管理员按要求填写班级信息4管理员选择提交操作5系统保存新加班级信息 表2.16 修改班级信息表用例编号16用例名称修改班级信息触发事件班级信息发生变动在录入班级信息时由于误操作而将信息填错主成功场景步骤活动1管理员选定要修改记录信息的班级2管理员选择修改信息操作3管理员修改记录信息4管理员选择提交操作5系统保存被修改班级信息的记录 表2.17 删除班级信息表用例编号17用例名称删除班级信息触发事件在录入班级信息时由于误操作而将信息填错或 班级删除主成功场景步骤活动1管理员选定要删除记录信息的班级2管理员选择删除信息操作3系统将显示操作信息4系统删除被选定的班级的信息 表2.18 考试信息管理表用例编号18用例名称考试信息管理触发事件管理员希望管理考试信息主成功场景步骤活动1管理员选择考试信息管理2系统显示可用的功能,管理员选择其中之一执行:添加考试信息删除考试信息3管理员可重复选择以上操作4管理员退出系统或转入其它操作表2.19 添加考试信息表用例编号19用例名称添加考试信息触发事件学校有新考试成绩加入主成功场景步骤活动1管理员选择添加考试信息的操作2系统显示考试信息录入界面(内容见数据表)3管理员按要求填写考试信息4管理员选择提交操作5系统保存新加考试信息表2.20 删除考试信息表用例编号20用例名称删除考试信息触发事件在录入考试信息时由于误操作而将信息填错或 考试信息过时,或学生信息删除主成功场景步骤活动1管理员选定要删除记录信息的考试2管理员选择删除信息操作3系统将显示操作信息4系统删除被选定的考试的信息表2.21查询成绩信息表用例编号21用例名称查询成绩信息触发事件学生用户希望查看符合某一条件的学生成绩信息主成功场景步骤活动1学生选择查询成绩信息操作2管理员输入查询条件3系统显示符合条件的学生成绩信息第三章 系统设计3.1子系统设计3.1.1各子系统的设计本系统包括三个子系统:高级管理子系统,教务基本管理子系统,学生成绩查询子系统。 三个系统的关系如图3.1 :学生成绩查询子系统高级管理子系统教务基本管理子系统图3.1 系统结构图教师管理用户管理提供给高级管理子系统高级管理子系统如图3.2: 用户管理此功能完成对用户的添加和删除基本操作 教师管理此功能完成对教师的添加修改和删除基本操作图3.2 高级管理子系统图教务基本管理子系统如图3.3:提供给教务基本管理子系统 学生管理 课程管理 班级管理 考试管理学生管理此功能完成对学生的添加修改和删除基本操作 班级管理此功能完成对班级的添加修改和删除基本操作教师管理此功能完成对课程的添加修改和删除基本操作考试管理此功能完成对考试的添加和删除基本操作图3.3 教务基本管理子系统图学生成绩查询子系统如图3.4:学生查询子系统此系统完成对学生成绩的查询基本操作图3.4 学生成绩查询子系统图3.1.2软件控制流设计(1)添加操作 系统将向数据库中添加一条新的记录,并修改相关表的信息(如在添加教师信息时,系统将自动修改教师的基本信息)(2)查询操作 系统根据查询条件在数据库中进行查询,然后把查询结果显示在界面上。(3)修改操作 要进行修改操作,必须先执行查询操作。执行修改操作系统将更新数据库中的相应记录。(4)删除操作 要进行删除操作,必须先执行查询操作。执行删除操作系统将删除数据库中的相应记录。3.2数据库设计l 概念设计实体联系方法(EntityRelationship Approach)是最常用的表示概念性数据模型的方法。这种方法使用E-R图来描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,即使不熟悉计算机技术的用户也能理解它。系统的E-R图如图3.5所示。 n1mn01nmnnm教授 学生 教师 课程管理学习考试 班级 考试授课上课 图3.5 系统E-R图 学生 学号 姓名 性别 出生年月班级编号电话 入学时间 家庭住址 根据E-R图中的实体,画出每个实体的属性图,如图3.6-3.10所示: 图3.6 学生实体属性图 教师教师编号 姓名 电话图3.7 教师实体属性图 课程名课程课程编号图3.8 课程实体属性图 班级 教师编号班级编号开课时间 学生数目 结课时间图3.9 班级实体属性图 考试 学生编号考试编号课程编号 笔试成绩 上机成绩图3.10 考试实体属性图3.2.1 数据库涉及的表本数据库涉及到六个表,如下所示。 student ( stuID, stuName, stuSex, stuBirthday, classID, stuPhone, stuInDate, stuAddress, memo); userInfo ( userName, passwd, prio); teacher ( teacherID, teacherName, teacherTel, memo); exam ( examID, stuID, courseID, examGrade, compGrade); course ( courseID, courseName, memo);classInfo (classID, teacherID, startDate, studentCount, endDate ,memo);3.2.2 各表的物理结构本系统所包含的六张表student, userInfo, teacher, exam, course, classInfo 的物理结构如表3.1-3.6所示:表3.1 student 表 字段名称 类型 宽度 stuID char20 stuName Char20 stuSex Char2 stuBirthday Char 10 classID Char20 stuPhone Char15 stuInDate Char10 stuAddress Char20 memo Char60表3.2 userInfo 表 字段名称 类型 宽度 userName Char 20 passwd Char 20 prio Char 10表3.3 teacher 表 字段名称 类型 宽度 teacherID Char 20 teacherName Char 20 teacherTel Char 15 memo Char 60表3.4 exam 表 字段名称 类型 宽度 examID Char 20 stuID Char 20 courseID Char 20 examGrade Int compGrade Int 表3.5 course 表 字段名称 类型 宽度 courseID Char 20 courseName Char 40 Memo Char 60表3.6 classInfo 表 字段名称 类型 宽度 classID Char 20 teacherID Char 20 startDate Char 10 studentCount Int endDate Char 10 memo Char 60 第四章 对象设计4.1 需求概述 教务管理系统是要求能够完成一些基本的教务管理其中包括:管理用户信息;添加教师信息;修改教师信息;删除教师信息;添加学生信息;修改学生信息;查询学生信息;删除学生信息;添加班级信息;修改班级信息;查询班级信息;删除班级信息;添加课程信息;修改课程信息;查询课程信息;删除课程信息;添加考试信息;修改考试信息;删除考试信息;查询学生成绩信息。4.2 程序设计4.2.1 程序包的设计 login包:包括一个调用用户登陆界面的公有函数类。 loginFrame包:提供登陆主界面类。 adminFrame包:提供超级管理员的管理类。GBC包:提供了一个对网格组布局管理器类的包装器类。img包:提供了系统所需要的图片资源。jdbc包:提供了连接数据库所需要的类。affairFram包:提供了教务基本管理所需要的类。inquireFrame包:提供了学生查询成绩所需要的类。具体的项目资源名定义见表5.1 :表5.1 项目资源定义表包名资源名资源说明loginLogin加载登陆窗口loginFrameLoginFr