软件工程第三次作业-------(李利思 岳庆)

小组成员:李利思  岳庆

题目:

请编写一个能自动生成小学四则运算题目的 “软件”;

让程序能接受用户输入答案,并判定对错;

最后给出总共 对/错 的数量。

需求分析:

  • 基本功能

    基本功能点1:实现小学四则运算;

    基本功能点2:该程序能接受用户输入答案,并判断对错;

基本功能点3:给出总共对/错的数量。

设计

  • 设计点1:用C语言编程环境实现程序代码的编写;
  • 设计点2:随机产生两个数,分别用1,2,3,4表示计算加法,减法,乘法,除法,通过计算判断出计算的正确与否,并统计出正确与错误的个数。
 1 #include<stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 int main()
 5 {
 6     int x,y,all=0,r=0,e=0,result;
 7     char z;
 8     int m,n;
 9     printf("欢迎来到小学计算器测试!\n");
10     printf("请输入1到4其中一个数字(1表示加法,2表示减法,3表示乘法,4表示除法),当输入为q时,结束测试:\n");
11     scanf("%d",&m);
12     srand( (unsigned)time( NULL ) );
13     while ((z=getchar())!=‘q‘)
14     {
15         all++;
16         x=rand()%50;y=rand()%50;
17         if(m==1)
18         {
19             printf("%d+%d=",x,y);
20             scanf("%d",&z);
21             printf("\n");
22             if (x+y==z)
23                 r++;
24             else
25                 e++;
26         }
27         else if(m==2)
28         {
29             printf("%d-%d=",x,y);
30             scanf("%d",&z);
31             if (x-y==z)
32                 r++;
33             else
34                 e++;
35         }
36         else if(m==3)
37         {
38             printf("%d*%d=",x,y);
39             scanf("%d",&z);
40             if (x*y==z)
41                 r++;
42             else
43                 e++;
44         }
45         else if(m==4)
46         {
47             printf("%d/%d=",x,y);
48             scanf("%d",&z);
49             if (x/y==z)
50                 r++;
51             else
52                 e++;
53         }
54         else
55             printf("输入有误!\n");
56         result=100*r/all;
57     }
58     printf("您的成绩为:%d\n",result);
59     printf("您一共完了%d道题目,正确的有%d题,错误的有%d题\n",all,r,e);
60     if(result>=60)
61     {
62         printf("成绩还不错,别骄傲哦!\n");
63     }
64     else
65     {
66         printf("成绩有待提高,加油,别灰心哦!\n");
67     }
68     return 0;
69 }

计算加、减、乘、除法:

#include<stdio.h>
void main()
{
	/*加法计算*/
	int Jiafa(int a,int b,int c)
	{
		int c = a + b;
		return c;
	}
	/*减法计算*/
	int Jianfa(int a,int b,int c)
	{
		int c = a - b;
		return c;
	}
	/*乘法计算*/
	int Chengfa(int a,int b,int c)
	{
		float c = a * b;
		return c;
	}
	/*除法计算*/
	float Chufa(int a,int b,int c)
	{
		if(b==0)
		{
			b=1;
		}
		float c =(float) a /(float)b;
		return c;
	}
}

把函数声明放在头文件中:

1 #include<stdio.h>
2 #include<stdio.h>
3 #include<stdio.h>
4
5 int Jiafa(int a,int b,int c);
6 int Jianfa(int a,int b,int c);
7 int Chengfa(int a,int b,int c);
8 float Chufa(int a,int b,int c);

调试结果:

两人合作步骤:

1.修改原程序,使之符合代码风格和设计规范的基本要求;

2.两人对原程序进行认真分析,得出解决问题的基本思路,拟定做题计划;

3.采用模块化的设计思想,修改之前的code,将计算功能封装起来;

4.测试加法功能。

总结:

1.编程是一个积累的过程,只要认真去思考,总会有解决问题的方法;

2.该程序的设计需要符合题目的要求,满足小学四则运算。

3.规范了代码的格式,使得代码更容易读,也便于检查和修改程序。

4.学会了一些简单的测试程序中基本功能的方法。

PSP耗时:

PSP Personal Software Process Stage Time(h) Time(%)
●Design ●具体设计 10 25
●Coding ●具体编码 12 30
●Code Review ●代码复审 5 12.5
●Test ●测试(自测,修改代码) 8 20

●Postmortem & Process

Improvement Plan

