- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C课程设计-副本
目录
1 设计目的与任务··································2 1.1 设计目的····································2
1.2 设计任务····································2 2 设计思路········································3
3 类层次图········································4 4 设计说明文档····································5
5 程序代码········································6
6 设计心得·······································11
7 参考文献·······································12
8 附录···········································13
1 设计目的与任务
1.1 设计目的
通过设计完成“模拟计算机程序”的任务,进一步熟悉C++中类的概念、类的封装、继承的实现方式。了解系统开放的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用,逐步熟悉程序设计的方法,并养成良好的编程习惯。
1.2 设计任务
设计一个程序模拟一个简单的手持计算器,程序支持算术运算“+、-、*、/”四则运算及C(清除)、A(全清除)操作。并实现如下基本要求:程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入“=”符号后,窗口显示结果。运行环境:VC++6.0。
2 设计思路
本程序的原思路形成于C语言,最终融合学习的C++知识,通过对Fun类中不同函数的调用来分别实现程序初始界面的显示、对符合要求的输入进行计算和显示、对不符合要求的输入进行判断和显示、清除、全清除(返回主界面)、进行第二次运算的等操作。本程序主要通过switch语句定义加、减、乘、除的运算,并在除法运算中利用if语句判断除法是否为零且给出相关提示;通过调用function函数判断用户的输入是否符合要求,其中运用了强制类型转换及递归调用。本程序作为一个简单的手持计算器的模拟,在每一次计算后需要通过输入“A”或“C”实现进入下一次计算的界面,而不能连续进行计算。再者,限于本人的能力,此程序并未实现“用户键入‘=’后窗口显示出结果”及带“()”的复合运算的功能,甚为遗憾。
3 类层次图
4 设计说明文档
进入程序后,系统首先通过调用界面函数void first()实现初始界面的显示;接着,程序会利用语句cinXopY来接收用户的输入数据;之后,通过void function(char)函数判断用户的输入是否符合要求,若符合要求则调用计算函数void caculate(double,char,double)来进行计算并显示结果,否则,将提示用户“error!请重新输入:”;完成一次计算后,若用户输入“A”或“C”以外的内容,程序将提示错误。
5 程序代码
#includeiostream.h
#includestdlib.h
class Fun
{
private:
char fun_op,iteam,ca_opp;
double X,op,Y;
public:
void function(char);
void first();
void caculate(double,char,double);
};
void Fun::function(char i)
{
char op;
double X,Y;
iteam=i;
if(iteam==c||iteam==c)
{
system(cls);
cout请继续输入:endl;
cinXopY;
Fun::caculate(X,op,Y);
}
if(iteam==A||iteam==a)
{
system(cls);
Fun::first();
cout请输入:endl;
cinXopY;
Fun::caculate(X,op,Y);
}
}
void Fun::first()
{
cout~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~endl;
cout~~~~~~~~~~~~~~~~~~~~~~~~欢迎使用计算器~~~~~~~~~~~~~~~~~~~
您可能关注的文档
- 分式中考复习.ppt
- 永安委办20101.pdf
- 语法讲解(五)-定语从句疑难分析.doc
- 轻卡部节能宣传材料一.docx
- 外业放样作业的基本步骤 天宝 RTK.doc
- 神奇的芯片Language+Points.ppt
- 不同温度水的质量.doc
- 高二期末考试练习.doc
- [推销口才]九种解除客户抗拒的方法.docx
- 国家卫星应用高技术产业化专项.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)