admin 管理员组

文章数量: 1086019


2024年5月17日发(作者:split电影主演)

攀枝花学院

学生课程设计(论文)

题 目:

简易计算器

学生姓名:

葛肪瑜

学 号:

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

所在院(系):

计算机学院

专 业:

计算机科学与技术

班 级:

10计本(1)班

指 导 教 师:

陈三清

职称:

讲师

2011年6月25日

攀枝花学院教务处制

攀枝花学院本科课程设计(论文) 目录

攀枝花学院本科学生课程设计任务书

题 目

计算器的设计

1、课程设计的目的

本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌

握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本

思路和方法;(4)提高运用C语言解决实际问题的能力。

2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)

一、用C实现如下功能:

使用C语言编写一个类似于Windows附件提供的计算器软件,实现计算器的基本功能,

能进行浮点数的加、减、乘、除、乘方和求模运算。

二、撰写课程设计报告或课程设计总结课程设计报告要求:总结报告包括需求分析、总

体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资

料等,不符合以上要求者,则本次设计以不及格记。

3、主要参考文献

[1] 潭浩强,《C程序设计》,清华大学出版社

[2] 王声决,《C语言程序设计》,中国铁道出版社

[3] 潭浩强,《C程序设计题解与上机指导》,清华大学出版社

[4] 刘玲等,《C语言程序设计应用教程》,西南师范大学出版社

4、课程设计工作进度计划

第1天 完成方案设计与程序框图

第2、3天 编写程序代码

第4天 程序调试分析和结果

第5天 课程设计报告和总结

指导教师(签字)

教研室意见:

年 月 日

学生(签字):

接受任务时间:

年 月 日

注:任务书由指导教师填写。

日期

年 月 日

II

攀枝花学院本科课程设计(论文) 目录

课程设计(论文)指导教师成绩评定表

题目名称

评分项目

20%

01

02

03

04

05

06

07

08

学习态度

科学实践、调研

课题工作量

综合运用知识的能力

应用文献的能力

设计(实验)能力,方案

的设计能力

计算及计算机应用能力

对计算或实验结果的分析

能力(综合分析能力、技

术经济分析能力)

插图(或图纸)质量、篇

幅、设计(论文)规范化

程度

设计说明书(论文)质量

创新

教师网上成绩录入系统开发

6

7

7

10

5

5

5

10

评价内涵

遵守各项纪律,工作刻苦努力,具有良好的科学

工作态度。

通过实验、试验、查阅文献、深入生产实践等渠

道获取与课程设计有关的材料。

按期圆满完成规定的任务,工作量饱满。

能运用所学知识和技能去发现与解决实际问题,

能正确处理实验数据,能对课题进行理论分析,

得出有价值的结论。

能独立查阅相关文献和从事其他调研;能提出并

较好地论述课题的实施方案;有收集、加工各种

信息及获取新知识的能力。

能正确设计实验方案,独立进行装置安装、调试、

操作等实验工作,数据正确、可靠;研究思路清

晰、完整。

具有较强的数据运算与处理能力;能运用计算机

进行资料搜集、加工、处理和辅助设计等。

具有较强的数据收集、分析、处理、综合的能力。

35%

45%

09

10

11

5

30

10

符合本专业相关规范或规定要求;规范化符合本

文件第五条要求。

综述简练完整,有见解;立论正确,论述充分,

结论严谨合理;实验正确,分析处理科学。

对前人工作有改进或突破,或有独特见解。

成绩

指导教师签名: 年 月 日

III

攀枝花学院本科课程设计(论文) 目录

目 录

目 录 ......................................................................................................................... IV

摘 要 .......................................................................................................................... V

1 绪论 ....................................................................................................................... VI

1.1 课程设计背景.................................................................................................................. VI

1.2 需求环境 ......................................................................................................................... VI

1.3 课程设计思路.................................................................................................................. VI

2 课程设计概要 ......................................................................................................... 2

3 程序结构和各模块分析 ......................................................................................... 3

3.1 菜单操作模块................................................................................................................... 3

3.1.1 fun1函数功能 .......................................................................................................... 3

3.1.2 功能实现代码 ........................................................................................................... 3

3.2 加减乘除运算模块 ............................................................................................................... 3