●事后总结,并提出过程改进计划 5 12.5
时间: 2024-10-14 21:09:18

软件工程第三次作业-------(李利思 岳庆)的相关文章

软件工程第三次作业

本周的作业请参照此文:http://www.ruanyifeng.com/blog/2015/12/git-workflow.html 制定本组项目的GitHub版本更新流程. 制定本组的代码规范.GitHub提交源码的标准. 组长组织每周例会(可以使用群微信群试验一下每天沟通项目开发进度的方法)需要有证据能够在博客上公布 根据邹欣老师的教材相关内容,确定小组成员的角色,细化项目需求.时间计划.列出产品积压工作项和预计开发时间 第一题:制定本组项目的GitHub版本更新流程 通过学习链接中的内容

2017秋-软件工程第三次作业(1)-第三周例行总结

第三周例行报告   1本周PSP   2字数统计   博文字数统计不包含本作业中的文字,因为本作业是在截图后写了一些想法之后才得到的. 3代码行数   本周代码工作几乎是把上周的所有代码重写一遍,并进行了大量的尝试工作.有这样的疑问:注释掉的.删除掉的.尝试后废弃不用的代码算不算最后的代码行数呢? 4博文字数   5饼状图 时间统计和上周的饼状图非常相似,为了证明不是从上周的粘贴而来,特意将数值给出 总结: 1本周学习过程中,大部分的工作依旧集中在提交作业前2天. 2感谢老师将提交作业时间设置为

软件工程第三周作业:微软必应词典案例分析

0x01 :微软必应词典案例分析 0x0104 :微软必应词典功能性BUG说明       0x010404 : BUG – 1 – 模块功能未实现 运行环境或平台 iOS 9.0.1 必应词典软件版本 版本3.5,版权所有@2014 Microsoft 软件测试BUG特征 [优先级1]应用程序模块功能未实现,包含整个模块不能正常运行 重现步骤 1. 打开必应词典软件进入设置中,选择跨软件查词设置,设置为打开和一直运行 2. 按照使用说明所说随意打开某一App(这里选择提醒事项) 3. 按使用说

软件工程第三次作业(微软小娜案例分析)

第一部分 调研, 评测 1.上手体验  我使用的是win10系统,所以自带Cortana,之后又在手机上下载了安卓版本.第一感受不管是在电脑上还是在手机上都比较流畅,优化的比较好.电脑上使用也比较方便,在桌面上就能直接打开,安卓手机则需要下载.使用上,语音识别还算准确,而且搜索到的信息也比较有用. 2.bug测试 (1)语音输入后莫名弹出必应. (2)语音识别不太准确 3. 用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图. 当语音输入有标点时,Cortana有几率打开ed

2017年软件工程第三次作业-2效能分析

要求0 以 战争与和平 作为输入文件,重读向由文件系统读入.连续三次运行,给出每次消耗时间.CPU参数       首先,我下载ptime.exe,不知道什么原因我下载下来以后运行老出现闪退现象.一直没法使用.我就接下来开始下载visual studio 2015,但是下载了一下午就是下不下来,我也很苦恼啊,电脑还是变成了巨难用,我下载的时候大概是缺少很多插件,我也不懂了.然后通过请教学长和同学,我使用了Very Sleepy CS软件来对功能进行效能分析. 由于我上次作业功能四没有实现,我没办

2018软件工程第三次作业

最大连续子数组和(最大子段和) 一.问题描述 问题描述: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的子段和的最大值.当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+-+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20. 二.题目分析 本

软件工程第三次作业--求最大子段和

一.最大连续子数组和(最大子段和) 问题背景 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的子段和的最大值.当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+-+a[j]},1<=i<=j<=n.例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20. 问题分析 当给定一组数组时,

软件工程第三次作业绝对编程

一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项

现代软件工程第三次作业-自我评价的改进

自我评价的改进 温浩: 通过调查问卷的测评,我对自己的专业技能有了较为直观的认识,经过反思与总结,我认为自己需要做如下改进: 1. 从被动编程向主动编程转变.拿到一个项目,要真的的了解需求,主动发掘需求中的盲点:遇到问题要主动寻找解决方案,最好事先做好各方面的估计. 2. 保持高的标准.不能只关注代码的结果,还要关注代码的质量.某些模块是否需要应用一些设计模式,是否考虑了资源的释放,算法复杂度是否能够进一步优化. 3. 重视测试步骤.不同模块需要进行实际模块的测试,不能因为某些地方简单就想当然的