考生答题程序的设计

				课程设计题目:考生答题程序的设计
单位名怀化学院计算机科学与工程学院
课程名称高级语言程序设计
组号归属1902班 第11组
团队名称秃鸡组
口 号宁为代码累弯腰,不为bug点提交

一、课程设计题目基本要求介绍
本次我组想做一个便于考生进制转换方面答题的程序,想让考生在做题的时候锻炼自己这方面知识掌握能力并能对自己的能力进行系统的检验。

具体需求分析:

功能模块1:登录
(1)用户输入10位考生号+姓名(格式应该为19001302XX+姓名),程序判断用户输入格式内容的正误(若正确就返回0,若错误就返回1并提醒用户输入正确的考生号+姓名重新登录);
(2)用户登录成功后将用户基本信息(如账号,IP地址等)发送给服务器,并生成指定的txt文件;
(3)登录成功后系统将窗口标题修改为账号名;
功能模块2:测验
(1)用户登录成功后倒计时五秒开始答题,每1000ms倒计一次,整个答题过程限时120秒,题目从100道题库中随机抽选(每次抽选一道题)并保持每道题目不重复且题目难度保证60%难题40%容易题的;
(2)用户输入答案后系统自动对用户答案进行消除空格、字母大小写的转换;
(3)每答完一道题就会显示已答多少题,答对多少题,正确率为多少,已耗时多少秒;
(4)每次答完一道题之后若正确就会提示“恭喜你的答案正确,再接再厉哦!”若错误就会提示“很遗憾你的答案错误,不要失望,继续加油哦!”并在下面提示用户正确答案为…
(5)答题之后相应的提示中字体会有颜色,正确为绿色,错误即为红色,最后的答题分析为红色,保证易于用户查看,使整个测验过程醒目;
(6)整个答题过程时间结束便自动终止答题或抽选的40道题全部答完后自动终止答题;
(7)答题结束会有提醒若时间已到则提示为“抱歉您的答题时间已到,”若题库全部答完则提示“您的答题已结束!”
(8)用户答题结束后最后显示“您已答多少题,共答对多少题,正确率为多少,耗时多少秒”,结束后用户按任意键无效。

功能模块3:上传客户端的相关收尾工作
(1)系统对用户答题情况进行等级判定并记录,同时发送给服务器(等级分为S A B C四个等级),等级评判标准为count=正确数/正确率*100%,若count<60%则为C(提示字体为红色),60%<count<85%则为B(提示字体为蓝色),85%<=count<=95%则为A(提示字体为绿色),95%<=count则为S(提示字体为黄色);
(2)等级评定1、“S—您的答题真的棒极了,请继续保持!”2、“A—加油,请继续努力!”3、“B—您的答题还差点火候哦,你的成绩还有待提高哦!”4、“C—和其他同学的差距还很大哦,你还要加油哦!!”
(3)用户答题结束后系统将考生信息自动发送到服务端,服务端中生成特定的文件保存好用户详细答题情况;

二、流程图
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

三、项目目前的进展
*主要写已实现的功能,功能完成的具体程度。
一、(1)考生登录个人信息的判定是否合法(10位考生学号的检验),登录成功后自动修改窗口名称为考生号加姓名;(完成度100%)
在题目出现前给5秒的时间给考生准备,倒计时5秒考试答题(每秒以1000ms计时),总答题时间限时120秒;(完成度100%)
(3)100道题库中的随机答题系统,保证题目的不重复,使答题的题目保证为60%的难题,40%的容易题;(完成度100%)
(4)每道题目用户答题前后会有相应的提示信息(包括颜色,正误的提示时间方面的提示等等);(完成度100%)
(5)用户答题以题库全部答完或时间耗尽为结束,此后用户任意键无效;(6)用户答题结束后对用户答题情况进行等级评定(等级具体评定要求详见具体需求分析);(完成度100%)
3.核心功能讲解
(1)测试开始倒计时功能
* 间隔变成1000毫秒

#include<stdio.h>
int main()
{
  int i=5;
			while(i>0)
			{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
				printf("倒计时%d秒后开始答题\n",i);
				Sleep(1000);
				i--; 
				}
				return 0;
			}
 效果图

在这里插入图片描述

(2)登录成功后自动修改窗口名称为考生号加姓名

核心代码
#include<stdio.h>
int main()
{
int s[100],s1[100],s2[100];
printf("请输入你的学号+姓名(要求10位学号+姓名的方式登录)");
	gets(s);
	strcpy(s2,s);
	//strcat(s2,s1)
	file = fopen(s1,"w+");
	if(file == NULL)
	{
		printf("文件打开失败");
	}
	if(s[0]=='1'&&s[1]>'5'&&s[1]<'10'&&s[2]=='0'&&s[3]=='0')
	{
		SetConsoleTitle(s);
		fprintf(file,"%s\n",strcat(s2,s1));	
	}
	return 0;
	}

