1、C+C+课程设计实验报告课程设计实验报告 姓名姓名 学号学号 班级班级 合作者合作者 学号学号 班级班级 任课教师任课教师 时间时间 教师指定题目教师指定题目 复数计算器复数计算器 评定难易级别评定难易级别 A A 级级 实验报告成绩实验报告成绩 复数计算器复数计算器 程序功能设计程序功能设计 1 程序功能的总体结构程序功能的总体结构 复数计算器的程序总体功能可设计成如图所示, 可以看出, 复数计算复数计算器的程序总体功能可设计成如图所示, 可以看出, 复数计算 器的各种功能都用菜单选项列出,用户可以根据需要选择相应的菜单器的各种功能都用菜单选项列出,用户可以根据需要选择相应的菜单 项,从而执
2、行不同的子程序以完成相应的功能。项,从而执行不同的子程序以完成相应的功能。 2课程设计要求课程设计要求 (1) 一开一开始运行程序,要有详细的菜单选项界面,用户不选择退出就可以始运行程序,要有详细的菜单选项界面,用户不选择退出就可以 反复运算。反复运算。 (2) 可以进行多个操作数的复数运算,输入可以进行多个操作数的复数运算,输入 00i时为止。时为止。 (3) 编写可以对输入的复数求模的成员函数。编写可以对输入的复数求模的成员函数。 (4) 编写具有测试功能的函数,即计算机能够自动出题,并要求用户计算,编写具有测试功能的函数,即计算机能够自动出题,并要求用户计算, 同时计算机判断用户计算的对
3、错并打分,要求十题为一个单元,每题同时计算机判断用户计算的对错并打分,要求十题为一个单元,每题 一个运算符,运算符包括,三种,参与加减运算实部虚部为一个运算符,运算符包括,三种,参与加减运算实部虚部为 一位数。一位数。 (5) 重载输入输出运算符, 对复数的输入既可采用实部虚部分开提示输入,重载输入输出运算符, 对复数的输入既可采用实部虚部分开提示输入, 也可直接输入诸如或这种形式,对复数的输出要也可直接输入诸如或这种形式,对复数的输出要 考虑实部虚部的正负号,通过判断给出的输考虑实部虚部的正负号,通过判断给出的输出结果。出结果。 N N Y N Y . . . . . . Y N Y 2 程
4、序程序设计思想设计思想 1)类的封装)类的封装 程序中将复数形式的数据定义成一个复数类程序中将复数形式的数据定义成一个复数类 CComplex,重载了加法及减重载了加法及减 法等运算符法等运算符,使函数的加减等运算像一般数据一样方便使函数的加减等运算像一般数据一样方便.每个运算符重载都用每个运算符重载都用 一个函数去实现。一个函数去实现。参考类的定义如下:参考类的定义如下: class CComplex 输出菜单 及提示信 输入选择 开始 是否做加法 加法子程序 Add () 结束 是否做减法 是否进行测试 是否退出 减法子程序 测试子程序 private: double Real,Image
5、; public: CComplex(double real=0,double image=0) /构造函数构造函数 Real=real;Image=image; friend istream /重载输入重载输入 friend ostream int operator运算符,其功能是让用户能够直接输入运算符,其功能是让用户能够直接输入 a+bi, a+b*i 两种形式的复数,其结构框图如图两种形式的复数,其结构框图如图 3 所示。所示。 设置循环次数为 10 产生 8 个 100 以内的随机数 前两个随机数 初始复数对象 1 后两个随机数 初始复数对象 2 产生 2 以内的 随机数 op Op
6、 为 0 两对象相加 用户输入结果 结果是否正确 总分加 10 两对象相减 用户输入结果 结果是否正确 输出出错信息 总分加 10 输出出错信息 输出总分 结束 用两个随机数 初始复数对象 3 最后两个随机数 初始复数对象 4 两对象相乘 用户输入结果 结果是否正确 总分加 10 输出出错信息 Y N Y N N N N N 以字符串的形式 接受复数对象 求字符串长度 初试化当前数值 n=0,字符变量 sign=1 字符串是否存 在非法字符 是否判别完字符 串中所有字符 当前字符为+、 号, 同时 n!=0 前面取出的数值赋给实部,n=0 Sign=1,k+ 当前字符是否 是+ 当前字符是 否是 Sign=1,k+ 当前字符是否 是为i 最后一个字符不 是i且 n