计算机程序设计实践.docx

上传人:b****5 文档编号:24695799 上传时间:2023-05-31 格式:DOCX 页数:20 大小:79.04KB
下载 相关 举报
计算机程序设计实践.docx_第1页
第1页 / 共20页
计算机程序设计实践.docx_第2页
第2页 / 共20页
计算机程序设计实践.docx_第3页
第3页 / 共20页
计算机程序设计实践.docx_第4页
第4页 / 共20页
计算机程序设计实践.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

计算机程序设计实践.docx

《计算机程序设计实践.docx》由会员分享,可在线阅读,更多相关《计算机程序设计实践.docx(20页珍藏版)》请在冰豆网上搜索。

计算机程序设计实践.docx

计算机程序设计实践

江苏科技大学

 

 

课程实践报告

 

 

 

 

 

设计题目:

计算机程序设计实践(VC++)

设计时间:

2015.3.9至2015.3.16

学院:

数理学院

专业班级:

13级信息与计算科学1班

学生姓名:

陈明敏学号1340501101

********

 

 

2015年5月1日

一、实践任务

任务一:

试建立一个类SP,求

,另有辅助函数power()用于求

具体要求如下。

(1)私有数据成员。

Intn,k:

存放公式中n和k的值。

(2)公有成员函数。

SP(intn1,intk1):

构造函数,初始化成员数据n和k。

intpower(intm,intn):

intfun():

求公式的累加和。

voidshow():

输出求得的结果。

二、源程序清单

#include

classSP{

private:

intn,k;

public:

SP(intn1,intk1);

intpower(intm,intn);

intfun();

voidshow();

};

SP:

:

SP(intn1,intk1){

n=n1;

k=k1;

}

intSP:

:

