基于遗传算法的C语言程序.docx
- 文档编号:7907275
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:64
- 大小:501.78KB
基于遗传算法的C语言程序.docx
《基于遗传算法的C语言程序.docx》由会员分享,可在线阅读,更多相关《基于遗传算法的C语言程序.docx(64页珍藏版)》请在冰豆网上搜索。
基于遗传算法的C语言程序
JIUJIANGUNIVERSITY
毕业论文
题目基于遗传算法的C语言程序
设计在线考试系统
英文题目BasedonGeneticAlgorithmC
ProgrammingLanguageOnline
ExaminationSystem
院系信息科学与技术学院
专业计算机科学与技术
姓名李志祥
班级学号A******
指导教师袁媛
二O一二年五月
摘要
随着国家科技兴国战略的逐步实施,教育由精英化向大众化推进。
面对为数众多且能力参差不齐的受教育者,传统的考试已经满足不了“因材施教,以人为本”的要求,教育和考核手段的改变以势在必行。
智能化在线考试是信息化发展下教育考试改革的一个必然趋势,它具高效率、更新快,可节省大量的人力物力财力,等特点。
“基于遗传算法的《C语言程序设计》在线考试系统”是基于校园网络的考试模式,与传统的纸张考试相比,具有科学组卷、半自动评分、随时随地参加考试、快速高效实施的优势。
本课题,研究了在线考试的应用背景、开发所采用的架构,比较并确定了.NET开发平台,选择了SQLServer2008存储数据,使用了基于试卷难度和区分度为参数的遗传算法组卷,整体提高了系统的科学性。
它由管理员模块、教师模块和学生模块组成,严格地控制角色的权限,合理地将管理系统、管理考试和参加考试分开,实现了在线考试的用户登陆、信息修改、通知管理、试题库管理、自动组卷、半自动评分、倒计时、数据备份与还原等功能。
经过具体测试分析,系统可以正常运行,具有界面简洁美观,操作简单方便等特点。
关键词:
遗传算法,数据库,考试系统
Abstract
Withthegradualimplementationofthenationalscienceandtechnology,strategy,educationfromelitetomassforward.Educatedunevenfaceofthelargenumberandcapacity,thetraditionalexaminationhasfailedtomeettheindividualized,people-oriented"requirements,educationandassessmenttoolstochangeisimperative.IntelligentonlinetestoftheEducationalTestingreformisaninevitabletrendinthedevelopmentofinformationtechnology,itishighlyefficient,fastupdate,cansavealotofmanpower,materialandfinancialresources,andsoon."Basedonthegeneticalgorithm,"CProgrammingLanguage"onlineexaminationsystem"isthemodeofexaminationbasedonthecampusnetwork,comparedwiththetraditionalpaperexaminations,scientifictestpaper,semi-automaticscoreanytime,anywheretotaketheexam,fastandefficientimplementationofadvantages.
Thistopic,researchthebackgroundoftheonlineexamapplicationdevelopmentframework,comparedandidentified.NETdevelopmentplatform,selecttheSQLServer2008storeddata,usingageneticalgorithmtestpaperbasedonthepapersofdifficultyanddiscriminationparameters,theoverallimprovementofthescientificnatureofthesystem.Strictcontroloftherolepermissionsbytheadministratormodule,teachermoduleandstudentmodule,reasonablyseparatedfromthemanagementsystem,administertheexamandtaketheexam,onlinetestuserlogininformationtomodify,notificationmanagement,testlibrarymanagementautomaticgenerationofsemi-automaticscore,countdown,databackupandrestorefunctions.Afteraspecifictest,thesystemcanoperatenormally,theinterfaceissimpleandbeautiful,easytooperatefeatures.
Keywords:
GeneticAlgorithms,Databases,ExaminationSystem
1绪论
1.1研究背景及意义
随着国家科技兴国战略的逐步实施,教育也由精英化向大众化推进。
面对为数众多且能力参差不齐的受教育者,传统的考试已经满足不了“因材施教,以人为本”的要求,教育和考核手段改变以势在必行。
在计算机网络技术的推动下,产生了一大批计算机辅助教学设施。
如在高校,使用多媒体进行远程教学、电子管理系统管理学生的基本信息等等,都达到了比较好的预期效果[1]。
在学院,依旧沿用传统的人工出卷、纸质考试、人工批阅、分数采集的考试方式,教师有大量繁重的考务工作要做,由此在批阅、分数采集时更容易出现错误;另一方面,学生容易根据出题老师的课堂内容,进行突击复习,采用猜题押题的方式来应付考试。
因此,这种考试不能达到对学生实际学习情况的有效评估,学生不能及时发现自己在学习中存在的问题,教师不能根据考试结果进行合理的教学调整,达不到不断提高教学质量的要求。
相比国内外网络公开课的发展,学院有必要进行网络考试的尝试,为今后的发展提供一个方向。
网络考试具有不受时间地域限制、提高考试工作的效率、避免资源浪费降低教育成本的特点。
同时,针对在外实习毕业生,往返学校参加考试确实不便,如能实现远程在线考试,将是非常不错的选择。
“基于遗传算法的《C语言程序设计》在线考试系统”是关于如何从题库中抽取一定数量的试题来形成一份高质量试卷的组合优化问题的研究,模拟自然界生物进化的方式,动态自适应性地满足试题库不断变化的要求。
相比简单随机搜索算法、回溯试探算法、误差补偿算法、优先权算法,它具有组卷成功率高、速度快、容易控制、算法复杂度低等特点。
它可以作为一个实验平台,推进学院无纸化考试改革的进程。
1.2目前国内外在线考试系统的研究现状
在线考试系统是计算机辅助测试系统的外延,人们已经利用它取得了很丰硕的成果。
在国外,TOEFL、GRE、RHCA、OCM、CCIE等各种在线认证考试均已成功运营;在国内,计算机等级考试、华为的网络认证考试等都如火如荼的展开[2]。
这些网络在线考试系统,具有自动组卷、题库量大、安全可靠、使用方便和界面友好等诸多特点,显示了在线考试系统的强大生命力和广阔的市场空间。
目前,主要有三类考试系统模式:
(1)单客户机模式
用户只需要独立的将考试系统安装到计算机中而无需联网就能模拟出考试环境,这种考试系统类似软件而又没有相应的服务支持,系统维护升级非常困难。
(2)C/S模式
C/S模式,即客户端/服务器结构模式。
前端大部分是个人PC机,完成界面显示、数据输入、向后台发送请求、接受服务器返回的结果等。
后端是服务器,提供数据库的查询和管理。
模式的灵活性差,且所用客户机都要安装客户端软件。
(3)B/S模式
B/S模式,即浏览器/服务器结构模式。
客户端运行浏览器软件,浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给Web服务器,Web服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器以友好的Web页面形式显示出来。
B/S模式在线考试系统不需要客户端安装软件程序,系统易于维护和管理,应用广泛。
1.3开发平台的比较与选取
J2EE(Java2EnterpriseEdition)由Sun公司推出,J2EE平台提供了一个基于组件的方法,用来设计、开发、装配以及部署企业应用程序。
微软公司推出的.NET系统在安装了公共语言运行库(CLR)的任何一个操作平台上都可以运行。
.NET和J2EE非常相似,但这两种技术在实现方法和具体实现技术上有很大的差别。
通过J2EE与.NET支持的语言、标准及平台进行比较,本系统可采用.NET架构下的ASP.NET开发环境。
其具体比较如下。
1.3.1支持的语言和语言标准
.NET支持C++,VB,C#和J#等开发语言,支持下一代互联网内容表示的XML/SOAP标准。
.NET下,开发人员可以很容易的找到适合自己的开发语言。
J2EE只能够支持Java语言,因此对语言的选择比较的狭窄。
1.3.2跨平台
在.NET平台上开发程序真正实现了代码重用,即运行时和具体语言分开,所有的资源管理,内存分配和变量类型均有公共语言运行库处理。
例如,用C#写的类就可以直接用在C/C++程序中。
而在J2EE平台上只能用Java来开发程序,运行是和具体的语言混在一起[3]。
1.4系统环境分析
1.4.1系统开发环境
系统开发环境:
MicrosoftVisualStudio2010集成开发环境;
系统开发语言:
ASP.NET+C#;
系统后台数据库:
SQLServer2008;
开发环境运行平台:
Win7(SP1)。
1.4.2服务器端
操作系统:
Win7(SP1);
Web服务器:
Internet信息服务(IIS)管理器;
数据库服务器:
SQLServer2008;
浏览器:
IE8.0;
客户端浏览器:
IE8.0。
1.4.3开发环境和语言简介
ASP.NET是Microsoft公司推出的Web开发平台,是目前最先进、特征最丰富、功能最强大的Web开发利器[4]。
ASP.NET具有方便灵活、性能优越、生产效率高、安全性高、完整性强等特点,支持多种开发语言,并包含许多先进技术,如ADO、.NET、AJAX无刷新技术、LINQ数据库访问技术母版页、WebServer、主题等等,是目前主流的网络编程环境之一。
系统主要用到的ASP.NET对象如下:
(1)Response对象常用的方法
Redirect:
将网页重新导向另一个地址。
Write:
将数据输出到客户端。
(2)Request对象的方法
MapPath:
为当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径。
SaveAs:
将Http请求保存到硬盘。
(3)Session对象常用方法及其说明
Abando:
此方法结束当前会话,并清除会话中的所有信息。
如果用户随后访问页面,可以为它创建新会话。
C#语言是一种功能强大、面向对象的编程语言,它从C语言和VisualC++派生而来,是Microsoft公司.NET技术核心开发语言,能很好的与ASP.NET配合使用。
IIS是InternetInformationServer的缩写,是微软提供的Internet服务器软件,包括Web、FTP、Mail等服务器。
其主要功能:
安全通信,IIS采用各种安全协议,保证了服务器端、客户端和服务器端与户端信息交换时的安全;权限向导,通过向虚拟目录和文件分配访问策略,可以简化配置Web站点访问的任务;IIS进程限制,能够限制CPU在处理单个Web站点的应用程序时的时间百分比,还可以终止新启动运行失常的进程;应用程序保护,IIS为Web应用程序提供了更大的保护和更强的可靠性。
1.4.4所用FCKeditor插件和倒计时技术简介:
FCKeditor在线编辑器是专门应用在网页上实现“所见所得”的文字编辑器,可以减轻试题库输入时工作量,其主要实现如下功能:
(1)现实文本对齐、缩进和项目符号等格式化;
(2)实现设置文字颜色、样式、字体和类型等格式化;
(3)实现剪切、粘贴、撤销和重做等操作;
(4)实现从word粘贴并自动清理的功能;
(5)支持CSS,可以为文本内容设置样式;
(6)支持插入表情符号,定制个性化内容等。
倒计时采用的是Ajax技术中的JavaScript方式。
会话开始时,浏览器加载一个
图1-1Web工作模式和Ajax工作模式
Ajax引擎,采用JavaScript编写并且通常在一个隐藏的框架中。
这个引擎负责绘制用户界面以及与服务器端的通信。
Ajax技术允许用异步的方式实现用户与程序的交互,就是说不用等待服务器端的通信,帮助用户节省了等待时间[5]。
Ajax模式和传统Web模式工作方式如图1-1所示。
1.5系统开发的目标
本系统将要实现如下目标:
(1)考试界面简洁美观,方便学生和教师操作;
(2)试卷编排合理,按教师设定难度和区分度自动组卷;
(3)考试系统公平公正,考试设有倒计时方便学生掌握考试时间;
(4)考试时间到后系统自动保存并且提交试卷;
(5)系统能够半自动阅卷并且显示考试结果;
(6)考生能够查看成绩、浏览通知、修改密码和进行考试;
(7)教师能够添加、修改、删除考生信息、试题信息,修改自身密码,对组卷参数进行设置并组卷,对考后的试卷进行批阅和删除;
(8)管理员能够添加、修改、删除通知信息、教师和考生的信息,修改自身密码,添加、修改、删除,对系统进行维护。
1.6本章小结
本章通过研究在线考试的意义和现状,得出在线考试系统将在未来的教育中发挥巨大作用,故选择在线考试系统作为开发对象;其次,为将进行的开发选择了开发平台、所需环境和开发工具;最后提出了系统开发的所要完成的功能目标。
2系统分析
在进行可行性研究和项目开发计划以后,如果确认开发一个新的软件系统是必要的而且是可行的,那么就可进入分析阶段。
需求分析是指开发人员要理解用户的要求,进行详细的市场调查,确定系统的新目标[6]。
为了满足用户的需要,回答系统要“做什么”的问题。
2.1系统可行性分析
(1)在系统开发的技术方面,“基于遗传算法的《C语言程序设计》在线系”统属于一个微型系统,使用的前台开发工具是MicrosoftVisualStudio2010,后台数据库使用SQLServer2008,系统主要是通过前台的操作对后台数据库进行相应的操作,如对数据的修改、添加、删除和查询。
开发本系统时,使用MicrosoftVisualStudio2010进行即见即得的前台界面设计,通过SQL语句使用户实现读取后台数据,然后进行相应的数据操作,再将操作结果实时返回到数据库中并保存,以便随时提供查询。
因此系统开发的技术方面是可行的。
(2)经济可行性方面:
系统开发时,需要一台处理器性能为PIII或以上,内存为512MB,硬盘至少10G,大家学习使用的计算机就可满足要求。
同时,本系统不涉及商业应用,只作为学习应用研究,因此可以免费使用系统开发所需软件,例如Windows操作系统,MicrosoftVisualStudio2010和SQLServer2008数据库等。
可以得出,系统开发的经济方面是可行的。
2.2系统需求分析
2.2.1功能需求分析
一个完整的在线考试系统通常包括试题库的建立与管理、参与角色的分类与管理、考试的实施与管理、考后相关信息的发布与管理。
本系统根据参与角色将需求分析具体分类如下。
学生用户需求:
能使用用户名和相应的密码登录系统。
登录后,可实现浏览通知、参加测试和查看成绩的功能。
考生用户名由教师给出,考生仅可以修改自己的密码。
若考生选择浏览通知,则进入通知浏览页面;若考试完成,在规定的时间内可以查询自己的成绩;若考生看完考试规则后选择开始考试,系统自动计时,当考生选择交卷或者考试时间到时,系统自动将考生当前的测试答案提交保存至后台数据库。
试卷提交之后,考生可再次进入系统,但不可再次测试,只可进行无关考试的操作。
教师用户需求:
可修改自身除“教师户名”字段之外的信息,调阅考过的试卷和学生的答卷,查看、增加、删除、修改试题信息、通知信息和考生信息,设置组卷参数,组卷,批阅学生答卷,统计试卷得分,得出数据分布情况,重新计算试卷中出现的各个试题的难度和区分度,赋予其相应值。
管理员用户需求:
能够对学生信息、教师信息、通知信息进行查看、增加、删除和修改操作,添加其他管理员,查看其他管理员户名和管理员姓名,修改自身除“管理员户名”字段之外的信息,还能够进行系统数据的备份与还原。
2.2.2工具软件需求分析
由于选择在.NET平台上进行开发,开发工具就必须全面支持.NET架构。
而VisualStudio2010是微软一款基于.NET架构的集成环境开发工具,具有天然的三层架构,很适合在线考试系统的开发。
由于前台界面开发工具为微软的VisualStudio2010,所以就选择同为微软产品的SQLServer2008数据。
因为两者配合程度非常高,数据的处理上不会存在任何问题。
2.2.3数据库需求分析
针对考试系统的需求,设计如下所示的数据项和数据结构:
管理员信息,包括的数据项有:
管理员姓名、密码等。
教师信息,包括的数据项有:
教师姓名、密码等。
考生信息,包括的数据项有:
用户名、密码、班级等。
试卷信息,包括的数据项有:
单项选择题分值,单项选择题数量;填空题分值,填空题数量;程序设计题分值,程序设计题数量。
选择题信息,包括的数据项有:
单选题编号、题干、正确答案、备选项(A、B、C、D)等。
填空题信息,包括的数据项有:
填空题编号、题干、正确答案等。
程序设计题信息,包括的数据项有:
填空题编号、题干、参考答案等。
成绩信息,包括的数据项有:
考生学号、成绩、考试时间等。
通知信息,包括的数据项有:
通知内容、通知时间、通知发布者等。
本系统应该建立一个稳定的后台数据库系统,通过该数据库管理整个考试系统所需的信息(用户信息、试题信息、试卷信息、考试信息等),还应该包括学生、教师和管理员的账号、考试过程的控制机制。
2.3系统功能分析
本系统的用户可分为管理员、教师和考生,其功能应满足如下要求:
(1)考试界面简洁美观,方便学生和教师操作;
(2)试卷编排合理,按教师设定难度和区分度自动组卷;
(3)考试系统公平公正,考试设有倒计时方便学生掌握考试时间;
(4)考试时间到后系统自动保存并且提交试卷;
(5)系统能够半自动阅卷并且显示考试结果;
(6)考生能够查看成绩、浏览通知、修改密码和进行考试;
(7)教师能够添加、修改、删除考生、试题、通知的信息,修改自身密码,设置组卷参数,并组卷,批阅和删除考后的试卷;
(8)管理员能够添加、修改、删除教师、考生、通知的信息,添加其他管理员,查看其他管理员户名和管理员姓名,维护自身信息和系统信息。
从上面的结论得出系统的具体模块划分如下:
学生模块:
(1)系统管理:
修改密码,退出系统;
(2)考试模块:
进行考试,计时功能,交卷功能;
(3)成绩查询:
只可查询自己的成绩;
(4)通知浏览:
浏览通知。
教师模块:
(1)系统管理:
修改密码,退出系统;
(2)试题管理:
对题目的增加、修改和删除;
(3)自动评分:
对提交的试卷客观题部分进行自动评分;
(4)数据统计:
统计考生分数,重新计算各个试题的难度和区分度;
(5)试卷管理:
批阅考卷主观题,考卷参数设置并自动组卷;
(6)学生信息管理:
浏览学生信息,并能进行增删改操作;
(7)通知浏览模块:
教师对通知进行增删改操作。
管理员模块:
(1)系统管理:
修改密码,退出系统;
(2)系统维护:
系统备份、还原;
(3)通知管理:
添加、修改、删除通知信息;
(4)用户管理:
添加、修改、删除教师、学生的相关信息,查看其它管理员的管理员户名、管理员姓名。
2.4本章小结
本章通过系统可行性分析、系统需求分析和系统功能分析,确定了所开发系统需要的工具软件、系统的结构、各模块基本功能,对系统有更进一步的认识。
3遗传算法组卷设计
3.1遗传算法
遗传算法是一种通过模拟自然进化过程的全局最优解搜索方法,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,是用来解决在多目标约束条件下求最优解问题的算法,具有广泛的应用。
3.1.1遗传算法基本描述
遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初是由美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著“AdaptationinNaturalandArtificialSystems"GA这个名称才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法[7]。
遗传算法抽象自生物体进化过程,通过全面模拟自然选择和遗传,形成一种“生成+检验”特征的搜索算法。
遗传算法以编码空间代替问题空间,以适应度函数为评价依据,以编码群体为进化基础,以对群体中个体位串的遗传操作实现选择和遗传机制,建立起一个迭代过程,直到得到满足条件的结果,遗传算法同时具有内在的并行性、收敛速度快和全局寻优等的特点,父代与子代之间维持由潜在解组成的种群来实现多样性和全局搜索。
遗传算法的内在并行性和群体搜索策略为多目标优化问题提供了较好的解决方案,因此适宜于处理类似自动组卷这种多目标优化的问题。
3.1.2遗传算法基本概念
由于遗传算法是由生物遗传学和计算机科学相互结合渗透而成的一种新的计算方法,因此遗传算法中经常使用一些生物遗传学中的基本概念。
了解这些基本概念对于讨论和应用遗传算法是十分必要的。
(1)染色体((Chromosome):
在使用遗传算法时,需要把问题解编码成具有固定结构的符号串,它的每一位代表一个基因。
一个染色体就代表问题的一个解,每个染色体称为一个个体。
(2)种群((Population):
每一代所产生的染色体总数。
一个种群包含了该问题在这一代的一些解的集合。
(3)适应度((Fitness):
每个个体对应一个具体问题的解,每个解对应的函数值即为适应函数,它是衡量染色体对环境适应度的指标,也是反映实际问题的目标函数。
(4)基因座:
染色体中基因的位置称为基因座,而基因所取的值叫做等位基
(5)模式定理:
在遗传算子选择、杂交、变异的作用下,低阶、定义长
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 遗传 算法 语言 程序