您的位置:首页 > 其它

第一周软件作业

2017-03-07 21:13 141 查看
coding地址:
https://git.coding.net/zzq201421123087/dhsjkfhd.git
题目:

从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
1.除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
2.运算符为 +, −, ×, ÷
3.并且要求能处理用户的输入,并判断对错,打分统计正确率。
4.要求能处理用户输入的真分数, 如 1/2, 5/12 等
5.使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10

需求分析:
1.想要自动生成算数题目
2.要判断答案正确与否

功能设计:
1.自动生成分数或整数(可以由分数约分得到)
2.自动生成运算符号
3.可以对分数进行约分1 4.要将用户输入的数字与正确答案比较

设计实现:
思路:由四个随机生成的数组成两个分数,中间用随机生成的符号连接


代码说明:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
char i;
int a,b,c,d,e,f,g,n,m;

printf("1.开始\n");
printf("2.退出软件\n") ;
printf("请选择:\n");
scanf("%d",&e);
if(e==1){
printf("请选择生成题目的数量:\n");
scanf("%d",&f);
srand((unsigned)time(NULL));
for(int g=0;g<f;g++)
{
n=rand()%4;
if(n==0){i='+';}
if(n==1){i='-';}
if(n==2){i='*';}
if(n==3){i='/';}
a=rand()%10+1;
b=rand()%10+1;
c=rand()%10+1;
d=rand()%10+1;
m=rand()%2;
if(m==0){printf("%d%c%d=\n",a,i,b);}
else if(m==1){
if(a<=b&&c<=d)printf("%d/%d%c%d/%d=\n",a,b,i,c,d);
else if(a>b&&c>d) printf("%d/%d%c%d/%d=\n",b,a,i,d,c);
else if(a<=b&&c>d) printf("%d/%d%c%d/%d=\n",a,b,i,d,c);
else if(a>b&&c<=d) printf("%d/%d%c%d/%d=\n",b,a,i,c,d);
}
}
}
if(e==2){
exit(0);
return 0;
}
}

程序测试:





PSP:

PSP2.1

Personal Software Process Stages

Time (h) Senior Student

Time (h)

Planning

计划

3

3

· Estimate

估计这个任务需要多少时间

80

100

Development

开发

30

40

· Analysis

需求分析 (包括学习新技术)

6

10

· Design Spec

生成设计文档

0

0

· Design Review

设计复审

0

0

· Coding Standard

代码规范

3

3

· Design

具体设计

30

40

· Coding

具体编码

40

60

· Code Review

代码复审

5

10

· Test

测试(自我测试,修改代码,提交修改)

10

10

Reporting

报告

5

5

·

测试报告

3

2

·

计算工作量

2

1

·

并提出过程改进计划

1

3

小结:
动手能力有待加强,对于C++语言还是不熟练,需要大量依靠网络资料。对于软件设计,应该先设计然后在进行代码的书写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: