设计一个简单计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计的内容
设计一个简单计算器
要求: 在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。
二、课程设计的要求与数据
1、进一步掌握和利用C语言进行程设计的能力;
2、进一步理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程序设计开发文档的能力。
三、课程设计应完成的工作
1、编写完成相应题目的程序;
2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:
1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;
2) 总体设计:包括系统总体设计框架和系统功能模块图;
3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;
4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存
在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当
的包含结果截图);
5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改
进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议
等内容;
6) 附录:主要源程序代码,含必要的注释。
3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解
决问题、运行程序和回答教师提出的问题。
四、课程设计进程安排
五、应收集的资料及主要参考文献
[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9
[2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7
[3] 李春葆曾平刘斌。C++语言程序设计题典第一版北京清华大学出
版社 2003年4月
[5] 刘振安刘燕君C++程序设计课程设计第一版机械工业出版社
2004年8月
发出任务书日期: 2007年 6 月 18 日指导教师签名:
计划完成日期: 2007年 6 月 22 日基层教学单位责任人签章:
主管院长签章:
目录
1 设计目的与要求 (5)
2 总体设计 (6)
3 详细设计 (6)
4调试分析 (7)
5 总结 (7)
6 附录 (8)
6 答辩记录(正文处请留出适当空白) (13)
7 指导教师意见(正文处请留出十行空白) (13)
1 目的与要求
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程序调试能力。
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程
序调试能力。
(1)总体要求
①对系统进行功能模块分析、控制模块分析正确;
②系统设计要实用;
③编程简练,可用,功能全面,具有较好的健壮性;
④说明书、流程图要清楚。
(2)课程设计报告要求
①需求和规格说明:问题描述:题目要解决的问题是什么?
②设计
⊕设计思路:主要算法思想。
⊕总体设计:程序设计组成框图、N-S流程图。
⊕详细设计:模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描
述等)。
③调试与测试:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论
和分析;改进设想;经验和体会等。
④附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和
运行输出,当然还可以含其他测试数据和运行输出;清单中应有足够的注释。7
2 总体设计
3 详细设计
(内容可以适当调整,清晰的有条理的把你的设计思路表达出来)3.1功能模块设计
3.1.1 XX功能模块(可选)
3.1.2 YY功能模块(可选)
3.1.3 ZZ功能模块(可选)
4 调试分析
输入调试
输出调式
5 总结
原来认为搞一个计算器很简单,加减乘除用一个switch语句就可以做出来。最初做了一个如下程序
#include
main()
{ int a,b,c;
char y;
system("cls");
scanf("%d%c%d",&a,&y,&b);
switch(y)
{ case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':
if(b==0)
{ printf("input error!");
exit(0);
}
else c=a/b;
break;
defult:printf("intput error!!");break;
}
一写下来才知道他只能进行很简单的两个数的四则运算。很来在图书馆和网上查了很多资料,最终选择了C++编,虽然这个程序自己也进行了修该但是很多方面还是用别人的成果。经过这次编程我发现了许多自己以前不知道的知识。找到了很多不足。
7.附录
#include
#include
using namespace std;
enum Token_value{
NAME, NUMBER, END,
PLUS = '+', MINUS = '-',MUL = '*',DIV = '/',
PRINT = ';',ASSIGN = '=',LP = '(',RP = ')'
};
Token_value curr_tok = PRINT;
// fuction list//////////////////////////////////////
double expr(bool get);
double term(bool get);
double prim(bool get);