【C语言】 “小小计算器”基本功能实现 您所在的位置:网站首页 5的指数形式 【C语言】 “小小计算器”基本功能实现

【C语言】 “小小计算器”基本功能实现

2023-08-26 08:15| 来源: 网络整理| 查看: 265

先放一张最终成果图

 以下为具体的基本功能实现要求,大伙可以自由跳转到需要的地方观看,源码放在了文末

目录

实验1、“小小计算器”基本功能实现(1) 

实验2、“小小计算器”基本功能实现(2)

​​​​​​​实验3、“小小计算器”基本功能实现(3) 

​​​​​​​实验4、小小计算器”基本功能实现(4)

​​​​​​​实验5、“小小计算器”基本功能实现(5)

​​​​​​​实验6、“小小计算器”基本功能实现(6)

​​​​​​​实验7、“小小计算器”基本功能实现(7)

​​​​​​​实验8、“小小计算器”基本功能实现(8)

​​​​​​​实验9、“小小计算器”基本功能实现(9)

​​​​​​​实验10、“小小计算器”基本功能实现(10)

​​​​​​​实验11、“小小计算器”基本功能实现(11)

​​​​​​​实验12、“小小计算器”基本功能实现(12)

​​​​​​​实验13、“小小计算器”输出结果链表存储(13)

以下为源码片段

以下为源码下载链接:

实验1、“小小计算器”基本功能实现(1) 

(1)实验目的

通过该实验,让学生理解程序和程序设计的含义,掌握C语言的基本概念以及一个C程序的组成要素,熟悉VC开发环境的基本操作,掌握VC环境下开发程序的操作流程,对printf函数的简单使用有个感性认识。

(2)实验内容

编写程序,在屏幕上输出以下内容:

     **************************

*        小小计算器       *

**************************

​​​​​​​实验2、“小小计算器”基本功能实现(2)

(1)实验目的

通过该实验,进一步让学生熟练掌握printf函数的功能,能实现显示不同类型的数据,让学生掌握基本数据类型、变量的命名和常量的定义的概念,能熟练掌握变量和常量使用。

(2)实验内容

编程实现以下功能:

①  在屏幕上输出

            ***********************************

            *          小小计算器             *

            *          1 加法                 *

            *          2 减法                 *

            *          3 乘法                 *

            *          4 除法                 *

            *          5 取模运算             *

            *          6 计算圆面积           *

            ***********************************

② 定义几个变量,并赋初值,分别进行加法、加法、乘法、除法、取模运算;

③ 定义常量PI等于3.14, 计算给定半径的圆面积,将计算结果分别赋值给一个double类型和int类型的变量,掌握C中的数据类型转换,并将各个计算结果在屏幕上输出。

(3)验收/测试用例

假设程序中定义变量并赋初始值如下:

int a=8, b=2, c=0, r=2;

double t;

程序运行后,在屏幕上输入如下:

    a+b的结果是:10

    a-b的结果是:6

    a*b的结果是:16

    a/b的结果是:4

    圆面积整数结果是12

    圆面积是12.560 000

​​​​​​​实验3、“小小计算器”基本功能实现(3) 

(1)实验目的

通过该实验,进一步掌握printf和scanf函数的应用,加深对C中数据类型转换的理解。

(2)实验内容

在实验2的基础上,实现用scanf从键盘上输入数据,进行相应的运算,并将结果在屏幕上输出。要求实现加法、减法和取模运算时,输入数据类型为整数,并将运算结果的10进制、8进制和16进制形式输出;乘法、除法运算的输入数据均为float,计算结果分别以小数形式和指数形式输出;求圆面积输入的数据类型为double,正常输出结果,同时还要求在输出要求保留两位小数的结果。

在实验过程中,要求结合课本把scanf和printf的各种形式的格式控制都要练习到,从而掌握这两个函数的使用。

(3)验收/测试用例

加法

输入:   5, 15

输出:   加法结果的十进制形式是:20

         加法结果的八进制形式是:24

加法结果的十六进制形式是:14

减法

输入:   5, 15

输出:   减法结果的十进制形式是:-10

         减法结果的八进制形式是:3777777766

减法结果的十六进制形式是:fffffff6

取模

输入:   10, 7

输出:   取模结果的十进制形式是:3

         取模结果的八进制形式是:3

取模结果的十六进制形式是:3

