




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+程序设计课 程 设 计 说 明 书题目名称:学生学号:120103502062学生姓名:高胜海指导老师:吴建胜2011年3月18目录 第一部分第1题第14题 程序代码1. 一数组中已存放了10个有序的整数,现由键盘输入一个整数,将此数插入到该数组中,使数组仍然是有序的。算法提示:假设数组是由小到大的顺序来排列的:1) 先要确定插入的新数x在数组中的位置,即确定m在数组中的下标2) 用x去跟数组中的元素逐个比较,数组中的某个元素满足akm,则k为m的下标3) 将数组从ak开始的所有元素向后面移动一个位置4) 从最后一个元素开始移动,即执行循环:for(m=9;mk;m-) am+1=am5) 将m插入数组中ak=m#includeusing namespace std;#define N 8void sort(float s) ;void main()int i;float sN+1;for(i=0;isi;sort(s);coutsort scoreendl;for(i=0;iN;i+)coutsi ;int m,x;coutx; for(int k=0;kx)m=k;break;for(k=N;km-1;k-)sk+1=sk;sm=x;for( k=0;k=N;k+)coutsk ;void sort(float s)int i,j,mini;for(i=0;iN-1;i+)mini=i;for(j=i;jN;j+)if(sjsmini)mini=j;if(mini!=i)float t;t=si;si=smini;smini=t;2. 高输入20个整数存入数组中,输出其中的偶数及偶数之和。函数.#includeusing namespace std;bool oushu(int n);void main()int s20,sum=0;int i;cout input 20 dateendl;for(i=0;isi;if(si%2=0)coutsiendl;sum+=si;cout 偶数和是:sum;3.用函数实现求result =1+(1+2)+(1+2+3)+(1+2+3+n)的值,n的值由键盘输入。算法提示:1)根据题目要求,需要调用函数lj来求1+2+3+n的和2)把对函数lj的调用放在循环结构中,循环变量i做为实参3)形参变量x得到i的值,再被调函数中求出每次的累加和4)循环变量i的取值为(i=1;i=n;i+)5)将调用函数求得的值累加到l中,即result=result+lj(i).#includeusing namespace std;int lj(int);void main()coutplease enter a numbern;for(int i=1;i=n;i+)sum+=lj(i);coutthe sum is:sumendl;int lj(int i)int s=0;for(int j=1;j=i;j+)s+=j;return s;4. 输出50100间的所有素数,其中判断一个数是否为素数用函数完成。算法提示:1)输出50至100间的素数,所以函数的调用应放在循环中2)被调函数ss中,要判断m是否为素数3)若是素数,则返回值t1=1,否则t1=04)主函数中若返回值为1,证明是素数,则输出.#includeusing namespace std;int ss(int m);void main()int m;for(m=50;m100;m+)if(ss(m)=1)coutmendl; int ss(int m)int j,t1;for(j=2;jm;j+)if(m%j=0)break;if(m=j)return t1=1;else return t1=0;. 5.有一个一维数组score,内放10个学生成绩,求平均成绩。#includeusing namespace std;int main()double score10, sum = 0;int i;cout 请输入10个成绩:;for (i = 0; i scorei;sum += scorei;cout 平均成绩为: sum/10.0 endl;return 0;6.写一函数,要求数组作函数的参数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。算法提示:1)输入任意的字符串,需要将数组的长度定义的足够大,即char a802)在被调函数中首先求出字符串的长度,可用函数strlen()3)将数组前一半的元素与对应的后一半元素互换,所以循环的条件是(i=0;in/2;i+)4)将元素bi与 bn-i互换,#includeusing namespace std;void jh(char *a)int n, i;char t;n = strlen(a);for (i = 0; i n/2; i+)t = ai;ai = an-i-1;an-i-1 = t;int main()char a80;int i, n;cout a;n = strlen(a);jh(a);for(i=0;in;i+)cout a i;cout endl;return 0;7.由键盘输入10个数,找出它们的最大值、最小值并求出平均值。(要求用指针实现).#includeusing namespace std;void main()int s10,i,j;coutinput 10 dateendl;for(i=0;isi;for(i=0;i10;i+)coutsiendl;int maxi=0,minj=0;double sum=0;for(i=0;ismaxi)maxi=i;cout最大值是:smaxiendl;for(j=0;j10;j+)if(sjsminj)minj=j;cout最小值:sminjendl;for(i=0;i10;i+)sum+=si;sum=sum/10.0;cout平均分是:sum; 8.编写函数f(char *s1,char *s2),将字符串s2连接到字符串s1的后面。算法提示:将s2中的字符依次存到从s1的0开始的位置。要求s1必须要有足够的空间放下s2中的所有字符。#includeusing namespace std;int main()char *p, *q;char a20, b20;int i;cout a;cout b;p = a;for (p = a; *p != 0; p+);q = b;while (*q != 0)*p =*q;p+;q+;*p = 0;cout a endl;return 0;9.构建一个类score,其中用私有数据成员number表示学号,computer、english、average分别表示计算机成绩、英语成绩和平均分数。公有成员函数inscore()用于输入学号和各科成绩,以及计算平均分数;成员函数showscore() 用来输出成绩。要求:在主程序定义stu1为score类的对象,stu2为指向score类对象的指针,由它们分别调用成员函数inscore()和showscore()来实现输入、计算和输出功能。.#includeusing namespace std;class scoreint number;double english,computer,average;public:void inscore();void showscore();void score:inscore()cout请输入学号:number;cout请输入计算机成绩:computer;cout请输入英语成绩:english;average=(computer+english)/2.00;void score:showscore()cout计算机成绩:computerendl;cout英语成绩:englishendl;cout平均成绩:averageinscore();stu2-showscore();10.设计一个学生成绩管理系统,能输入学生的学号、姓名和成绩等数据,能按成绩从高到低进行排序,并能将排序的结果输出。提示:(1) 设计一个学生类student,包含三个私有数据成员,即学号sno、姓名sname和成员score(2) 在学生类student中再设计三个公有成员函数 setdata、display和getscore,分别用于完成输入学生信息、输出学生信息、返回某个学生成绩的功能(3) 定义一个manage类,它有一个student类型的私有数据成员snum,其中num表示学生人数(4) 在manage类中分别定义三个公有成员函数input、output、sort,分别用于完成输入、输出和排序功能。.#includeusing namespace std;class student int sno;char sname20;double score;public:student();virtual student();void setdata();void display();double getscore();void student:setdata()cout 请输入: endl;cout sno;cout sname;cout score;void student:display()cout 学号: sno ;cout 姓名: sname ;cout 成绩: score endl;double student:getscore()return score;student s5;void input(int x)sx.setdata();void sort()int i, j, max;student tmp;for (i = 0; i 5-1; i+)max = i;for (j = i; j smax.getscore()max = j;if (max != i)tmp = si;si = smax;smax = tmp;void output()int i;for (i = 0; i 5; i+)si.display();int main()int i;for (i = 0; i 5; i+)input(i);sort();output();return 0;11.设计一个图书借阅管理系统。每本书有书号、书名和作者姓名属性,读者有借书证号、读者姓名和每位读者最多能够借阅的图书数量属性。(要求使用类的继承和派生知识点实现)提示:由于图书和读者都具有编号和名称两个属性,所以可以定义一个能够对编号和名称进行管理的类object,然后在object类的基础上派生出图书类book和读者类reader。#include using namespace std;class object protected:char number20, name20;public:object();virtual object();class book : public object char author20;public:book();virtual book();void addbook();void book:addbook()cout # endl;cout number;cout name;cout author;cout # endl;class reader : public object int maxbook;public:reader();virtual reader();void addreader();void reader:addreader()cout # endl;cout number;cout name;cout maxbook;cout # endl;int main()book bk1;reader rd1;bk1.addbook();rd1.addreader();return 0;12.定义一个抽象类Shape,在其中说明一个纯虚函数area()作为一个接口,用来计算圆形、三角形、正方形和长方形的面积。要求由抽象类派生出圆形、三角形、正方形和长方形4个派生类。在各派生类中分别实现求各个图形的面积。.#include #include using namespace std;class shapeprotected:double a, b, c, r, s;public:virtual void set_ab() = 0;virtual void set_a() = 0;virtual void set_r() = 0;void display()cout 面积为: s endl;class circle : public shapepublic:void set_ab();void set_a();void set_r()cout r;s = 3.14*r*r;class box : public shapevoid set_ab();void set_r();void set_a()cout a;s = a*a;class hbox : public shapevoid set_r();void set_a();void set_ab()cout a b;s = a*b;class triangle : public shapevoid set_r();void set_a();void set_ab()cout a b;s = a*b/2.0;void doit(shape *p)p - set_r();p - set_a();p - set_ab();p - display();int main()shape *p = new circle;doit(p);delete p;p = new box;doit(p);delete p;p = new hbox;doit(p);delete p;p = new triangle;doit(p);delete p;return 0;13.用函数模板的方式设计可以对某种数据类型的数组中的数据用选择法进行从大到小排序,然后用整型数据和字符型数据进行验证。#include #include using namespace std;int s20 = 3,6,1,3,8,0,2,5, i = 8;char t20;template void sort(T *x,int n)int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州地铁考试题库及答案
- 森林脑炎知识培训课件
- 森林消防冬季防火知识培训
- 编外招聘护士考试试题题库及答案
- 桥梁建造知识培训教育课件
- 2025年系统集成项目管理师中级面试模拟题
- 桐城知识产权培训课件
- 桌面维修基础知识培训课件
- 桌球设计基础知识培训课件
- 2025年软件开发项目经理面试指南及模拟题
- 脊髓电刺激护理
- 国家职业技术技能标准 6-21-07-01 工艺品雕刻工 劳社厅发20031号
- 培训班合伙人合同协议
- 外包合同补充协议
- 全景回顾2024年系统规划与管理师考试试题及答案
- 2025年碳排放管理员职业技能鉴定考试题库及答案
- 必修二英语单词表人教版
- Mission-Planner地面站操作手册
- 高效学习单词:音节记忆法课件解析
- 中医基础理论课件体质学说
- 神经重症气管切开患者气道功能康复与管理专家共识
评论
0/150
提交评论