c++课设.doc_第1页
c++课设.doc_第2页
c++课设.doc_第3页
c++课设.doc_第4页
c++课设.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计(论文)任务书 软件 学院 软件+会计 专业 2013-3 班 一、 课程设计(论文)题目 : 求解有理数分式方程 二、课程设计(论文)工作自 2014 年 6 月 20 日起至 2014 年 6 月 26 日止 三、课程设计(论文) 地点: 创新楼 四、课程设计(论文)内容要求:1. 本课程设计的目的(1)掌握C+语言的程序设计方法; (2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。2. 课程设计的任务及要求1) 基本要求:(1) 对系统所需完成的功能分析;(2) 使用Visual C+编译器进行程序编译;(3) 提出系统的设计方案;(4) 对所设计源程序进行调试。2) 创新要求在基本要求达到后,可进行创新设计。3) 课程设计论文编写要求(1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进行书写和装订。(2)课程设计报告(论文)包括设计任务分析(包括设计任务书、设计运行环境、同组人员及分工等)、系统总框图、每个模块的设计分析、列出所有定义的函数及说明、存在的问题与不足及对策、附上程序源代码。(3)用A4纸打印出文档(附上源代码),封面到教务处购买;所写的有效代码不得少于50行;18周上机检查程序并上交设计报告。4) 课程设计评分标准: (1)学习态度:20分;(2)系统演示:15分;(3)回答问题:15分;(4)论文撰写:40分;(5)创新思想:10分成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。5) 参考文献:(1)谢昕等编著,C+程序设计,北京邮电出版社. 2010.12(2)谭浩强编著,C面向对象程序设计,清华大学出版社. 2006.16) 课程设计进度安排1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料。2.程序模块设计分析阶段(4学时):程序总体设计、详细设计。3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试。4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文。7) 课程设计题目具体要求:设计一个Rational(有理数)类,用来求解有理数分式方程。有理数就是两个整数的比率,通常表示为a/b。其中a称为分子、b称为分母。分母不能为0。开发Rational类的目标就是创建一种类型,该类型的对象要像使用基本类型定义的对象那样,让人感觉到自然。学生签名: 年 月 1日 课程设计(论文)评审意见(1)学习态度(20分):优()、良()、中()、一般()、差(); (2)系统演示(15分):优()、良()、中()、一般()、差();(3)回答问题(15分):优()、良()、中()、一般()、差();(4)论文撰写(40分):优()、良()、中()、一般()、差();(5)创新思想(10分):优()、良()、中()、一般()、差();综合评定等级:评阅人: 职称: 年 月 日目 录第1章 设计任务分析1第2章 功能实现详细设计2第3章 功能测试6第4章 源代码9第5章 小结15参考文献16第一章 设计任务分析功能分析:做求解有理数分式方程,设计一个Rational(有理数)类,用来实现有理数分式方程的输入和计算。所以针对这个程序设计,需要实现有理数的输入输出,有理数分式方程的系数输入输出及方程的求解,分式与浮点数的转换,以及分式的化简。此次设计,定义一个Rational类,并定义公有、私有成员函数、构造函数,以及使用重载输入输出流运算符。小组成员:梁欣仪 邓雅倩 涂华小组分工:邓雅倩:主菜单,分子分母的输入输出梁欣怡:分式的化简,分式的浮点数的转换涂 华:有理数的大小比较,有理数的四则运算,有理数分式方程的求解在本次课程设计中我主要负责:主菜单,分子分母的输入输出。所以,需要考虑以下问题:v 如何设计主菜单界面v 分子与分母的输入与输出问题。例如,可以使用如下形式:cini; 1/3 /输出 要实现这些操作,就需要重载输入/输出流运算符。 第2章 功能实现详细设计设计思路与算法1. 设计主菜单界面首先编写一个菜单驱动程序,输入1-4之间的任意一个数字,即可进入相应选择项。思路提示:可使用for语句和switchcase语句实现主菜单功能的循环选择。部分参考代码:void main() for(; ;) switch(menu_select() case 1: Y0(); /输入输出有理数 break; case 2: Y1(); /有理数换算 break; case 3: Y2(); /有理数求解方程 break;case 4: coutt再见!n; return; int menu_select() / 菜单选择函数 char s2; int cn; for(int i=0;i24;i+) cout* 1.检测有理数输入输出.*n; cout* 2.有理数换算. *n; cout* 3.解有理数方程. *n; cout* 4.退出. *; coutendl; for(; ;) gets(s); cn=atoi(s); / 是为了使输入的字符串转变为数字 return cn; 语句“cn=atoi(s);”是为了使输入的字符串转变为数字,以便使switch中的case语句对应数字1-3。对于不符合要求的输入,将被要求重新输入。2.分子分母的输入重载流运算符-按格式构造输出/输入。 /*重载输出流运算符ostream& operator(ostream& ostr,const Rational& x) ostrx.num”/”x.den; return ostr; 输入流需要保证正确的格式。首先保证分母不等于零;然后调用Standardize()和Reduce()函数调整格式。第3章 设计和调试分析【运行效果参考】1.主界面2.实现各种有理分数的输入/输出3 第4章 源代码#include#include#includeclassRationalprivate:longnum,den;longgcd(longm,longn)const;public:Rational(longp=0,longq=1);Rational(doublex);voidStandardize(void);voidReduce(void);doublezhuanhua(void);voidPrintMixedNumber(void);friendistream&operator(istream&istr,Rational&x);friendostream&operator(ostream&ostr,constRational&x);Rationaloperator+(constRational&x);Rationaloperator-(constRational&x);Rationaloperator*(constRational&x);Rationaloperator/(constRational&x);Rationaloperator-(void);intoperator(constRational&x);intoperator(constRational&x);intoperator=(constRational&x);Rational:Rational(longp,longq)num=p;den=q;voidRational:Standardize(void)if(denn)if(n=0)x=m;elsegcd(n,m%n);elseif(m=0)x=n;elsegcd(m,n%m);returnx;voidRational:Reduce(void)longbigdivisor,tempnumerator;tempnumerator=(num1)num/=bigdivisor;den/=bigdivisor;istream&operator(istream&istr,Rational&x)charc;istrx.numcx.den;if(x.den=0)cerrAZerodenominatoriginvalidendl;exit(1);x.Standardize();x.Reduce();returnistr;ostream&operator(ostream&ostr,constRational&x)ostrx.num/x.den;returnostr;RationalRational:operator+(constRational&x)Rationala;a.num=den*x.num+x.den*num;a.den=x.den*den;a.Standardize();a.Reduce();returna;RationalRational:operator-(constRational&x)Rationala;a.num=num*x.den-x.num*den;a.den=x.den*den;a.Standardize();a.Reduce();returna;RationalRational:operator*(constRational&x)Rationala;a.num=num*x.num;a.den=den*x.den;a.Standardize();a.Reduce();returna;RationalRational:operator/(constRational&x)Rationala;a.num=num*x.den;a.den=den*x.num;a.Standardize();a.Reduce();returna;RationalRational:operator-(void)returnRational(-num,den);intRational:operatorden*x.num)return1;elsereturn0;intRational:operator=den*x.num)return1;elsereturn0;intRational:operator=(constRational&x)if(num*x.den=den*x.num)return1;elsereturn0;intRational:operator!=(constRational&x)if(num*x.den!=den*x.num)return1;elsereturn0;intRational:operator(constRational&x)if(num*x.denden*x.num)return1;elsereturn0;intRational:operator=(constRational&x)if(num*x.den=den*x.num)return1;elsereturn0;doubleRational:zhuanhua(void)returndouble(num)/den;voidRational:PrintMixedNumber(void)longwholepart=long(num/den);Rationalfractionpart;fractionpart.den=den;fractionpart.num=num-wholepart*den;if(fractionpart=Rational(0L)coutwholepartendl;elsefractionpart.Reduce();if(wholepart0)fractionpart=-fractionpart;if(wholepart!=0)coutwholepartfractionpartendl;elsecoutfractionpartendl;Rational:Rational(doublex)doublevall,val2;vall=100000000L*x;val2=10000000L*x;num=long(vall-val2);den=90000000L;Reduce();voidY0()Rationalx;cout请输入有理数x:x;coutx=xendl;cout-x=-xendl;cout浮点数形式:x.zhuanhua()endl;voidY1()doublex,y;Rationali,j,k,l;coutx;cout其有理数形式为:Rational:Rational(x)endl;couti;cout其等效浮点数为:i.zhuanhua()endl;cout3.请输入2个有理数:jk;cout2数相加得j+k2数相减得j-k2数相乘得j*k2数相除得j/kendl;cout4.请输入一个浮点数:y;l=Rational:Rational(y);cout转化为有理数为:lendl;cout再转化为带分数形式的有理数为:;l.PrintMixedNumber();voidY2()Rationalx,y,z;cout有理数方程形式如下:endl;cout(a/b)x+(c/d)=e/fendl;cout请输入3个有理数系数:xyz;if(x=Rational(0L)cout此方程无解.endl;elsecout其解为:(z-y)/xendl;intmenu_select()chars2;intcn;for(inti=0;i24;i+)cout*;coutendl;cout ”求解有理数菜单n”; cout”第八组:梁欣仪 邓雅倩 涂华n”;cout”*-*n”;cout*1.有理数输入输出.*n;cout*2.有理数换算.*n;cout*3.解有理数分式方程.*n;cout*4.退出.*; cout”*-*n”;coutendl;for(intj=0;j24;j+)cout*;coutendl请选择:;for(;)cin.getline(s,2);cn=atoi(s);if(cn4)coutnt输入错误,重选,范围1-4:;elsebreak;returncn;voidhandle_menu()for(;)switch(menu_sele

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论