资源描述
编号:
课程设计说明书
题 目: 简单计算器
院 (系): 信息和通信学院
专 业: 信息对抗
学生姓名: 孙浩宇 刘剑
学 号:
指导老师: 马杰
12 月 4 日
1. 题目和要求…………………………………………………1
1.1 课程设计目标………………………………………………………………1
1.2本系统包含知识点……………………………………………………1
1.3功效要求……………………………………………………………………1
2. 课程设计基础过程…………………………………………1
2.1 功效需求……………………………………………………………………1
3. 总体设计……………………………………………………1
3.1 系统模块机构框图………………………………………………………1
3.2 功效模块框图……………………………………………………………2
3.3 系统步骤图……………………………………………………………3
3.4 界面设计………………………………………………………………4
4.具体设计……………………………………………………5
4.1 模块描述………………………………………………………………5
4.2 系统头文件……………………………………………………………5
4.3 函数申明………………………………………………………………5
5.程序测试……………………………………………………12
6.设计总结…………………………………………………12
6.1 谢辞………………………………………………………………12
6.2 参考文件…………………………………………………………12
1. 题目和要求
1.1 课程设计目标
(1)巩固和加深C语言课程基础知识了解和掌握
(2)掌握C语言编程和程序调试基础技能
(3)利用C语言进行基础软件设计
(4)掌握书写程序设计说明文档能力
(5)提升利用C语言处理实际问题能力
1.2 本系统包含知识点
Goto loop循环 switch选择语句嵌套return退出语句格式化输入和输出If判定语句 函数调用
2. 课程设计基础过程
课程设计基础过程包含5个步骤,即功效需求,总体设计,具体设计,程序测试,结论。每个步骤全部有其特定任务。
2.1 功效需求
功效概述:该软件为用户提供一个在windows系统上运行简单计算器,能进行简单加、减、乘、除四则运算和部分常见特殊运算,包含余弦运算、正弦运算、正切运算、绝对值、平方根运算、以e为底指数运算、以10为底对数运算。
3. 总体设计
3.1 系统模块机构框图
简单计算器
数 学 计 算
退 出 程 序
显 示 界 面
3.2功效模块框图
简单计算器
四则运算
退出程序
特殊运算
加法运算
减法运算
乘法运算
除法运算
余弦运算
正弦运算
正切运算
求绝对值
求平方根
以e为底指数运算
以10为底对数运算
3.3系统步骤图
N
N
结束
是否继续?
显示结果
进行运算
选择需要进行运算类型
输入数字
选择要进行运算符号
Y
开始
Y
3.4界面设计
系统主界面
四则运算界面
特殊运算界面
4. 具体设计
基于系统需求分析和系统总体设计结论,本系统采取Visual C++实现各模块功效。下面根据模块划分来分别叙述系统具体设计和实现过程。
4.1 模块描述
(1)显示界面模块为系统提供类似于菜单功效,让用户输入要操作运算类型数字代码,并进入对应功效实施程序,显示对应界面。
(2)数学计算模块中,依据用户选择运算类型和运算符号,自动调用对应函数,运行相关程序,进行计算,并显示结果。
(3)退出程序模块。依据用户需要,选择是否退出程序。
4.2系统头文件
#include<stdio.h> /* I/Q函数 */
#include<math.h> /* 数学函数定义 */
#include<conio.h> /*屏幕操作函数*/
#include<stdlib.h> /*库函数*/
int size(); /*函数定义*/
double teshu();
4.3函数申明
(1)主函数main()
功效:计算器功效选择界面
输入:用户输入运算类型、退出程序对应数字代码(1 四则运算,2 特殊运算,3 退出程序)
处理: 依据用户输入数字代码,跳转到相关功效函数
输出:显示对应界面或退出程序
程序清单(a)
void main()
{
char h;
int a;
double b;
do
{
printf(" 简单计算器 \n");
printf("******************************\n");
printf(" 请输入要进行运算 \n");
printf("------------------------------\n");
printf(" 1 四则运算 \n");
printf(" 2 特殊运算 \n");
printf(" 3 退出程序 \n");
h=getche();
switch(h) /*判定用户想要进行操作*/
{
case'1': /*输入1则调用四则运算函数*/
a=size();
printf("结果是: %d",a);
break;
case'2': /*输入2则调用特殊运算函数*/
b=teshu();
printf("结果是:%f",b);
break;
case'3': /*输入3则退出程序*/
break;
}
}
while(h!='3');
}
(2)自定义函数size()
功效:进行简单加、减、乘、除四则运算
输入:用户输入要计算数字和运算符号(+、-、* 、/)
处理:依据用户输入运算符号,跳转到相关运算函数,并调用
输出:运算结果和是否需要继续运算(y/n)
程序清单(b)
int size() /*定义四则(size)运算函数*/
{
int n,m;
int c;
char l;
int d;
do
{
printf("\n请输入第一个要计算数并按Enter结束:");
scanf("%d",&m);
printf("\n请输入第二个要计算数并按Enter结束:");
scanf("%d",&n);
printf("\n请选择运算符号[\t+\t-\t*\t/\t]:");
l=getche(); /*得到运算符号*/
switch(l)
{
case'+': /*加法运算*/
c=m+n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
case'-': /*减法运算*/
c=m-n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
case'*': /*乘法运算*/
c=m*n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
case'/': /*除法运算*/
c=m/n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
}
for(d=0;d<=999999;d++)
{
printf("\t 是否继续?(y/n):"); /*是否继续运算*/
l=getche(); /*得到输入值*/
printf("\n");
if(l=='y') /*假如得到是y,则反复运算步骤,达成无限运算作用*/
{
printf("\n请输入下一个要计算数并按Enter结束:");
scanf("%d",&n);
printf("\n请选择运算符号[\t+\t-\t*\t/\t]:");
l=getche();
switch(l)
{
case'+': /*加法运算*/
c=c+n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
case'-': /*减法运算*/
c=c-n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
case'*': /*乘法运算*/
c=c*n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
case'/': /*除法运算*/
c=c/n;
printf("\n\n\t结果是 %d\n",c);
printf("\n");
break;
}
}
else
{
exit(l); /*假如得到是n,则退出程序*/
}
}
}
while(l!='n');
return(c); /*返回值*/
}
(3)自定义函数teshu()
功效:进行部分特殊运算(余弦运算、正弦运算、正切运算、绝对值、平方根运算、以e为底指数运算、以10为底对数运算)
输入:用户输入要计算数字和特殊运算方法数字代码(1 余弦,2 正弦,3 正切,4 绝对值,5 平方根,6 以e为底指数,7 以10为底对数)
处理:依据用户输入数字代码,跳转到相关运算函数程序
输出:运算结果和是否需要继续运算(y/n)
程序清单(c)
double teshu() /*定义(teshu)特殊运算函数*/
{
double y;
int n,m;
char p;
printf("---------请选择特殊运算类型---------");
printf(" 1 余弦 2 正弦 3 正切 4 绝对值 \n");
printf(" 5平方根 6 以e为底指数 7 以10为底对数 \n");
printf("\n请输入您要计算数并按Enter结束: ");
scanf("%d",&m); /*得到要进行运算数*/
printf("\n请选择您要做运算类型: ");
n=getche(); /*得到要做运算*/
do
{
switch(n)
{
case'1':
y=cos(m); /*余弦函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
case'2':
y=sin(m); /*正弦函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
case'3':
y=tan(m); /*正切函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
case'4':
y=fabs(m); /*绝对值函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
case'5':
y=sqrt(m); /*平方根函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
case'6':
y=exp(m); /*底数为e指数函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
case'7':
y=log10(m); /*底数为10对数函数*/
printf("\n\n\t结果是: %f\n",y);
printf("\n");
break;
}
printf("\n是否继续?y/n");
p=getche();
if(p=='n')
exit(1);
return(y); /*返回值y*/
}
while(p=='y');
}
5. 程序测试
系统主界面
其它功效截图等……
6. 设计总结
6.1谢辞
程序调试后无错误、警告,运行正常。
经过这次c语言课程设计,我认为自己知识还很欠缺,每种函数功效还没有熟练掌握,尤其是循环结构函数应用还很欠缺,应用时候感到力不从心,经数次调试后才运行正常,初步尝试编写程序时出现了好多错误,发觉自己当初学函数和结构没有深入去研究,做这次课程设计花了一周多时间,数次翻阅书本和查资料,真发觉学习c语言在日常生活中,未来工作中很关键。这次c语言课程设计加强了我对c语言认识,使我明白程序软件开发不易。因为这是第一次进行设计,写汇报,难免会有部分细节注意不到或出现错误。请老师谅解。
6.2参考文件
关键参考《C语言程序设计》书本和上网查询具体函数利用。
展开阅读全文