[讨论] 单班dsa homework 1

楼主: ryuchenchang (陈仓)   2013-02-27 00:23:25
不知道理解有没有错.....
如下列指示,你要把程式码交到课程网站是指定的位置。
任何形式的偷撇步、造假、或抄袭都不会被放过。你要是这样做,我们会给你零分/负分
、被当、或是退学。
我们鼓励有关课程的讨论。但是写作业时大家还是要自己写,并充分理解。书、笔记、网页可以参考,但不能抄袭。
已经规定作业要独立完成,你也没有必要把作业借给别人。为了最大的公平,像别人借作业或是把作业借给他人的行为都被当作不诚实,并会给予严重处分。
作业可以使用中文或英文,但程式码的部分,我们这次规定使用C++,并禁止使用printf(), scanf()等涵式。
这个作业的目的是要你学会C++。在C++理面,变量可以包装成class,有点类似C的structure,
但是可以在class中定义操作这些变量的函数。你应该已经知道如何在class中定义函数,并用public让他们可以在class以外的区域使用。在你们这礼拜的阅读作业中,你要学会如何用一个constructor建构、初始化一个物件。我知道你们对C++不熟悉,因此决定给你们这个作业当做刺激,强迫你们去寻找资源并学习。给你们一个小建议:你们该开始去看书、烦TA了窝!
在class中,另外一个特别的涵式叫做operator,我们上课也展示过他的用法。operator函数会定义物件不同运算子下会做什么运算,让各个运算子学会新招,或是让它超量负荷。你可以对各运算子作全域的定义,或是只有在class内的定义。超载的运算子要以函数实作。
在这次的功课理面,你要实作一个constructor、两个函数、以及运算子超载。你要相处的class是一个一元的复数系数多项式,要实作的运算子包含相加、相减、相乘以及合成。举例,你要超载+用来相加两个多项式。再来,你要把宣告和实作分开。做出一个标头挡poly.h,如
....
以及实作的档案poly.cpp
作业要求:
请实作一个C++的class poly代表多项式,并具备下列项目:
1. class 标头挡,包含下列函数的定义
2. class constructor,要合理的将物件初始话。
3. eval步骤,计算多项式的输出值。
4. show步骤,会打印出多项式,有下列格式:
*系数升幂排列
*输出以非零的首项系数结尾,若为零多项式,则印0.00
*各系数均以"+-a+-bi","+-a","+-bi",且a,b都是小数点显示两位的服点数。单独出现的+号都要省略
*系数为 +-1.00时也不要省略系数
*输出格式不包含引号""
*范例输出如"3.14","1.00","2.72i","1.00+1.00i"
5. 超载+
6. 超载-
7. 超载*
8. 超载()
作业包含poly.h, poly.cpp. poly.h中做宣告,poly.cpp中实作。这两个档案会和助教写的main.cpp结合,然后有向泛力一样的输入瀚枢出。
请注意,复数并不是一个C++内建的资料形态,我们鼓励你实作一个ComplexNumber的物件,让你的poly更容易写,但是不抢破。
范例输入
范例输出
相关档案:
main.cpp:TAs会用这个档案测试你的物件。所以你必须实际想出以上函数。
MAKEFILE:TAs会用这个档案make, make run还编译、测试你的作业。请确认你的程式可以在217的linux机器上编译、执行。否则你不会通过基本测资、拿零分。
缴交档案:
请江你的作业压缩成一的zip档案并上传ceiba,死线2013/3/7。档名为学号,如
b01902999.zip。zip包含下列档案:
poly.cpp
poly.h
想给TA看的README
MEDAL如果你想要用金牌,可以包含这个档案,并在第一行写一个数字,表示你想要用几
面金牌。一面金牌可以把总分提高一倍,但是一学期只有四面,用了也不能追回,请小心使用。
※ 编辑: ryuchenchang 来自: 111.240.202.186 (02/27 00:29)
※ 编辑: ryuchenchang 来自: 111.240.202.186 (02/27 00:30)
作者: CharlieL (心平氣和)   2013-02-27 03:04:00
"一面金牌可以把总分提高一倍"是个大大的误解 :-)
楼主: ryuchenchang (陈仓)   2013-02-27 19:50:00
谢谢老师^^

Links booklink

Contact Us: admin [ a t ] ucptt.com