您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 程序设计题(数据结构C++)(第一章)
软件工程专业《数据结构/C++》课程的程序设计学生版第一章算法设计基础题目:1.算菜价2.复数的计算3.计算大整数除了第一章习题.doc(理解时间复杂度)外,还要加强编程练习。上面三道题目,每个同学至少做一个,最好三题都做。要求算菜价和复数的计算用到typedefstruct结构体类型。同学们,不会做,没有关系,可以和同学讨论,可以百度去查找,然后自己理解透彻,如果是参考了同学的,自己反复输入多遍,达到自己能独立的写出来,这三道题目是对过去C语言或C++的一个复习而已,一定要能够做出至少一题来哦。成绩评定标准及格:完成题1中:完成1+2良:满足下列条件之一可得良:1、完成题目1+2+3(3题完成ADT设计即可)2、完成题目1+2并且准对程序考虑到算法的健壮性和效率优:满足下列条件之一可得良:1、完成题目1+2+3(完成部分程序设计实现)2、完成题目1+2+3并且对程序考虑到算法的健壮性和效率1.1.算菜价【问题描述】妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。【输入】输入含有一些数据组,每组数据包括菜种(字串),数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的。【输出】支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉。最后,请输出一个精度为角的菜价总量。SampleInput青菜12罗卜21.5鸡腿24.2SampleOutput13.41.2.设计复数运算程序,能完成复数的加法减法和乘法。【问题描述】复数的抽象数据类型描述如下:请参照结构完成下面的程序抽象数据类型复数的定义:ADTComplex{数据对象:D={e1,e2|e1,e2∈RealSet}数据关系:R1={e1,e2|e1是复数的实数部分,|e2是复数的虚数部分}基本操作:InitComplex(&Z,v1,v2)操作结果:构造复数Z,其实部和虚部分别被赋以参数v1和v2的值。DestroyComplex(&Z)操作结果:复数Z被销毁。GetReal(Z,&realPart)初始条件:复数已存在。操作结果:用realPart返回复数Z的实部值。GetImag(Z,&ImagPart)初始条件:复数已存在。操作结果:用ImagPart返回复数Z的虚部值。AddComplex(&sum,z1,z2)初始条件:z1,z2是复数。操作结果:用sum返回两个复数z1,z2的和值。SubtractComplex(&Sub,z1,z2)初始条件:z1,z2是复数。操作结果:用Sub返回两个复数z1,z2的差值。MultipleComplex(&Mul,z1,z2)初始条件:z1,z2是复数。操作结果:用Mul返回两个复数z1,z2的乘积。DivisionComplex(&Div,z1,z1)初始条件:z1,z2是复数。操作结果:用Div返回两个复数z1,z2相除的结果。PrintComplex(Z)初始条件:z1是复数操作结果:输出z1的结果。}ADTComplex【输入】两个复数【输出】计算复数的加、减、乘、除SampleInput56612SampleOutput5+6i6+12i......备注:1、复数加法:设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的和(a+bi)+(c+di)=(a+c)+(b+d)i.2、1、复数加法:设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的差(a+bi)-(c+di)=(a-c)+(b-d)i.3、复数的乘法按照以下的法则进行:设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.4、复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商请按照下面的程序框架将程序写完整:(下面程序描述的可能不全面,可根据自己的能力进行适当调正,使其更加适用)#includeiostreamusingnamespacestd;typedefstructComplex{floatreal;floatimage;}Complex;voidInitComplex(Complex&c,floata,floatb)//构建一个复数{请填写}voidAddComplex(Complex&sum,Complexc1,Complexc2)//复数的加法运算{请填写}voidSubtractComplex(Complex&Sub,Complexc1,Complexc2){请填写}voidMultipleComplex(Complex&product,Complexc1,Complexc2){请填写}voidDivisionComplex(Complex&product,Complexc1,Complexc2){请填写}voidPrintComplex(Complexz){if(c.image==0.0)coutz.realendl;elseif(z.real==0.0)coutz.imageiendl;elsecoutz.real+z.imageiendl;}intmain(){//可根据需求自行设计主程序,完成复数算法的测试floata,b,c,d;Complexc1,c2,sum,Sub,Prod;cinabcd;InItComplex(c1,a,b);PrintComplex(c1);InItComplex(c2,c,d);PrintComplex(c2);AddComplex(sum,c1,c2);PrintComplex(sum);SubtractComplex(Sub,c1,c2);PrintComplex(Sub);MultipleComplex(Prod,c1,c2);PrintComplex(Prod);}ADT抽象数据类型格式如下:ADT抽象数据类型名{数据对象:〈数据对象的定义〉数据关系:〈数据关系的定义〉基本操作:〈基本操作的定义〉}ADT抽象数据类型名1.3.计算大整数A+B【问题描述】输入两个数对其求和,参考1.2实例要求写出大整数抽象数据类型ADT,完成其中一部分运算,并做适当测试。SampleInput21212345678912345678912345678912345678901234567890112233445566778899998877665544332211SampleOutputCase1:1+2=3Case2:123456789123456789123456789+12345678901234567890=123456801469135690358024679Case3:112233445566778899+998877665544332211=1111111111111111110
本文标题:程序设计题(数据结构C++)(第一章)
链接地址:https://www.777doc.com/doc-2150952 .html