软件工程课程设计范例.docx

上传人:b****5 文档编号:11769698 上传时间:2023-04-01 格式:DOCX 页数:49 大小:398.63KB
下载 相关 举报
软件工程课程设计范例.docx_第1页
第1页 / 共49页
软件工程课程设计范例.docx_第2页
第2页 / 共49页
软件工程课程设计范例.docx_第3页
第3页 / 共49页
软件工程课程设计范例.docx_第4页
第4页 / 共49页
软件工程课程设计范例.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

软件工程课程设计范例.docx

《软件工程课程设计范例.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计范例.docx(49页珍藏版)》请在冰豆网上搜索。

软件工程课程设计范例.docx

软件工程课程设计范例

 

 

《软件工程》课程设计

题目C语言在线考试系统的设计与实现

学生姓名

学号

院系计算机与软件学院

专业

指导教师文学志

 

二O年月日

C语言在线考试系统的设计与实现

张三

南京信息工程大学计算机与软件学院,南京210044

摘要:

随着计算机技术、Internet技术的迅猛发展,在线考试模式以其跨地域性、随时性和用户广泛性的特点,成为推动教育现代化的重要手段,已经成为对学生练习、考试、评价和分析教学效果的重要工具。

本文研究利用三层浏览器(B/S/S)体系结构,即Web浏览器/Web服务器/数据库服务器结构来实现C语言科目的在线考试系统。

该系统实现了试题库的管理、自动组卷和答卷的自动评分等功能,满足了广大教师和考生的需求。

该系统的实现以Java语言及其相关技术为基础,构建于MySQL数据库系统以及TomcatWeb服务器之上。

该系统的实现表明,在线考试系统能够提高试题库管理、考试组织和阅卷的效率,并同时保证考试的公正和公平。

因此,其他科目的考试也可以开发相应的在线考试系统。

关键词:

在线考试系统;B/S/S体系结构;Java;MySQL;自动组卷

1.绪论

本章对C语言在线考试系统进行了概要性的介绍,并在经济、技术、社会三个方面对该系统开发的可行性进行了分析,以说明该系统的开发是可行的,可以立即开始研制工作。

1.1.C语言在线考试系统概述

随着计算机技术、Internet技术的迅猛发展,绝大部分高校都已接入互联网并建成了校园网,硬件设施也日趋完善。

以互联网为基础的在线考试模式,以其跨地域性、随时性和用户广泛性的特点,成为推动教育现代化的重要手段,已经成为对学生练习、考试、评价和分析教学效果的重要工具[1]。

C语言在线考试系统利用开放、动态的系统架构,将传统的考试模式与先进的网络应用相结合,实现了C语言科目考试的无纸化、自动化、网络化。

第一,本系统能够帮助教师方便地实现试题的管理,包括试题的录入、查询、修改、删除。

第二,本系统实现了自动组卷功能,能够根据出题要求自动生成C语言考试试卷,供考生在线作答。

第三,考生在使用本系统进行在线考试时,系统将提供倒计时功能,使考生能够随时了解考试的剩余时间。

第四,本系统在考试时间截止之后将自动完成交卷,以保证考试严肃公正地进行。

第五,在答卷提交之后,本系统将对答卷进行自动评分并保存结果,以便考生查询考试成绩。

1.2.C语言在线考试系统的可行性分析

项目的可行性一般从三个方面进行分析,即经济可行性、技术可行性、社会可行性。

经济可行性分析即进行开发成本的估算以及效益的评估,确定开发的项目是否值得投资开发;技术可行性分析是指对要开发的项目的功能、性能和限制条件进行分析,确定现有的资源条件下,技术风险有多大,项目是否能实现;社会可行性分析是指研究要开发的项目是否存在侵犯、妨碍等责任问题,要开发的项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行[2]。

本节从这三个方面对C语言在线考试系统的可行性进行分析,以便后续工作的展开。

1.2.1.经济可行性

C语言在线考试系统的开发成本包括开发该系统的人力的费用以及用于购买部署该系统并充当服务器的计算机的费用。

开发该系统估计需要四个开发人员一周的工作量,如果每人每月的工资为2000元,则开发该系统的人力费用约为2000元。