3.2.1 fun2函数功能 .......................................................................................................... 3

3.2.2 功能实现代码 ........................................................................................................... 4

3.3 乘方和开方运算模块 ........................................................................................................... 4

3.3.1 fun3函数功能 .......................................................................................................... 4

3.3.2 功能实现代码 ........................................................................................................... 4

3.4 进制转换运算模块 ............................................................................................................. 5

3.4.1 convert函数功能 .................................................................................................... 5

3.4.2 功能实现代码 ........................................................................................................... 5

3.5 求模运算模块..................................................................................................................... 5

3.5.1 fun4函数功能 .......................................................................................................... 5

3.5.2 功能实现代码 ........................................................................................................... 6

3.6 退出模块 ............................................................................................................................ 6

3.6.1代码功能.................................................................................................................... 6

3.6.2 功能实现代码 ........................................................................................................... 6

4 程序调试 ................................................................................................................. 7

4.1 操作界面 ............................................................................................................................ 7

4.2 加减乘除运算..................................................................................................................... 7

4.3 乘方和开方运算 ................................................................................................................. 9

4.4 进制转换运算................................................................................................................... 10

4.5 求模运算 .......................................................................................................................... 11

4.6 退出 .................................................................................................................................. 12

5 课程设计总结 ....................................................................................................... 12

参考文献 ..................................................................................................................... 13

附录:源代码 ............................................................................................................. 14

IV

攀枝花学院本科课程设计(论文) 目录

摘 要

一直以来,C语言都是在国际上广泛流行的通用编程语言,它既具有高级语言

的特点,又具有低级语言的些特点;既可用于编写系统软件又可用于编写应用软

件。虽然说近二十年来计算机技术取得了长远的进步,各种编程语言不断地涌现

出来,但是C语言功能强大,使用灵活,即使是在科技快速发展的二十一世纪,

仍展现出了强大的生命力,为社会的高度信息化,特别是在信息技术和网络技术

领域做出了十分重要的贡献。

本文介绍了用C语言编写一个简易计算器。实现数学上对浮点数加、减、乘、

除、乘方、开方、求模以及进制转换的运算。利用这个程序可以方便的进行日常

性的小规模运算,小巧简易,是个实用的工具。

关键词: 程序设计,计算器,C语言,函数,循环

V

攀枝花学院本科课程设计(论文) 目录

1 绪论

1.1 课程设计背景

日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此

为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。在C语言

当中通过定义模块函数,并在主函数中进行调用从而实现数据的运算。通过与用

户之间的交互,可以在操作界面上实现对各种运算的选择和程序的控制。

在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对

实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设

计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。

1.2 需求环境

本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:

①硬件要求:一台计算机。

②软件配置:WINDOWS系统、c/c++程序设计学习与实验软件

1.3 课程设计思路

做计算器最主要的就是实用性,要简单,便于操作。程序的界面要方便与用

户之间的交互。并以设计的要求为基础,进行了创新,增加了对进制转换运算的

支持,这就大致的确定了程序的几个模块。然后对每个模块进行设计,再整合起

来,由此一个简洁美观的计算器就建立起来了。

VI

攀枝花学院本科课程设计(论文) 课程设计概要

2 课程设计概要

在设计程序的时候,考虑到计算器的功能,我按照其功能划分为几个模块,

在程序开始后,可以进行选择,到自己希望进行操作的模块中去。有了具体的模

块之后,在设计程序的时候有更方便了,同时也有法可依,不会造成混乱。具体

分为:加减乘除运算、乘方开方运算、进制转换运算、求模运算和退出五个模块。

具体的模块关系如表2-1:

表2-1 基本模块表

模块

实现功能

简单的四

则运算

加减乘除

运算

乘方开方 进制转换 求绝对值

乘方开方

运算

进制转换

运算

退出

求模运算 退出程序

流程图详解:首先用户运行程序,进入开始菜单,由用户对所要进行的运算

做出选择。当选择运算方式时,程序将调用对应的运算模块,对用户输入的数据

进行处理,并输出结果,随后,当用户确认结果后,程序将清屏,并返回开始菜

单,由用户继续进行选择。当选择退出时,程序将调用退出模块,显示“拜拜!

谢谢使用哈!”,并退出程序。

开始菜单

选择

退出

