课程设计说明书格式.docx

上传人:b****7 文档编号:10806125 上传时间:2023-02-23 格式:DOCX 页数:28 大小:111.71KB
下载 相关 举报
课程设计说明书格式.docx_第1页
第1页 / 共28页
课程设计说明书格式.docx_第2页
第2页 / 共28页
课程设计说明书格式.docx_第3页
第3页 / 共28页
课程设计说明书格式.docx_第4页
第4页 / 共28页
课程设计说明书格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

课程设计说明书格式.docx

《课程设计说明书格式.docx》由会员分享,可在线阅读,更多相关《课程设计说明书格式.docx(28页珍藏版)》请在冰豆网上搜索。

课程设计说明书格式.docx

课程设计说明书格式

 

《C++程序设计》

课程设计说明书

 

题目名称:

学生学号:

120103502062

学生姓名:

高胜海

指导老师:

吴建胜

 

2011年3月

 

 

目 录

第一部分

第1题~第14题程序代码

 

1.一数组中已存放了10个有序的整数,现由键盘输入一个整数,将此数插入到该数组中,使数组仍然是有序的。

算法提示:

假设数组是由小到大的顺序来排列的:

1)先要确定插入的新数x在数组中的位置,即确定m在数组中的下标

2)用x去跟数组中的元素逐个比较,数组中的某个元素满足a[k]>m,则k为m的下标

3)将数组从a[k]开始的所有元素向后面移动一个位置

4)从最后一个元素开始移动,即执行循环:

for(m=9;m>k;m--)a[m+1]=a[m]

5)将m插入数组中a[k]=m

#include

usingnamespacestd;

#defineN8

voidsort(floats[]);

voidmain()

{

inti;

floats[N+1];

for(i=0;i

cin>>s[i];

sort(s);

cout<<"sortscore"<

for(i=0;i

cout<

intm,x;

cout<

cin>>x;

for(intk=0;k

{

if(s[k]>x)

{

m=k;

break;

}

}

for(k=N;k>m-1;k--)

{

s[k+1]=s[k];

}

s[m]=x;

for(k=0;k<=N;k++)

cout<

}

voidsort(floats[])

{

inti,j,mini;

for(i=0;i

{

mini=i;

for(j=i;j

if(s[j]

mini=j;

if(mini!

=i)

{

floatt;

t=s[i];

s[i]=s[mini];s[mini]=t;

}

}

}

2.高输入20个整数存入数组中,输出其中的偶数及偶数之和。

函数

.#include

usingnamespacestd;

booloushu(intn);

voidmain()

{

ints[20],sum=0;

inti;

cout<<"input20date"<

for(i=0;i<20;i++)

{

cin>>s[i];

if(s[i]%2==0)

cout<

sum+=s[i];

}

cout<<"偶数和是:

"<

}

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)

.#include

usingnamespacestd;

intlj(int);

voidmain()

{

cout<<"pleaseenteranumber"<

intn,sum=0;

cin>>n;

for(inti=1;i<=n;i++)

{

sum+=lj(i);

}

cout<<"thesumis:

"<

}

intlj(inti)

{

ints=0;

for(intj=1;j<=i;j++)

{

s+=j;

}

returns;

}

4.输出50—100间的所有素数,其中判断一个数是否为素数用函数完成。

算法提示:

1)输出50至100间的素数,所以函数的调用应放在循环中

2)被调函数ss中,要判断m是否为素数

3)若是素数,则返回值t1=1,否则t1=0

4)主函数中若返回值为1,证明是素数,则输出

.#include

usingnamespacestd;

intss(intm);

voidmain()

{

intm;

for(m=50;m<100;m++)

{

if(ss(m)==1)

cout<

}

}

intss(intm)

{

intj,t1;

for(j=2;j

{

if(m%j==0)

break;

}

if(m==j)

returnt1=1;

else

returnt1=0;

}

.5.有一个一维数组score,内放10个学生成绩,求平均成绩。

#include

usingnamespacestd;

intmain()

{

doublescore[10],sum=0;

inti;

cout<<"请输入10个成绩:

";

for(i=0;i<10;i++)

{

cin>>score[i];

sum+=score[i];

}

cout<<"平均成绩为:

"<

return0;

}

6.写一函数,要求数组作函数的参数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

算法提示:

1)输入任意的字符串,需要将数组的长度定义的足够大,即chara[80]

2)在被调函数中首先求出字符串的长度,可用函数strlen()

3)将数组前一半的元素与对应的后一半元素互换,所以循环的条件是(i=0;i

4)将元素b[i]与b[n-i]互换

#include

usingnamespacestd;

voidjh(char*a)

