简易计算器 (C语言)作业

从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分



  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值