为了部署该系统,需要购买一台带有较大容量磁盘的高性能计算机,费用估计在1万元。

因此,开发该系统的成本总计为万元。

在未使用该系统之前,为了进行C语言考试,必须支出相应的人力费用进行出卷、组织考试和批阅试卷,这部分费用约为每年4000元。

此外,由于传统考试模式需要用纸,每年需要约3500元的纸张费用。

因此,若维护系统每年需花费500元,使用C语言在线考试系统每年可节省约万元。

根据以上的估计开发费用和节省的费用,在假设年利率i等于12%的前提下,可以计算得到投资的回收期为年(如表1-1所示),即在使用C语言在线考试系统年以后用户可以收回全部投资。

因此,开发C语言在线考试系统在经济上是可行的。

表1-1C语言在线考试系统的成本/效益分析

购买设备

万元

人力(四人、一周、2000元/月)

万元

开发成本总计

万元

系统的维护费

500元/年

每年节省人力费用

万元

每年节省纸的费用

万元

每年节省的总费用

万元

节省(元)

(1+i)的n次方

现在值(元)

累计的现在值(元)

1

2

3

第三年后纯收入

投资回收期

1.2.2.技术可行性

(1)对所建议的系统的简要描述

C语言在线考试系统利用数据库对试题信息进行高效、便捷的管理,实现试题的录入、查询、修改和删除。

同时,系统提供了自动组卷功能、倒计时功能、试卷提交功能、试卷评分功能,实现了考试的无纸化、自动化、网络化,并体现了考试的公正、严肃。

(2)与现有系统比较的优越性

C语言在线考试系统利用数据库对试题进行管理,使得对大量试题的管理高效、方便地进行,而传统考试模式下的试题管理低效耗时,在试题达到一定数量之后,管理起来十分不便,需要耗费大量的时间和精力。

由于试题存放于计算机硬盘中,并采用在线考试这种无纸化的考试模式,与传统考试模式相比,不仅节省了试题的存放空间,更是节约了大量的纸张(试卷和答题册),更加环保、节约。

同时,该系统的自动组卷和评分功能使得出卷和评分过程自动化,与传统的手工出卷评分相比,节省了大量的劳力,使得广大教师可以从繁重的出卷、评分工作中解脱出来,从而把更多的时间和精力用于教学和科研。

此外,系统的试卷提交功能在考试时间截止时,自动完成试卷的提交,阻止考生继续答题,使得考试的公正性和严肃性较传统考试更好得体现。

最后,该系统提供的倒计时功能,使得考生在考试过程中更合理地安排时间,有助于考生取得好成绩。

(3)采用建议系统可能带来的影响

采用C语言在线考试系统之后,试题的管理效率,组织考试和评卷的效率将大为提高,有利于在短时间内实现对考生的C语言学习情况的检验。

同时,本系统将节约大量的纸资源,节省组织考试的开支。

教师将从繁重的出题、组织监督考试、评分的工作中解脱出来,把更多的时间和精力用于教学和科研。

采用C语言在线考试系统之后,要求教师适应新型的试题管理模式,需要教师掌握该系统的使用。

对考生而言,要求他们适应新型考试模式,同样,也需要他们熟悉系统的使用。

(4)所建议技术可行性分析

C语言在线考试系统是一个基于B/S/S体系结构的网络应用系统,开发这类系统的技术已经比较成熟,比如JSP技术、ASP技术等等。

同时,考虑到开发人员对这类系统以及相关的技术比较熟悉且开发期较为充裕,预计可以再规定期限内完成开发。

1.2.3.社会可行性

(1)法律方面的可行性

C语言在线考试系统的研制和开发的过程,将在严格遵守国家各项法律法规的基础上进行,将不会侵犯他人、集体和国家的利益。

同时,在系统的开发过程中,将严格遵守与客户签订的合同的各项条款。

(2)使用方面的可行性

C语言在线考试系统的研制和开发将充分考虑到用户的业务往来、管理流程和人员素质等,从而能满足使用要求。

2.相关技术介绍

C语言在线考试系统的开发采用了三层浏览器(B/S/S)体系结构,即Web浏览器/Web服务器/数据库服务器结构[7]。

