英语46级判卷系统.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
英语46级判卷系统

《C++程序设计》实验报告一 实验内容: 英语46级判卷系统 学号:?????? ????????姓名:???????????? 上机实验的问题和要求(需求分析): 题目;英语46级判卷系统 要求:实现英语46级选择题的判断 人数支持40-50人,题目40-60道 输出学生答案,输出成绩、评分,并判断试卷难易等。 二、程序设计的基本思想,原理和算法描述: 基本思想:构造一个学生类,类包过静态数据:学生学号(number)、答案数组(select[ ])、分数(score)和成绩评分(grade)。和一些函数:构造函数Student()、显示学生成绩的函数show()、比较函数judge(char a[])、成绩评分函数setGrade()、显示学生答案函数showSlect()、获取成绩评分函数getGrade(),利用这些函数去实现要求。 实现功能特色:1.采用菜单方式方便用户操作 2.方便查看采用随机函数产生学生答案也可手动输入(手动部分在代码部分已经注释掉) 3.人数支持很多设置的最大为1000个,学生信息输入支持分多次存入 原理: 重要算法描述:1,for(int i=0;i50;i++){select[i]=rand()%4+a;}利用随机函数rand()产生随机数,再对这个随机数除4求余再加上字符 a ,得出abcd四个字符 2. for(int i=0;i50;i++){ if(select[i]==a[i]) k++; }将学生答案与标准答案一一比较若一样则使正确答案个数加一,根据正确答案数算出成绩 3. for(int i=1;i=50;i++) { coutb[i-1]; 一个一个的输出答案 if(i%5==0) 利用求余每输出5个 cout ;} 输出一个空格 使结果利于观看 三、调试和运行程序过程中产生的问题及采取的措施: 1:问题:采用输入的方式输入成绩要输入大量的数据,会因为输出错误而重新输入, 解决措施:学生成绩也加入随机函数产生答案方式。 2:问题:随机函数产生的学生答案一样 解决措施:加入静态变量snumber作为srand()函数的初值,每调用一次加一; 3.问题:string类型学号不能随机产生 采取措施:加入静态变量snumber使初值snumber=1000,1000作为学号初值,然后snumber++; std::stringstream ss; std::string str;sssnumber; ssstr; 将int型snumber转化成 string 最后赋值给number ,number=str; 问题:每次调用操作2后对象数组的都被重新初始化 采取措施:采用循环for(int i=n;in+l;i++) 本次要输入的学生人数为 l,到现在为止总人数为n,循环后 n=n+l; 四、源程序及注释 代码 #includeiostream #includecstdlib #include string #include sstream using namespace std; class Student{ public: Student(); void show(); void judge(char a[]); void setGrade(); string getGrade(){return grade;}; void showSlect(); private: string number; string name; char select[60]; int score; string grade; }; static int snumber=1000; Student::Student() { //手动输入答案 /*score=0; cout请输入4位学号:; cinnumber; score=0; cout请输入10个听力题答案:; for(int i=0;i10;i++) { cinselect[i]; } cout请输入20个单项选择答案:; for(int i=10;i30;i++) { cinselect[i]; } cout请输入20个阅读理解答案:; for(int i=30;i50;i++) { cinselect[i]; }*/ //随机产生答案 score=40;//由于随机产生答案得分在25分左右,为了使得分更真实默认初始分数为40 srand(snumber); snumb

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档