C语言课程设计报告书
题 目: 简单计算器
院 系:
班 级:
学 号:
姓 名:
一、课程设计目的
1. 巩固和加深C语言课程的基本知识的理解和掌握
2. 掌握C语言编程和程序调试的基本技能
3. 利用C语言进行基本的软件设计
4. 掌握书写程序设计说明文档的能力
5. 提高运用C语言解决实际问题的能力
二、课程设计的基本过程
课程设计的基本过程包括5个步骤,即功能需求,总体设计,详细设计,程序测试,结论。每个步骤都有其特定的任务。
2.1 【功能需求】
功能概述:该软件为用户提供一个在windows系统上运行的简单计算器,能进行简单的加、减、乘、除四则运算和一些常用特殊运算,包括余弦运算、正弦运算、正切运算、绝对值、平方根运算、以e为底的指数运算、以10为底的对数运算。
2.2 【总体设计】
2.2.1 系统模块机构框图
2.2.2 功能模块框图
2.2.3 系统流程图
2.2.4 界面设计
系统主界面
四则运算界面
特殊运算界面
2.3【详细设计】
基于系统需求分析与系统总体设计的结论,本系统采用Visual C++实现各模块的功能。下面按照模块的划分来分别阐述系统的详细设计和实现过程。
2.3.1 模块描述
(1)显示界面模块为系统提供类似于菜单的功能,让用户输入要操作的运算类型的数字代码,并进入相应的功能执行程序,显示相应界面。
(2)数学计算模块中,根据用户选择的运算类型和运算符号,自动调用相应的函数,运行相关程序,进行计算,并显示结果。
(3)退出程序模块。根据用户的需要,选择是否退出程序。
2.3.2 系统头文件
#include /* I/Q函数 */
#include /* 数学函数的定义 */
#include /*屏幕操作函数*/
#include /*库函数*/
2.3.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');
}
2.4【程序测试】
系统主界面
其他功能截图等……
2.5【设计总结】
本报告对简单计算器系统的分析、设计、实现的完整过程进行了介绍。
东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名…
C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的…
C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录…
C语言课程设计报告姓名张林班级计算111班学号11060101241A类基本题1围绕着山顶有10个圆形排列的洞狐狸要吃兔子兔子说可…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
C语言课程设计报告题目院系组别成员指导老师20xx年月日114目录一课程设计题目3二课程设计要求3三数据结构设计描述31问题描述3…
C语言课程设计参考例例子职工信息管理系统1用户分析11用户目的设计一个职工信息管理系统使之能提供以下功能1录入职工信息2显示职工信…
西安郵電大學C语言课程设计报告书学院名称:计算机学院学生姓名:专业名称:班级:学号:指导教师:时间:20XX年06月03日至20X…
附表2C或C语言课程设计总结报告源代码学生通讯录管理系统能够实现对通讯录的内容进行创建显示查询删除以及修改等功能includelt…