2022-09-25

 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常见错误,锻炼了思维的严密性,和完备性。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • [if !supportLists]1.[endif]以下哪个单词不是Java 的关键字( ) B A.stati...
    蔚蓝指明阅读 8,557评论 0 1
  • C语言经典例程100例 这篇文章主要介绍了C语言经典例程100例,经典c程序100例,学习c语言的朋友可以参考一下...
    縸_3354阅读 2,875评论 0 0
  • C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的 算法 题目:...
    Poison_19ce阅读 4,974评论 0 0
  • 网址:https://www.cnblogs.com/pengmn/p/8057049.html 【程序1】题目:...
    疋瓞阅读 3,003评论 0 0
  • 一,二题,用if else和if比较两数大小, 1.明确需求 (和客户沟通:将不确定变成选择题,给客户议, 但不帮...
    d9f29662cc0b阅读 3,196评论 0 0

友情链接更多精彩内容