乘法

输入:   2000.5,6

输出:   乘法结果的小数形式是:12003.000000

         乘法结果的指数形式是:1.200300e+004

除法

输入:   120,6

输出:   除法结果的小数形式是:20.000000

         除法结果的指数形式是:2.000000e+001

求圆面积

输入:   2

输出:   该圆面积是12.560000

该圆面积保留两位小数的结果是12.56

​​​​​​​实验4、小小计算器”基本功能实现(4)

(1)实验目的

通过该实验,掌握C中的if控制语句的使用,熟练应用取模运算。

(2)实验内容

编程实现以下功能:

①  在屏幕上输出

            ***********************************

            *          小小计算器             *

            *          1 加法                 *

            *          2 减法                 *

            *          3 乘法                 *

            *          4 除法                 *

            *          5 判断数字的位数       *

            *          6 计算圆面积           *

            ***********************************

② 除法运算时,如果输入的第二个数(除数)为0,给出提示,显示计算结果。

③ 输入一个正整数,要求在三位以内(含三位),求出这个数是几位数,并输出每一位数字。

(3)验收/测试用例

除法

输入:   120,6

输出:   除法结果是:20.000000

输入:   120,0

输出:   除数为0,无法进行除法运算

判断数字的位数

输入:   -120

输出:   要求输入的数为正整数

输入:   1000

输出:   要求输入的数为3位以内的正整数

输入:   123

输出:   该数为3位数,百位是1,十位是2,个位是3         

输入:   78

输出:   该数为2位数,十位是7,个位是8        

​​​​​​​实验5、“小小计算器”基本功能实现(5)

(1)实验目的

通过该实验,掌握C中if语句和switch多分枝语句,特别是对switch语句中的break和default的理解。

(2)实验内容

① 在“小小计算器”基本功能实现(4) 的基础上,用switch多分枝语句进行计算器操作选择,根据菜单提示,输入一个数字,进行对应的操作。

② 扩充计算器功能,添加判断输入的年是否是闰年

*          7 判断闰年           *

③ 扩充计算器功能,添加成绩转换功能

*          8 成绩转换           *

   从键盘上输入一个百分制的成绩,输出对应的等级成绩。

   100 — 90   ——> 优秀

   80  — 89   ——> 良

   70  — 79   ——> 中

   60  — 69   ——> 及格

   0   — 59   ——> 不及格

(3)验收/测试用例

判断闰年

输入:2000

输出:2000年是闰年

输入:2013

输出:2000年是平年

成绩转换

输入:-10或101

输出:成绩输入错误

输入:88

输出:良

​​​​​​​实验6、“小小计算器”基本功能实现(6)

(1)实验目的

通过该实验,使学生掌握C中的循环语句的使用。

(2)实验内容

编程实现以下功能:

①  在屏幕上输出

            ***********************************

                     小小计算器            

                     1 加法                

                     2 减法                

                     3 乘法                

                     4 除法                

                     5 判断数字的位数     

                     6 计算圆面积                

                     7 判断闰年                             

                     8 成绩转换                              

                     9 计算从1到输入数之间的奇数和 (for)         

                     10 计算从1到输入数之间的偶数和 (while)         

                     11 输出从1到输入数之间所有3的倍数 (do-while)         

                     12 求即被3整除又被5整除的数         

                     13 求水仙花数

14 退出

            ***********************************

② 利用循环语句,将实验5“小小计算器”基本功能实现(5)改造只有选择退出操作,程序才结束,否则执行一个操作后,提示用户进行下一个操作的输入;

③ 增加功能:

“ 9 计算从1到输入数之间的奇数和 (for)”

从键盘上输入一个正整数,输出1到该数之间所有奇数和。要求用for循环语句实现。

“10 计算从1到输入数之间的偶数和 (while)”

从键盘上输入一个正整数,输出1到该数之间所有偶数和。要求用while语句实现。

“11 输出从1到输入数之间所有3的倍数 (do-while)”

从键盘上输入一个正整数,输出1到该数之间所有3的倍数。要求用do-while实现。

“12 求即被3整除又被5整除的数”

从键盘上输入两个数,输出两个数之间第一个即被3整除又被5整除的数。

    “13 求水仙花数”

    输出所有水仙花数。水仙花数是一个3位数,各位数字的立方之和等于他本身,例如:153= 13+53+33。

