zoukankan      html  css  js  c++  java
  • 2016学年第一学期软件工程第二次作业

    这是本学期第二次作业,属于个人练习项目。

    题目:编写一个能对0--10之间的整数进行四则运算的“软件”
          程序能接收用户输入的整数答案,并判断对错
          程序结束时,统计出答对、答错的题目数量。
    补充说明:0——10的整数是随机生成的
              用户可以用键盘输入来选择四则运算中的一种,比如输入1代表加法运算
              用户用键盘输入一个字符来结束程序的运行并显示统计结果,比如输入e程序结束并显示统计结果
              编程语言不限制,命令行输出和图像界面输出都可以。
    
    要求:要有需求分析,具体设计思路,代码实现,测试,书中PSP耗时分析,总结。
          以上内容都写到博客中,代码也写到博客中,要求写程序时要有屏幕截图,最后把测试的界面也截图发到博客上,PSP表也截图到博客上。
    
    打分说明:作业满分10分,迟交的0分,不交作业和抄袭的-10。10分包括:把代码提交到github(1分),需求分析(1.5分),具体设计思路(1.5分),代码实现(1分),测试(1分),书中PSP耗时分析(1.5分),总结(1.5分),代码是否规范(1分)
    
    作业提交截止时间为10月6日23:00,做完后把你的博客链接和github链接发的QQ群里,另外也要给助教的qq发一下。
    
    github提交教程:http://www.cnblogs.com/math/p/4633472.html
    
    我会把每次作业的完成情况统计完发到我的博客和QQ群里,敬请关注!
    
    思考题(1分):如果用户要求处理的范围是0——100,程序应该如何设计才能很轻松的应对扩展性。
    附加题(3分):程序能处理用户的错误输入,比如用户输入一个小数或一个字符。
    
    思考题和附加题都是加分题,做这两题的可以获得相应的加分。
    
    作业样例,我是用C语言写的,仅供参考。有两个文件,一个是head.h,另一个是calculate.c
    head.h的代码如下:
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<time.h>
     4 int  Add(int *,int *);      //加法函数,实现加法功能
     5 int  Sub(int *,int *);      //
     6 int  Mul(int *,int *);      //
     7 int  Div(int *,int *);
     8 int  Calculate();           //计算函数,判断是哪种计算并调用相关函数
     9 int RandNum(int max,int min);//生成随机数
    10 void JudgeHint(int rightOrfault);//输出判断对错
    11
    12 int Calculate()
    13 {
    14     int    right=0;     //统计做对多少道题
    15     int    fault=0;     //统计做错多少道题
    16     char   type=' ';    //接收用户要生成的运算类型
    17     printf("请选择要进行那种运算\n
    18             输入 + 号表示选择加法\n
    19             输入 - 号表示选择减法\n
    20             输入 * 号表示选择乘法\n
    21             输入 / 号表示选择除法\n
    22             输入 e 表示结束程序\n
    23             ");
    24     scanf("%d\n",&type);
    25     while(type!='e')
    26     {
    27         scanf("%d\n",&type);
    28         if(type=='+')
    29         {
    30             //把变量right和fault的地址传递给函数Add,&是取地址符
    31             //指针其实就是地址
    32             Add(&right,&fault);
    33         }
    34         else if(type=='-')
    35         {
    36             // to do sub
    37         }
    38         else if(type=='*')
    39         {
    40             // to do mul
    41         }
    42         else if(type=='/')
    43         {
    44             // to do div
    45         }
    46     }
    47     printf("您共答对%d道题,答错%d道题\n",right,fault);
    48     return 0;
    49 }
    50
    51
    52 int Add(int *right,int *fault)//函数的参数是两个指针,分别用来统计正确和错误的题数
    53 {
    54     int answer;
    55     int a,b,sum;
    56     a=RandNum(10,0);
    57     b=RandNum(10,0);
    58     sum=a+b;
    59     printf("加法运算:%d + %d = ",a,b);
    60     scanf("%d",&answer);
    61     if(sum==answer)//回答正确,*right加一,否则*fault加一
    62     {
    63         //right是一个指向整数的指针参数,*right表示right指向的
    64         //内存单元的值,在其他编程语言中指针也叫引用。
    65         (*right)++;
    66         JudgeHint(1);
    67     }
    68     else
    69     {
    70         (*fault)++;
    71         JudgeHint(0);
    72     }
    73     return 0;
    74 }
    75
    76 int RandNum(int max,int min)
    77 {
    78     int randNumber;
    79     srand((unsigned)time(NULL));//产生随机种子
    80     randNumber=rand()%(max-min+1)+min;//生成想要的随机数
    81     return randNumber;
    82 }
    83
    84 void JudgeHint(int rightOrfault)
    85 {
    86     if(rightOrfault==1)
    87         printf("回答正确!\n");
    88     else if(rightOrfault==0)
    89         printf("回答错误!\n");
    90 }
    
    calculate.c的代码如下:
     1 #include "head.h"
     2 int main(int argc,char* argv[])
     3 {
     4     Calculate();
     5     return 0;
     6 }
    

    推荐一本书《UNIX编程艺术》,可以从你们图书馆借来看看。

  • 相关阅读:
    Data Base mysql备份与恢复
    java 乱码问题解决方案
    【知识强化】第二章 物理层 2.1 通信基础
    【知识强化】第二章 进程管理 2.2 处理机调度
    【知识强化】第二章 进程管理 2.1 进程与线程
    【知识强化】第一章 操作系统概述 1.3 操作系统的运行环境
    【知识强化】第一章 网络体系结构 1.1 数据结构的基本概念
    【知识强化】第一章 网络体系结构 1.2 计算机网络体系结构与参考模型
    【知识强化】第一章 网络体系结构 1.1 计算机网络概述
    【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  • 原文地址:https://www.cnblogs.com/gmailcs/p/4832433.html
Copyright © 2011-2022 走看看