本人的一个简单的作品(学校作业),第一次发文,由于本人水平不足,所以未加过多注释,好多地方也达不到最好请大家多多指正。
简易计算器,可以进行简单的加减乘除运算,也可以进行矩阵的复杂运算(如矩阵和差,求逆矩阵等)和三角函数的计算等。
源代码如下:
#define M 20
#define N 20
#include
#include
#include
#include
#include
void jianyimenu();
void juzhenmenu();
void sanjiaohanshumenu();
void twodimesionalarray();
void nijuzhen();
void shuchengjuzhen();
void zhuanzhijuzhen();
void shangsanjiaohua();
void sinhanshu();
void coshanshu();
void tanhanshu();
int main()
{
while(1)
{
int xuanxiang;
printf("--------------------------------\n");
printf("* 欢迎使用科学计算器 *\n");
printf("--------------------------------\n");
printf("* 请选择你想使用的功能: *\n");
printf("* 1 简易功能计算器 *\n");
printf("* 2 矩阵计算器 *\n");
printf("* 3 三角函数计算器 *\n");
printf("* 4 退出程序 *\n");
printf("--------------------------------\n");
printf("请输入选项:");
scanf("%d",&xuanxiang);
switch(xuanxiang)
{
case 1:
{
jianyimenu();
break;
}
case 2:
{
juzhenmenu();
break;
}
case 3:
{
sanjiaohanshumenu();
break;
}
case 4:
printf("----------感谢您使用本系统----------");
exit(0);
default:
printf("\n-----选择错误,请重试-------\n");
break;
}
}
}
void jianyimenu()
{
int select;
printf("--------------------------------\n");
printf("* 欢迎使用简易计算器 *\n");
printf("--------------------------------\n");
printf("* 请选择你想使用的功能: *\n");
printf("* 1 加法 *\n");
printf("* 2 减法 *\n");
printf("* 3 乘法 *\n");
printf("* 4 除法 *\n");
printf("* 5 取模 *\n");
printf("* 6 返回主菜单 *\n");
printf("--------------------------------\n");
printf("输入菜单项:\n");
scanf("%d",&select);
switch (select)
{
case 1:
{
float num1,num2;
printf("做加法。\n");
printf("输入两个数,逗号分隔。\n");
scanf("%f,%f",&num1,&num2);
printf("%.2f+%.2f=%.2f\n",num1,num2,num1+num2);
break;
}
case 2:
{
float num1,num2;
printf("做减法。\n");
printf("输入两个数,逗号分隔。\n");
scanf("%f,%f",&num1,&num2);
printf("%.2f-%.2f=%.2f\n",num1,num2,num1-num2);
break;
}
case 3:
{
float num1,num2;
printf("做乘法。\n");
printf("输入两个数,逗号分隔。\n");
scanf("%f,%f",&num1,&num2);
printf("%.2f*%.2f=%.2f\n",num1,num2,num1*num2);
break;
}
case 4:
{
float num1,num2;
printf("做除法。\n");
printf("输入两个数,逗号分隔。\n");
scanf("%f,%f",&num1,&num2);
printf("%.2f/%.2f=%.2f\n",num1,num2,num1/num2);
break;
}
case 5:
{
float num1,num2;
printf("取模运算。\n");
printf("输入两个数,逗号分隔。\n");
scanf("%f,%f",&num1,&num2);
printf("%.2f%%%.2f=%.2f\n",num1,num2,fmod(num1,num2));
break;
}
case 6:
{
break;
}
}
return 0;
}
void juzhenmenu()
{
int select;
printf("--------------------------------\n");
printf("* 欢迎使用矩阵计算器 *\n");
printf("--------------------------------\n");
printf("* 请选择你想使用的功能: *\n");
printf("* 1 求逆矩阵 *\n");
printf("* 2 二维矩阵的和差计算 *\n");
printf("* 3 矩阵的上三角化 *\n");
printf("* 4 数乘矩阵 *\n");
printf("* 5 转置矩阵 *\n");
printf("* 6 返回主菜单 *\n");
printf("--------------------------------\n");
printf("输入菜单项:\n");
scanf("%d",&select);
switch (select)
{
case 1:
{
nijuzhen();
break;
}
case 2:
{
twodimesionalarray();
break;
}
case 3:
{
shangsanjiaohua();
break;
}
case 4:
{
shuchengjuzhen();
break;
}
case 5:
{
zhuanzhijuzhen();
break;
}
case 6:
{
break;
}
}
return 0;
}
void nijuzhen()
{
float A[M][N];
float B[M][N];
float C[M][N];
int i,j,m,n,p,q;
float y=1.0;
float a[M][2*M];
float b[N][2*N];
float t,x;
int k,T;
printf("输入方阵的维数:\n"); //请输入方阵,即行和列相等的矩阵。
scanf("%d",&T);
printf("请输入矩阵:\n");
for(i=0;i
感谢阅读,让我们一起加油~