​​​​​​​实验7、“小小计算器”基本功能实现(7)

(1)实验目的

通过该实验,让学生理解掌握C语言中函数的概念,能够编写带参数的函数,掌握函数参数的概念,能够掌握传递数值和传递地址两种参数形式的区别。

(2)实验内容

在实验6的基础上,将小小计算器中的各个操作抽取成函数,在switch语句中,根据输入的操作,调用对应的函数。

扩充小小计算器的功能

  “14 求最大值”

   编写一个带两个参数的函数,该函数返回这两个参数的最大值。输入两个整数,输出他们的最大值。

  “15 求最大最小值”

   编写一个带两个参数的函数,该函数能求出这两个数的最大值和最小值,使得第一个参数存放最大值,第二个参数存放最小值。要求练习传递地址的参数。

​​​​​​​实验8、“小小计算器”基本功能实现(8)

(1)实验目的

通过该实验,使学生理解掌握C语言中数组的概念,能够灵活应用数组。

(2)实验内容

在实验7 “小小计算器”基本功能实现(7)的基础上,扩充以下功能:

“16 冒泡排序”

   从键盘上输入10个数,进行冒泡排序,输出排序结果。

“17 矩阵转置”

从键盘输入一个3X4的整数矩阵,进行转置操作,并将转置结果在屏幕上输出;

“18 求对角线和”

   从键盘输入一个3*3整数矩阵,求主对角线元素和;

​​​​​​​实验9、“小小计算器”基本功能实现(9)

(1)实验目的

通过该实验,使学生理解掌握C语言中字符串的概念,能够灵活应用数组。

(2)实验内容

在实验8 “小小计算器”基本功能实现(8)的基础上,扩充以下功能:

“19 统计单词个数”

从键盘输入一行字符,单词之间用空格分隔开,统计其中有多少个单词, 并输出结果。

​​​​​​​实验10、“小小计算器”基本功能实现(10)

(1)实验目的

通过该实验,使学生理解C中指针的概念。

(2)实验内容

在实验8的基础上,将功能“16 冒泡排序”的排序结果用指针形式来输出。扩充功能:

“20 静态创建链表”

静态创建一个包含有4个节点的单链表,输出这个链表的所有数据。节点包含两个域:数据域(int型),指针域。

“21 动态创建链表”

动态创建一个链表,依次从键盘上输入正整数,将输入的整数插入到该链表中,直到输入一个负数为止。最后将该链表中的数据在屏幕上输出。

​​​​​​​实验11、“小小计算器”基本功能实现(11)

(1)实验目的

通过该实验,使学生掌握C中结构体。

(2)实验内容

扩充小小计算器功能:

“22 学生成绩排序”

  定义学生结构体数组,长度为10,依次输入这十个学生的学号、姓名、成绩,利用冒泡排序,对这10个学生排序,从小到大输出这10个学生的信息,然后输出10个学生的总成绩和平时成绩

​​​​​​​实验12、“小小计算器”基本功能实现(12)

(1)实验目的

通过该实验,使学生掌握C语言对文件的操作。

(2)实验内容

扩充小小计算器功能:

“23 学生成绩普涨10分”

  d盘根目录下存在一个文本文件my.txt,里面存放了10个学生的成绩,一行一个成绩,从文件中读取学生的成绩,每个成绩都加10分后,保存到原文件中。

提示:

注意d:\my.txt在fopen中如何表示;—> “d:\\my.txt”文件打开方式 —> r+从文件中读取数据,直到文件结束,如何判断文件结束—> feof()将增加10后的数据保存到原文件时,要保证从文件头开始,如何使文件指针回到文件头—> rewind()在写数据时,一定要避免在最后一个数据写完后,再写一个回车,否则下次在操作时可能出错。

​​​​​​​实验13、“小小计算器”输出结果链表存储(13)

(1)实验目的

通过该实验,使学生掌握C中链表。

(2)实验内容

扩充小小计算器功能:

“24 学生成绩链表”

  创建一个链表,按照实验12读取10个学生成绩后,将10个学生的总成绩存入链表,并依次完成链表初始化、遍历、节点查找、插入、删除、清空

