首页 毕业设计(论文)-VB学生选课系统设计

毕业设计(论文)-VB学生选课系统设计

举报
开通vip

毕业设计(论文)-VB学生选课系统设计毕业设计(论文)-VB学生选课系统设计 四川师范大学文理学院本科毕业论文 学生选课系统 学生姓名 院系名称 计 科 系 专业名称 计算机科学与技术 班 级 2007 级计算机班 学 号 指导教师 答辩时间 2011年3月24日 学生选课系统 学生姓名: 何 福 指导老师:胡 荣 内容提要: 选课系统是针对在校学生和教师使用,由于学校教学制度的改革,现在大部 分高等院校开始实行的是学生的自主选课模式,传统的教学模式,已经不能适应 新型的教学手段,如果任然通过纸上的方式选课,一方面浪费的大量的人力、...

毕业设计(论文)-VB学生选课系统设计
毕业设计(论文)-VB学生选课系统设计 四川师范大学文理学院本科毕业论文 学生选课系统 学生姓名 院系名称 计 科 系 专业名称 计算机科学与技术 班 级 2007 级计算机班 学 号 指导教师 答辩时间 2011年3月24日 学生选课系统 学生姓名: 何 福 指导老师:胡 荣 内容提要: 选课系统是针对在校学生和教师使用,由于学校教学 制度 关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载 的改革,现在大部 分高等院校开始实行的是学生的自主选课模式,传统的教学模式,已经不能适应 新型的教学手段,如果任然通过纸上的方式选课,一方面浪费的大量的人力、物 力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情 况。选课管理系统,它是c/s结构的系统,它能更有效,更快速的实现学生选课 的管理过程,而且管理的安全机制也更完善,这样就可以为学生的管理花费更少 的人力和物力资源。本系统界面友好,操作简单明了,设计合理,功能比较齐全, 考虑周到合理,对vb学习者可以起到很好的借鉴作用,也可以为计算机软件的 设计提供一定的参考,教学的管理主要就是让现代的教学管理员能更加方便的解 决学校的管理。本系统达到了他的要求也基本达到了课程设计的基本要求。 关键字:VB;选课系统;SQL Server2000 Students of the system for choosing classes Abstract: Choosing-class system is aims at in the school student and the teacher user, as a result of the school teaching system reform, now the majority of institutions of higher learning started to implement is the student independently chooses the class pattern, the traditional educational model already cannot adapt the new teaching method, if still chose the class through the paper on way, on the one hand wasted massive manpower, physical resource resources, on the other hand wasted the time as well as situation and so on mistake which inevitably appeared in the artificial statistical process. Choosing the class management system management system, it is the c/s structure system, it can more effective, the faster realization student chooses the class the management process, moreover manages the safety mechanism is also more perfect, like this may spend less manpower and the physical resource resources for student’s management. This system contact surface friendly, operation simple bright, design reasonable, function quite complete, considered thorough is reasonable, may play the very good model role to the vb study, also may provide the certain reference for the computer software design, the teaching management mainly is the teaching manager which lets the modern age can the more convenient solution school management. This system had achieved his request basically had also achieved the curriculum designs basic request. Key words: VB; Choosing-class system; SQL Server200 目 录 1 引言 .............................................................. 1 1.1 课题的研究意义 .............................................. 1 1.2 论文的目的、内容及作者的主要贡献 ............................ 1 2 研究现状及设计目标 ................................................ 3 2.1相近研究课题的特点及优缺点分析 ............................... 3 2.2 现行研究存在的问题及解决办法 ................................ 4 2.3本课题要达到的设计目标 ....................................... 4 3 要解决的几个关键问题 .............................................. 5 3.1 研究设计中要解决的问题 ...................................... 5 3.2 具体实现中采用的关键技术及复杂性分析 ........................ 5 4 系统结构与模型 .................................................... 6 4.1系统结构 ..................................................... 6 4.2 系统模型设计 ................................................ 6 5 系统实现技术 ...................................................... 9 5.1 序列模块 .................................................... 9 5.2 程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 ................................................... 11 6 性能测试与分析 ................................................... 18 6.1 测试实例,测试集,的研究与选择 ............................. 18 6.2 测试环境与测试条件 ......................................... 21 6.3 性能分析 ................................................... 21 7 结束语 ........................................................... 22 参考文献: ......................................................... 22 学生选课系统 1 引言 随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现选课系统势在必行。对于一个学校来说,用计算机进行选课管理所无法比拟的优点是检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校选课的效率。现代社会是一个高速发展的信息时代,时间就是金钱,为了适应这种需要,学校的管理也在逐步实现现代化,学生选课也应实现现代化。越来越多的学校实行学分制,手工管理学生选课信息逐渐成为了一项繁重的重复劳动,学生选课系统主要的目的是减轻管理课程信息及学生选课信息的劳动强度,辅助学校课程管理,减少因人为失误造成的选课错误,从而使学校更有效率的进行正常教学工作人们能够应用现代化的技术方便的实现合理、有效、高效的现代化学生选课管理,现代化的学生选课系统等,这些都需要计算机软件来实现。这样就可以为学生的管理花费更少的人力和物力资源。 1.1 课题的研究意义 学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 1.2 论文的目的、内容及作者的主要贡献 1.2.1课题的目的 目前市面上流行的选课管理系统并不多。所以我这次的毕业设计的目标就是在于开发一个功能实用、操作方便,简单明了的能够满足本中心对数据的管理及需求的学生,教师和教学管理员能更加方便使用的选课的系统。本系统达到了他的要求也基本达到了课程设计的基本要求。 1.2.2课题研究的内容 本系统制作的程序是一个能实现老师对课程的添加,删除,更改,浏览,查询和打印等功能的系统,并能对每门课程成绩进行评定,而且基于对系统安全性的考虑我们特别加了一个功能健全的管理者登陆验证机制,能让系统的管理者方 1 便的进行管理更能帮助学校安全高效的管理,为现代教学管理提供了安全的保障 1.2.3作者的主要贡献 本人在老师的辅导下完成了此课题的研究与开发,包括调研、分析、设计、编码、测试、文档编写等内容。该系统避免了在人为统计过程中出现差错的情况。学生只用在计算机前输入自己的选课信息就可完成原来几倍的作业量。从老师的角度来讲,也大大的节约了工作量。一个功能完善的学生选课系统可以在学生的管理上花费更少的人力和物力资源,提高工作效率。 2 2 研究现状及设计目标 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。 本系统就是为了管理好选课信息而设计的。学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 格等纸介质的手工处理,对于选课情况的统计和查询等往往采用对课程的人工检查进行,对学生的选课权限、以及选课代号等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统, 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的信息管理手段。尽管学校都有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。学校采取手工方式对学生选课情况进行人工管理,由于信息比较多,选课信息的管理工作混乱而又复杂;一般选课情况是记录在文件上,课程的数目和代号也记录在文件中,学校的工作人员也只是当时对它比较清楚,时间长了,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的选课进行更改就更加困难了。 基于这些问题,我认为有必要建立一个学生选课系统,使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 2.1相近研究课题的特点及优缺点分析 本课题主要研究VB+ SQL Server2000学生选课系统,另外一种采用ASP.NET作为前台开发工具,MICROSOFT SQL SERVER 2000作为后台数据库平台的基于B/S模式的学生选课系统。B/S(BROWSER/SERVER)结构即浏览器和服务器结构。它是随着INTERNET技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(BROWSER)实现,但是主要事务逻辑在服务器端(SERVER)实现。这样就简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低用户的总体成本。 以目前的技术看,局域网建立B/S结构的网络应用,并通过 INTERNET/INTRANET模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。 但是由于ASP程序和网页的HTML混合在一起,这就使得程序看上去相当的杂乱。在现在的网站设计过程中,通常是由程序开发人员做后台的程序开发,前面有专业的美工设计页面,这样,在相互配合的过程中就会产生各种各样的问题。同时,ASP页面是有脚本语言解释执行的,使得其速度受到影响。受到脚本语言 3 自身条件的限制,我们在编写ASP程序的时候不得不调用COM组件来完成一些功能。 2.2 现行研究存在的问题及解决办法 2.2.1存在的问题 2.2.1.1统计在线人数 在选课系统中, 为了方便学生看到当前系统在线人数, 避开选课高峰期, 需要统计在线人数。在此为了避免连接数据库, 减慢系统运行速度, 采用了继承HttpSessionListener 方法。当用户进入系统, 触发SessionCreated 事件, 计数器加1; 当用户离开, 触发SessionDestroyed 事件, 关闭页面, 计数器减1实现了简单的不需要操作数据库的在线人数统计。 2.2.1.2课程冲突的应对策略 由课程、教室的繁多及学生选课的自由性所决定,在管理员安排课程和学生选课过程中不可避免出现课程冲突问题, 即教师在同一时间上两门课程、同一教室、在同一时间有两个教师来上课和同一学生在同一时间选择了两门课程等问题。这就需要在系统中用一些策过许多步骤, 当需要选择多门课程时不得不经过许冗杂而重复的步骤。学生对要选的课程的开课一些基本信息和对自己所得成绩和学分的查询比较模糊、复杂, 课表的表现不够直观等等。教师同样需要复杂的操作才能对所授课程和选课学生进行查询和管理。系统的操作界面不友好、不够人性化。这样的设计显然是不能令人满意的。 2.2.2解决办法 说明故障出现后采取的变通措施包括: 1、后备技术。说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术。 2、降效技术。说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录。 3、恢复及再启动技术。说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。 2.3本课题要达到的设计目标 开发此学生选课管理系统软件,使教学人员及操作者进行选课管理,方便操作者随时添加、查询、修改,使工作人员从繁琐的填表,查表工作中解放出来,使得人力和设备减少;使供需双方都获得满意的结果;促进报表、统计数字的规范化;处理速度高,提高工作效率;降低选课管理维护费用,提高行政工作效率,改善服务质量,为学校领导决策提供支持,该设计目标尽量达到人力与设备的节省,并且处理数据的速度提高。 4 3 要解决的几个关键问题 这一章要介绍几个关键问题的解决方法。 3.1 研究设计中要解决的问题 3.1.1系统不稳定 系统时常不能访问, 用户无法登陆, 这显然是服务器系统的不稳定而造成[1]的。作为系统的设计者, 应在发布前进行充分的效能测试, 从而最大程度上避免这种情况的出现。 3.1.2系统性能不好 由于采取的技术和数据库速度及性能较慢的原因, 从而导致在选课高峰期, 同时有大量的同学选课的时候出现登陆和选课速度很慢或是根本就无法成功登及结构体系。在这种结构下, 用户仅需通过浏览器就可实现客户端的功能, 而大部分的事物逻辑是在服务器端实现。这样就大大降低了客户端的负载, 减轻了系?统维护与升级的成本。 3.2 具体实现中采用的关键技术及复杂性分析 使用者运用计算机进行数据处理过程中,系统对产生的有关数据进行采集、整理、存储、分类、排序、检索、维护、加工、统计和传输。为保证数据库正确反映所有事务的更新,以及在一事务修改数据时其他事务不同时修改这个数据,[2]数据库采用锁来控制对数据库的并发存取。 系统维护设计主要是指系统编码的可维护性, 因为大多系统不可能完全满足所有需求, 所以在以后需要进行修改。所以编码要遵循一个良好的习惯, 包括格式的注释, 对于代码的功能要有明确的解释。采用面向对象的编程方法是一个不错的主意。 说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专?门安排用于系统的检查与维护的检测点和专用模块。 ? 周燕飞等:《数据库原理与运用》,机械工业出版社,2009年版,第80页 ? 陈世洪:《SQL SERVER 2000管理,开发及应用实例详解》,人民邮电出版社,2009年版,第46页 5 4 系统结构与模型 4.1系统结构 整个系统的模块功能结构如图1所示 学生课程管理系统 学生 教师 管理员 查修选公学教课班 看改择布生师程级选 学信学成管管管管课 分 息 生 绩 理 理 理 理 图1系统模块结构图 4.2 系统模型设计 4.2.1系统的中心对象 本系统的中心对象是学生和教师。根据以上的模块划分和功能分析可知,该系统的流程主要描述的是学生选择课程后,教师根据选课的学生决定选那些学生,最后教师给学生学分。该系统放入适用对象包括管理员、学生和教师,因此包括三个基本的流程。 图2描述的是管理员的操作流程:首先管理员要进行学生、教师和课程数据的初始化,这样学生和教师就可以登录使用系统了。在系统使用过程中,管理员再进行管理工作。 6 管理员列表 学生列表教师列表 课程列表 新修删新修删新修删 增 改 除 增 改 除 增 改 除 图2 系统流程图---管理员 图3描述的是学生的操作流程:学生根据学生号和密码登录系统,初始的密码由管理员提供。学生登陆后,可以修改个人信息、选课和查看学分。 学生登录 课程列表 查看学分情况 更改个人信息 选课 图3 学生操作流程图 4.2.2数据表 表1 课程信息表 字段名称 数据类型 数据长度 是否主键 默认值 功能描述 cno nvarchar 50 null 是 课程号 cname nvarchar 50 null 否 课程名称 chour nvarchar 50 null 否 课时 credit nvarchar 50 null 否 学分 m ntext 16 null 否 备注 7 表2 教师信息表 字段名称 数据类型 数据长度 是否主键 默认值 功能描述 tno nvarchar 50 null 是 教师号 tname nvarchar 50 null 否 教师姓名 title nvarchar 50 null 否 教师信息 tel nvarchar 50 null 否 电话 m ntext 16 null 否 备注 表3 学生信息表 字段名称 数据类型 数据长度 是否主键 默认值 功能描述 sno nvarchar 50 null 是 学生号 sname nvarchar 50 null 否 学生姓名 sex nvarchar 50 null 否 性别 birth smalldatetime 4 null 否 出生日期 tel nvarchar 50 null 否 电话 address nvarchar 50 null 否 地址 m nvarchar 50 null 否 备注 photo image 16 null 否 照片 表4 选择表 字段名称 数据类型 数据长度 是否主键 默认值 功能描述 id int 4 id 是 递增1 stuno nvarchar 50 学生号 null 否 courseno nvarchar 50 null 课程号 否 teacherno nvarchar 50 null 教师号 否 choicetime nvarchar 50 null 选择时间 否 grade nvarchar 50 null 成绩 否 表5 教师课程表 字段名称 数据类型 数据长度 是否主键 默认值 功能描述 id int 4 id 是 递增1 cno nvarchar 50 课程号 null 否 tno nvarchar 50 null 教师号 否 m ntext 16 null 备注 否 表6 密码表 字段名称 数据类型 数据长度 是否主键 默认值 功能描述 nvarchar 50 null 用户名 否 用户名 nvarchar 50 null 密码 否 密码 nvarchar 50 null 权限 否 权限 8 5 系统实现技术 5.1 序列模块 5.1.1学生功能模块 5.1.1.1登录验证功能 此处调用servlet—ValidateDo.java,此函数是界面同JAVABEAN的接口,所有使用者使用本系统时都要调用此函数进行登录,若验证密码正确,则返回一个BEAN,若不正确,则返回NULL,servlet通过返回值的不同来确定密码是否正确。 5.1.1.2修改密码功能 当学生的点击修改密码的按纽,调用servlet stu_changePasswordDo.java, 此函数首判断原密码是否正确,若正确再调用StudentOperationBean的updateStudent函数,对数据库进行修改生成新页面。否则,则返回原来页面。 5.1.1.3选课功能 当学生单击选课按纽时,页面调用servlet stu_chooseCourseDo.java, 此函数调用StudentOperationBean的lookUp()函数,返回一个AllCourseBean,在页面输出全部课程的内容,并记下了学生的相关信息。如果学生按下了选课,则进行逻辑运算,决定此次选课是否合法,若合法,则修改学生的信息,并重定向到学生选课的页面。 5.1.1.4查看已选课程功能 当学生点击查看已选课程的按纽,调用servlet stu_lookupDo.java ,入面调用StudentOperationBean的lookup()函数,并传入学生的相关信息,重定向到学生的查看课程页面。 5.1.1.5修改已选课程功能 当点击修改以选课程按纽的时候,调用servlet stu_updateDo.java 入面调用StudentOperationBean的lookup()函数和update函数,导出所有的课程,进行逻辑判断,对新选的课程传入到新建的StudentBean中,调用输出新建的[3]?StudentBean中。 5.1.2教务员功能模块 5.1.2.1登录验证功能 当教务员登录时,调用servlet ValidateDo.java,对教务员的输入密码同账号进行验证,如果是正确的密码,就返回一个InstructorBean,否则就返回null,重定向到教务员的主页面。 5.1.2.2修改密码功能 教务员点击修改密码功能时,调servlet Instructor_changePasswordDo.java面创建InstructorOperationBean,调用changePassword()函数。修改数据库的内容。 5.1.2.3录入课程功能 ? 王小茹等:《Visual Basic 6.0实例解析》,北京大学出版社,2010年版,第65页 9 当教务员进入教务员主界面时,调用servlet Instructor_addCourseDo.java, 此函数创建InstructorBean,调用入面的addCourse函数,更新数据库,返回。Servlet重定向到录入主页面。 5.1.2.4修改课程功能 当教务员点击修改课程的时候,调用servlet Instructor_changeCourseDo.java调用InstructorOperationBean的changeCourse函数修改数据库,并返回,重定向页面到教务员的主页面。 5.1.2.5查看报课学生功能 当教务员点击查看学生选课情况时,调用servlet Instuctor_showStudentDo.java调用InstructorOperationBean的getCourseStudent函数修改数据库,并返回AllStudentBean,重定向页面到教务员的主页面,输出此BEAN的内容。 5.1.3老师功能模块 5.1.3.1登录验证功能 当老师登录时,调用servlet ValidateDo.java,对教务员的输入密码同账 ,号进行验证,如果是正确的密码,就返回一个TeacherBean,否则就返回null重定向到老的主页面。 5.1.3.2修改密码功能 teach_changePasswordDo.java 当老师点击修改密码的按纽时,调用servlet 入面调用TeacherOperationBean的changePassword函数,修改数据库,返回一个新建的TeacherOperationBean,重定向到老师主页面。 5.1.3.3查看课程任务功能 当老师点击查看课程任务的按纽时,调用servletTeach_LookUpCourseDo.java 调用TeacherOperationBean的getTeacherCourseInfo,成功则返回一个AllCourseBean,否则就返回NULL,重定向到输出课程页面。 5.1.3.4查看报课学生功能 在老师主页面,如果老师点击查看学生选课情况的按纽,则会调用servlet teach_LookUpStudents.java,入面调用函数TeacherOperationBean的getStudentToTeachInfo函数,正确操作则返回一个AllStudentBean,否则就返回NULL.保存信息,重定向到查看学生选课情况页面。 5.1.4管理员功能模块 5.1.4.1登录验证功能 当管理员登录时,调用servlet ValidateDo.java,对管理员的输入密码同账号进行验证,如果是正确的密码,就返回一个adminBean,否则就返回null,重定向到管理员的主页面。 5.1.4.2修改密码功能 当管理员点击修改密码功能时,调用servlet admin_changePasswordDo.java面创建adminOperationBean,调用changePassword()函数。修改数据库的内容。 5.1.4.3查看角色功能 当管理员点击查看,并选择查看对象时(学生,老师,教务员),调用servlet (对应为checkStudentDO, checkTeacherDO, checkInstructorDO),调用 10 adminOperationBean的(getStudent, getTeacher, getInstructor)函数读取数据库,并返回xxxBean(对应为StudentBean, TeacherBean, InstructorBean),重定向页面到管理员的主页面,输出此BEAN的内容。 5.1.4.4创建角色 当管理员选择增加,并选择增加对象时(学生,老师,教务员),调用servlet (对应为admin_addStudentDO, admin_addTeacherDO, admin_addInstructorDO),调用adminOperationBean的(createStudent, createTeacher, createInstructor)函数修改数据库,并返回true或false,更新allxxxBean(对应为allStudentBean, allTeacherBean, allInstructorBean)并重定向页面到管理员的主页面,输出此BEAN的内容。 5.1.4.5删除角色 当管理员选择删除,并选择删除对象时(学生,老师,教务员),调用servlet (对应为deleteStudentDO, deleteTeacherDO, deleteInstructorDO),调用 adminOperationBean的(deleteStudent, deleteTeacher, deleteInstructor) 函数修改数据库,并返回true或false,修改allxxxBean(对应为 allStudentBean, allTeacherBean, allInstructorBean)并重定向页面到管理 员的主页面,输出此BEAN的内容。 5.1.4.6更新角色信息 当管理员选择修改,并选择修改对象时(学生,老师,教务员),调用servlet (对应为updateStudentDO, updateTeacherDO, updateInstructorDO),调用adminOperationBean的(updateStudent, updateTeacher, updateInstructor) 函数修改数据库,并返回true或false,更新allxxxBean(对应为 allStudentBean, allTeacherBean, allInstructorBean)并重定向页面到管理[4]?员的主页面,输出此BEAN的内容。 5.2 程序流程 5.2.1登陆 系统用户登录使用的是类login_confirm.java和类sqlBean.java,其中 login_confirm.java是专门为登陆验证写的一个类。根据部分的界面设计可知,输入的参数有3个:用户型,登陆名和密码,在登录页面test\login.jsp中分别用单选按钮和两个文本框表示。登陆操作时,把上面三个参数传递到 login_confirm.java中,然后根据用户类型进行登录验证。验证过程代码如下: public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String message=null; String id=null; id=req.getParameter("id"); HttpSession session=req.getSession(true); session.setAttribute("id",String.valueOf(id)); String password=null; password= req.getParameter("password"); ? 张瑞喜:《Visual Basic软件项目开发实例》,电子工业出版社,2008年版,第38页 11 String kind =null; kind=req.getParameter("kind"); String temp =getPassword(req,res,id,kind); if( password.equals(temp)) goo(req,res,kind); else { message="用户名或密码有误~"; doError(req,res,message) ; } } 上面这段代码执行登陆前对登录人员的验证,其中调用的主要函数为 ,res,id,kind),这个函数是取得登录人员的实际密码。然后getPassword(req 将返回的密码和用户输入的密码比较,从而达到验证的目的。getPassword() 函数的具体实现代码如下: public String getPassword(HttpServletRequest req, HttpServletResponse res, String id,String kind) throws ServletException, IOException { sqlBean db= new sqlBean(); String pw=""; String sql="select password from "+kind+" where id='"+id+"'"; // System.out.println("==="+sql); try{ ResultSet rs=db.executeQuery(sql); if(rs.next() ){ pw= rs.getString("password"); } } catch(Exception e) { System.out.print(e.toString());} return pw; } 如果验证失败,则给出“用户名或密码有误~”的提示,如果验证成功,则 通过函数goo(req,res,kind)进行处理。goo()函数的具体实现代码如下: public void goo(HttpServletRequest req, HttpServletResponse res,String kind) throws ServletException,IOException { if(kind.equals("student")) { RequestDispatcher rd = getServletContext().getRequestDispatcher("/student.jsp"); rd.forward(req, res);} if(kind.equals("teacher")){ 12 RequestDispatcher rd = getServletContext().getRequestDispatcher("/teacher.jsp"); rd.forward(req, res);} if(kind.equals("admin")){ RequestDispatcher rd = getServletContext().getRequestDispatcher("/admin.jsp"); rd.forward(req, res);} } 5.2.2管理员管理学生 管理员管理学生时,主要使用的是类studengt.java和类 StufentSvlt.java。其中student.java是专门为学生写的一个类,封装了学生的部分信息核对学生的所有操作。根据界面部分的设计可知,管理学生包括的功能有:取得所有学生的列表、新增学生、修改学生信息和删除学生。根据这些功能的需要,我们在该类中逐一实现了这些功能。接下来我们就介绍代码的具体实现。 private String name;//姓名 private String password;//密码 private String id;//学生编号 private String jiguan;//籍贯 private String sex;//性别 private String dep;//系所 管理员查看学生列表的页面代码文件为test\getStudent.jsp。这个页面主要是执行表student的select查询语句,并将查询的结果保存在resultset类型的结果集变量rs中。 代码如下: public ResultSet getStudent(){ String sql="select * from student"; sqlBean db= new sqlBean(); ResultSet rs = db.executeQuery(sql); return rs; } 这段代码是对学生信息表的全查询操作,在界面上只要循环取出返回的结果集变量rs中的数据即可。显然,开始时没有学生的数据信息,只有通过对新增操作把学生信息添加到数据库才能查找出数据来,而且这也是学生进入学校注册后管理员要做的第一件事。新增学生信息的页面为test\addstudent.jsp;在这个页面中实际上就是把学生的基本信息组合成insert语句,调用执行函数递交到数据库。代码如下: public void addStudent() { String sql="insert into student(name,password,id,sex,department,jiguan) "+ "VALUES('"+name+"','"+password+"','"+id+"','"+sex+"','"+dep+"','"+jig 13 uan+"')"; sqlBean db =new sqlBean(); db.executeInsert(sql); } 5.2.3管理员管理课程 管理员管理课程时,主要使用的是类course.java和类CourseSvlt.java。其中course.java是专门为学生写的一个类,封装了对课程的所有操作。根据界面部分的设计可知,管理学生包括的功能有:取得所有课程的列表、新增课程、修改课程信息和删除课程。根据这些功能的需要,我们在该类中逐一实现了这些功能。接下来我们就介绍代码的具体实现。首先,在类course.java中定义的变量如下; private String id; private String name; private String dep; private String prepare; private int mark; 管理员查看课程列表的页面代码源文件是test\getcourse.jsp.这个页面主要是执行course的select查询语句,并将查询的结果保存在resultset类型的结果集变量rs中。代码如下: public ResultSet getCourse(){ //察看所有课程 String sql="select * from course "; sqlBean db= new sqlBean(); ResultSet rs = db.executeQuery(sql); return rs; } 这段代码是对课程信息的全查询操作,在界面上只要循环取出返回的结果集变量rs中的数据即可。显然,开始时没有课程的数据信息,只有通过新增操作吧课程信息添加到数据库才能查找出数据来。新增课程信息的页面为test\addcourset.jsp;在这个页面中实际上就是把学生的基本信息组合成insert语句,调用执行函数递交到数据库。代码如下: public void addCourse(){ String sql="insert into course(id,name,mark,prepare,dep) "+ "VALUES('"+id+"','"+name+"','"+mark+"','"+prepare+"','"+dep+"') "; sqlBean db = new sqlBean(); db.executeInsert(sql); } 5.2.4管理员管理班级 管理员管理班级时,主要使用的是类classp.java和类classsvlt.java.其 14 中classp.java是专门为班级学的一个类,封装了对班级的所有操作。根据界面部分的设计可知,管理班级包括的功能有:取得所有班级的列表、新增班级、修改班级信息和删除班级。根据这些功能的需要,我们在该类中逐一实现了这些功能。接下来我们就介绍代码的具体实现。首先,在类classp.java中定义的变量如下; private String id; private String cour_id; private String tea_id; private String room_id; private String cour_time; getclass.jsp.这个管理员管理员查看班级列表的页面代码源文件是test\ 查看执行course的select查询语句,并将查询的结果保存在resultset类型的结果集变量rs中。代码如下: Public ResultSet getClasses(){ String sql sql=select classed.id,tea_id,cour_id,room_id,cour_time,” +”course.name as cour_name, teacher.name as tea_name ” +”from classes, course, teacher” +”where classes.cour_id=course.id” +”and classes.tea_id=teacher.id”; sqlBean db=new sqlBean(); ResultSet rs =db.executeQuery(sql); Return rs; } 5.2.5通用模块 本系统采用数据库类进行数据库的统一管理,同时在数据库才坐上进行了封装,方便程序开发时与数据库的交互。接下来我们来详细介绍。 我们知道,在实现某一个功能是,首先要连接数据库。那么,如果我们在每一次进行数据库操作前都需要加载驱动、创建连接,则这些操作可以封装在一个数据库操作类中。这样做有很大的优点,一旦系统一直、数据库参数改变,则不需要重新修改所有的链接代码并重新编译,只要在这个封装类中改变其中的参数[5]即可。我们采用了如下代码的一个类统一管理数据库的连接: package stuman; import java.io.*; import java.sql.*; public class sqlBean{/// public Connection conn=null; public ResultSet rs=null; private String DatabaseDriver="sun.jdbc.odbc.JdbcOdbcDriver"; //DataSource 数据源名称DSN //private String DatabaseConnStr="jdbc:odbc:ClassDB,'limq',123"; private String DatabaseConnStr="jdbc:odbc:point 'test',test"; private String strcon = "jdbc:odbc:point"; 15 //定义方法 /*setXxx用于设置属性值;getXxx用于得到属性值*/ public void setDatabaseDriver(String Driver){ this.DatabaseDriver=Driver; } public String getDatabaseDriver(){ return (this.DatabaseDriver); } public void setDatabaseConnStr(String ConnStr){ this.DatabaseConnStr=ConnStr; } public String getDatabaseConnStr(){ return (this.DatabaseConnStr); } public sqlBean(){/////构造函数 try{ Class.forName(DatabaseDriver); } catch(java.lang.ClassNotFoundException e){ System.err.println("加载驱动器有错误:"+e.getMessage( )); System.out.print("执行插入有错误:"+e.getMessage());//输出到客户端 } } public int executeInsert(String sql){ int num=0; try{ //conn = DriverManager.getConnection("jdbc:odbc:ClassDB","limq","123"); conn = DriverManager.getConnection(strcon,"test","test"); Statement stmt=conn.createStatement( ); num=stmt.executeUpdate(sql); } catch(SQLException ex){ System.err.println("执行插入有错误:"+ex.getMessage() ); System.out.print("执行插入有错误:"+ex.getMessage());//输出到客户端 } CloseDataBase(); return num; } // display data public ResultSet executeQuery(String sql){ rs=null; try{ //conn = 16 DriverManager.getConnection("jdbc:odbc:ClassDB","limq","123"); conn = DriverManager.getConnection(strcon,"test","test"); Statement stmt=conn.createStatement( ); rs=stmt.executeQuery(sql); } catch(SQLException ex){ System.err.println("执行查询有错误:"+ex.getMessage() ); System.out.print("执行查询有错误:"+ex.getMessage()); //输出到客户端 } return rs; } // delete data public int executeDelete(String sql){ int num=0; try{ //conn = DriverManager.getConnection("jdbc:odbc:ClassDB","limq","123"); conn = DriverManager.getConnection(strcon,"test","test"); Statement stmt=conn.createStatement( ); num=stmt.executeUpdate(sql); } catch(SQLException ex){ System.err.println("执行删除有错误:"+ex.getMessage() ); System.out.print("执行删除有错误:"+ex.getMessage()); //输出到客户端 } CloseDataBase(); return num; } ////////////////// public void CloseDataBase(){ try{ conn.close(); } catch(Exception end){ System.err.println("执行关闭Connection对象有错误: "+end.getMessage( ) ); System.out.print("执行执行关闭Connection对象有错误:有错 误:"+end.getMessage()); //输出到客户端 } ?} ? Curtis Smith ,Michael Amundsen :《VISUAL BASIC 6.0数据库编程》,陈海标,译.北京清华大学出版社,2009年版,第56页 17 6 性能测试与分析 本测试 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 为实物系统的测试报告,本次内容针对“用户登陆”、“信息浏览” 、“选课” 、“成绩查询” 、“课程查询”和“密码修改”几个模块进行说明,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合要求(或达到实现系统功能目标)。预期参考人员包括用户、测试人员、开发人员、项目管理者、其他质量管理人员和需要阅读本报告的高层管理人员。 6.1 测试实例(测试集)的研究与选择 该系统分为管理员、教师、学生三种用户,因此该测试项目的内容主要是三种用户实现的功能,主要如下: 管理员:学生信息的添加、删除;教师信息的添加、删除;课程信息的修改、删除。 图4 学生信息管理窗口 18 图5 教师信息管理窗口 图6 课程信息管理窗口 教师:已带课程的查看;其他课程信息的查询、查看。 19 图7 教师选课 学生:查看已选课程;查看所有课程信息;查看能选的课程信息;课程的退选;课程信息的查看。 图8 选课系统 20 6.2 测试环境与测试条件 该系统需要在网络环境下运行,对整个系统的性能要求较高,测试环境如下:IIS5.0,数据库采用稳定性好的SQL Server 2000, 操作系统为WINDOS XP;本系统采用ASP平台,ASP支持VBScript和JavaScript这样的解释性的脚本语言。 6.3 性能分析 经过测试,本系统达到了预期效果,实现了选课、退课、查询、课程信息浏览等等功能。由于本身能力的局限性,编写的代码,即使经过反复检查也难免出错,所以在本阶段力求使用有限的时间找出尽可能多的错误,力求系统尽量正确。在本系统的测试中使用了黑盒法(即不关心程序内部的逻辑结构,而是根据程序的功能来设计是检测)请一位不熟悉本系统的人来进行随意性的操作,打破习惯的操作顺序,从中发现错误,在此阶段系统的大量错误得到了改正。 本系统所涉及的数据库设计的重要步骤加载测试。加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。要设计出一个好的学生在线选课系统数据库,除满足系统所要求的功能外,所有基本表的设计还应尽量符合第三范式。数据库的设计中,如何处理多对多的关系和如何设置主键,是两个有着较大难度、需要重点考虑的问题。 21 7 结束语 时光飞逝,流年似水,短短的设计即将结束,现在回头想想半年的设计,我对自己的这次设计有了更深,更新的体会。 在本次设计的全过程中,我对三年所学的知识有了一个比较系统的认识和理解。涉及了各方面的知识,大大扩展了我的知识面,同时是我学会了如何使用所学的知识去解决一些实际的问题。 在设计中我深知自己掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没有掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。知识不是知道,了解就好,一定要去应用它,发展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。而且知识又不是单一的,它是互相联系的,学科与学科之间都有着内在的联系。计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。在设计阶段,通过对课题的深入分析与研究,迫使我对技术有了一定的了解。在遇到问题时,得到了指导老师与同学的悉心帮助,使我感受到集体的力量是无穷的。 通过这次设计,我学会了和别人配合工作,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力。即将毕业我十分珍惜这次锻炼的机会,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教~当今的社会是竞争的社会,而人才的竞争则是竞争的焦点,毕业设计对于我们即将离校的同学来说,是离校前很好的一次锻炼,使我们各方面的能力都有了很大的提高,为我们踏出校门,走上社会增强了能力与自信~ 计算机技术的高速发展,使我深深地认识到只有不断的加强学习,才能在计算机技术方面不至于被淘汰,今后,我还要加强学习,努力使自己成为一位专业的计算机人员,为我自己所从事的工作服务。 在此,感谢老师们对我的谆谆教导~ 参考文献: 1. 周燕飞:《数据库原理与运用》,机械工业出版社,2009年版; 2. 陈世洪:《SQL SERVER 2000管理开发及应用实例详解》,人民邮电出版社,2009年版; 3. 王小茹:《Visual Basic 6.0实例解析》,北京大学出版社,2010年版; 4. 张瑞喜:《Visual Basic软件项目开发实例》,电子工业出版社,2008年版; 5. Curtis Smith:《VISUAL BASIC 6.0数据库编程》,清华大学出版社,2009年版。 22
本文档为【毕业设计(论文)-VB学生选课系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:189KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-16
浏览量:65