本文中采用了Java语言及相关技术JSP、Struts和Hibernate实现该系统,并以Tomcat作为Web服务器,以MySQL作为数据库服务器。

本章是对这些技术和服务器的介绍。

2.1.B/S/S体系结构

将Web技术的B/S结构与数据库系统的三层C/S/S体系结构结合,产生了Web浏览器/Web服务器/数据库服务器结构,如图2-1所示。

B/S/S体系结构是指在TCP/IP的支持下,以HTTP为传输协议,客户通过浏览器访问Web服务器和与Web服务器相连的后台数据库的体系结构,它由Web浏览器、Web服务器、中间件和数据库服务器组成。

在B/S/S结构中,各组成部分之间通过Internet(或Intranet)相连,遵守HTTP协议,浏览器通过发送请求和服务器端建立连接,从而实现以整个Internet为背景的数据存储和访问。

Web浏览器

Web服务器

中间件

(应用程序)

数据库服务器

数据库

Http请求

Html页面

SQL请求

结果

图2-1Web数据库系统的三层B/S/S体系结构

B/S/S结构中的表示层有Web浏览器,它向网络上的Web服务器提出服务请求,接收Web服务器返回的页面并显示给用户;事务逻辑层有Web服务器,它接受用户的请求并判断请求的类型。

如果请求的是一般静态页面,就直接在Web服务器的文件系统中找到页面并返回;否则执行相应的应用程序,比如对数据库进行更新、查询等,随后获得数据库操作的结果,将结果动态生成页面,返回给表示层的客户端;数据层则有数据库服务器,实现数据的存储、维护、访问和更新,它接受Web服务器的数据操作请求,并把运行结果返回给Web服务器。

B/S/S结构具有以下特点:

第一,基于TCP/IP开放式网络标准协议,完全实现了跨平台访问计算机及其网络上的各种资源,具有很强的系统独立性和平台无关性。

第二,软件维护开销大大降低,只需开发维护服务器应用程序,无需开发客户端程序,规范和统一了客户端程序的标准——Web浏览器,从而统一了用户界面。

第三,充分发挥了数据库管理系统(DBMS)高效的数据存储和数据管理能力,实现了更大程度和更大范围的数据库资源共享。

B/S/S结构代表了当前数据库应用软件技术发展的趋势,是目前开发Web数据库应用系统普遍采用的数据库系统体系结构。

它的优点使它成为构建高效安全Web数据库应用系统首选的体系结构[7]。

2.2.JavaServerPages

JavaServerPages简称JSP[12],是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

与前一代Internet/Intranet开发语言(ASP、PHP)相比,JSP在以下几个方面有了重大突破:

第一,通过JSP的扩展标签库和JavaBeans功能,网站逻辑和网站界面可以完美地分离。

第二,使用EnterpriseJavaBeans,可以轻松地在JSP开发的Web中实现事务、安全、会话等等企业级应用所需要的功能。

第三,JDBC提供了不同的数据库产品无关的数据库连接方式,更重要的是,数据库连接池提供了一种比普通的数据库连接方式效率高得多的连接方式。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。

程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。

所有程序操作都是在服务器端进行,网络上传送给客户端仅是得到的结果,对客户浏览器的要求最低,可以实现无plugin,无ActiveX,无JavaApplet,甚至无Frame。

JSP具有以下的优点[6]:

第一,将内容的生成和显示进行分离。

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。

使用JSP标识或者小脚本来生成页面上的动态内容。

生成内容的逻辑被封装标识在JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。

Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响动态内容的生成。

在服务器端,JSP引擎JSP标识和小脚本,生成所请求的动态内容并且将结果以HTML(或XML)页面的形式发送回浏览器。

这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

第二,可重用的组件。

绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EJB组件)来执行应用程序所要求的更为复杂的处理。

开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。

基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

第三,用标识简化页面开发。

Web页面开发人员不会都是熟悉脚本语言的编程人员。

JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。

标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

2.3.Struts

Struts是Apache软件基金组织Jakarta项目的一个子项目,Struts的前身是CraigR.McClanahan编写的JSPModel2架构。