效果图在这里插入图片描述
(3)用户答题结束后对用户答题情况进行等级评定
代码思想:将用户答题的情况进行判定,然后给出一个等级。
核心代码:

#include<stdio.h>
int main()
{
char 'A','B','C','D','E';
if(correctrate<0.60)
	{
		dengji='C';
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);
		printf("你还要加油哦!");
	}	
		if(correctrate>=0.65)
	{
		dengji='B';
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		printf("你的成绩还有待提高哦!");
	}
		if(correctrate>=0.85)
	{
		dengji='A';
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);
		printf("加油,请继续努力!");
	}
	if(correctrate>=0.95)
	{
		dengji='S';
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		printf("请继续保持!");
	}	
	return 0;
	}
效果图:

在这里插入图片描述

四、项目未完成的功能
(1)在用户答题过程中系统随时记录用户详细答题情况;(完成度33%)
(2)将用户详细答题情况发送至服务端。(完成度20%)

今后打算实现的功能哪些(觉得现阶段自己无法完成的功能)
目前本组正在针对上面两个问题进行研究,今后我们打算在系统上开发更多有意思的,具有创新意识的程序,而不再是平时枯燥的做题程序,比如在程序设计上增加闯关功能,并进行各客户端之间的联机PK系统,决胜出谁是真正的答题王,还可以对用户平时答题设置一个段位排行让用户积极练习答题环节,在趣味的游戏竞争中不断提升自己的实力。
五、相关文档地址
1.【PPT链接,点击直接下载PPT】关于技术层面的核心、特色功能的报告PPT(要封面,有主讲人,有目录,每个功能先讲思想,后讲少许核心代码)
2.【视频链接,点击直接下载视频】项目演示视频(视频需要附讲、有声音,讲到一个点的时候提示观众是什么功能了)

六、每位成员的过程体会
组长:徐栋梁(过程体会:在这次程序的设计中我更加明白良好的团队关系的重要性,一个小组明确分工的必要性,对程序设计知识掌握的必要性,对工作共同实行的积极性,对工作要求的目的性,对程序设计完成的必胜性)

组员1 :邓威威(过程体会:通过这次的程序设计,使我懂得了一个团队的重要性,找到了作为一个团队的荣誉感,每次做事也会想到我这是在一个团队的事情,必须要为团队着想。也明白了只有团队合作才能使自己变的更加强大。以后我会更加珍惜这样的机会来磨练自己。)

组员2 :邹石闽(过程体会:在此次程序设计过程中,我自认为自己做的不够好,由于自己对知识的掌握程度还不够好、基础一般,导致在分配任务的时候,好多功能我都做不了,都是由我的伙伴们互帮互助一起完成的;由此我深深的感受到了,学好程序设计对我们计算机专业的学生来说是多么的重要,现在才只是做一个小小的答题程序,就做的这么的费劲,想到以后毕业了真正在企业里去工作了,那可比现在的这种课堂作业难多了,代码啥的也不可能就是几百行这么简单了,估计动辄就是几万行的代码吧,通过这次程序设计,我更加坚信了,我一定要把自己的专业知识学好,学精,不能让自己失望!)
七、组长想说的话
自我批评篇:
在这次的程序设计中我并没有发挥一个组长积极的带头作用,没有很明确的分工,没有具体的时间观念,没有做到把每一个环节都设置标准性。
自夸篇:
能积极的调动组员的积极性,对组员的需求有明确的认识,能找到组员的正确定位,遇到困难的时候能以平和的心态去对待,并总能想方设法去解决问题而不是避而远之。
总结:
通过这次程序的设计我不仅学到了很多技术方面的知识,而且思想上也有很清楚的认识,我深深的体会到拥有一门过硬本领的重要性,对知识的消化和熟练是多么的重要,虽然这只是一次简单的模拟,但我却能想到当我们大学毕业后如果让我们去完成某一项工作的时候如果我们自身本领不过硬那么就会遭到残酷的淘汰。在此次程序的设计中我也非常感谢我的组员,每一项任务的完成也好讨论也好都很配合我并且都很积极的做出自己的贡献,对于我的任务的安排也很认真的去完成,并且总能在不经意间带给我惊喜和感动,我们在一起的时候会为某一项程序的未完成而心急和烦恼,却又对自己技术的不成熟而无奈,想破脑袋都想不出的那种感觉简直不要太爽,就行我们经常开的玩笑一样,每根头发的•脱落都有它脱落的意义,最后我真的很想谢谢我的组员,希望我们在接下来的日子里不断完善自己的能力,努力做一个优秀的人,谢谢!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值