结束

图2-1 程序流程图

- 2 -

攀枝花学院本科课程设计(论文) 程序结构和各模块分析

3 程序结构和各模块分析

3.1 菜单操作模块

3.1.1 fun1函数功能

在这个模块中,为了方便用户的使用,我们定义了一个菜单调用函数,将整

个菜单尽量做到简易美观。程序开始时,由用户对所要进行的运算进行选择。

3.1.2 功能实现代码

程序如下:

void fun1() /* 定义菜单调用函数 */

printf(" ***********************菜单**********************n");

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(" * 7.转换为2进制 *n");

printf(" * 8.转换为8进制 *n");

printf(" * 9.转换为16进制 *n");

printf(" * 10.求绝对值 *n");

printf(" * 11.退出 *n");

printf(" *************************************************n");

printf("n");

printf(" 输入你想要进行的运算(1~11):n" );

printf("n");

}

3.2 加减乘除运算模块

3.2.1 fun2函数功能

当用户的选择为1~4时,程序将调用fun2函数(加减乘除运算模块),该函

数首先对用户的选项进行匹配,当匹配为1时,进行加法运算;为2时,进行减

法运算;为3时,进行乘法运算;为4时,进行除法运算。最后将所得结果输出。

- 3 -

攀枝花学院本科课程设计(论文) 程序结构和各模块分析

3.2.2 功能实现代码

算法:采用swich语句的分支机构,对用户选择的加减乘除运算进行匹配,

匹配后将进行相应的运算并输出结果。

程序如下:

void fun2(float x,float y,int c) /* 定义加减乘除模块函数 */