Struts在英文中是"支架、支撑"的意思,这表明了Struts在Web应用开发中的巨大作用,采用Struts可以更好地遵循MVC模式。

此外,Struts提供了一套完备的规范,以及基础类库,可以充分利用JSP/Servlet的优点,减轻程序员的工作量,具有很强的可扩展性。

Struts的作者Craig参与了JSP规范制定以及Tomcat4的开发,同时还领导制定了J2EE平台的Web层架构的规范。

受此影响,Struts框架一经推出,立即引起了Java开发者的广泛兴趣,并在全世界推广开来,最终成为世界上应用最广泛的MVC框架[9]。

2.4.Hibernate

当前的软件开发语言已经全面转向面向对象,而数据库系统仍停留在关系数据库阶段。

面对复杂的企业环境,同时使用面向对象语言和关系数据库是相当麻烦的,不但中间的过渡难以理解,而且其开发周期也相当长。

Hibernate是一个面向Java环境的对象/关系数据库映射工具。

对象/关系数据库映射(Object/RelationalMapping)表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去[10]。

Hibernate的目标是:

释放开发者通常的数据持久化相关的编程任务的95%。

对于以数据为中心的程序而言,往往在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案。

但对于那些基于Java的中间件应用中,设计采用面向对象的业务模型和商业逻辑时,Hibernate是最有用的。

不管怎样,Hibernate能消除那些针对特定数据库厂商的SQL代码,并且把结果集由表格式的形式转换成值对象的形式。

Hibernate不仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度地减少在开发时人工使用SQL和JDBC处理数据的时间。

2.5.MySQL

MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQLAB公司开发、发布并支持的。

MySQLAB是由多名MySQL开发人创办的一家商业公司。

它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。

MySQL是一种关联数据库管理系统。

关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。

这样就增加了速度并提高了灵活性。

MySQL的SQL指得是结构化查询语言。

SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISOSQL标准定义的。

SQL标准自1986年以来不断演化发展,有数种版本。

MySQL软件是一种开放源码软件。

开放源码意味着任何人都能使用和改变软件。

任何人都能从Internet下载MySQL软件,而无需支付任何费用。

如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。

MySQL数据库服务器具有快速、可靠和易于使用的特点。

MySQL服务器还有一套实用的特性集合,这些特性是通过与用户的密切合作而开发的。

在MySQL的基准测试主页上,给出了MySQL服务器和其他数据库管理器。

MySQL服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以

来,它已成功用于众多要求很高的生产环境。

尽管MySQL始终在不断发展,但目前MySQL服务器已能提供丰富和有用的功能。

它具有良好的连通性、速度和安全性,这使得MySQL十分适合于访问Internet上的数据库。

MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中。

MySQL数据库软件是一种客户端/服务器系统,由支持不同后端的1个多线程SQL服务器,数种不同的客户端程序和库,众多管理工具和广泛的应用编程接口API组成。

还能以嵌入式多线程库的形式提供MySQL服务器,你可以将其链接到你的应用程序,从而获得更小、更快、和更易管理的产品[4]。

2.6.TomcatWeb服务器

Tomcat服务器是一个免费的开放源代码的Web应用服务器。

它是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成[11]。

由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet和JSP规范。

因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

  Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。

实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。

这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。

另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

不过,Tomcat处理静态HTML的能力不如Apache服务器。

3.系统的需求分析

在系统的可行性分析完成以后,并确定系统可以立即投入设计和研制时,下一步要做的工作便是系统的需求分析,即通过各种途径(访谈、调查问卷、实地考察等)了解并明确用户对所要开发的系统各方面的需求,包括功能上的要求、性能上的要求、操作方便性的要求等等。

本章对C语言在线考试系统进行了需求分析,主要是根据用户对系统功能方面的要求,明确了系统所要实现的各个功能的相关细节,并在此基础上对系统进行了模块划分,为后续的系统的设计打下基础。

3.1.系统的功能需求

根据用户对系统功能方面的实际要求,C语言在线考试系统的主要功能包括:

用户登录验证功能、用户管理功能、试题管理功能(试题的录入、查询、修改、删除)、考试管理功能、自动组卷功能、倒计时功能、试卷提交功能、故障延时功能和答卷自动评分功能。

