YOUandME
本实验面向 C++语言的初学者。
主要让实验者熟悉面向对象的编程思想以及类的使用。
编程语言: ANSI C++
开发工具: Dev C++
要求遵循良好的程序设计风格来设计和编写程序。基本编码规范:
标识符的命名要到达顾名思义的程度
关键代码提供清晰、准确的注释
程序版面要求:
不同功能块用空行分隔
一般一个语句一行
语句缩进整齐、层次分明。
通过 C++的类及运算符重载与其它相关知识,编写一个多项式计算器系统的源代码,生成可执行程序,进行辅助简单多项式计算。
简要描述程序设计的过程,包括设计思路,设计要点及特色;程序的不足与改进等。要求画出程序的简单流程图。
通过代码生成的可执行程序,辅助进行简单的多项式计算,如加法减法乘法等等,并含有储存读写功能。
class polynomial
{
public:
double xishu[20]; //多项式各次系数
int mi[20]; //多项式各次幂
string name; //多项式名字
polynomial()
{
//构造函数
for(int i=0; i<20; i++)
{
xishu[i]=0.0;
mi[i]=0;
}
name="";
}
friendostream &operator<<(ostream&os,polynomialother);
polynomial &operator=(polynomiala);
friend polynomial operator+(polynomial a1,polynomial a2);
friend polynomial operator-(polynomial a1,polynomial a2);
friend polynomial operator*(polynomial a1,polynomial a2);
friend polynomial operator*(polynomial b,int changshu);
friend bool operator==(polynomial a1, polynomial a2);
polynomial qiudao();
double qiuzhi(int a);
};
类中定义了多项式的名字,系数和幂,以及初始构造函数和各种运算符 的重载,只有一个类,没有类之间关系图。
数据成员设计
double xishu[20]; // 多项式各次系数
int mi[20]; // 多项式各次幂
string name; // 多项式名字
成员函数
polynomial()
{
//构造函数
for(int i=0;i<20;i++)
{
xishu[i]=0.0;
mi[i]=0;
}
name="";
}
friend ostream &operator<<(ostream &os,polynomial other);
polynomial &operator=(polynomial a);
friend polynomial operator+(polynomial a1,polynomial a2);
friend polynomial operator-(polynomial a1,polynomial a2);
friend polynomial operator*(polynomial a1,polynomial a2);
friend polynomial operator*(polynomial b,int changshu);
friend bool operator==(polynomiala1,polynomiala2);
polynomial qiudao();
double qiuzhi(inta);
主界面
计算测试
经过 17 个错误,36 个错误,27 个错误,26 个错误等等的数次检查,在没有语言错误时却出现了程序停止工作,最后发现在长度为 20 的数组循环时出现了低级失误,写成了 i=0;i <=20;。改正过后,在前几次运行中,不管输入幂为几,最后 的计算结果在每项上的幂都是 0,检查了好长时间没有发现错误,最后进行在运算符重载函数中添加赋值语句,解决了问题。
每一次的项目都是一次长久煎熬,基本是好多地方不会打,和小组讨论很多关键地方,统一了想法,却又不能打出相似的代码导致被罚分,真的是心力交瘁。自己打的过程中更是难上加难,打一段时间就出现了空白或者短路,甚至焦躁,再加上让人无力的 debug,简直要作死我自己。这次的多项式计算器系统,在文件的读取和写入部分,一直不是很了解,所以还要去过多参考了解其他同学的思想。老师规定了使用类以及运算符重载,我们还试着去完成多余的三个功能,并且尽力使操作简单,界面美观。总之,希望以后的日子里慢慢提升。
keyboard_arrow_left上一篇 : 基于SDL类库实现的射死大鸡怪3D游戏 基于Linux的教务选课系统 : 下一篇keyboard_arrow_right