这是本学期第二次作业,属于个人练习项目。
题目:编写一个能对0--10之间的整数进行四则运算的“软件” 程序能接收用户输入的整数答案,并判断对错 程序结束时,统计出答对、答错的题目数量。补充说明:0——10的整数是随机生成的 用户可以用键盘输入来选择四则运算中的一种,比如输入1代表加法运算 用户用键盘输入一个字符来结束程序的运行并显示统计结果,比如输入e程序结束并显示统计结果 编程语言不限制,命令行输出和图像界面输出都可以。要求:要有需求分析,具体设计思路,代码实现,测试,书中PSP耗时分析,总结。 以上内容都写到博客中,代码也写到博客中,要求写程序时要有屏幕截图,最后把测试的界面也截图发到博客上,PSP表也截图到博客上。打分说明:作业满分10分,迟交的0分,不交作业和抄袭的-10。10分包括:把代码提交到github(1分),需求分析(1.5分),具体设计思路(1.5分),代码实现(1分),测试(1分),书中PSP耗时分析(1.5分),总结(1.5分),代码是否规范(1分)作业提交截止时间为10月6日23:00,做完后把你的博客链接和github链接发的QQ群里,另外也要给助教的qq发一下。github提交教程:http://www.cnblogs.com/math/p/4633472.html我会把每次作业的完成情况统计完发到我的博客和QQ群里,敬请关注!思考题(1分):如果用户要求处理的范围是0——100,程序应该如何设计才能很轻松的应对扩展性。附加题(3分):程序能处理用户的错误输入,比如用户输入一个小数或一个字符。思考题和附加题都是加分题,做这两题的可以获得相应的加分。作业样例,我是用C语言写的,仅供参考。有两个文件,一个是head.h,另一个是calculate.chead.h的代码如下: 1 #include2 #include 3 #include 4 int Add(int *,int *); //加法函数,实现加法功能 5 int Sub(int *,int *); // 6 int Mul(int *,int *); // 7 int Div(int *,int *); 8 int Calculate(); //计算函数,判断是哪种计算并调用相关函数 9 int RandNum(int max,int min);//生成随机数10 void JudgeHint(int rightOrfault);//输出判断对错1112 int Calculate()13 {14 int right=0; //统计做对多少道题15 int fault=0; //统计做错多少道题16 char type=' '; //接收用户要生成的运算类型17 printf("请选择要进行那种运算\n18 输入 + 号表示选择加法\n19 输入 - 号表示选择减法\n20 输入 * 号表示选择乘法\n21 输入 / 号表示选择除法\n22 输入 e 表示结束程序\n23 ");24 scanf("%d\n",&type);25 while(type!='e')26 {27 scanf("%d\n",&type);28 if(type=='+')29 {30 //把变量right和fault的地址传递给函数Add,&是取地址符31 //指针其实就是地址32 Add(&right,&fault);33 }34 else if(type=='-')35 {36 // to do sub37 }38 else if(type=='*')39 {40 // to do mul41 }42 else if(type=='/')43 {44 // to do div45 }46 }47 printf("您共答对%d道题,答错%d道题\n",right,fault);48 return 0;49 }505152 int Add(int *right,int *fault)//函数的参数是两个指针,分别用来统计正确和错误的题数53 {54 int answer;55 int a,b,sum;56 a=RandNum(10,0);57 b=RandNum(10,0);58 sum=a+b;59 printf("加法运算:%d + %d = ",a,b);60 scanf("%d",&answer);61 if(sum==answer)//回答正确,*right加一,否则*fault加一62 {63 //right是一个指向整数的指针参数,*right表示right指向的64 //内存单元的值,在其他编程语言中指针也叫引用。65 (*right)++;66 JudgeHint(1);67 }68 else69 {70 (*fault)++;71 JudgeHint(0);72 }73 return 0;74 }7576 int RandNum(int max,int min)77 {78 int randNumber;79 srand((unsigned)time(NULL));//产生随机种子80 randNumber=rand()%(max-min+1)+min;//生成想要的随机数81 return randNumber;82 }8384 void JudgeHint(int rightOrfault)85 {86 if(rightOrfault==1)87 printf("回答正确!\n");88 else if(rightOrfault==0)89 printf("回答错误!\n");90 }calculate.c的代码如下: 1 #include "head.h" 2 int main(int argc,char* argv[]) 3 { 4 Calculate(); 5 return 0; 6 }
推荐一本书《UNIX编程艺术》,可以从你们图书馆借来看看。