2017《面向对象程序设计》课程作业三
2017-05-07 23:10
274 查看
2017《面向对象程序设计》课程作业三
林燊 031602325 https://www.cnblogs.com/linshen/github链接:https://github.com/Travaill/arithmetic.git
1.设计思路
2.程序功能
能对0--10之间的整数进行四则运算(加减乘除)
能实现选择中文,英文,德语法语,日语五种语言
程序能接收用户输入的整数答案,并判断对错
程序结束时,统计出答对、答错的题目数量
3.算法分析
类generate 实现随机算式的生成类calculate 计算算式的结果
类control 控制题目生成的数量 控制生成符合要求的算式 控制程序的退出 控制程序的语言
类printf 输出算式、判断结果、统计答题情况
4.代码规范
函数的命名必须使用英文单词,不使用拼音缩写函数的命名如果一个单词的必须首字母大写,如果多个单词的用下划线隔开
程序结构清析,简单易懂,单个函数的程序行数不得超过100行。
要随意定义全局变量,尽量使用局部变量。
函数的旁边必须注释上本函数的功能
禁止GOTO语句。
源文件头部应进行注释,列出:生成日期、作者、模块目的/功能等。
示例:
示例:
下面这段源文件的头注释比较标准,可以不局限于此格式,但上述信息要包含在内。
示例:
下面这段源文件的头注释比较标准,可以不局限于此格式,但上述信息要包含在内。
说明:Description一项描述本文件的内容、功能、内部各部分之间的关系及本文件与其它文件关系等。
/************************************************************
FileName: test.cpp
Author:
Version :
Date:
Description: // 模块描述
Version: // 版本信息
Function List: // 主要函数及其功能
1. -------
History: // 历史修改记录
< author > < time > < version > < desc >
David 96/10/12 1.0 build this moudle ***********************************************************/
History是修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述。
函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值等
示例:
/*************************************************
Description: // 函数功能、性能等的描述
Input: // 输入参数说明,包括每个参数的作 用、取值说明及参数间关系。
Output: // 对输出参数的说明。
Return: // 函数返回值的说明
Other // 其它说明
*************************************************/
函数名以大写字母开头,采用谓宾结构(动名),且应反映函数执行什么
操作以及返回什么内容。
类、结构、联合、枚举的命名须分别以C、S、U、E开头,其他部分遵从一般变量命名规范。
5.代码展示
int main(int argc,char *argv[]) { srand((unsigned)time(NULL)); //重置种子 Printf().ShowLanguageList(); //展示可选择语言列表 cout << endl << endl; char language[20]; //获取用户所选择的语言 do { Printf().printfNeedWhat(); gets_s(language); } while (!Control().JudgeIfGet(language));//判断语言资源文件是否载入成功 string Resource[30]; Control().GetResource(Resource, language); //将语言资源导入resouce数组 int wrong = 0, right = 0; int counts = Control().ReadFile(argv[1]); for (int i = 0; i < counts; i++) { string exp; double res; do { exp = Generate().generateExpression(); //生成算式 res = Calculate().calculateResult(exp); //计算算式结果 } while (Control().judgeExpression(exp) || Control().judgeResult(res)); //判断生成的算式是否符合要求 cout << exp << endl << Resource[1] << i + 1 << Resource[2]; Printf().PrintfExpressionToFile(argv[2],exp, "\n", Resource[1], i + 1, Resource[2]); double number; cin >> number; Printf().FilePrint(argv[2], number); if ((Control()).getKeyAndExit()) //输出e退出循环并统计答题情况 { Control().StatisticalResult(wrong, right, res, number, Resource,argv[2]); } else break; } cout << Resource[5] << right << Resource[6] << wrong << Resource[7] << endl; Printf().FilePrint("\n"); Printf().PrintfResultToFile(argv[2], Resource[5], right, Resource[6], wrong, Resource[7], "\n"); system("pause"); return 0; }
void Printf::FilePrint(char *filePath,int x) { fstream fout; fout.open(filePath, ios::app); fout << x; fout.close(); } void Printf::FilePrint(char *filePath,string x) { fstream fout; fout.open(filePath, ios::app); fout << x; fout.close(); } void Printf::PrintfExpressionToFile(char* filePath, string x1, string x2, string x3,int x4, string x5) { Printf().FilePrint(filePath, x1); Printf().FilePrint(filePath, x2); Printf().FilePrint(filePath, x3); Printf().FilePrint(filePath,x4); Printf().FilePrint(filePath, x5); } void Printf::PrintfResultToFile(char* filePath, string x1, int x2, string x3, int x4, string x5, string x6) { Printf().FilePrint(filePath, x1); Printf().FilePrint(filePath, x2); Printf().FilePrint(filePath, x3); Printf().FilePrint(filePath, x4); Printf().FilePrint(filePath, x5); Printf().FilePrint(filePath, x6); }
6.提交日志证明
7.程序测试
8.个人感受
本次的代码版本更迭,主函数加入了参数,通过DOS命令行运行,虽然我暂时不知道这样做有什么好处。。。但是关于文件的读写方面我想到了一种应用的方式,当两个人是用两种不可兼容的语言来进行程序的开发的时候,要做到两个程序的合作,这时候文件的处理就派上了用处。
其他,这次又过了一遍程序,又把主函数精简了一点,每次都有新的想法,每次进步一点。
相关文章推荐
- 2017《面向对象程序设计》课程作业七
- 2017《面向对象程序设计》课程作业七
- 2017《面向对象程序设计》课程作业八
- 2017《面向对象程序设计》课程作业八
- 2017《面向对象程序设计》课程作业四
- 2017《面向对象程序设计》课程作业五
- 2017《面向对象程序设计》课程作业一
- 2017《面向对象程序设计》课程作业七
- 2017《面向对象程序设计》课程作业五
- 2017《面向对象程序设计》课程作业六
- 2017《面向对象程序设计》课程作业一
- 2017《面向对象程序设计》课程作业八
- THE LAST ONE!! 2017《面向对象程序设计》课程作业八
- 2017《面向对象程序设计》课程作业四
- 2017《面向对象程序设计》课程作业五
- 2017《面向对象程序设计》课程作业六
- 2017《面向对象程序设计》课程作业二
- 2017《面向对象程序设计》课程作业二
- 2017《面向对象程序设计》课程作业七
- 2017《面向对象程序设计》课程作业七