基于C++实现的多项式计算器系统

YOUandME

发布日期: 2018-11-05 22:04:12 浏览量: 1567
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

1 实验目的

  • 本实验面向 C++语言的初学者。

  • 主要让实验者熟悉面向对象的编程思想以及类的使用。

2 实验环境

  • 本实验可基于Visual Studio 或Eclipse 或Dev C++平台开发,参考主流的编码规范,如Google C++Style Guide(中文版)

2.1 编程语言和开发工具

  • 编程语言: ANSI C++

  • 开发工具: Dev C++

2.2 编码规范

要求遵循良好的程序设计风格来设计和编写程序。基本编码规范:

  • 标识符的命名要到达顾名思义的程度

  • 关键代码提供清晰、准确的注释

  • 程序版面要求:

    • 不同功能块用空行分隔

    • 一般一个语句一行

    • 语句缩进整齐、层次分明。

3 实验内容

通过 C++的类及运算符重载与其它相关知识,编写一个多项式计算器系统的源代码,生成可执行程序,进行辅助简单多项式计算。

4 分析与设计

简要描述程序设计的过程,包括设计思路,设计要点及特色;程序的不足与改进等。要求画出程序的简单流程图。

4.1 需求分析

通过代码生成的可执行程序,辅助进行简单的多项式计算,如加法减法乘法等等,并含有储存读写功能。

4.2 类结构设计

  1. class polynomial
  2. {
  3. public:
  4. double xishu[20]; //多项式各次系数
  5. int mi[20]; //多项式各次幂
  6. string name; //多项式名字
  7. polynomial()
  8. {
  9. //构造函数
  10. for(int i=0; i<20; i++)
  11. {
  12. xishu[i]=0.0;
  13. mi[i]=0;
  14. }
  15. name="";
  16. }
  17. friendostream &operator<<(ostream&os,polynomialother);
  18. polynomial &operator=(polynomiala);
  19. friend polynomial operator+(polynomial a1,polynomial a2);
  20. friend polynomial operator-(polynomial a1,polynomial a2);
  21. friend polynomial operator*(polynomial a1,polynomial a2);
  22. friend polynomial operator*(polynomial b,int changshu);
  23. friend bool operator==(polynomial a1, polynomial a2);
  24. polynomial qiudao();
  25. double qiuzhi(int a);
  26. };

类中定义了多项式的名字,系数和幂,以及初始构造函数和各种运算符 的重载,只有一个类,没有类之间关系图。

4.3 细节设计

数据成员设计

  1. double xishu[20]; // 多项式各次系数
  2. int mi[20]; // 多项式各次幂
  3. string name; // 多项式名字

成员函数

  1. polynomial()
  2. {
  3. //构造函数
  4. for(int i=0;i<20;i++)
  5. {
  6. xishu[i]=0.0;
  7. mi[i]=0;
  8. }
  9. name="";
  10. }
  11. friend ostream &operator<<(ostream &os,polynomial other);
  12. polynomial &operator=(polynomial a);
  13. friend polynomial operator+(polynomial a1,polynomial a2);
  14. friend polynomial operator-(polynomial a1,polynomial a2);
  15. friend polynomial operator*(polynomial a1,polynomial a2);
  16. friend polynomial operator*(polynomial b,int changshu);
  17. friend bool operator==(polynomiala1,polynomiala2);
  18. polynomial qiudao();
  19. double qiuzhi(inta);

5 实验结果

主界面

计算测试

经过 17 个错误,36 个错误,27 个错误,26 个错误等等的数次检查,在没有语言错误时却出现了程序停止工作,最后发现在长度为 20 的数组循环时出现了低级失误,写成了 i=0;i <=20;。改正过后,在前几次运行中,不管输入幂为几,最后 的计算结果在每项上的幂都是 0,检查了好长时间没有发现错误,最后进行在运算符重载函数中添加赋值语句,解决了问题。

6 设计心得

每一次的项目都是一次长久煎熬,基本是好多地方不会打,和小组讨论很多关键地方,统一了想法,却又不能打出相似的代码导致被罚分,真的是心力交瘁。自己打的过程中更是难上加难,打一段时间就出现了空白或者短路,甚至焦躁,再加上让人无力的 debug,简直要作死我自己。这次的多项式计算器系统,在文件的读取和写入部分,一直不是很了解,所以还要去过多参考了解其他同学的思想。老师规定了使用类以及运算符重载,我们还试着去完成多余的三个功能,并且尽力使操作简单,界面美观。总之,希望以后的日子里慢慢提升。

上传的附件 cloud_download 多项式计算器系统.7z ( 617.54kb, 100次下载 )
error_outline 下载需要7点积分

发送私信

与其临渊羡鱼,不如退而结网

6
文章数
7
评论数
最近文章
eject