简易计算器 (C语言)作业
程序员文章站
2022-07-16 19:02:17
...
从Github下载
//
// ViewController.h
// SimpleCalculator
//
// Created by Mewlan Musajan on 11/2/17.
// Copyright (c) 2017 Mewlan Musajan. All Rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define V_STR0 "非法指令!%c"
#define V_STR1 "请输入两个整数,用空格隔开:"
#define V_STR2 "********简易计算器********%c"
#define V_STR3 "ADD%s加法%c"
#define V_STR4 "SUB%s减法%c"
#define V_STR5 "MUL%s乘法%c"
#define V_STR6 "DIV%s除法%c"
#define V_STR7 "MENU%s显示菜单%c"
#define V_STR8 "ETR%s重新输入两个整数%c"
#define V_STR9 "EXIT%s退出%c"
#define V_STRa "*************************%c"
#define V_STRb "请选择指令:"
#define V_STRc "执行加法运算, %d + %d = %d%c"
#define V_STRd "执行减法运算, %d - %d = %d%c"
#define V_STRe "执行乘法运算, %d * %d = %d%c"
#define V_STRf "执行除法运算,%d / %d = %0.3f%c"
#define V_STRg "iWillook SimpleCalculator [Version 1.0]%c(c) Copyright 2017 iWillook Inc. 保留所有权利。%c%c"
#define V_STRk "请输入两个整数:"
typedef enum command
{
add,
sub,
mul,
div_,
menu,
etr,
exit_
} CMD;
int a, b, c1;
float c2;
/***ViewModel***/
void menuView();
void starLine();
void cmdInputView();
void numInputView();
void addView();
void subView();
void mulView();
void div_View();
/***ViewController***/
void errViewCtrl();
void initailViewCtrl();
/***Controller***/
void numInputCtrl();
char * cmdInputCtrl();
void addCtrl();
void subCtrl();
void mulCtrl();
void div_Ctrl();
void selectFuncCtrl(char *cmd);
//
// ViewController.c
// SimpleCalculator
//
// Created by Mewlan Musajan on 11/2/17.
// Copyright (c) 2017 Mewlan Musajan. All Rights reserved.
//
#include "ViewController.h"
/***ViewController***/
void initailViewCtrl()
{
printf(V_STRg, '\n', '\n', '\n');
printf(V_STR1);
numInputCtrl();
printf(V_STR2, '\n');
menuView();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
}
void errViewCtrl()
{
printf(V_STR0, '\n');
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
}
/***ViewModel***/
void menuView()
{
printf(V_STR3, "\t\t", '\n');
printf(V_STR4, "\t\t", '\n');
printf(V_STR5, "\t\t", '\n');
printf(V_STR6, "\t\t", '\n');
printf(V_STR7, "\t\t", '\n');
printf(V_STR8, "\t\t", '\n');
printf(V_STR9, "\t\t", '\n');
starLine();
}
void starLine()
{
printf(V_STRa, '\n');
}
void cmdInputView()
{
printf(V_STRb);
}
void numInputView()
{
printf(V_STRk);
}
void addView()
{
printf(V_STRc, a, b, c1, '\n');
}
void subView()
{
printf(V_STRd, a, b, c1, '\n');
}
void mulView()
{
printf(V_STRe, a, b, c1, '\n');
}
void div_View()
{
printf(V_STRf, a, b, c2, '\n');
}
/***Controller***/
void numInputCtrl()
{
scanf("%d %d", &a, &b);
}
void addCtrl()
{
c1 = a + b;
}
void subCtrl()
{
c1 = a - b;
}
void mulCtrl()
{
c1 = a * b;
}
void div_Ctrl()
{
c2 = a / b;
}
char * cmdInputCtrl()
{
char cmd[8];
scanf("%s", cmd);
return(cmd);
}
void selectFuncCtrl(char *cmd)
{
CMD _cmd;
strupr(cmd);
if (strcmp(cmd, "ADD") == 0)
{
_cmd = add;
} else if (strcmp(cmd, "SUB") == 0)
{
_cmd = sub;
} else if (strcmp(cmd, "MUL") == 0)
{
_cmd = mul;
} else if (strcmp(cmd, "DIV") == 0)
{
_cmd = div_;
} else if (strcmp(cmd, "MENU") == 0)
{
_cmd = menu;
} else if (strcmp(cmd, "ETR") == 0)
{
_cmd = etr;
} else if (strcmp(cmd, "EXIT") == 0)
{
_cmd = exit_;
} else {
errViewCtrl();
}
switch (_cmd)
{
case add:
addCtrl();
addView();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
break;
case sub:
subCtrl();
subView();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
break;
case mul:
mulCtrl();
mulView();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
break;
case div_:
div_Ctrl();
div_View();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
break;
case menu:
starLine();
menuView();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
break;
case etr:
numInputView();
numInputCtrl();
cmdInputView();
selectFuncCtrl(cmdInputCtrl());
break;
case exit_:
exit(0);
break;
default:break;
}
}
//
// main.c
// SimpleCalculator
//
// Created by Mewlan Musajan on 11/2/17.
// Copyright (c) 2017 Mewlan Musajan. All Rights reserved.
//
#include "ViewController.h"
int main(int argc, char const *argv[])
{
initailViewCtrl();
return 0;
}
C语言阶段考核一
要求完成个人项目:简易计算器
分值:10分
功能要求:
1、 功能菜单的显示
2、 可以不断重复选择不同的指令,直到程序退出为止。
3、 实现两个数的加法,减法,乘法,除法四种运算
4、 可以重新输入新的操作数
5、 如果输入菜单之外的指令,系统提示“非法指令”
6、 功能截图为参考,不一定完全一样,可以进行优化
考核分数和标准:
l 总分10分
l 代码:4分
l 代码解释和提问:6分
上一篇: ArcGIS批量栅格影像归一化操作
下一篇: C#简单计算器源码