以下为源码片段 /*若编译出现错误: [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode 请更换C99标准进再行编译*/ #include #define PI 3.14 //定义常量PI void function_1(void); void function_2(void); void function_3(void); void function_4(void); void function_5(void); void function_6(void); void function_7(void); void function_8(void); void function_9(void); void function_10(void); void function_11(void); void function_12(void); void function_13(void); int function_14(int a, int b); void function_15(int *a,int *b); void function_16(void); void function_17(void); void function_18(void); void function_19(void); int main(){ printf("***************************************************************\n\ * 小小计算器 *\n\ * 1 加法 *\n\ * 2 减法 *\n\ * 3 乘法 *\n\ * 4 除法 *\n\ * 5 判断数字的位数 *\n\ * 6 计算圆面积 *\n\ * 7 判断闰年 *\n\ * 8 成绩转换 *\n\ * 9 计算从1到输入数之间的奇数和 (for) *\n\ * 10 计算从1到输入数之间的偶数和 (while) *\n\ * 11 输出从1到输入数之间所有3的倍数 (do-while) *\n\ * 12 求即被3整除又被5整除的数 *\n\ ***************************************************************\n\ * 13 求水仙花数 *\n\ * 14 求最大值 *\n\ * 15 求最大最小值 *\n\ * 16 冒泡排序 *\n\ * 17 矩阵转置 *\n\ * 18 求对角线和 *\n\ * 19 统计单词个数 *\n\ * 20 静态创建链表 *\n\ * 21 动态创建链表 *\n\ * 22 学生成绩排序 *\n\ * 23 学生成绩普涨10分 *\n\ * 24 学生成绩链表 *\n\ * 25 退出 *\n\ ***************************************************************"); label:printf("\n请选择您要进行的运算:"); /*int num1, num2, answer; //实验3定义的变量 float num3, num4, answer2; double R, S; int value, temp, bits, one_p, two_p, three_p; //实验4定义的变量 int year, score; //实验5定义的变量 long long int num5, answer3, o; //实验6定义的变量*/ int max, num1, num2; int choose;//getchar只能接收单个字符,不适合此时超越9个的switch选择 scanf("%d", &choose); switch(choose){ case 1: function_1(); break; case 2: function_2(); break; case 3: function_3(); break; case 4: function_4(); break; case 5: function_5(); break; case 6: function_6(); break; case 7: function_7(); break; case 8: function_8(); break; case 9: function_9(); break; case 10: function_10(); break; case 11: function_11(); break; case 12: function_12(); break; case 13: function_13(); break; case 14: scanf("%d %d", &num1, &num2); max = function_14(num1, num2); printf("最大值为:%d",max); break; case 15: scanf("%d %d", &num1, &num2); function_15(&num1, &num2); printf("最大值为:%d 最小值为:%d ", num1, num2); break; case 16: function_16(); break; case 17: function_17(); break; case 18: function_18(); break; case 19: function_19(); break; case 20: //**********所有的源码文件请在文末自取,此处源码并不完整************** case 21: case 22: case 23: case 24: case 25: return 0; default: printf("不存在此结果,请重新输入!!"); } goto label; } void function_1(){ int num1, num2, answer; scanf("%d %d", &num1, &num2); answer=num1+num2; printf("加法结果的十进制形式是:%d\n",answer); printf("加法结果的八进制形式是:%o\n",answer); printf("加法结果的十六进制形式是:%x",answer); } void function_2(){ int num1, num2, answer; scanf("%d %d", &num1, &num2); answer=num1-num2; printf("减法结果的十进制形式是:%d\n",answer); printf("减法结果的八进制形式是:%o\n",answer); printf("减法结果的十六进制形式是:%x",answer); } void function_3(){ float num3, num4, answer2; scanf("%f %f", &num3, &num4); answer2=num3*num4; printf("乘法结果的小数形式是:%f\n",answer2); printf("乘法结果的指数形式是:%e",answer2); } void function_4(){ float num3, num4, answer2; scanf("%f %f", &num3, &num4); if(num4==0){ printf("除数不能为0!!"); } else{ answer2=num3/num4; printf("除法结果的小数形式是:%f\n",answer2); printf("除法结果的指数形式是:%e",answer2); } } void function_5(){ int answer, value, temp, bits, one_p, two_p, three_p; scanf("%d", &value); if(value999){ printf("要要求输入的数为3位以内的正整数"); }else{ temp=value; //计算位数(bits) bits=0; for(int i=1;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有