这是本学期第二次作业,属于个人练习项目。
题目:编写一个能对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.c
head.h的代码如下:
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<time.h>
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);//输出判断对错
11
12 int Calculate()
13 {
14 int right=0; //统计做对多少道题
15 int fault=0; //统计做错多少道题
16 char type=' '; //接收用户要生成的运算类型
17 printf("请选择要进行那种运算\n
18 输入 + 号表示选择加法\n
19 输入 - 号表示选择减法\n
20 输入 * 号表示选择乘法\n
21 输入 / 号表示选择除法\n
22 输入 e 表示结束程序\n
23 ");
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 sub
37 }
38 else if(type=='*')
39 {
40 // to do mul
41 }
42 else if(type=='/')
43 {
44 // to do div
45 }
46 }
47 printf("您共答对%d道题,答错%d道题\n",right,fault);
48 return 0;
49 }
50
51
52 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 else
69 {
70 (*fault)++;
71 JudgeHint(0);
72 }
73 return 0;
74 }
75
76 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 }
83
84 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编程艺术》,可以从你们图书馆借来看看。