power(intm,intn){

inta=m;

for(inti=1;i

{

a*=m;

}

returna;

}

intSP:

:

fun(){

inta=0;

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

{

a+=power(i,k);

}

returna;

}

voidSP:

:

show()

{

cout<

}

voidmain()

{inta;intb;

cin>>a>>b;

SPs(a,b);

s.fun();

s.show();

}

三、实践小结

本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,本题还使用了递归的方法

四、运行结果

一、实践任务

任务二:

建立一个STRING类,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。

例如,将字符串“abcde”交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。

具体要求如下。

(1)私有数据成员。

charstr1[60]:

存放被插入的字符串。

charstr2[40]:

存放待插入的字符串。

charstr3[100]:

存放插入后的字符串。

(2)公有成员函数。

STRING(char*s1,char*s2):

构造函数,用s1和s2初始化str1和str2。

voidprocess():

将str2中的字符串插入到str1中。

voidprint():

输出插入后的字符串。

(3)在主程序中定义STRING类的对象test对该类进行测试。

二、源程序清单

#include

#include

classSTRING{

private:

charstr1[80];

charstr2[40];

public:

STRING(char*s1,char*s2);

voidprocess();

voidprint();

};

STRING:

:

STRING(char*s1,char*s2){

strcpy(str1,s1);

strcpy(str2,s2);

}

voidSTRING:

:

process(){

chars[80];char*p=str1;char*q=str2;

intn=2*strlen(str1)-1;

for(inti=0;i

s[i]=*p++;

i++;

s[i]=*q++;

}

s[i]='\0';

strcpy(str1,s);

}

voidSTRING:

:

print(){

cout<

}

voidmain(){

chars1[80]={"ABCDE"},s2[40]={"abcde"};

STRINGtest(s1,s2);

test.process();

test.print();

}

三、实践小结

本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了有关字符串的排序的求解方式。

四、运行结果

一、实践任务

任务三:

建立一个类MOVE,对数组中元素进行循环换位,即每个元素后移三位,最后三个元素移到最前面。

具体要求如下。

(1)私有数据成员。

intarray[20]:

一维整型数组。

intn:

数组中元素的个数。

(2)公有成员函数。

MOVE(intb[],intm):

构造函数,初始化成员数据。

voidchange():

进行循环换位。

voidprint()输出一维数组。

(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

二、源程序清单:

#include

classMOVE

{

private:

intarray[20];

intn;

public:

MOVE(intb[],intm);

voidchange();

voidprint();

};

MOVE:

:

MOVE(intb[],intm){

for(inti=0;i

{

array[i]=b[i];

}

n=m;

}

voidMOVE:

:

change(){

inta=n;

intb[3];

for(inti=0;i<3;i++){

b[i]=array[a-3];

a++;

}

for(intj=n-1;j>=3;j--){

array[j]=array[j-3];

}

for(intk=0;k<3;k++){

array[k]=b[k];

}

}

voidMOVE:

:

print(){

for(inti=0;i

cout<

cout<

}

voidmain(){

inta[10]={21,65,43,87,12,84,44,97,32,55};

MOVEs(a,10);

s.change();

s.print();

}

三、实践小结

本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了有关数组中元素进行循环换位的求解方式。

四、运行结果

一、实践任务

任务四:

定义一个类SIN,求

具体要求如下。

(1)私有数据成员。

doublex:

输入公式中x的值,求sin(x)。

intn:

输入公式中n的值。

(2)公有成员函数。

SIN(doublex,intn):

构造函数,用于初始化x和n的值。

doublepower(intq):

求q!

的值。

doublemi(doublem,intn):

的值。

doublefun():

用于求sin(x)的值。

voidshow():

输出求得的结果。

(3)在程序中定义对象test,对该类进行测试。

二、源程序清单:

#include

classSIN{

private:

doublex;

intn;

public:

SIN(doublex,intn);

doublepower(intq);

doublemi(doublem,intn);

doublefun();

voidshow();

};

SIN:

:

SIN(doublex,intn){

this->x=x;

this->n=n;

}

doubleSIN:

:

power(intq){

doubles=1;

intc=1;

for(;c<=q;c++)

{

s*=c;

}

returns;

}

doubleSIN:

:

mi(doublem,intn){

doubles=m;

intc=1;

for(;c

s*=m;

}

returns;

}

doubleSIN:

:

fun(){

doubles=0;

doublek=-1;

for(intm=1;m<=n;m++){

k*=(-1);

s+=k*mi(x,2*m-1)/power(2*m-1);

}

returns;

}

voidSIN:

:

show()

{

cout<

}

voidmain()

{

inta,b;

cout<<"输入两个数整数:

";

cin>>a>>b;

SINtest(a,b);

test.fun();

test.show();

}

三、实践小结

本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了递归的方法。

四、运行结果

一、实践任务

任务五:

定义一个方阵类Array,实现对方阵进行逆时针

旋转。

如图5-4所示。

图5-4对方阵进行逆时针旋转

具体要求如下。

(1)私有数据成员。

Inta[4][4]:

用于存放方阵。

(2)公有成员函数。

Array(inta1[][4],intn):

构造函数,用给定的参数a1初始化数据成员a。

voidxuanzhuan():

实现对方阵a进行逆时针

的旋转。

voidshow():

在屏幕上显示组元素。

(3)在主程序中定义数组intb[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};作为原始数组。

定义一个Array类对象test,用b初始化test,完成对该类的测试。

二、源程序清单:

#include

classArray{

private:

inta[4][4];

public:

Array(inta1[][4],intn);

voidxuanzhuan();

voidshow();

};

Array:

:

Array(inta1[][4],intn){

for(inti=0;i

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

{

a[i][j]=a1[i][j];

}

}

}

voidArray:

:

xuanzhuan(){

intb[4][4];

for(inti=0;i<4;i++){

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

{

b[j][i]=a[i][j];

}

}

for(i=0;i<4;i++){

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

{

a[i][j]=b[3-i][j];

}

}

}

voidArray:

:

show(){

for(inti=0;i<4;i++){

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

{

cout<

}

cout<

}

}

voidmain()

{

intb[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

Arraytest(b,4);

cout<<"原来的数组为:

"<

test.show();

cout<<"旋转后的数组为:

"<

test.xuanzhuan();

test.show();

}

三、实践小结

本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了有关二维数组旋转的求解方式。

四、运行结果

一、实践任务

任务六:

建立一个类NUM,求指定数据范围内的所有素数(质数)。

提示:

素数定义是“只能被1和它本身整除的整数”。

具体要求如下。

(1)私有数据成员。

intdata[10]:

依次存放原始数据。

intprime[10]:

存放指定数据内所求出的素数。

intnum:

存放素数个数。

(2)公有成员函数。

NUM(intn[]):

构造函数,用参数n初始化data,同时初始化num为0。

intisprime(intx):

判断x是否为素数。

若是素数,返回1,否则,返回0。

voidprocess():

求指定data数组中的所有素数,把它们依次存放在数组prime中,并将求出的素数个数赋给num。

voidprint():

输出求出的素数个数及所有素数,每行输出4个素数。

(3)在主函数中完成对该类的测试。

定义NUM类对象test,通过test调用成员函数完成求素数及输出素数的工作。

原始数据为{4,5,9,11,36,29,31,101,56,199}。

二、源程序清单:

#include

classNUM

{

private:

intdata[10];

intprime[10];

intnum;

public:

NUM(intn[]);

intisprime(intx);

voidprocess();

voidprint();

};

NUM:

:

NUM(intn[])

{

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

data[i]=n[i];

num=0;

}

intNUM:

:

isprime(intx)

{

if(x==1)return0;

if(x==2)return1;

for(intj=x/2;j>=2;j--)

{

if(x%j==0)return0;

}

return1;

}

voidNUM:

:

process()

{inta=0;

for(inti=0;i<10;i++,a=0)

{

a=isprime(data[i]);

if(a)

{

prime[num]=data[i];

num++;

}

}

}

voidNUM:

:

print()

{

cout<<"数组中总共有"<

cout<<"分别是:

"<

for(inti=0;i

{

cout<

if((i+1)%4==0)cout<

}

}

voidmain()

{

inta[10]={4,5,9,11,36,29,31,101,56,199};

NUMs(a);

s.process();

s.print();

}

三、实践小结

本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了有关如何求素数的这种类型的题目。

四、运行结果

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

当前位置:首页 > 农林牧渔 > 林学

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

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