《C语言程序设计》课程设计报告分数计算器.docx
- 文档编号:14984075
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:20
- 大小:109.08KB
《C语言程序设计》课程设计报告分数计算器.docx
《《C语言程序设计》课程设计报告分数计算器.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计报告分数计算器.docx(20页珍藏版)》请在冰点文库上搜索。
《C语言程序设计》课程设计报告分数计算器
《C++语言程序设计》课程设计报告
分数计算器
姓名:
指导
学号:
班级:
10计本2班
日期:
2011年05月20日
计算机科学与技术系课程设计评分表
课程名称:
面向对象程序设计分数计算器
项目
评价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
功能完善度
综合成绩
学号
班级
姓名
综合成绩
教师签名:
日期:
C++语言课程设计——简单计算器
说明书
一、设计目标
制作一个分数计算器,以完成分数之间,分数与整数之间的四则运算,以及求分数的指数。
系统界面不做牵制要求。
在进行运算后可以选择继续运算或者进行下一次新的运算,能实现返回功能。
二、设计图
进入界面
1、总体设计图
2、详细图
模块功能说明及调用关系说明:
三、图解
1、欢迎使用简单计算器
2、等待系统进入主菜单
在此选择计算类型【选择代码,回车确定】
1、为选择分数与分数之间的四则运算、
2、为选择分数与整数之间的四则运算
3、为分数的指数运算
0、为安全退出程序
3、选择分数与分数之间的四则运算
分数与分数的加法如:
18/5+16/3=134/15
分数与分数的减法如:
1/6-/2=-1/3
注:
在此举例分数与分数的加法、减法
计算完成后,按y或n,选择是否继续,y则继续本类运算,n为返回到主菜单,再次进行选择
4、选择分数与整数之间的四则运算
分数与整数的乘法如:
1/2*2=1/1
分数与整数的加法如:
1/5+6=31/5
注:
在此举例分数与整数的乘法、加法
计算完成后,按y或n,选择是否继续,y则继续本类运算,n为返回到主菜单,再次进行选择
5、选择分数的指数运算
如:
1/3的2次方等于1/9
如:
2/3的2次方等于4/9
6、安全退出
注:
计算完成后,按y或n,选择是否继续,y则继续本类运算,n为返回到主菜单,再次进行选择
至此,以安全退出。
。
。
四、调试和测试
<1>、调试方法:
首先打开MicrosoftVisualC++6.0,运行程序,出现错误修改再运行,直至运行结果0error,0warning结束。
接着进入程序界面,看程序能否实现所要求的各项功能,再作下一步的修改。
<2>、调试时出现的问题及解决方案:
1、当多次运行程序时,屏幕被运行数据占满,显得很杂乱。
解决方案:
引用清屏函数。
2、在进行运算时要实现反复运算得有返回功能,由于我们
程序分支,不能正常的调用完毕后进入下一个循环,自动返回。
解决方案:
直接在switch的cash语句中直接调用所需返回的函数。
按y或n,选择是否继续,y则继续本类运算,n为返回到主菜单,再次进行选择
3、在一次运算完毕后如何不返回继续作下一次的相同运算。
解决方案:
作用循环语句,结果始终为真,结尾利用if语句控制是否跳入上级菜单或者continue。
4、如何在欢迎界面停留时间。
解决方案:
通过for循环,执行无条件的";"的语句,通过执行次数控制程序在欢迎界面的停留时间。
5、还有一些小错误,比如未声明就直接使用变量、未对一些变量初始化、声明是空值函数却有返回值、缺少";"、使用getch(),system("cls")却缺少相应的头文件,出现警告…………
五、分析及结论
在做这个课程设计报告之初是仿照以前的计算器,但是,由于程序行数做了要求,而且题目要求不一样,所以我就在仿照以前的计算器的同时,进一步完善其功能。
该程序是我经过多次编写,修改,在不懂的问题上,与指导朋友——刘华和刘洋一起讨论,根据观察其他程序,通过菜单选择实现不同功能得到的启发,将自己所需实现的功能通过文字形式的菜单表现出来。
然后再菜单处进行选择计算类型,正常完成计算,返回和退出。
我最满意的地方是“清屏”和“在界面上停留的时间”,总之这个程序基本能符合我自己的要求。
不足之处:
1、代码重用;
2、不能熟练的运用类;
3、没有用到指针和数组,对数组和指针还不能很好的运用。
心得体会:
通过这次课程设计我对这学期所学的C++语言的理论知识得到巩固,达到该设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意。
同时体会到C++语言具有的语句简洁,使用灵活,执行效率高等特点。
发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。
发现自己对指针还不能正确使用。
通过实际操作,学会C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。
深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。
六、附录
附录源代码:
#include
#include
#include
#include
constintn=80000000;
usingnamespacestd;
intxz;
classjsq
{
public:
jsq(){}
~jsq(){}
menu();//菜单
fenshu();//分数之间的运算
js();//整数与分数运算
start();//开始
zs();//分数的指数运算
tc();//退出
fun(intt,intf);//约分函数
private:
inta,b,c,d,i,r,t,t1,f,f1,x;
charn,q;
};
voidcd()//进入界面
{
inti,j;
cout< cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★"< cout<<"★***★欢迎使用分数计算器★***★"< cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★"< cout< cout<<"||★★★★★★★★★★★★★★★★★★★★★★★★||"< cout<<"||★********************************************★||"< cout<<"||★重庆工商大学派斯学院★||"< cout<<"||★计算机科学系★||"< cout<<"||★制作人: 10计本2邓寅森★||"< cout<<"||★2011年5月★||"< cout<<"||★********************************************★||"< cout<<"||★★★★★★★★★★★★★★★★★★★★★★★★||"< { cout< for(i=0;i cout<<"在"; for(i=0;i cout<<"进"; for(i=0;i cout<<"入"; for(i=0;i cout<<"系"; for(i=0;i cout<<"统"; for(i=0;i cout<<","; for(i=0;i cout<<"请"; for(i=0;i cout<<"稍"; for(i=0;i cout<<"等"; for(i=0;i for(j=0;j<=6;j++) { cout<<"."; for(i=0;i } for(i=0;i<8*n;i++); cout< cout< } for(j=0;j<=50;j++) { cout<<"<"; for(i=0;i<=50000000;i++); } } jsq: : menu()//主菜单 { do{ system("cls");//清屏 cout< cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★"< cout<<"★******************简单计算器******************★"< cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★"< cout<<"1: 分数之间的运算"< cout<<"2: 整数与分数运算"< cout<<"3: 分数的指数运算"< cout<<"0: 退出"< cout<<"请按键选择,回车确定"; cin>>xz; }while(xz<0||xz>3);//循环结束条件 } jsq: : start()//自定义科学函数 { jsqjs; js.menu(); while(xz>=1&&xz<=3) { switch(xz) { case1: { js.fenshu(); break; } case2: { js.js(); break; } case3: { js.zs(); break; } } cout< cout<<"是否继续进行运算(Y\\N): ";//提示是否继续 if(getch()=='n') js.menu();//调用标准函数实现返回 elsecontinue;//重复上一次法则运算 } if(xz==0) js.tc(); } jsq: : fun(intt=0,intf=0)//约分 { intr,t1=t,f1=f; while((r=t%f)! =0) {t=f; f=r; } t1=t1/f; f1=f1/f; cout< "< } jsq: : tc()//退出 { cout< for(;i<30000;i++);/*控制界面停留时间*/ system("cls");//清屏 cout< cout<<"★谢谢使用★"< cout<<"★bay-bay★"< cout<<"★★★★★★★★★"< for(;i<500000000;i++);/*控制界面停留时间*/ system("cls");//清屏 } jsq: : fenshu()//自定义分数函数 { jsqjs; system("cls"); cout< cout<<"======================"< cout<<"欢迎使用分数之间的计算"< cout<<"======================"< cout<<"输入第一个分数【形如: 1/2】: "; cin>>a>>n>>b; cout< "; cin>>q; cout< 1/2】: "; cin>>c>>n>>d; if(b==0||d==0) {cout< switch(q) { case'+': t1=t=a*d+b*c;//分子 f1=f=b*d;//分母 js.fun(t1,f1); break; case'-': t1=t=a*d-b*c; f1=f=b*d; js.fun(t1,f1); break; case'*': t1=t=a*c; f1=f=b*d; js.fun(t1,f1); break; case'/': t1=t=a*d; f1=f=b*c; js.fun(t1,f1); break; } } jsq: : js()//自定义分数函数【分数+整数】 { system("cls");//清屏 cout< cout<<"======================"< cout<<"欢迎使用分数与整数运算"< cout<<"======================"< cout<<"输入第一个分数【形如: 1/2】: "; cin>>a>>n>>b; cout< "; cin>>q; cout< 1】: "; cin>>x; if(b==0) {cout< switch(q) { case'+': t1=t=x*b+a; f1=f=b; fun(t1,f1); break; case'-': t1=t=a-b*x; f1=f=b; fun(t1,f1); break; case'*': t1=t=a*x; f1=f=b; fun(t1,f1); break; case'/': t1=t=a; f1=f=b*x; fun(t1,f1); break; } } jsq: : zs()//分数的指数 { system("cls"); cout< cout<<"======================"< cout<<"欢迎使用分数的指数计算"< cout<<"======================"< cout< 形如1/2】: "; cin>>a>>q>>b; cout<<"请输入指数【实数: 形如2】: "; cin>>c; t=pow(a,c); f=pow(b,c); cout< "< } voidmain()//主函数 { jsqa; cd();//调用菜单函数 a.start();//调用开始函数 }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C 语言程序设计 C 语言程序设计课程设计报告分数计算器 语言程序设计 课程设计 报告 分数 计算器