软件工程第二次作业
---恢复内容开始---
第二次作业:熟悉使用工具
| GIT地址 |
我的地址 (点击地址) |
| GIT用户名 | haibaoo |
| 学号后五位 | 61121 |
| 博客地址 | 博客地址 |
| 作业地址 | 作业的链接 |
一:配置过程:
1.安装VS2017(从这个地址安装)

最开始无法安装,因为我的系统盘C盘的空间太小了,就来花了三十块钱去合盘将CD盘合盘,并且丢失了所有的数据之后我终于安装上了这个软件。

在这个地址下载了GIT 这个软件。刚开始在寝室不论用EDU还是用宽带的下载速度都非常的慢,所以我听同学的建议到图书馆下载了这两个应用程序。
由于GITHUB的网页的界面是全英语的,英语不好的我就只有下载了搜狗浏览器就可以翻译整个页面。
二.设计思路
1.题目要求的产生整数形式的随机数,而且要用到C++这个编程软件。所以我们需要用到系统的函数rand()函数,且要求是0~100的随机数所以函数为rand()%101。
2.产生两个符号,所以就要用到函数random()%2+2。
三.结果与代码


源代码:
// 计算器程序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include <iostream>
using namespace std;
#include <time.h>
#include <vector>
struct Expression
{
int iFirst; //第一个操作数
int iSecond; //第二个操作数
char oper; //操作
int result; //结果
//初始化
Expression()
{
iFirst = 0;
iSecond = 0;
oper = 0;
result = 0;
}
};
int low = 0, up = 0;
vector<Expression> vector_Expression;
void SetExpression(char oper);
int main()
{
low = 1;
up = 100;
srand(time(NULL));
//随机生成十道题目
char operSymb[4] = { '+','-','*','/' };
char oper;
for (int i = 0; i < 10; ++i)
{
oper = operSymb[rand() % 4];
SetExpression(oper);
}
cout << "本次测试一共十道题目,请依次作答!" << endl;
int Score = 0;
vector<Expression>::iterator iter = vector_Expression.begin();
for (iter; iter != vector_Expression.end(); ++iter)
{
cout << iter->iFirst << iter->oper << iter->iSecond << "=";
int result;
cin >> result;
if (result != iter->result)
cout << "很遗憾回答错误,本题得分:0,正确答案为" << iter->result << endl;
else
{
cout << "恭喜你回答正确,本题得分:10" << endl;
Score += 10;
}
cout << endl;
}
cout << "测试结束,你总共得分为:" << Score << endl;
}
void SetExpression(char oper)
{
int iFirst = 0;
int iSecond = 0;
if (oper != '/')
{
iFirst = rand() % (up - low) + low;
iSecond = rand() % (up - low) + low;
if (oper == '-' && iFirst < iSecond)
{
int temp = iSecond;
iSecond = iFirst;
iFirst = temp;
}
}
else if (oper == '/')
{
int count = 0;
while (1)
{
count++;
if (count == 10000)
break;
iFirst = rand() % (up - low) + low;
iSecond = rand() % (up - low) + low;
if (iFirst < iSecond)
{
int temp = iSecond;
iSecond = iFirst;
iFirst = temp;
}
if (iSecond == 0)
continue;
if ((iFirst % iSecond == 0))
break;
}
if (count == 10000)
{
char c[3] = { '+','-','*' };
SetExpression(c[rand() % 3]);
return;
}
}
Expression info;
info.iFirst = iFirst;
info.iSecond = iSecond;
info.oper = oper;
info.result = iFirst / iSecond;
if (oper == '+')
info.result = iFirst + iSecond;
else if (oper == '-')
info.result = iFirst - iSecond;
else if (oper == '*')
info.result = iFirst * iSecond;
else if (oper == '/')
info.result = iFirst / iSecond;
vector_Expression.push_back(info);
}
***************************************************************************************************************************************************************

(虽然代码设计成功了。但是由于一直打开不了这个东西就没有完成)
四:心得体会
由于我的基础知识比较差,所以在代码的设计方面上还事参照了室友的一部分内容,VS2017这个软件和2012比大体相同,由于对于VS2017的不了解,所以在程序开始的头文件的设定上我就询问了很久,才知道需要这么多位置的头文件。由于最近我重新学习了第一学期的C语言基础,和第二学期的数据结构与算法,所以我还有些沾沾自喜以为自己会比较有优势,事实上我什么都不知道,对于GITHUB,VS2017这两款相照应的应用毫不了解,所以我们应该时时学习,才不会被淘汰,落后。

---恢复内容结束---
浙公网安备 33010602011771号