C语言程序设计
课程设计报告
设计题目:简易计算器
专业 信息工程
班级 信工213
学生 刘康奇
学号 20211524307
指导教师 高伟增
[if !supportLists]一. [endif]问题描述
我做了一个简易的计算机,实现了以下功能:
[if !supportLists]1)[endif]实现了浮点数与整数的四则基本运算
[if !supportLists]2)[endif]实现了清屏功能
[if !supportLists]3)[endif]程序退出
[if !supportLists]二. [endif]解决思路
[if !supportLists]1)[endif]分析功能
[if !supportLists]2)[endif]利用函数将各个功能实现出来
[if !supportLists]3)[endif]Switch()case 解决加减乘除运算
[if !supportLists]4)[endif]判断是否继续进行运算
[if !supportLists]5)[endif]清屏重做system("cls");
[if !supportLists]6)[endif]主函数main由while,if语句实现
[if !supportLists]三. [endif]遇到问题
[if !supportLists]1)[endif]进行完一次运算后,再次进行接下来的运算
[if !supportLists]2)[endif]清屏函数
解决方法:
[if !supportLists]1)[endif]将第一次计算后的值保存下来,重新编写一个函数,将保存下来的数继续运算
[if !supportLists]2)[endif]Csdn搜索到清屏函数system(“cls”);
[if !supportLists]四. [endif]核心程序
#include<stdio.h>
#include<windows.h>
double z;
int m;
//浮点数运算
void suanshuyunsuanf()
{ char fh,hh1,hh2;
double num1,num2;
printf("输入:");
scanf("%lf%c%lf",&num1,&fh,&num2);
switch(fh){
case '+':z=num1+num2;break;
case '-':z=num1-num2;break;
case '*':z=num1*num2;break;
case '/':z=num1/num2;break;
default:printf("ERROR\n");
}
printf("\n结果:=%lf\n",z);
}
//整形运算
void suanshuyunsuani()
{ char fh,hh1,hh2;
int num1,num2;
printf("输入:");
scanf("%ld%c%ld",&num1,&fh,&num2);
switch(fh){
case '+':m=num1+num2;break;
case '-':m=num1-num2;break;
case '*':m=num1*num2;break;
case '/':m=num1/num2;break;
default:printf("ERROR\n");
}
printf("\n结果:=%ld\n",m);
}
//浮点数运算 ,当panduan为1时,才调用此函数
void suanshuyunsuanf2(){
double num2;
char fh;
printf("%lf",z);//之前计算的结果为第一个数字,接着与num2运算
rewind(stdin);
scanf("%c%lf",&fh,&num2);
switch(fh){
//将计算过的数重新赋值给z
case '+':z=z+num2;break;
case '-':z=z-num2;break;
case '*':z=z*num2;break;
case '/':z=z/num2;break;
default:printf("ERROR\n");
}
printf("\n结果是:%lf\n",z);
}
//整形运算 ,当panduan为1时,才调用此函数
void suanshuyunsuani2(){
int num2;
char fh;
printf("%ld",m);//之前计算的结果为第一个数字,接着与num2进行计算
rewind(stdin);
scanf("%c%ld",&fh,&num2);
switch(fh){
//讲计算过的数重新赋值给m
case '+':m=m+num2;break;
case '-':m=m-num2;break;
case '*':m=m*num2;break;
case '/':m=m/num2;break;
default:printf("ERROR\n");
}
printf("\n结果是:%ld\n",m);
}
//判断是否继续进行运算
void panduan(){
printf("是否继续进行运算?\n");
printf("1.是");
printf("0.否\n");
printf("请选择0或1>:");
}
//表达式运算
void biaodashiyunsuan(){
double num1,num2,num3;
char fh;
printf("输入:");
scanf("%lf%c%lf",&num1,&fh,&num2);
switch(fh){
case '+':num3=num1+num2;break;
case '-':num3=num1-num2;break;
case '*':num3=num1*num2;break;
case '/':num3=num1/num2;break;
default:printf("ERROR\n");
}
printf("结果:=%lf\n",num3);
}
//清屏
void qinping(){
system("cls");
}
//返回菜单
void fanhuicaidan(){
printf(" 菜单 \n");
printf("a.浮点型算术运算\n");
printf("i.整型算术运算\n");
printf("b.表达式运算\n");
printf("c.清屏重做\n");
printf("r.返回菜单\n");
printf("x.退出程序\n");
}
//main函数
int main(){
void suanshuyunsuanf();
void suanshuyunsuani();
void qinping();
void fanhuicaidan();
void suanshuyunsuanf2();
void suanshuyunsuani2();
void biaodashiyunsuan();
void panduan();
char num1,ch1;
int pd;
printf(" 菜单 \n");
printf("a.浮点型算术运算\n");
printf("i.整型算术运算\n");
printf("b.表达式运算\n");
printf("c.清屏重做\n");
printf("r.返回菜单\n");
printf("x.退出程序\n");
//开始
while(1)
{
rewind(stdin);//清除按键缓冲
printf("please choose a letter a,b,c,r,i or x:\n");
scanf("%c",&num1);
if(num1=='a')
{
suanshuyunsuanf();
panduan();
scanf("%d",&pd);
//为1时 继续运算 为0时 结束本次运算
while(pd){
suanshuyunsuanf2();
panduan();
scanf("%d",&pd);//输入1或0,选择是否继续运算
}
}
if(num1=='i')
{
suanshuyunsuani();
panduan();
scanf("%d",&pd);
while(pd){
suanshuyunsuani2();
panduan();
scanf("%d",&pd);//输入1或0,选择是否继续运算
}
}
if(num1=='b')
biaodashiyunsuan();
if(num1=='c')
qinping();
if(num1=='r')
fanhuicaidan();
if(num1=='x')
break;
}
}
[if !supportLists]五. [endif]总结
通过编写该程序,熟悉了C语言的基本语法,选择,循环等结构,深入练习了函数的调用方法,通过对程序的后期调试,熟悉了C常见错误,锻炼了思维的严密性,和完备性。