本节详细地说明了用户对这些功能的需求。

(1)用户登录验证功能

用户在登录C语言在线考试系统时必须进行身份验证,只有通过了身份验证,才能进入并使用该系统。

系统的用户应分成三大类,即管理员、教师和考生。

用户在登录时,系统应提供用户类别的选择,以区别不同用户的登录;用户在选择好登录身份之后,系统应该要求用户提供用户名和密码,以进行登录验证。

系统应该为管理员(有若干位)预置登录的用户名和密码,并允许管理员修改用户名和密码。

在系统提供给教师和考生使用前,管理员负责向系统中提前录入教师和考生的一些相关信息,比如教师的编号、考生的学号以及各自的身份证号等等,这些信息可用来作为这两类用户首次登录时的验证信息。

用户首次登录之后,系统应该要求用户修改登录信息,特别是登录密码,以防止他人冒用。

此外,为了防止恶意软件进行系统攻击,每个用户登录之前都要以图片的形式产生一组随机验证码[8],用户必须输入正确的验证码才能进入系统。

(2)用户管理功能

C语言在线考试系统应该对用户进行有效的管理。

系统的用户分成了三类,即管理员、教师和考生。

管理员具有系统操作的最高权限,负责添加教师和考生用户,并查看其用户信息(不包括密码)。

管理员的初始用户名和密码是内置的,管理员可以修改自己的用户名和密码,并添加和修改其他相关信息。

对于教师用户来说,用户信息应至少包括登录的用户名和密码,初始时可以选择教师的教师编号作为用户名,身份证号作为密码,之后可以修改。

教师可以添加和修改自身相关的其他信息,并查看考试结果(包括相关分析)。

对于考生来说,用户信息应至少包括用户名、密码,初始时,用户名为考生的学号,密码为考生的身份证号,之后可以修改。

考生可以添加和修改自身的相关其他信息,并查看考试成绩。

(3)试题管理功能

C语言在线考试系统需要实现试题的管理功能,即组建一个试题库,以便对大量的C语言试题进行高效、便捷的管理。

该功能包括:

试题的录入,即使得教师能够方便地将C语言试题及其参考答案录入系统的试题库。

试题录入子功能应该根据教师录入的试题的类型(选择题、填空题、程序设计题)对试题进行分类管理;试题的查询,即使得教师能够根据试题的某些关键字方便地查询试题,以便检查和修改试题。

试题的查询子功能同样应该对不同的题型进行分类查询,以提高查询的效率;试题的修改,即使教师能够对已经录入系统的试题及其参考答案进行不限次数的修改,以便提高试题本身或参考答案的准确性;试题的删除,即使教师能够删除已经录入系统的试题(连同参考答案),以便更新试题库。

(4)考试管理功能

考试管理功能,即系统提供管理员对考试信息以及考试公告的管理功能。

具体来说,系统管理员用户可以安排考试、编辑考试信息、利用自动组卷功能生成试卷投入考试使用;系统管理员可以发布、编辑考试公告。

而教师和考生用户则只能浏览考试公告。

(5)自动组卷功能

自动组卷功能,即系统能够自动生成C语言试卷,供考生作答。

自动组卷功能应该根据管理员的要求组卷,即管理员可以设置试卷所包括的题型,各类题型的分值和题数,各类型的试题在试卷上的先后顺序以及考试的时间限制。

自动组卷功能应该按照管理员设置的出卷要求按照某种算法从试题库中选择相应的试题,保证每个试题都有机会出现在试卷上,并且每次组卷试卷相同的概率尽可能小。

(6)倒计时功能

倒计时功能,即在考生进行测试的界面上提供倒计时,以便考生随时了解考试的剩余时间。

倒计时功能应该根据教师设置的考试的时间限制准确地进行,保证考试的公平性。

倒计时功能应该在考试结束前10分钟时给出相应的提示,提醒考生抓紧时间作答。

此外,该功能出现在界面上的位置应该合理,显示的大小适中,不至于分散考生的注意力,产生负面效果。

(7)试卷提交功能

试卷提交功能包括两种情况,一种情况是考生在考试时间截止之前就已经完成答题,应允许考生提交试卷;另一种情况是考

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1