第二次作业-熟悉使用工具

第二次作业-熟悉使用工具 

GIT地址我的Github 
GIT用户名 www1222
学号后五位 62111
博客地址 https://www.cnblogs.com/Abbas/
作业链接 第二次作业-熟悉使用工具
参考博客

https://www.cnblogs.com/huashengmi/p/9733199.html

 https://www.cnblogs.com/luomei/

参考Github地址https://github.com/Sranmi/Calculation

  

 

 

 

 

 

 

 

 

 

 

 

1.配置环境

1.1配置vs2017

打开vs2017的时候出现了登陆过期的提醒,于是卸载重新进行了一次安装。安装时勾选有关c#的相关组件,更改默认安装路径。

1.2配置Github

在所提供的网站中下载Github,出现错误,如图。

进行多次尝试后,仍旧无法解决,后来在腾讯的电脑软件中下载成功。

2.克隆项目

2.1注册Github

在 https://github.com/join 申请注册 Github 账号。在 https://github.com/login 处账号登陆。

2.2拷贝Calculator

根据作业导读中的提示,将阿超的Calculator拷贝到自己的仓库中,如图。

3.代码设计

3.1题目背景

阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。

作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:

  • 程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0100 之间,运算符在 2 个 到 3 个之间。
  • 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
  • 练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。
  • 当程序接收的参数为4时,以下为一个输出文件示例。

    13+17-1=29
    11*15-5=160
    3+10+4-16=1
    15÷5+3-2=4

 3.2代码设计具体思路

1.计算数和运算符的存储:将计算数分子分母分别存入一个二维数组中,运算符存入字符数组。

2.在主函数实现大致过程:用户参数及相关内容输入,调用生成题目及答案函数,并调用查重函数,生成相应r,n的题目和答案并使用数据流存入txt文件中。

3.在计算过程中负号运算时,若有负数生成,则题目重新生成

4.真分数除了将分子大于分母的约分成a'b/c的形式之外,还要注意约分。 a/b :若a>b,则输出形式为 a/b‘ a%b/b

5.运算符不超过三个,即计算式不超过4个,第一个和最后一个不为0,中间两个数字由随机数(0,1)决定有无,运算符则由计算数的数量决定。

6.生成的题目及答案存入指定目录下的subject.txt文件。

class Program
    {
        private
        static void Main(string[] args)
        {
            int r = 10;
            int n = 1;
            int[] result = new int[2];
            Console.WriteLine("请输入生成题目的数量");
            string nn = Console.ReadLine();
            while (int.TryParse(nn, out n) == false)
            {
                Console.WriteLine("输入有误,请重新输入数字");
                nn = Console.ReadLine();
            }
            Console.WriteLine("请输入题目中数值的范围");
            nn = Console.ReadLine();
            while (int.TryParse(nn, out r) == false)
            {
                Console.WriteLine("输入有误,请重新输入数字");
                nn = Console.ReadLine();
            }
            calculation c = new calculation();
            int[][] ic = new int[n][];//n个计算式中计算数的和数
            for (int i = 0; i < n; i++)
            {
                string a = c.GetProblem(r, ref result, ref ic[i]);
                for (int j = 0; j < i; j++)
                {
                    if (ic[j] == ic[i])
                        a = "重新生成";
                }
                while (a == "重新生成")
                {
                    a = c.GetProblem(r, ref result, ref ic[i]);
                    for (int j = 0; j < i; j++)
                    {
                        if (ic[j] == ic[i])
                            a = "重新生成";
                    }
                }
                //将题目存入subject.txt中,可追加
                using (StreamWriter sw = new StreamWriter(@"D:\Github\Calculation\test\subject.txt", true))
                {
                    sw.WriteLine(i + ".四则运算题目 " + a);
                }
                //将答案存入subject.txt
                using (StreamWriter sw = new StreamWriter(@"D:\Github\Calculation\test\subject.txt", true))
                {
                    if (result[0] == 0 || result[1] == 1)
                        sw.WriteLine(i + ".答案 " + result[0].ToString());
                    else
                        sw.WriteLine(i + ".答案 " + result[0].ToString() + "/" + result[1].ToString());
                }
            }
            Console.ReadKey();
        }
    }

ps:以上内容参考地址 https://www.cnblogs.com/huashengmi/p/9733199.html

 4.代码提交

ps:参照博客地址 https://www.cnblogs.com/luomei/ ,实现push。

5.测试过程及效能工具的体验

5.1单元测试

1.根据指导方法中,添加引用,如图。

接着点击测试选项,运行,出现如图。

 

显示测试通过。

ps:上述参考内容 https://www.cnblogs.com/dreamq/p/5299080.html

5.2回归测试

增加判定条件,使得只有俩正数相加,才出现正确结果,其他情况均为0。测试如图

5.3效能工具

按照指导方案的步骤,如图。

 

 6.感想

 这次作业真的太难了,首先光题目要求就看了很多遍,才大致搞清楚需要做些什么。对编程真的太不熟悉了,以前没有完完整整的从头自己写代码,这次一上来,的确就懵了,代码是参照网上其他人写的博客中的。后续的测试代码,为了方便测试,编写了简单的函数进行测试。对git的不熟悉,导致push多次才上传成功代码。此外,英语真的太重要了,很多内容都看不懂,希望以后有所好转吧。。。

 

转载于:https://www.cnblogs.com/Abbas/p/10608131.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值