欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    软件课程设计第二阶段 实验报告.docx

    • 资源ID:2464013       资源大小:250.22KB        全文页数:29页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件课程设计第二阶段 实验报告.docx

    1、软件课程设计第二阶段 实验报告编号:( )字 号软件课程设计报告中国矿业大学计算机科学与技术学院 年 月软件课程设计任务书专业年级: 学生姓名: 任务下达日期: 200 年 月 日课程设计日期: 200 年 月 日至 200年 月 日课程设计题目: 面向过程 类别题目序号成绩面向对象1 复数运算问题5 学习与成绩管理软件课程设计指导教师评阅书指导教师评语(基础理论及基本技能的掌握;独立解决实际问题的能力;研究内容的理论依据和技术方法;取得的主要成果及创新点;工作态度及工作量;总体评价及建议成绩;存在问题等):成 绩: 指导教师签字: 年 月 日目录三、 面向对象设计题1-复数运算问题(第二阶段

    2、 第一题.cpp)3.1 需求分析.43.2 概要设计.53.3 详细设计与编码.53.4 调试分析.93.5 用户使用说明 .103.6 设计心得.10四、 面向对象设计题5-学习与成绩管理(第二阶段 第五题 学习与成绩管理.cpp)4.1 需求分析.114.2 概要设计.124.3 详细设计与编码.124.4 调试分析.214.5 用户使用说明 234.6 设计心得.233.1需求分析本程序通过编写“复数”这个类以及相关的成员函数以实现附属的相关运算(加减乘除及取模)。输入的形式:复数:double型数据(包含整数和小数部分),分别输入复数的实部和虚部输入的值的范围:实数集(在double

    3、型可以表示的范围内)操作的选择:整型数(1到6)输出的形式:double型数据(包含整数和小数部分),以复数的实部和虚部呈现输出的值的范围:实数集(在double型可以表示的范围内)程序达到的功能:实现复数的加减乘除和取模操作(由于输入输出形式的限制有些运算只显示近似值)测试的数据:输入的数据:1.2 1.21(加法)1.7 7.9输出结果:2.9+9.1i2(减法)1.0 0.3输出结果:0.2+0.9i3(乘法)5.0 1输出结:4.8+10.8i4(除法)3 0输出结果:0.4+0.4i5(取模)1.697066(退出)3.2概要设计定义了一个复数类,包括两个私有数据:复数实部和复数虚部

    4、;类中包括加减乘除以及求模的成员函数(还包括求共轭复数、输出函数等)。主函数中首先输入参数 调用复数类的构造函数对类的私有数据进行初始化,然后通过dowhile语句进行操作的选择(同时判断操作的选择中输入参数是否符合规定);然后使用switchcase语句调用操作函数(加减乘除以及取模)在操作函数中输入需要进行运算的参数并在操作函数中输出结果。注意在除法中需要调用求共轭函数以及求分母函数(gongemo)。3.3详细设计与编码Main函数流程图:(因操作函数简单在这里不再画流程图)#include#include#include#include double pow(double, doubl

    5、e); using namespace std;class complexprivate: double real; /复数实部 double imag; /复数虚部public: complex(); /无参构造函数 complex(double r, double i); /2参构造函数 complex addCom(complex c2); /调用者对象与对象c2相加,返回complex类对象 complex remove(complex c2);/复数减法 complex cheng(complex c2);/复数乘法 complex chu(complex c2);/复数除法 com

    6、plex gonge();/求共轭复数 double gongemo(); double qumo();/复数取模 void outCom (); /输出调用者对象的有关数据(各分量) ;complex:complex()/无参构造函数 real=0; imag=0;complex:complex(double r,double i)/2参构造函数 real=r; imag=i;double complex:gongemo()/用于复数除法求分母 double a=real*real+imag*imag; return a;complex complex:gonge()/用于复数除法求共轭复数

    7、 imag=-imag; return *this;complex complex:addCom(complex c2)/复数加法 real=c2.real+real; imag=c2.imag+imag; return *this;complex complex:remove(complex c2)/复数减法 real=real-c2.real; imag=imag-c2.imag; return *this;complex complex:cheng(complex c2)/复数乘法 real=real*c2.real-imag*c2.imag; imag=imag*c2.real+rea

    8、l*c2.imag; return *this;complex complex:chu(complex c2)/复数除法 double fenmu=c2.gongemo();/定义一个double型分母 c2.gonge(); real=real*c2.real-imag*c2.imag; imag=imag*c2.real+real*c2.imag; real=real/fenmu; imag=imag/fenmu; return *this;double complex:qumo()/复数取模 double a; a=pow(real*real+imag*imag),0.5); retur

    9、n a;void complex:outCom()/输出复数 cout该复数为:real+imagiendl;void main() double a,b; int num; double c,d; cout请输入复数的实部和虚部:ab; complex fu(a,b); do docout请选择您要进行的操作:endl;cout1.加法。2.减法。3.乘法。4.除法。5.取模 6.退出num;if(num0)&(num7)break; while(1);/考虑输入的操作不合法的情况 complex fu(a,b);if(num=6)break;if(num=5) cout该复数的模为:fu.

    10、qumo(); coutendl;if(num!=5) cout请输入要加上/减去/乘取/除以的复数的实部和虚部cd; complex yunsuan(c,d);switch(num)case 1:fu.addCom(yunsuan); fu.outCom();break;case 2:fu.remove(yunsuan); fu.outCom();break;case 3:fu.cheng(yunsuan); fu.outCom();break;case 4:fu.chu(yunsuan); fu.outCom();break; while(num!=6);3.4调试分析输入的数据:1.2

    11、1.21(加法)1.7 7.9输出结果:2.9+9.1i2(减法)1.0 0.3输出结果:0.2+0.9i3(乘法)5.0 1输出结:4.8+10.8i4(除法)3 0输出结果:0.4+0.4i5(取模)1.697066(退出)正确的输出结果:(因调试中并未出现程序的错误在此不再呈现错误的程序截图)遇到的问题:对复数的除法了解不够熟悉,无法正确编写复数除法的函数。解决方法:对复数的除法进行思考探究,找出正确的编写方法。3.5用户使用说明按照提示输入:先输入要进行运算的初始数据(实部和虚部),两个数据间以TAB键或回车或空格间隔,而后程序会提示进行什么样的操作,请按照操作前的数字输入(数字16)

    12、若不选择退出则程序会一直运行下去,选择退出(数字6)程序会停止运行。(注意:在运算中输入的数据同样以TAB键或回车或空格间隔)3.6设计心得1.通过本程序的编写复习了类的编写以及使用2.增强了对用户输入数据思考的全面性3.复习了this指针的使用4.复习了类的编写中的构造函数的编写方式5.通过本程序的编写对类有了更深刻的理解4.1需求分析本程序用于简易的学习与成绩管理,输入学生的相关信息及学习成绩,通过输入命令(对编号、姓名、以及总分和性别的要求)对信息进行检索。输入形式:姓名、性别为char型,分数、年龄为int型。分数为0100,年龄0;性别f女m男程序能够实现的主要功能:(1) 从键盘输

    13、入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。(2) 按编号对学生信息进行检索并将检索结果显示在屏幕上。(3) 按姓名对学生信息进行检索并将检索结果显示在屏幕上。(4) 计算某编号学生的总成绩与平均成绩。(5) 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。输出的形式及范围同输入形式测试数据:(输入几个学生)2编号1姓名LiPing性别m年龄18数学成绩89计算机成绩98外语成绩94姓名MingSha性别f年龄19数学成绩99计算机成绩91外语成绩891. 按编号检索输入2输出: 2 MingSha f 19 88 91 892. 按姓名检

    14、索输入MingSha输出:2 MingSha f 19 88 91 893. 计算编号为n的同学的平均分和总分输入要计算总分的学生的编号:1输出:281输入要计算平均分的学生的编号:1输出:934. 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。输入:(请输入总成绩)200(请输入性别)f输出:2 MingSha f 19 88 91 894.2概要设计定义一个学生类,包括编号,姓名,年龄,性别,数学成绩,计算机成绩,外语成绩。类中包括返回函数(返回各类私有数据)以及检索编号函数,检索姓名函数,求总分、平均分函数以及根据总分和性别检索的函数,重载输出流函数。主函数调

    15、用流程:定义一个学生类对象,以二进制的方式打开一个文件,使用循环输入的方式(采用for循环方式,以输入的学生个数n为退出循环的条件),将数据输入到文件中。然后使用switchcase语句选择命令:1.调用编号检索函数:打开文件,使用open函数打开文件,读入数据到类的数组中,在该函数中根据输入的编号直接输出类的数组相关数据(输出流函数已重载)。2.调用检索姓名函数,读入数据过程类似1,输入姓名(存入字符型数组中),使用strcmp函数进行比较,使用for循环进行遍历,输出结果。3.计算平均分和总分函数:读入数据过程类似1,根据输入的编号,调用类的相关数据进行计算,在函数中直接输出结果4. 根据

    16、总分和性别检索:读入数据过程类似1,调用定义好的另一个求总分函数返回总分,利用for循环将所有数据遍历一遍,使用strcmp函数以及大小比较选择出符合条件的数据输出,否则输出无数据。在dowhile语句中,根据输入的命令(整数0到4)判断是否继续进行,如果不输入0,则会一直询问命令,如果输入0(退出),则程序终止退出。4.3详细设计与编码主函数流程图:检索编号void searchnum()函数流程图检索姓名void searchname()函数流程图Void shaixuan()函数流程图程序源代码:#include#include#include#includeint strcmp(con

    17、st char st1,const char str2);int strcpy(const char str1,const char str2);using namespace std;int nnn=0;/用来表示有几个学生/全局变量class CStudentprivate: int num,age,math,computer,english; char sex3;/性别f女 m男 char name10;public: void output()/输出函数 coutsetw(5)numsetw(5)namesetw(5)sex; coutsetw(5)agesetw(5)mathsetw

    18、(5)computersetw(5)englishendl; int renum()return num;/以下均为返回函数 用于程序中调用 char *rename()return name; char *resex()return sex; int reage()return age; int remath()return math; int recomputer()return computer; int reenglish()return english; void input()/输入函数 cout编号num; cout姓名name; cout性别(f女 m男)sex; cout年龄

    19、age; cout数学成绩math; cout计算机成绩computer; cout外语成绩english; friend ostream&operator(ostream &output,CStudent &a);/输出流重载函数 friend void searchnum();/搜索编号函数 friend void searchname();/搜索姓名函数 friend void average();/求平均值函数 friend void sum();/求总分函数 friend int sum2(CStudent a,int n);/求总分函数 用于筛选函数中调用 friend void

    20、shaixuan(int jishu);/出所有总成绩超过n分的性别为s同学的有关信息;ostream &operator (ostream &output,CStudent &a)/重载输出流函数 outputsetw(3)a.num setw(5)a.namesetw(5)a.sex; outputsetw(5)a.agesetw(5)a.mathsetw(5)putersetw(5)a.englishendl; return output; void searchnum()/按编号搜索 int i=0; CStudent b50; ifstream f; f.open(stud.dat,

    21、ios:in|ios:binary);/从文件中读入 while(f.read(char*)(b+i),sizeof(CStudent) i+; f.close(); cout请输入要检索的序号n; if(i=n) coutbn-1; else cout输入错误;/考虑输入不符合的情况 void searchname()/按姓名查找 int i=0;bool zhuangtai=1; CStudent b20; char str110; cout请输入你要查找的姓名str1; ifstream f; f.open(stud.dat,ios:in|ios:binary);/从文件中读入 whil

    22、e(f.read(char*)(b+i),sizeof(CStudent) i+; f.close(); for(int p=0;pnnn;p+) if(!strcmp(str1,bp.rename()/使用strcmp函数进行比较 coutbp; zhuangtai=0; break; if(zhuangtai)cout查无此人endl; void average()/求平均分 int i=0; CStudent b50; ifstream f; f.open(stud.dat,ios:in|ios:binary);/从文件中读入 while(f.read(char*)(b+i),sizeo

    23、f(CStudent) i+; f.close(); cout请输入你要进行计算平均数学生的编号n; double ave; if(i=n) ave=(bn-1.math+bn-puter+bn-1.english)/3; cout平均分为ave; elsecout输入错误endl; void sum()/求总分 int i=0; CStudent b50; ifstream f; f.open(stud.dat,ios:in|ios:binary);/从文件中读入 while(f.read(char*)(b+i),sizeof(CStudent) i+; f.close(); cout请输入

    24、你要进行计算总分学生的编号n; if(i=n) double sum; sum=bn-1.math+bn-puter+bn-1.english; cout总分为sum; else cout输入错误endl; int sum2(CStudent a,int n)/用于shaixuan函数中调用 int summ; summ=an-1.remath()+an-1.reenglish()+an-1.recomputer(); return summ; void shaixuan(int jishu) int i=0;bool zt=1; CStudent b50; ifstream f; f.ope

    25、n(stud.dat,ios:in|ios:binary);/从文件中读入 while(f.read(char*)(b+i),sizeof(CStudent) i+; f.close(); int nn; char sexx5; cout请输入总成绩nn; cout请输入性别sexx; for(int ii=0;ii=nn)/使用strcmp函数进行性别上的比较并判断总分是否符合要求 coutbii;zt=0; if(zt)cout无该数据endl; void main() cout请输入学生相关信息:endl; CStudent aa; int n; cout请选择输入几个学生:n; fstream f(stud.dat,ios:out|ios:binary); for(int i=0;in;i+)/循环输入并保存在文件中 aa.input(); f.write(char*)&aa,sizeof(class CStudent); nnn+; f.close();


    注意事项

    本文(软件课程设计第二阶段 实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开