{

intn,i;

chart;

n=strlen(a);

for(i=0;i

{

t=a[i];

a[i]=a[n-i-1];

a[n-i-1]=t;

}

}

intmain()

{

chara[80];

inti,n;

cout<<"请输入一个字符串:

";

cin>>a;

n=strlen(a);

jh(a);

for(i=0;i

cout<

cout<

return0;

}

7.由键盘输入10个数,找出它们的最大值、最小值并求出平均值。

(要求用指针实现)

.#include

usingnamespacestd;

voidmain()

{

ints[10],i,j;

cout<<"input10date"<

for(i=0;i<10;i++)

cin>>s[i];

for(i=0;i<10;i++)

cout<

intmaxi=0,minj=0;doublesum=0;

for(i=0;i<10;i++)

{

if(s[i]>s[maxi])

maxi=i;

}

cout<<"最大值是:

"<

for(j=0;j<10;j++)

{

if(s[j]

minj=j;

}

cout<<"最小值:

"<

for(i=0;i<10;i++)

{

sum+=s[i];

}

sum=sum/10.0;

cout<<"平均分是:

"<

8.编写函数f(char*s1,char*s2),将字符串s2连接到字符串s1的后面。

算法提示:

将s2中的字符依次存到从s1的’\0’开始的位置。

要求s1必须要有足够的空间放下s2中的所有字符。

#include

usingnamespacestd;

intmain()

{

char*p,*q;

chara[20],b[20];

inti;

cout<<"请输入第一个字符串:

";

cin>>a;

cout<<"请输入第二个字符串:

";

cin>>b;

p=a;

for(p=a;*p!

='\0';p++);

q=b;

while(*q!

='\0')

{

*p=*q;

p++;

q++;

}

*p='\0';

cout<

return0;

9.构建一个类score,其中用私有数据成员number表示学号,computer、english、average分别表示计算机成绩、英语成绩和平均分数。

公有成员函数inscore()用于输入学号和各科成绩,以及计算平均分数;成员函数showscore()用来输出成绩。

要求:

在主程序定义stu1为score类的对象,stu2为指向score类对象的指针,由它们分别调用成员函数inscore()和showscore()来实现输入、计算和输出功能。

.#include

usingnamespacestd;

classscore

{

intnumber;

doubleenglish,computer,average;

public:

voidinscore();

voidshowscore();

};

voidscore:

:

inscore()

{

cout<<"请输入学号:

"<

cin>>number;

cout<<"请输入计算机成绩:

"<

cin>>computer;

cout<<"请输入英语成绩:

"<

cin>>english;

average=(computer+english)/2.00;

}

voidscore:

:

showscore()

{

cout<<"计算机成绩:

"<

cout<<"英语成绩:

"<

cout<<"平均成绩:

"<

}

voidmain()

{

scorestu1;

stu1.inscore();

stu1.showscore();

score*stu2;

stu2=newscore;

stu2->inscore();

stu2->showscore();

}

10.设计一个学生成绩管理系统,能输入学生的学号、姓名和成绩等数据,能按成绩从高到低进行排序,并能将排序的结果输出。

提示:

(1)设计一个学生类student,包含三个私有数据成员,即学号sno、姓名sname和成员score

(2)在学生类student中再设计三个公有成员函数setdata、display和getscore,分别用于完成输入学生信息、输出学生信息、返回某个学生成绩的功能

(3)定义一个manage类,它有一个student类型的私有数据成员s[num],其中num表示学生人数

(4)在manage类中分别定义三个公有成员函数input、output、sort,分别用于完成输入、输出和排序功能。

.#include

usingnamespacestd;

classstudent

{

intsno;

charsname[20];

doublescore;

public:

student();

virtual~student();

voidsetdata();

voiddisplay();

doublegetscore();

};

voidstudent:

:

setdata()

{

cout<<"请输入:

"<

cout<<"学号:

";

cin>>sno;

cout<<"姓名:

";

cin>>sname;

cout<<"成绩:

";

cin>>score;

}

voidstudent:

:

display()

{

cout<<"学号:

"<

cout<<"姓名:

"<

cout<<"成绩:

"<

}

doublestudent:

:

getscore()

{

returnscore;

}

students[5];

voidinput(intx)

{

s[x].setdata();

}

voidsort()

{

inti,j,max;

studenttmp;

for(i=0;i<5-1;i++)

{

max=i;

for(j=i;j<5;j++)

{

if(s[j].getscore()>s[max].getscore())

max=j;

}

if(max!

=i)

{

tmp=s[i];

s[i]=s[max];

s[max]=tmp;

}

}

}

voidoutput()

{

inti;

for(i=0;i<5;i++)

{

s[i].display();

}

}

intmain()

{

inti;

for(i=0;i<5;i++)

{

input(i);

}

sort();

output();

return0;

}

11.设计一个图书借阅管理系统。

每本书有书号、书名和作者姓名属性,读者有借书证号、读者姓名和每位读者最多能够借阅的图书数量属性。

(要求使用类的继承和派生知识点实现)

提示:

由于图书和读者都具有编号和名称两个属性,所以可以定义一个能够对编号和名称进行管理的类object,然后在object类的基础上派生出图书类book和读者类reader。

#include

usingnamespacestd;

classobject

{

protected:

charnumber[20],name[20];

public:

object();

virtual~object();

};

classbook:

publicobject

{

charauthor[20];

public:

book();

virtual~book();

voidaddbook();

};

voidbook:

:

addbook()

{

cout<<"##########"<

cout<<"请输入图书编号:

";

cin>>number;

cout<<"请输入图书名:

";

cin>>name;

cout<<"请输入图书作者:

";

cin>>author;

cout<<"##########"<

}

classreader:

publicobject

{

intmaxbook;

public:

reader();

virtual~reader();

voidaddreader();

};

voidreader:

:

addreader()

{

cout<<"##########"<

cout<<"请输入读者编号:

";

cin>>number;

cout<<"请输入读者姓名:

";

cin>>name;

cout<<"请输入读者最多能借阅图书数:

";

cin>>maxbook;

cout<<"##########"<

}

intmain()

{

bookbk1;

readerrd1;

bk1.addbook();

rd1.addreader();

return0;

}

12.定义一个抽象类Shape,在其中说明一个纯虚函数area()作为一个接口,用来计算圆形、三角形、正方形和长方形的面积。

要求由抽象类派生出圆形、三角形、正方形和长方形4个派生类。

在各派生类中分别实现求各个图形的面积。

.#include

#include

usingnamespacestd;

classshape

{

protected:

doublea,b,c,r,s;

public:

virtualvoidset_ab()=0;

virtualvoidset_a()=0;

virtualvoidset_r()=0;

voiddisplay()

{

cout<<"面积为:

"<

}

};

classcircle:

publicshape

{

public:

voidset_ab(){};

voidset_a(){};

voidset_r()

{

cout<<"请输入圆的半径:

";

cin>>r;

s=3.14*r*r;

}

};

classbox:

publicshape

{

voidset_ab(){};

voidset_r(){};

voidset_a()

{

cout<<"请输入正方形边长:

";

cin>>a;

s=a*a;

}

};

classhbox:

publicshape

{

voidset_r(){};

voidset_a(){};

voidset_ab()

{

cout<<"请输入长方形边长:

";

cin>>a>>b;

s=a*b;

}

};

classtriangle:

publicshape

{

voidset_r(){};

voidset_a(){};

voidset_ab()

{

cout<<"请输入三角形底边和高:

";

cin>>a>>b;

s=a*b/2.0;

}

};

voiddoit(shape*p)

{

p->set_r();

p->set_a();

p->set_ab();

p->display();

}

intmain()

{

shape*p=newcircle;

doit(p);

delete[]p;

p=newbox;

doit(p);

delete[]p;

p=newhbox;

doit(p);

delete[]p;

p=newtriangle;

doit(p);

delete[]p;

return0;

}

13.用函数模板的方式设计可以对某种数据类型的数组中的数据用选择法进行从大到小排序,然后用整型数据和字符型数据进行验证。

#include

#include

usingnamespacestd;

ints[20]={3,6,1,3,8,0,2,5},i=8;

chart[20];

templatevoidsort(T*x,intn)

{

inti,j,max;

Ttmp;

for(i=0;i

{

max=i;

for(j=i;j

{

if(x[j]>x[max])

max=j;

}

if(max!

=i)

{

tmp=x[i];

x[i]=x[max];

x[max]=tmp;

}

}

}

intmain()

{

cout<<"请输入一个数字串:

";

for(intj=0;j<8;j++)

cout<

cout<

cout<<"请输入一个字符串:

";

cin>>t;

sort(s,i);

for(j=0;j<8;j++)

cout<

cout<

sort(t,strlen(t));

cout<

return0;

}

14.编写一个程序,统计data.txt文件的行数,并将所有行前加上行号后写到data1.txt文件中。

算法提示:

行与行之间以回车符分隔,而getline()函数以回车符作为终止符。

因此,可以采用getline()函数读取每一行,再用一个变量i计算行数。

#include

#include

#include

usingnamespacestd;

intmain()

{

ifstreamfile1;

file1.open("data.txt");

ofstreamfile2;

file2.open("data1.txt");

intnum=0;

stringline;

while(getline(file1,line))

{

num++;

file2<

}

cout<<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1