{float z;

switch(c)

{

case 1: z=x+y;printf("

输出结果为

: %g+%g=%gn",x,y,z);break; /* 进行加法运算 */

case 2: z=x-y;printf("

输出结果为

: %g-%g=%gnn",x,y,z);break; /* 进行减法运算 */

case 3: z=x*y;printf("

输出结果为

: %g*%g=%gn",x,y,z);break; /* 进行乘法运算 */

case 4: if(y==0) printf("

输入错误

!"); /* 如果分母为0则输出“

输入错误!

”*/

else{z=x/y;printf("

输出结果为

:%g/%g=%gn",x,y,z);}break; /* 进行除法运算 */

default: printf("

输入错误

!");

}

}

3.3 乘方和开方运算模块

3.3.1 fun3函数功能

当用户的选择为5或6时,程序将调用fun3函数(乘方和开方运算模块),

该函数首先对用户的选项进行匹配,当匹配为5时,进行乘方运算;为6时,进

行开方运算。最后将所得结果输出。

3.3.2 功能实现代码

算法:采用swich语句的分支机构,对用户选择的乘方开方运算进行匹配,

匹配后将进行相应的运算并输出结果。

程序如下:

void fun3(float x,int c) /* 定义乘方开方模块函数 */

{float z;

switch(c)

{

case 5: z=x*x;printf("

输出结果为

: %gn",z);break; /* 进行乘方运算 */

case 6: if(x<0) printf("

输入错误!

"); /* 如果x小于0则输出“

输入错误!

”*/

else{z=sqrt(x);printf("

输出结果为

: %gn",z);}break; /* 进行开方运算 */

default: printf("

输入错误!

");

- 4 -

攀枝花学院本科课程设计(论文) 程序结构和各模块分析

}

}

3.4 进制转换运算模块

3.4.1 convert函数功能

当用户的选择为7~9时,程序将调用convert函数(进制转换运算模块),该

函数首先对用户的选项进行匹配,当匹配为7时,将把用户所输入的数据转换为2

进制数;为8时,将把用户所输入的数据转换为8进制数;为9时,将把用户所

输入的数据转换为16进制数。最后将所得结果输出。

3.4.2 功能实现代码

算法:采用swich语句的分支机构,对用户所要进行转换的进制进行匹配,

匹配后将进行相应的运算并输出结果。

程序如下:

void convert(int m,int c) /* 定义进制转换模块函数 */

{char s[128];

switch(c)

{case 7: itoa(m, s, 2);printf("

输出结果为

: [%s]n",s);break; /* 转换为二进制数 */

case 8: printf("

输出结果为

:%on",m);break; /* 转换为8进制数 */

case 9: printf("

输出结果为

:%xn",m);break; /* 转换为16进制数 */

default: printf("

输入错误!

");

}

}

特殊函数介绍:

itoa()函数的头文件是# include ,该函数有3个参数:第一个参数是

要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移

数字时所用的基数。在上例中,转换基数为2,所以函数将把数据转换为二进制数。

3.5 求模运算模块

3.5.1 fun4函数功能

当用户的选择为10时,程序将调用fun4函数(求模运算模块),并将用户所

输入的数据求绝对值并输出。

- 5 -

攀枝花学院本科课程设计(论文) 程序结构和各模块分析

3.5.2 功能实现代码

算法:采用fabs()的求绝对值函数,匹配后将数据进行相应的运算并输出

结果。

程序如下:

void fun4(float x) /* 定义求绝对值模块函数 */

{float z=0;

z=fabs(x); /* 进行求模运算 */

printf("

输出结果为

: %fn",z);

}

3.6 退出模块

3.6.1代码功能

当用户的选择为11时,程序将调用quit函数(退出模块),该函数将终止程

序,并退出当前界面。

3.6.2 功能实现代码

程序如下:

void quit() /* 定义退出程序模块函数 */

{exit (0);}

- 6 -

攀枝花学院本科课程设计(论文) 程序调试

4 程序调试

4.1 操作界面

在TC环境下运行程序,进入程序主界面。首先是由用户对所要进行的运算进行选择。

图4-1就显示出操作的界面。

图4-1 操作界面

4.2 加减乘除运算

运行程序,当用户的选择为1-4时,程序将根据用户所选择的运算方式进行加减乘除运

算。图4-2~4-5显示了具体的操作方法及结果。

- 7 -

攀枝花学院本科课程设计(论文) 程序调试

图4-2 加法运算

图4-3 减法运算

图4-4 乘法运算

- 8 -

攀枝花学院本科课程设计(论文) 程序调试

图4-5 除法运算

4.3 乘方和开方运算

开启程序后,当用户的选择为5或6时,程序将根据用户所选择的运算方式进行乘方和

开方运算。图4-6和4-7显示了具体的操作方法及操作结果

图4-6 乘方运算

- 9 -

攀枝花学院本科课程设计(论文) 程序调试

图4-7 开方运算

4.4 进制转换运算

运行程序,当用户的选择为7-9时,程序将根据用户所选择的运算方式把所输入的数据

分别转换为2进制、8进制和16进制数。操作方法及结果见图4-8~4-10。

图4-8 转换为二进制

- 10 -

攀枝花学院本科课程设计(论文) 程序调试

图4-9 转换为八进制

图4-10 转换为十六进制

4.5 求模运算

开启程序后,当用户的选择为10时,程序将根据用户所选择的运算方式进行求绝对值的

运算。图4-11显示了具体的操作方法及操作结果

- 11 -

攀枝花学院本科课程设计(论文) 程序调试

图4-11 求模运算

4.6 退出

基本操作完成之后,我们可以选择11退出程序。

操作方法及结果见图4-12。

图4-12 退出

- 12 -

攀枝花学院本科课程设计(论文) 课程设计总结

5 课程设计总结

在这次课程设计中,我基本上完成了任务,通过对各模块函数的调用和对无

限循环算法的使用实现了计算器的演示过程,基本上达到了此次课程设计的要求。

但是这个程序仍然有不少的问题,例如作为一个计算器它的界面还不够人性化,

功能也不够丰富等,所以整个程序的功能有待进一步完善,让更多的功能得以实

现。

虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计

算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,、通过与同

学们的交流,解决了不少长久以来困扰我的C语言问题,让我深切体会到了大家

共同努力的重要性。在设计这个系统的时候,我查阅了很多相关的书籍,并通过

网络解决了不少问题。通过这次课程式设计,我对TC的开发环境有了更多的认识

和了解,让我对C语言的认识又加深了一步,不仅使我学会了如何查阅资料,同

时也让我发现了网络这个好老师,总之收获了很多。

- 12 -

攀枝花学院本科课程设计(论文) 参考文献

参考文献

[1] 谭浩强.C语言程序设计(第三版).清华大学出版社,2005;260-265,294-308。

[2] 黄明,梁旭,万洪莉.《C语言课程设计》.电子工业出版社。

[2] 谭浩强.《C语言程序设计习题解答与上机指导》.清华大学出版社。

[3] 攀枝花学院本科学生课程设计任务书。

[4] 攀枝花学院本科学生课程设计论文详细格式。

[5] C语言程序设计参考实例。

[6] C语言名题精选百则技巧篇。

[7] C语言程序设计实验指导 - c语言程序设计

[8] 程序设计基础(C语言版)

- 13 -

攀枝花学院本科课程设计(论文) 附录:源代码

附录:源代码

/* Note:Your choice is C IDE */

#include

#include

#include

void fun1()

{ printf(" ***********************菜单**********************n");

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(" * 7.转换为2进制 *n");

printf(" * 8.转换为8进制 *n");

printf(" * 9.转换为16进制 *n");

printf(" * 10.求绝对值 *n");

printf(" * 11.退出 *n");

printf(" *************************************************n");

printf("n");

printf(" 输入你想要进行的运算(1~11):n" );

printf("n");

}

void fun2(float x,float y,int c) /* 定义加减乘除模块函数 */

{ float z;

switch(c)

{case 1: z=x+y;printf("输出结果为: %g+%g=%gn",x,y,z);break; /* 进行加

法运算 */

case 2: z=x-y;printf("输出结果为: %g-%g=%gnn",x,y,z);break; /* 进行

减法运算 */

case 3: z=x*y;printf("输出结果为: %g*%g=%gn",x,y,z);break; /* 进行乘

法运算 */

case 4: if(y==0) printf(" 输入错误!"); /* 如果分母为0则输出“enter

error!”*/

else{z=x/y;printf("输出结果为:%g/%g=%gn",x,y,z);}break; /* 进行除法

运算 */

default: printf(" 输入错误!");

}

}

- 14 -

攀枝花学院本科课程设计(论文) 附录:源代码

void fun3(float x,int c) /* 定义乘方开方模块函数 */

{float z;

switch(c)

{case 5: z=x*x;printf("输出结果为: %gn",z);break; /* 进行乘方运算 */

case 6: if(x<0) printf("输入错误!"); /* 如果x小于0则输出“enter

error!”*/

else{z=sqrt(x);printf("输出结果为: %gn",z);}break; /* 进行开方运算

*/

default: printf(" 输入错误,请重新输入!");

}

}

void fun4(float x) /* 定义求绝对值模块函数 */

{float z=0;

z=fabs(x);

printf("输出结果为: %fn",z);

}

void convert(int m,int c) /* 定义进制转换模块函数 */

{char s[128];

switch(c)

{case 7: itoa(m, s, 2);printf("输出结果为: [%s]n",s);break; /* 转换为二进

制数 */

case 8: printf("输出结果为:%on",m);break; /* 转换为8进制数 */

case 9: printf("输出结果为:%xn",m);break; /* 转换为16进制数 */

default: printf(" 输入错误!");

}

}

void quit() /* 定义退出程序模块函数 */

{exit (0);}

/******主函数开始*******/

void main()

{ for(;;) /* 无限循环 */

{float x,y,z;

int c,m;

char n;

fun1(); /* 调用菜单函数 */

scanf("%d",&c);

if(c==1||c==2||c==3||c==4)

{printf("请输入两个数:");

scanf("%f%f",&x,&y);

fun2(x,y,c); /* 调用加减乘除函数 */

}

if(c==5||c==6)

{printf("请输入一个数:");

scanf("%f",&x);

- 15 -

攀枝花学院本科课程设计(论文) 附录:源代码

if(x<0) printf(" 输入错误!");

else fun3(x,c); /* 调用乘方开方函数 */

}

if(c==7||c==8||c==9)

{ printf("请输入一个数:");

scanf("%d", &m);

convert(m,c); /* 调用进制转换函数 */

}

if(c==10)

{printf("请输入一个数:");

scanf("%f",&x);

fun4(x); /* 调用求绝对值函数 */

}

if(c==11)

{printf(" <<<<<<<<<<<拜拜!謝謝使用哈!>>>>>>>>>>> n");

system("pause");

quit();

}

getch();

}

}

- 16 -


本文标签: 运算 进行 课程设计 C语言 设计