一、设计思想
在之前的基础上添加了如下功能:
1.为使用户可定制数量以及打印方式,用户自己输入
2.参数设置: 提示用户参与运算的数值范围;
提示用户输入出多少道题目;
提示用户输入题目输出列数;
提示用户是否有乘除法运算;
提示用户结果是否有负数;
二、代码
1 #include "stdio.h" 2 #include "stdlib.h" 3 #include "time.h" 4 int main(){ 5 srand(time(NULL)); 6 int a,b,c,cheng,i,j,n,m,x,y,konghang; //a,b为运算数,c为选择哪个运算符,i为循环次数 7 printf("欢迎使用四则运算出题系统\n"); 8 printf("我们提供一下功能:\n"); 9 printf(" 1.题目的数值范围(暂不支持小数)\n"); 10 printf(" 2.题目的数量 \n"); 11 printf(" 3.打印时每行题的数量 \n"); 12 printf(" 4.答案中会不会出现负数的结果 \n"); 13 printf(" 5.题目中是否会出现乘除运算 \n"); 14 printf(" 6.打印时每行的间隔 \n"); 15 printf("请输入数值范围:"); 16 scanf("%d",&x); 17 printf("请选择出题数量:"); 18 scanf("%d",&j); //j为题目数量 19 printf("请输入每行题的数量:"); 20 scanf("%d",&n); //n为每行题的数量 21 printf("答案是否有负数(1为有,0为没有):"); 22 scanf("%d",&m); 23 while(m!=0 && m!=1) //判断用户是否按要求输入 24 { 25 printf("sorry!输入错误,请按要求输入:"); 26 scanf("%d",&m); 27 } 28 29 printf("是否有乘除运算(1为有,0为没有):"); 30 scanf("%d",&cheng); 31 while(cheng!=0 && cheng!=1) //判断用户是否按要求输入 32 { 33 printf("sorry!输入错误,请按要求输入:"); 34 scanf("%d",&cheng); 35 } 36 printf("中间有几个空行:"); 37 scanf("%d",&konghang); 38 if(cheng==1) 39 { 40 if(m==0) 41 { 42 for(i=1;i<=j;i++) 43 { 44 a=rand()%x; 45 b=rand()%x; 46 c=rand()%4; 47 printf("(%d)",i); 48 switch(c) 49 { 50 case 0: 51 printf("%d+%d=\t",a,b); 52 break; 53 case 1: 54 if(a>=b) 55 printf("%d-%d=\t",a,b); 56 else 57 printf("%d-%d=\t",b,a); 58 break; 59 case 2: 60 printf("%d*%d=\t",a,b); 61 break; 62 case 3: 63 if(b==0) 64 printf("%d/%d=\t",b,a); 65 else 66 printf("%d/%d=\t",a,b); 67 break; 68 default: 69 { 70 printf("出错啦~~~"); 71 } 72 } 73 if(i%n==0) 74 { 75 for(int p=1;p<konghang;p++) 76 { 77 printf("\n"); 78 } 79 } 80 } 81 82 } 83 else 84 { 85 for(i=1;i<=j;i++) 86 { 87 a=rand()%x; 88 b=rand()%x; 89 c=rand()%4; 90 printf("(%d)",i); 91 switch(c) 92 { 93 case 0: 94 printf("%d+%d=\t",a,b); 95 break; 96 case 1: 97 printf("%d-%d=\t",a,b); 98 break; 99 case 2: 100 printf("%d*%d=\t",a,b); 101 break; 102 case 3: 103 if(b==0) 104 printf("%d/%d=\t",b,a); 105 else 106 printf("%d/%d=\t",a,b); 107 break; 108 default: 109 { 110 printf("出错啦~~~"); 111 } 112 } 113 if(i%n==0) 114 { 115 for(int p=1;p<konghang;p++) 116 { 117 printf("\n"); 118 } 119 } 120 } 121 } 122 123 } 124 else 125 { 126 if(m==0) 127 { 128 for(i=1;i<=j;i++) 129 { 130 a=rand()%x; 131 b=rand()%x; 132 c=rand()%2; 133 printf("(%d)",i); 134 switch(c) 135 { 136 case 0: 137 printf("%d+%d=\t",a,b); 138 break; 139 case 1: 140 if(a>=b) 141 printf("%d-%d=\t",a,b); 142 else 143 printf("%d-%d=\t",b,a); 144 break; 145 default: 146 { 147 printf("出错啦~~~"); 148 } 149 } 150 if(i%n==0) 151 { 152 for(int p=1;p<konghang;p++) 153 { 154 printf("\n"); 155 } 156 } 157 } 158 159 } 160 else 161 { 162 for(i=1;i<=j;i++) 163 { 164 a=rand()%x; 165 b=rand()%x; 166 c=rand()%2; 167 printf("(%d)",i); 168 switch(c) 169 { 170 case 0: 171 printf("%d+%d=\t",a,b); 172 break; 173 case 1: 174 printf("%d-%d=\t",a,b); 175 break; 176 default: 177 { 178 printf("出错啦~~~"); 179 } 180 } 181 if(i%n==0) 182 { 183 for(int p=1;p<konghang;p++) 184 { 185 printf("\n"); 186 } 187 } 188 } 189 } 190 191 } 192 printf("\n"); 193 194 return 0; 195 }
三、运行结果截图:
四、PSP0表
项目计划总结:
周活动总结表
姓名:袁亚姣 日期:
日期 任务 | 听课 | 编写程序 | 阅读课本 | 准备考试 |
|
| 日总计 |
周日 |
|
|
|
|
|
|
|
周一 |
|
|
|
|
|
|
|
周二 | 400 |
| 20 |
|
|
| 480 |
周三 | 100 | 60 | 40 |
|
|
| 200 |
周四 | 200 | 90 |
|
|
|
| 260 |
周五 | 200 | 60 | 60 |
|
|
| 330 |
周六 |
| 20 | 20 |
|
|
| 40 |
周总结 | 900 | 230 | 140 |
|
|
| 1270 |
阶段时间和效率 周数(上一次周活动表的周数+1):
不包括上一周在内的累计时间
总计 |
|
|
|
|
|
|
|
平均 |
|
|
|
|
|
|
|
最大 |
|
|
|
|
|
|
|
最小 |
|
|
|
|
|
|
|
以前各周的累计时间
总计 | 900 | 230 | 140 |
|
|
| 1270 |
平均 | 900 | 230 | 140 |
|
|
| 1270 |
最大 | 900 | 230 | 140 |
|
|
| 1270 |
最小 | 900 | 230 | 140 |
|
|
| 1270 |
二、时间记录表:
学生 袁亚姣 日期 2015.03.15
教师 王建民 课程 PSP
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 |
15/3/11 | 8:00 | 9:50 | 10 | 100 | 上课 | 课间休息 |
| 10:00 | 10:40 |
| 40 | 阅读 | 《梦断代码》 |
| 20:00 | 21:20 | 20 | 60 | 编程 | 与同学讨论 |
15/3/12 | 10:10 | 12:00 | 10 | 100 | 上课 | 课间休息 |
| 14:00 | 15:50 | 10 | 100 | 上课 | 课间休息 |
| 20:00 | 21:30 |
| 90 | 编程 |
|
15/3/13 | 8:00 | 12:00 | 40 | 200 | 上课 | 课间休息 |
| 20:00 | 21:30 | 30 | 60 | 编程 | 与同学讨论 |
| 22:00 | 23:00 |
| 60 | 阅读 |
|
15/3/14 | 10:00 | 10:20 |
| 20 | 优化代码 |
|
| 11:00 | 11:20 |
| 20 | 阅读 |
|
三、缺陷记录日志:
学生 袁亚姣
日期 15.3.15
教员 王建民
程序号
日期 | 编号 | 类型 | 引入阶段 | 排除阶段 | 修复时间 | 修复缺陷 |
15/3/11 | 1 |
| 编码 | 编译 | 5min |
|
描述:%d,&不会使用,傻傻分不清 | ||||||
15/3/12 | 2 |
| 编码 | 编译 | 1min |
|
描述:忘记写; | ||||||
15/3/13 | 3 |
| 编码 | 编译 | 1min |
|
描述:加了一个if语句,忘记右边的”}”了 |
五、心得体会
程序仅仅实现了几个功能,还不完善。而且,我把所有的程序都写到主函数里面了,维护起来相当困难,但是由于不太会使用函数调用,也就没有改进。
刚刚拿到题目是,很头疼,不知道怎么去写,后来,真正去写的时候,从每个小问题开始实现,发现并没有我想象中的那么困难,所以以后要改正逃避的毛病,多练,多写,多看
其他的功能,我日后也会慢慢的去实现。