江苏科技大学 C++课程实践报告答案
更新时间:2024-06-15 04:04:01 阅读量: 综合文库 文档下载
- 江苏科技大学推荐度:
- 相关推荐
江苏科技大学
课程实践报告
设计题目: 程序设计(VC++)实践 设计时间 至 学院(系): 专业班级:
学生姓名: 学号 指导老师:
2013年12月
任务一
一、实践任务
2.试建立一个类SP,求求
。
,另有辅助函数power(m,n)用于
二、详细设计
1、类的描述与定义 (1)私有数据成员
??int n,k:存放公式中n和k的值;
(2)公有成员函数
??SP(int n1,int k1):构造函数,初始化成员数据n和k。 ??int power(int m, int n):求mn。 ??int fun( ):求公式的累加和。 ??void show( ):输出求得的结果。
2、主要函数设计
在主程序中定义对象s,对该类进行测试。
三、源程序清单
#include for (int i=1;i void main() { SP a(3,3); a.power(3,3); a.fun(); a.A(); }四、实践小结 掌握用循环语句求m^n,和m!,熟练掌握函数的调用。 五、运行结果 任务三 一、实践任务 3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??float array[20]:一维整型数组。 ??int n:数组中元素的个数。 (2)公有成员函数 ??MOVE(float b[],int m):构造函数,初始化成员数据。 ??void average():输出平均值,并将数组中的元素按要求重新放置。 ??void print():输出一维数组。 2、主要函数设计 在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。 三、源程序清单 四、实践小结 应熟练掌握数组与指针的应用。 五、运行结果 任务四 一、实践任务 4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??int *array:一维整型数组。 ??int n:数组中元素的个数。 (2)公有成员函数 ??MOVE(int b[],int m):构造函数,初始化成员数据。 ??void exchange():输出平均值,并将数组中的元素按要求重新放置。 ??void print():输出一维数组。 ??~MOVE():析构函数。 2、主要函数设计 在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。 三、源程序清单 四、实践小结 学会求数组中最大元素与最小元素方法,并实现交换。 五、运行结果 任务六 一、实践任务 6.定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??char *str; ??int y:标记是否为回文字符串。 (2)公有成员函数 ??String (char *s) :构造函数,用给定的参数s初始化数据成员str。y初始化 为0。 ??void huiwen () :判断str所指向的字符串是否为回文字符串。 ??void show( ) :在屏幕上显示字符串。 2、主要函数设计 在主程序中定义字符串char s[]=”ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,完成对该类的测试。 三、源程序清单 四、实践小结 掌握判断回文字符串的一般形式。 五、运行结果 任务十一 一、实践任务 11.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。 例如将字符串“abcde” 交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??char str1[80] :存放被插入的字符串。 ??char str2[40] :存放待插入的字符串。 (2)公有成员函数 ??STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。 ??void process():将str2中的字符串插入到str1中。 ??void print():输出插入后的字符串。 2、主要函数设计 在主程序中定义STRING类的对象test对该类进行测试。 三、源程序清单 #include STRING(char*s1,char*s2) { strcpy(str1,s1); strcpy(str2,s2); } void process(); void print(); }; void STRING::process() { int i,j; int n=strlen(str1); if(strlen(str2)>strlen(str1)) {//当待插入的字符串ABCDEFG比被插入的字符串abcde长或相等时,逻辑算法:abcde->a b c d e->空格处依次插入ABCDEFG->aAbBcCdDeEFG; for(i=n-1;i>0;i--) { str1[i+i]=str1[i];//被插入的字符串由最后一位开始各位向后移动i位; } for(i=1,j=0;i<2*n;i+=2,j++) { str1[i]=str2[j];//在空出的位置处依次插入字符串; } i--; for(;j<=strlen(str2);j++,i++) { str1[i]=str2[j];//将过长额字符串放入被插入的字符串尾部,完成插入; } } else//当待插入的字符串abcde比被插入的字符串ABCDEFG短时,逻辑算法:ABCDEFG->A B C D E FG->空格处插入abcde->AaBbCcDdEeFG; { for(i=n;i>strlen(str2)-1;i--) { str1[i+strlen(str2)]=str1[i];//比待插入的字符串长的部分均向后移strlen(str2)位; } for(i=strlen(str2)-1;i>0;i--) { str1[i+i]=str1[i];//之前的部分均向后移i位; } for(i=1,j=0;i<2*strlen(str2);i+=2,j++) { str1[i]=str2[j];//将待插入的字符串插入空格处,完成插入; } } } void STRING::print()//输出插入后的字符串 { cout<<\插入后的字符串为:\ } void main()//测试 { STRING test(\ test.process(); test.print(); } 四、实践小结 发现字符插入的规律,再依次放入相应字符位置。 五、运行结果 任务十二 一、实践任务 12.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不等长)。 例如将字符串“abcde” 交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??char str1[60] :存放被插入的字符串。 ??char str2[40] :存放待插入的字符串。 ??char str3[100] :存放插入后的字符串。 (2)公有成员函数 ??STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。 ??void process():将str2中的字符串插入到str1中,存放到str3中。 ??void print():输出插入后的字符串。 2、主要函数设计 在主程序中定义STRING类的对象test对该类进行测试。 任务十六 一、实践任务 17.定义一个类SIN,求 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??float x:输入公式中x的值,求sin(x)。 ??int n:输入公式中n的值。 (2)公有成员函数 ??SIN(float x, int n ):构造函数,用于初始化x和n的值。 ??int power( int q):求q!的值。 ??float mi(float m,int n):求 的值。 ??float fun( ):用于求SIN(X)的值。 ??void show( ):输出求得的结果。 2、主要函数设计 在主程序中定义对象test,对该类进行测试(x是弧度,弧度不可能大于1)。 三、源程序清单 #include SIN(double x,int n) { this->x=x; this->n=n; } double power(int q); double mi(double m,int n); double fun(); void show(); }; double SIN::power(int q)//求q的阶乘; { double s=1; while(q!=1) { s*=q; q--; } return s; } double SIN::mi(double m,int n)//求m^n的值; { while(n!=1) { m*=m; n--; } return m; } double SIN::fun()//用于求sin(x)的值;//注:当n较大时,阶乘和幂的运算可能超出变量的类型的字节大小!改用double类型可提高运算的范围! { double s=0;//记录每项相加的和 for(int i=1;i<=n;i++) { s+=mi(x,2*i-1)*mi(-1,i+1)/power(2*i-1);//通项为(-1)^(i+1)*x^(2*i-1)/(2*i-1)!,其中n为由1开始的奇数; } return s; } void SIN::show()//输出求得结果; { cout<<\} void main() { int degree,n; double hudu; cout<<\请输入度数和公式中的n值:\ cin>>degree>>n; hudu=degree60*(3.1415926)/180.0;//度数转换为弧度; SIN test(hudu,n); test.show(); } 四、实践小结 找到公式中的相关关系,再进行相应函数的组合。 五、运行结果 任务十七 一、实践任务 18.试建立一个类VAR,用于求n( )个数的均方差。均方差的计算公式为 ,其中平均值为。 二、详细设计 1、类的描述与定义 (1)私有数据成员 ??double a[100]:用于存放输入的n个数。 ??int n:实际输入数的个数n。 (2)公有成员函数 ??VAR(double x[], int n1):构造函数,初始化成员数据a和个数n。 ??double average(double x[], int n):求平均值,数组x具有n个元素。 ??void variance(double x[],int n):求均方差,数组x具有n个元素。 ??void show():输出求得的均方差。 2、主要函数设计 在主程序中定义一个对象test,对该类进行测试。 三、源程序清单 #include VAR(double x[],int n1) { for(int i=0;i double average(double x[],int n); double variance(double x[],int n); void show(); }; double VAR::average(double x[],int n)//求平均值,数组x具有n个元素; { double ave=0; for(int i=0;i return ave/n; } double VAR::variance(double x[],int n)//求均方差,数组x具有n个元素; { double d=0; for(int i=0;i void VAR::show()//输出求得的均方差;
正在阅读:
江苏科技大学 C++课程实践报告答案06-15
小班下学期表演游戏计划及推进反思06-07
孩子得了肾病综合症该怎么办12-24
浙江省人力资源和社会保障厅、浙江省档案局关于印发浙江省档案03-06
2016年小学教研工作计划12-21
《简爱》主人公性格分析07-08
我读书的经历作文600字07-05
中国教育史 重点名词解释10-14
第2讲 电场力的性质针对训练08-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C++
- 江苏
- 实践
- 答案
- 课程
- 报告
- 大学
- 科技
- 文献检索作业练习题
- 民法学模拟题1
- 学雷锋 做有道德的人(5.7班杨珺慧)
- bra - 0507 - 秘书培训课程
- 03钢筋机械连接技术规程(JGJ107-2010)
- 中国热镀锌行业运营状况与发展潜力分析报告2016-2021年
- 《单招新学径数学第二册》调研报告
- 单片机学习思路
- 大学英语四级考试高频短语及搭配I
- 工伤认定申请表(新)
- 我眼中的特级教师周雨明
- 几十所名校中文类对外汉语类考研试题汇编
- MD155-30x10矿用多级泵
- 河北海兴中学高三英语Units1-16重点单词及词组教案
- 生理学试题及答案最全版
- 初中英语口语选修课程的教学方法
- 甲级单位编制药品包装材料项目可行性报告(立项可研+贷款+用地+2
- 数码相机摄影技巧入门
- ne20路由器MPLS配置
- 2011奥赛