




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXXXXXX学院C+课程设计任务指导书设计:XXX学 号:XXXXXX姓 名:XXX指导老师:XXX设计时间:2011-11-19至2011-12-23XXXXXXXXXXXXXXXXX学院机电与信息工程系 C程序设计课程设计 计算各分数表达式的值姓名:XXX学号:XXXXXX专业:C+开发实例教程指导老师:XXX一:课程设计的目的1、 在设计过程中,我们通过自学、互助,查阅资料,将理论知识和实际应用有机的结合,锻炼我们实际分析问题、解决问题的能力。2、 我们通过上机实习来验证程序设计的正确性,在出现问题中能够迅速地找出程序代码中的错误并进行修改,提高我们的水平。3、 通过课程设计,使我们掌握C+语言开发小项目的基本流程。4、 对课堂教学进一步深化,为进一步学习与专业相关的其他课程打下基础。二:课程设计题目 “计算各分数表达式的值”的设计。时间为:一周。三:设计要求1、 从文本文件中读取表达式的信息,每行为一个表达式。(可进行分数与分数、分数与整数,整数与分数的加减乘除计算)2、 分数由三部分构成:分子。除号及分母,三部分之间紧密相连,没有空白。(整数可以看成分母是1的分数,此时只有分子部分)3、 运算符包括加减乘除四个,他们与两个操作数之间用空格分隔。(读取每行中的表达式,计算后将结果保存在新的文件中)4、 要保证计算结果是不能再约分的最简化的分数,分母的值要总是正的,若分母是1,显示时则仅显示分子。四:设计内容要求 思路:(1) 利用程序进行加法、减法、乘法、除法四种基本的运算并约分。(2) 主要用到的算法:最小公倍数,最大公约数,交换。(3) 加法的原则:结果的分子是两个数的分子分母交换相乘相加的和,结果的分母是两分母的最小公倍数。(4) 减法的原理与加法类似。(5) 乘法的原理:分母相乘,分子相乘。(6) 除法的原理:第二个分数上下交换后,使用乘法原理。(7) 约分的原理:分子分母分别除以分子分母的最大公约数得到的组合成新的分子分母。 代码注解: class fractionprivate: /私有的数据成员或函数成员public: /公有的数据成员或函数成员;void simplify(); /约分class fraction /分数类public: fraction() /constructors fraction(int numerator=0,int denominator=1);/accessors n=numerator; / 取分子,n成员函数 d=denominator; /取分母friend int GCD(int m,int n) /求m , n公约数friend ostream &operator(istream &in,fraction &f);输入运算符重载void fraction :simplify() /分数约分int z=GYS(a,b);a/=z;b/=z;C+文件流:fstream/ 文件流ifstream / 输入文件流ofstream / 输出文件流五:设计内容用到的知识点声明和引用要注意的问题:引用就是某个目标变量的别名,对应用的操作与对变量直接操作效果完全相同。声明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量有两个名称,即该目标变量名和引用名,不能再把该引用名作为其他变量的别名。声明一个引用,不能新定义一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。函数的分类库函数、自定义函数有返回值、无返回值有参数、无参数函数的定义及调用定义格式:类型 函数名(类型 形参1, 类型 形参2, .) /函数体调用格式:函数名(实参1, 实参2, .)函数的三要素:功能、参数、返回值返回值:有返回值:通过 return 表达式; 返回函数值 return兼有计算的功能 返回值以函数定义时的值为准无返回值:函数体中可省略return语句,函数执行结束时会自动执行return 若出现return语句,其后不能带表达式调用函数:实参可以是表达式实参的类型要和形参一致或兼容若实参是逗号表达式,要用小括号括起来函数可单独作为一个语句被调用,也可作为其他表达式的一部分类的定义:class public: protected: private:;(关键字public,private和protected被称为访问权限修饰符或访问控制修饰符。它们在类体内(即一对花括号内)出现的先后顺序无关,并且允许多次出现,用它们来说明类成员的访问权限。)定义类时应注意的事项1、在类体中不允许对所定义的数据成员进行初始化。2、类中的数据成员的类型可以是任意的,包含整型、浮点型、字符型、数组、指针和引用等。也可以是对象。另一个类的对象,可以作该类的成员,但是自身类的对象是不可以的,而自身类的指针或引用又是可以的。当一个类的对象用为这个类的成员时,如果另一个类的的定义在后,需要提前说明。3、一般地,在类体内先说明公有成员,它们是用户所关心的,后说明私有成员,它们是用户不感兴趣的。在说明数据成员时,一般按数据成员的类型大小,由小至大说明,这样可提高时空利用率。4、经常习惯地将类定义的说明部分或者整个定义部分(包含实现部分)放到一个头文件中。构造函数与析构函数析构函数的定义:析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。构造函数的定义:构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值。构造函数用于创建对象时初始化数据成员析构函数用于对象生命结束时作善后处理注意:系统会提供默认的构造与析构函数一旦定义有构造函数,系统将不再提供默认的构造函数构造与析构函数被系统自动调用构造函数名和类名相同,析构函数名是类名前加构造与析构函数都无返回值构造函数可有参数,可以重载析构函数没有参数,不能重载构造与析构函数的访问权限应是public/对象的构造与析构友元函数友元函数是可以直接访问类的私有的非成员函数。它的定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率(即减少类型检查和安全性检查等都需要时间的等待。)但是,它破坏了类的封装性和隐秘性,使得非成员函数可以访问类的私有成员。定义格式:friend 函数类型 函数名(形参).特点:允许在类外访问类的私有成员友元函数不是函数成员友元声明位置可在类内任意位置,不受访问权限影响友元函数的形参一般是该类的对象或其引用作用:可用于某些类型的运算符重载静态成员:可分为静态数据成员及静态函数成员。(声明时使用static修饰符,另外可访问公有的静态数据成员,而不能访问私有的静态数据成员。)静态数据成员:实现了不同对象间的数据共享该成员不存在于任何对象中,系统为其分配一个公共的存储空间必须在类外定义静态局部变量,若未初始化,则默认是0和全局变量相比有更好的安全性。静态函数成员:一般用于访问静态数据成员,若要访问非静态数据成员,必须通过对象才能访问。静态成员的引用:类名:静态成员名 /一般通过类名而不是对象名来引用静态成员注意:通过类名只能访问静态成员。函数重载函数重载:就是用相同的函数名实现不同的函数功能或者说用相同的接口实现了不同的操作。例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。函数重载的条件:参数个数不同参数类型不同参数顺序不同 函数返回值类型不能作为重载的依据运算符重载运算符重载函数的一般形式为:返回值类型operator 重载的运算符(参数列表)/相关操作;运算符重载遵循的原则:功能应与运算符的原有功能近似不能改变操作数的个数不能改变运算符的优先级不能改变运算符的结合性不能定义新的运算符至少有一个操作数是自定义类型()、-、=必须重载为类的成员,对于其他的运算符,可重载为成员或友元。.、:、?:、.*、sizeof不可重载重载为类的成员函数的条件单目运算符双目运算符左操作数是类对象双目运算符:operand1opoperand2相当于: operand1.operator op(operand2)注意:仅传递第2个参数,第1个参数是调用该函数的对象可显示使用this指针操作该对象,重载为类的友元函数,双目运算符左操作数不是类对象时要传递两个参数给友元函数+,-,可以是前缀操作符,也可以是后缀操作符,为了区分是前缀运算符还是后缀运算符,在重载时将后缀操作符看作二元操作符,增加一个int型参数,但该参数并不参加运算,只是用来区分重载函数。 六、总结经过一个星期的学习和上机实践,在同学们的共同的努力下,程序基本实现了题目的要求,该程序能够把表达式的值给计算出来,并符合设计的要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年创新车间租赁合同规范
- 2025年高科技产品商标许可合同模板
- 2025版学校学生保险与意外伤害赔偿合同
- 2025年智能停车系统车位租赁与数据安全协议
- 2025年度城市轨道交通外脚手架租赁与施工合同
- 2025版汽车泵租赁与市场调研服务合同
- 2025年车牌租赁与智慧城市建设合作框架协议
- 2025办公设备原厂直供购销合同
- 2025版宿舍楼建筑材料采购及供应合同
- 2025年度绿色建筑项目三方施工合同范本
- 劳务外包服务投标方案(技术标)
- 2024年儿童保健技能大赛理论考试题库500题(含答案)
- 路试作业安全操作规程(4篇)
- keycloak中文使用文档-Keycloak使用手册(打印版)
- 手术标本固定
- 人美版美术七年级上册第二单元《第2课 心灵的色彩》教学设计
- 舞蹈家长会课件
- 2024-2025学年中职历史世界历史高教版(2023)教学设计合集
- 【完整打印版】教科版小学科学四年级上册教案(表格)
- 港珠澳大桥总体设计及关键技术-课件
- NB-T 10435-2020 电动汽车快速更换电池箱锁止机构通.用技术要求
评论
0/150
提交评论