天天看点

软件工程第一次作业

一、背景

    阿超有个儿子上小学二年级,老师每天让家长给孩子出30道加减法题,虽然不多,但是每天都做也算是个负担,阿超作为一个老牌程序员当然想用计算机来解决这个小问题,目前对于这个问题对于任何语言都不是问题,比如:

      C/C++、C#、Java、Python、VB、JavaScript、Perl……

    具体要求如下:

  • 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
  • 除了整数外,还要支持真分数的四则运算

    请大家用任何一种自己擅长的语言来编写这段程序,并把程序的介绍和自己编写的过程写一个博客

二、分析

   (一) 自己擅长的是c语言,准备用c语言,支持真分数运算,如果用C语言,我们可以这么考虑,a,b,c,d随机生成。可以生成菜单,然后选择自己想要的运算,加减乘除四则运算均可以。

(二)当进行一次运算之后可以实现选择选择查看答案或者是进行下一题。然后可以进行不同的操作。

(三)输入一个数,知道出题的数目,随机产生的题数目,多输也会提示输入错误。

三、代码部分

我用的是C语言写的:

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

main()

{

int a,b,op,os;

printf(" [小学生四则运算]\n");

aq1: printf("选择您想挑战的运算法则\n");

printf("1.加法 2.减法 3.乘法 4.除法\n");

scanf("%d",&op);

switch(op)

aq: case 1:

srand((unsigned)time(NULL));

a=rand()%100+1;b=rand()%100+1;

printf("题目为:%d + %d = ?\n\n",a,b);

printf("1.查看答案 2.做下一题\n");

scanf("%d",&os);

if(os==1)

{printf("%d + %d =%d\n\n\n",a,b,a+b);

goto aq1;

}

else

goto aq;

break;

at: case 2:a=rand()%100+1;b=rand()%100+1;

printf("题目为:%d - %d = ?\n\n",a,b);

{printf("%d - %d =%d\n\n\n",a,b,a-b);

goto at;

aq2: case 3:

printf("题目为:%d * %d = ?\n\n",a,b);

{printf("%d * %d =%d\n\n\n",a,b,a*b);

goto aq2;

aq3: case 4:

printf("题目为:%d / %d = ?\n\n",a,b);

{printf("%d / %d =%d\n\n\n",a,b,a/b);

goto aq3;