- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 2024年海南省中考化学试卷(含答案).docx
- 人教PEP版四年级上册英语Unit 3 My friendsPart B Let's talk—Let's play课件.pptx
- 《论语》中的“学”与“好学”.doc VIP
- 部编版小学语文三年级上册《快乐读书吧:在那奇妙的王国里》说课稿(附教学反思、板书)课件.pptx
- 第四节 IS—M模型与财政政策效应.ppt VIP
- (2023)宿舍安全知识竞赛真题库及答案(通用版).docx
- 高校教师资格证面试说课课件-醛酮.pptx VIP
- 雨季施工方案.doc VIP
- 台湾文学之台湾诗歌课件.ppt
- 计量经济学基础 第3版 课件 张兆丰 第1--7章 导论、 回归与回归分析---多元线性回归模型的推断.pptx
文档评论(0)