C语言课程设计—多功能计算器(文章内含全代码)
C语言多功能计算器,多功能,包括查看历史记录。直接按对应按键就能进入功能,不需要敲回车。
·
C语言多功能计算器,多功能,包括查看历史记录
运行如图所示
直接按对应按键就能进入功能,不需要敲回车
简易型功能如下
科学型功能如下
随便挑一个功能演示
历史记录功能如下
直接上代码
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include<math.h>
#include <ctype.h>
#include <string.h>
double vect[10000];
int indx = 0;
char choice;
void menu(void);
void Emenu(void);
void Kmenu(void);
void Hmenu(void);
void jia(void);
void jian(void);
void cheng(void);
void chu(void);
void zhengxian(void);
void yuxian(void);
void zhengqie(void);
void xy(void);
void ln(void);
void log(void);
void jiecheng(void);
void fengmu(void);
void lifang(void);
void pingfang(void);
double num1, num2, result;
unsigned long long factorial(int n);
int main()
{
menu();
}
void menu(void)
{
system("cls");
printf("简易型<j> 科学型<k> 历史记录<h> 退出<x> \n");
choice = getch();
if(choice == 'j')
{
Emenu();
}
else if(choice == 'k')
{
Kmenu();
}
else if(choice == 'h')
{
Hmenu();
}
else if(choice == 'x')
{
exit(0);
}
else if(choice !='k' && choice !='h' && choice !='x' && choice !='j')
{
printf("别乱按,扣1复活\n\n");
choice = getch();
if(choice == '1')
{
menu();
}
}
}
void Emenu(void)
{
system("cls");
printf("加<a> 减<s> 乘<m> 除<d> 向上<r> 退出<x>\n");
choice = getch();
if(choice == 'r')
{
menu();
}
if(choice == 'a')
{
jia();
}
if(choice == 's')
{
jian();
}
if(choice == 'm')
{
cheng();
}
if(choice == 'd')
{
chu();
}
else if(choice == 'x')
{
exit(0);
}
else if(choice !='a' && choice !='s' && choice !='m' && choice !='d'&& choice !='x')
{
printf("别乱按,扣1复活\n");
choice = getch();
if(choice == '1')
{
Emenu();
}
}
}
void Kmenu(void)
{
system("cls");
printf("正弦<i> 余弦<c> 正切<t> x^y<m> ln<e> log<s> n!<j> 1/x<d> 立方<u> 平方<p> 向上<r> 退出<x>\n");
choice = getch();
if(choice == 'r')
{
menu();
}
if(choice == 'i')
{
zhengxian();
}
if(choice == 'c')
{
yuxian();
}
if(choice == 't')
{
zhengqie();
}
if(choice == 'm')
{
xy();
}
if(choice == 'e')
{
ln();
}
if(choice == 's')
{
log();
}
if(choice == 'j')
{
jiecheng();
}
if(choice == 'd')
{
fengmu();
}
if(choice == 'u')
{
lifang();
}
if(choice == 'p')
{
pingfang();
}
else if(choice == 'x')
{
exit(0);
}
else if(choice !='i' && choice !='c' && choice !='t' && choice !='m'&& choice !='e' && choice !='s' && choice !='j'&& choice !='d' && choice !='u' && choice !='p'&& choice !='x')
{
printf("别乱按,扣1复活\n");
choice = getch();
if(choice == '1')
{
Kmenu();
}
}
}
void Hmenu(void)
{
system("cls");
printf("历史记录 向上<r>\n");
for(int i = 0;i < indx;i ++) printf("%lf \n",vect[i]);
choice = getch();
if(choice == 'r')
{
menu();
}
}
void jia(void)
{
system("cls");
printf("请输入第一个数: \n");
scanf("%lf",&num1);
printf("请输入第二个数: \n");
scanf("%lf",&num2);
result = num1 + num2;
vect[indx] = result;
indx += 1;
printf("相加的和为:%lf\n按r返回上一级\n",result);
choice = getch();
if(choice == 'r')
{
Emenu();
}
}
void jian(void)
{
system("cls");
printf("请输入第一个数: \n");
scanf("%lf",&num1);
printf("请输入第二个数: \n");
scanf("%lf",&num2);
result = num1 - num2;
vect[indx] = result;
indx += 1;
printf("相减的差为:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Emenu();
}
}
void cheng(void)
{
system("cls");
printf("请输入第一个数: \n");
scanf("%lf",&num1);
printf("请输入第二个数: \n");
scanf("%lf",&num2);
result = num1 * num2;
vect[indx] = result;
indx += 1;
printf("相乘的积为:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Emenu();
}
}
void chu(void)
{
system("cls");
printf("请输入第一个数: \n");
scanf("%lf",&num1);
printf("请输入第二个数: \n");
scanf("%lf",&num2);
result = num1 / num2;
vect[indx] = result;
indx += 1;
printf("相除的商为:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Emenu();
}
}
void zhengxian(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = sin(num1);
vect[indx] = result;
indx += 1;
printf("正弦值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void yuxian(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = cos(num1);
vect[indx] = result;
indx += 1;
printf("余弦值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void zhengqie(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = tan(num1);
vect[indx] = result;
indx += 1;
printf("正切值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void xy(void)
{
system("cls");
printf("请输入x的值: \n");
scanf("%lf",&num1);
printf("请输入y的值: \n");
scanf("%lf",&num2);
result = pow(num1,num2);
vect[indx] = result;
indx += 1;
printf("x的y次的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void ln(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = log10(num1);
vect[indx] = result;
indx += 1;
printf("lnx的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void log(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = log(num1);
vect[indx] = result;
indx += 1;
printf("logx的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void jiecheng(void)
{
int num3;
system("cls");
printf("请输入一个数: \n");
scanf("%d", &num3);
result = factorial(num3);
vect[indx] = result;
indx += 1;
printf("x的阶乘的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void fengmu(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = 1/num1;
vect[indx] = result;
indx += 1;
printf("1/x的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void lifang(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = num1*num1*num1;
vect[indx] = result;
indx += 1;
printf("x立方的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
void pingfang(void)
{
system("cls");
printf("请输入一个数: \n");
scanf("%lf",&num1);
result = num1*num1;
vect[indx] = result;
indx += 1;
printf("x平方的值:%lf\n按r返回上一级,按其余键退出\n",result);
choice = getch();
if(choice == 'r')
{
Kmenu();
}
}
unsigned long long factorial(int n)
{
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)