c++程序设计实践报告

c++程序设计实践报告
c++程序设计实践报告

江苏科技大学

课程实践报告

设计题目: 程序设计(VC++)实践

设计时间2014-3-1 至2014-4-1

学院(系): 船舶与海洋工程

专业班级: 船海一班

学生姓名: 程尉学号1240101108 指导老师:张晓如

实践任务一(第1题)

一、程序设计基本题

试建立一个类PP,求出下列多项式的前n项的值。

1 n=0

P n(x) = x n=1

((2n-1)xP n-1(x)-(n-1)P n-2 (x)) n>1 具体要求如下:

(1)私有数据成员

●int n:前若干项的项数。

●double x:存放x的值。

●double *p:根据n的大小动态申请存放P n(x)前n项的数组空间。

(2)共有成员函数

●PP(int num,double x1):构造函数,初始化数据成员n和x,使

p指向动态申请的数据空间。

●~PP( ):析构函数,释放p指向的动态内存空间。

●double fun(int n1,double x):递归函数,用于求多项式P n(x)的

第n1项。注意:将递归公式中的n用作函数参数。本函数供

process函数调用。

●void process( ):完成求前n项的工作,并将它们存放发到p指向

的动态数组中。

●void show( ):输出n和x,并将前n项以每行4个数的形式输出

到屏幕上。

(3)在主函数中完成对该类的测试。先输入num和x1,并定义一个PP 类的对象items,用num和x1初始化items的成员n和x,调用items

的成员函数,并输出多项式前num项的值。

二、系统设计

1、概要设计

通过类PP的成员函数process( )来求多项式Pn(x)的前n项的值,其中用fun( )函数来求第n项的值,根据n的大小来给数据成员p分配动态空间,程序结束前释放为items分配的动态空间。

2、详细设计

①类的定义如下:

class PP

{

int n;

double x;

double *p;

public:

PP(int num,double x1){}

void process( ){}

void show( ){}

};

②类的主要成员函数的设计

double fun(int n1,double x) //设计函数来求P n(x)

{

if(n1==0) return 1;

else if(n1==1)return x;

return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;

}

三、系统测试

用以测试的数据为:

3 4

预期的输出结果为:

n=3 x=4

1 4 23.5 154

四、实践小结

这道题主要是把题目看懂,其实只是一些简单的函数定义而已。

五、参考文献

[1]潘克勤,华伟,Visual C++程序设计北京:中国铁道出版社2008

六、源程序清单

#include

class PP

{

int n;

double x;

double *p;

public:

PP(int num,double x1){

n=num;

x=x1;

p=new double[n+1];}

~PP(){if(p)delete[]p;}

double fun(int n1,double x)

{

if(n1==0)return 1;

else if(n1==1)return x;

return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;

}

void process()

{

for(int i=0;i

{

p[i]=fun(i,x);

}

}

void show()

{

cout<<"n="<

for(int i=0;i

{

cout<

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

cout<<'\n';

}

}

};

void main()

{

int num;

double x1;

cin>>num>>x1;

PP items(num,x1);

items.fun(num,x1);

items.process();

items.show();

}

实践任务二(第2题)

一、程序设计基本题

试建立一个类SP,求f(n,k)=1k +2k+3k+…+n k ,另有辅助函数power(m,n)用于求m n 。

具体要求如下:

(1)私有成员函数。

●int n,k:存放公式中n和k的值;

(2)公有成员函数。

●SP(int n1,int k1):构造函数,初始化成员数据n和k。

●int power(int m,int n):求m n 。

●int fun( ):求公式的累加和。

●void show( ):输出求得的结果。

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

二、系统设计

1、概要设计

通过类SP的成员函数power()求出m的n次方的值,再通过成员函数fun( )调用power( )函数求出f(n,k)的值。

2、详细设计

①类的定义如下:

class SP

{

int n,k;

public:

SP(int n1,int k1){}

int power(int m,int n){}

int fun ( ){}

void show( )

};

②类的主要成员函数的设计

int power(int m,int n)

{

int p=1; //用for循环语句来实现求m n的值

for(int i=1;i

p=p*m;

return p;

}

int fun(int n,int k)

{

s=0; //用for循环语句来实现公式的累加和

for(int j=1;j<=n;j++)

s+=power(j,k);

return s;

}

三、系统测试

用以测试的数据为:

2 3

预期的输出结果为:

9

四、实践小结

这道题值得注意的是在成员函数fun( )中调用了函数power( ),还有对for循环语句的熟练运用。

五、参考文献

[1]张晓如,王芳,Visual C++程序设计解析与实训北京:中国铁道出版社2008

六、源程序清单

#include

class SP

{

int n,k,s;

public:

SP(int n1,int k1){

n=n1;

k=k1;}

int power(int m,int n){

int p=1;

for(int i=1;i

p=p*m;

return p;

}

int fun(int n,int k){

s=0;

for(int j=1;j<=n;j++)

s+=power(j,k);

return s;

}

void show()

{

cout<<"和为"<

}

};

void main()

{

int n,k;

cin>>n>>k;

SP s(n,k);

s.power(n,k);

s.fun(n,k);

s.show();

}

实践任务三(第3题)

一、程序设计基本题

建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。

具体要求如下:

(1)私有成员函数

●int *array:一维整型数组。

●int n:数组中元素的个数。

(2)公有成员函数

●MOVE(int b[ ],int m):构造函数,初始化成员数据。

●void exchange():输出平均值,并将数组中的元素按要求重新放

置。

●void print():输出一维数组。

●~MOVE:析构函数。

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

二、系统设计

1、概要设计

根据数组中元素的个数开辟一个动态数组空间array,通过类MOVE的成员函数exchange()输出一维数组的平均值,并把数组中最大元素和最小元素的位置相互交换,并把新的数组放在开辟的动态数组空间中。程序结束前释放为array 分配的动态空间。

2、详细设计

①类的定义如下:

class MOVE

{

int *array;

int n;

public:

MOVE(int b[ ],int m){}

void exchange( ){}

void print( ){}

~MOVE( ){}

};

②类的主要成员函数的设计

void exchange()

{

float p,s=0;

for(int i=0;i

s+=array[i];

p=s/n; //求数组中所有元素之和的平均值int a,b,min=array[0],max=array[0];

cout<<"平均值:"<

for(i=0;i

{

if(max

{

max=array[i];

a=i;

}

} //求所有元素中的最大值

for(i=0;i

{

if(min>array[i])

{

min=array[i];

b=i;

}

} //求所有元素中的最小值

array[a]=min;

array[b]=max;

}

三、系统测试

用以测试的数据为:

2165 43 87 12 84 44 97 32 55

预期的输出结果为:

平均值:54

2165 43 87 97 84 44 12 32 55

四、实践小结

这道题主要是求数组中所有元素的平均值以及元素中的最大值和最小值,同时还要注意析构函数的运用。

五、参考文献

[1]潘克勤,华伟,Visual C++程序设计北京:中国铁道出版社2008

六、源程序清单

#include

class MOVE

{

int *array;

int n;

public:

MOVE(int b[],int m)

{

n=m;

array=new int[n];

for(int i=0;i

array[i]=b[i];

}

void exchange()

{

float p,s=0;

for(int i=0;i

s+=array[i];

p=s/n;

int a,b,min=array[0],max=array[0];

cout<<"平均值:"<

for(i=0;i

{

if(max

{

max=array[i];

a=i;

}

}

for(i=0;i

{

if(min>array[i])

{

min=array[i];

b=i;

}

}

array[a]=min;

array[b]=max;

}

void print()

{

for(int i=0;i

cout<

cout<<'\n';

}

~MOVE()

{

if(array)delete[]array;

}

};

void main()

{

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

MOVE move(s,10);

move.exchange();

move.print();

}

实践任务四(第6题)一、程序设计基本题

定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。

具体要求如下:

(1)私有成员函数

●char*str;

●int y:标记是否为回文字符串。

(2)公有成员函数

●String(char*s):构造函数,用给定的参数s初始化数据成员str。

Y初始化为0。

●void huiwen():判断str所指向的字符串是否为回文字符串。

●void show():在屏幕上显示字符串。

(3)在主程序中定义字符串char s[]=“ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,完成对该类的测试。

二、系统设计

1、概要设计

通过回文函数来进行判断,然后将函数判断结果进行输出。

2、详细设计

①类的定义如下:

class String

{

char *str;

int b;

public:

String(char *s){}

void huiwen( ){}

void show( ){}

~String( ){}

};

②类的主要成员函数的设计

void huiwen()

{

char *p1=str,*p2=str;

while(*p2)p2++;p2--;

for(;p1

{

b=1;

break;

}

}

三、系统测试

用以测试的字符串为:

ababcedbaba

预期的输出结果为:

ababcedbaba不是回文字符串

四、实践小结

这道题困难在于用指针来操作字符串,定义了两个指针,分别指向字符串的首尾,通过比较两个指针所指的字符是否相等来判断是否为回文字符串。

五、参考文献

[1]张晓如,王芳,Visual C++程序设计解析与实训北京:中国铁道出版社2008

六、源程序清单

#include

#include

class String

{

char *str;

int b;

public:

String(char *s)

{

str=new char[strlen(s)+1];

strcpy(str,s);

b=0;

}

void huiwen()

{

char *p1=str,*p2=str;

while(*p2)p2++;p2--;

for(;p1

if(*p1!=*p2)

{

b=1;

break;

}

}

void show()

{

if(b)

cout<

else cout<

}

~String()

{

if(str)delete[]str;

}

};

void main()

{

char *s="ababcedbaba";

String test(s);

test.huiwen();

test.show();

}

实践任务五(第4题)

一、程序设计基本题

建立一个类MOVE,实现将数组中大写字母元素放在小写字母元素的左边。

具体要求如下:

(1)私有数据成员

● char*array:一维字符数组。

● int n:数据中元素的个数。

(2)公有成员函数

● MOVE(char b[ ],int m) :构造函数,初始化成员数据。

● void change( ):进行排序换位。

● void print( ):输出一维数组。

● ~MOVE( ):析构函数。

(3)在主程序中用数据“fdsUFfsTjfsKFEkWC”对该类进行测试。

二、系统设计

1、概要设计

为array开辟一个动态数组空间,通过类MOVE的成员函数change( )来实现将数组中的大写字母元素放在小写字母元素的左边的功能。程序结束前释放为array分配的动态空间。

2、详细设计

类的定义如下:

class MOVE{

char *array;

int n;

public:

MOVE(char ,int );

void change( );

void print( );

~MOVE( );

};

三、系统测试

用以测试的数据为:

FdsUFfsTjfsKFEkWC

预期输出结果为:

UFTKFEWCfdsfsjfsk

四、实践小结

这道题和之前的一道题有点类似,

五、参考文献

[1]潘克勤,华伟,Visual C++程序设计北京:中国铁道出版社2008

[2]张晓如,王芳,Visual C++程序设计解析与实训北京:中国铁道出版社2008

六、源程序清单

#include

class MOVE

{

char*array;

int n;

public:

MOVE(char b[],int m)

{

n=m;

array=new char[n];

for(int i=0;i

array[i]=b[i];

}

void change()

{

char a;

for(int i=1;i

{

if(array[i-1]>='a'&&array[i-1]<='z')

{

a=array[i-1];

for(int j=i-1;j

{

array[j]=array[j+1];

}

array[n-1]=a;

i--;

}

}

}

void print()

{

for(int i=0;i

cout<

cout<

}

~MOVE()

{

if(array)delete[]array;

}

};

void main()

{

char*arr="fdsUFfsTjfsKFEkWC";

MOVE test(arr,17);

test.change();

test.print();

} 实践任务六(第19题)

一、程序设计基本题

定义一个方阵类Array,实现对方阵进行顺时针90度旋转。如图所示:

1 2 3 4 13 9 5 1

5 6 7 8 14 10 6 2

9 10 11 12 15 11 7 3

13 14 15 16 16 12 8 4

具体要求如下:

(1)私有成员函数。

●int a[4][4]:用于存放方阵。

(2)公有成员函数。

●Array(int a1[][4],int n):构造函数,用给定的参数a1初始化数据

成员a。

●void xuanzhuan():实现对方阵a进行顺时针90度的旋转。

●int fun( ):求公式的累加和。

●void show():在屏幕上显示数组元素。

(3)在主程序中定义数组int b[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。定义一个Array类对象test,用b初始化test,完成

对该类的测试。在主程序中定义对象s,对该类进行测试。

二、系统设计

1、概要设计

通过类的成员函数xuanzhuan( )来实现对方阵a进行顺时针90度的旋转,旋转后再放入二维数组中。

2、详细设计

①类的定义如下:

class Array

{

int a[4][4];

public:

Array(int a1[ ][4],int n){}

void xuanzhuan( ){}

void show( ){}

};

②类的主要成员函数的设计

void xuanzhuan( )

{

int b[4][4]; //定义一个临时数组来存放a数组

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

{

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

{

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

}

}

for(int x=0;x<4;x++) //旋转后的数组行等于3减去之前的

{ 列,列为之前的行//

for(int y=0;y<4;y++)

a[x][y]=b[3-y][x];

}

}

三、系统测试

用以测试的数组为:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

预期的输出结果为:

139 5 1

1410 6 2

1511 7 3

1612 8 4

四、实践小结

这道题可以举一反三,通过这道题的运算可以方便以后旋转类的基本设计。

五、参考文献

[1]潘克勤,华伟,Visual C++程序设计北京:中国铁道出版社2008

[2]张晓如,王芳,Visual C++程序设计解析与实训北京:中国铁道出版社2008

六、源程序清单

#include

class Array

{

int a[4][4];

public:

Array(int a1[][4],int n)

{

for(int i=0;i

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

{

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

}

}

void xuanzhuan()

{

int b[4][4];

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

{

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

{

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

}

}

for(int x=0;x<4;x++)

{

for(int y=0;y<4;y++)

a[x][y]=b[3-y][x];

}

}

void show()

{

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

{

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

{

cout<

}

cout<<'\n';

}

}

};

void main()

{

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

Array test(b,4);

test.xuanzhuan( );

test.show( );

} 实践任务七(改错第7题)

一、改错基本题

以下程序统计一个字符串中包含某个字符的单词所出现的次数。这里假设单词之间由一个或多个空格分隔,且在判断字符是否相等时不区分大小字母。请改正其中的错误。

程序正确的运行结果为

字符串“I am a student.My name is Tony.I am twenty.”中包含字符‘T’的单词有3个。

含有错误的源程序如下。

#include

char convert(char c)

{

if(c>='A'&&c<='Z')

return c+'a'-'A';

return c;

}

int search(char *str,char ch)

{

int count=0,flag=0;

for(;*str;str++)

{

if(flag||*str==' ')

{

flag=1;

while(*(str++)==' ');

str--;

for(char *str1=str;*str==' '&&*str;str1++)

{

if( convert(*str)==convert(ch))

{

count++;

return count;

}

}

}

}

return count;

}

void main()

{

char str[50]="I am a student.My name is Tony.I am twenty.",ch='T';

cout<<"字符串\""<

"<

}

二、系统测试

运行结果:字符串“I am a student.My name is Tony.I am twenty.”中包含字符‘T’的单词有3个。

三、实践小结

运行结果这题十分简单

四、参考文献

[1]潘克勤,华伟,Visual C++程序设计北京:中国铁道出版社2008

[2]张晓如,王芳,Visual C++程序设计解析与实训北京:中国铁道出版社2008

五、源程序清单

#include

char convert(char c)

{

if(c>='A'&&c<='Z')

return c+'a'-'A';

return c;

}

int search(char *str,char ch)

{

int count=0,flag=0;

for(;*str;str++)

{

while(*(str++)==' ');

str--;

for(;*str!=' '&&*str;str++)

if(convert(*str)==convert(ch))

flag=1;

if (flag==1)

{

flag=0;

count++;

}

}

return count;

}

void main()

{

char str[44]="I am a student.My name is Tony.I am twenty.",ch='T';

cout<<"字符串\""<

"<

} 实践任务八(改错第1题)

一、改错基本题

以下程序中函数fun(int a[],int N)的功能是删除数组中a的前N个元素中重复的元素,并返回所删除元素的总数。请改正其中的错误。

程序正确的运行结果为

处理前的数组为:4 1 3 3 1 2 4 3 4 4

处理后的数组为:4 1 3 2

二、系统测试

运行结果为

处理前的数组为:4 1 3 3 1 2 4 3 4 4

处理后的数组为:4 1 3 2

三、实践小结

较为简单

四、参考文献

[1]潘克勤,华伟,Visual C++程序设计北京:中国铁道出版社2008

[2]张晓如,王芳,Visual C++程序设计解析与实训北京:中国铁道出版社2008

五、源程序清单

#include

int fun(int *a,int N)

{

int c,n=0;

for(int i=0;i

{

c=a[i];

for(int j=i+1;j

if(a[j]==c)

{

for(int k=j;k

a[k]=a[k+1];

n++;

j--;

}

}

return n;

}

void print(int a[],int n)

{

for(int i=0;i

cout<

cout<

}

void main()

{

int a[10]={4,1,3,3,1,2,4,3,4,4},b[6]={1,2,1,3,2,1};

int n=fun(a,10);

cout<<"数组a处理后的数组为:";

print(a,10-n);

n=fun(b,6);

cout<<"数组b处理后的数组为:";

print(b,6-n);

}

程序设计报告模板

北京化工大学计算机科学与技术专业2014程序设计实训报告 题目:个人记账软件 专业:计算机科学与技术 班级:计科1305 指导教师:江志英

2014程序设计实训任务书

目录 2014程序设计实训任务书...................................... 错误!未定义书签。目录..................................................... 错误!未定义书签。第一章需求分析.............................................. 错误!未定义书签。 引言............................................... 错误!未定义书签。 任务概述........................................... 错误!未定义书签。 数据描述........................................... 错误!未定义书签。 功能需求........................................... 错误!未定义书签。 运行需求........................................... 错误!未定义书签。 任务计划........................................... 错误!未定义书签。第二章概要设计.............................................. 错误!未定义书签。 总体设计........................................... 错误!未定义书签。 面向对象设计....................................... 错误!未定义书签。 运行界面设计....................................... 错误!未定义书签。第三章详细设计.............................................. 错误!未定义书签。 ........................................................ 错误!未定义书签。第四章测试分析............................................. 错误!未定义书签。第五章用户手册(可选)..................................... 错误!未定义书签。第六章课程设计总结.......................................... 错误!未定义书签。附录:程序代码(仅电子版需要、纸质版不需要)................. 错误!未定义书签。

C语言程序设计实验指导(课后习题)参考答案

《实验指导》课后练习题参考答案实验1: 1.主函数 2-4:DDC 5.stdio.h 6-9:CCCC 实验2: 1.double 2-4:ABB 5.2 6-12:CDDDADC 13.! 14.8 15-17:ACC 18.G 19-20:CA 21.5 4 22.x=6c 23-25:DCA 26.0x 27.2.000000 28-29:AB 30.a=3 31.D 32.3.15 33.B 34.double 实验3: 1-3:CCD 4.B 5.2,0 6-8:CAC 9. (1)pass, (2)中 及格 不及格 10-12:ADD 13.2 14.B 15.10 16.6 17.x>=1 && x<=sqrt(10)

实验4: 1.B 2.1 3.A 4.3/5,5/8 5.30 实验5: 1.D 2.(1)9 (2)1 3-5:CDB 6.(1)10 (2)7 7.C 8.(1)x=16 (2)y=8 9.return 实验6: 1-5:CCADA 6.10,20 7.13 11 12 8.7 9.2 10.B 11.(1)3 (2) 1 12-13:CB 14.-31 15.221 16.main函数 17.22 18.(1)return (2)void 实验7: 1.C 2.auto 3.9 4.(1) 4 (2) 0 5.10 6.(1)5 (2) 7 (3) 8 7.C 8.110 9-12:DDBC 13.(1) 1 (2) 3

15.6 720 16.auto 17.48 18.(1)1 (2)2 19.D 20.D 21.5,25 22.6 实验8: 1-2. DD 3. 16 4. (1)0 2 3 (2)2 3 5 (3)7 11 13 5. (1)i<9 (2)j<9-i (3)a[j]=a[j+1] (4)a[j+1]=temp 实验9: 1. D 2. (1)-1 (2)2 3. (1)1 (2)a[i-1][j-1]+a[i-1][j] (3)j<=i 4. (1)1 3 4 5 6 7 (2)3 4 5 6 (3)End of main()! 实验10: 1. 0或NULL 2-5. CACA 6. (1)10 (2)15 (3)19 7. (1)ia[j] (3)”%d”,p+i (4)”%d”, *(p+i) 8. (1)2 6 (2)2 2 (3)4 6 实验11: 1. A 2. C 3. 7 4. (1)strlen(s) (2)s[i]>=’a’ && s[i]<=’z’(3)s[i]+32 (4)’\0’(5)s2[j]!=s2[n2-j-1] (6)j

计算机程序设计实践

江苏科技大学 课程实践报告 设计题目: 计算机程序设计实践(VC++) 设计时间: 2015. 3.9 至2015. 3.16 学院: 数理学院 专业班级: 13级信息与计算科学1班 学生姓名: 陈明敏学号1340501101 指导老师: 华伟 2015年5月1日

一、 实践任务 任务一:试建立一个类SP ,求(,)123k k k k f n k n =++++ ,另有辅助函数power ()用 于求 n m 。具体要求如下。 (1)私有数据成员。 Int n ,k :存放公式中n 和k 的值。 (2)公有成员函数。 ①SP(int n1,int k1):构造函数,初始化成员数据n 和k 。 ②int power(int m,int n):求n m 。 ③int fun():求公式的累加和。 ④void show():输出求得的结果。 二、源程序清单 #include class SP{ private: int n,k; public: SP(int n1,int k1); int power(int m,int n); int fun(); void show (); }; SP::SP(int n1,int k1){ n=n1; k=k1; } int SP::power(int m,int n){ int a=m; for(int i=1;i

C++程序设计实践教程思考题答案

实验1 C++基础 6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。 #include using namespace std; int main() { int i; cin>>i; if(i>=65 && 1<=90 ) cout< #include using namespace std; int main()

{ float a,b,c; 潣瑵?请输入直角三角形的两条边长:; cin>>a>>b; c=sqrt(a*a+b*b); 潣瑵?直角三角形的斜边=< using namespace std; int main() { char c; 1 潣瑵?请输入一个字符:; cin>>c; if(c>='A'&& c<='Z') c+='a'-'A'; cout<

3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。 #include using namespace std; int main() { float grade; 潣瑵?请输入成绩:; cin>>grade; if(grade>=60) cout<

Java程序设计-实验报告1-模板 (1)

实验报告 课程名称Java程序设计 实验项目实验一类和对象 系别_________计算机_________ 专业/班级_______计算机类/1402______ 姓名_____李馨雪________ 实验日期______2015.10.10______ 成绩_______________________ 指导教师

一、实验题目:实验一类和对象 二、实验内容: (1)用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。 1)PC类与CPU类和HardDisk类关联的UML图如图所示。 其中,CPU类要求getSpeed()返回speed的值,setSpeed(int m)方法 将参数m的值赋值给speed。 HardDisk类要求getAmount()返回amount的值,setAmount(int m)方 法将参数m的值赋值给amount。 PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk (HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示 cpu的速度和硬盘的容量。 2)主类Test的要求 main()方法中创建一个CPU对象cpu,其speed设置为2200; main()方法中创建一个HardDisk对象disk,其amount设置为200; main()方法中创建一个PC对象pc, pc调用setCPU方法,实参是cpu;调用setHardDisk方法,实参是 disk;调用show方法。 (2)设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下: 1)编写接口Animal,有2个抽象方法cry()和getAnimaName(); 2)编写模拟器类Simulator,该类有一个playSound(Animal animal)方法,其形参是Animal类型,可以调用实现Animal接口的类所重写的cry()方法播放具体动物的声音,调用重写方法显示动物种类的名称; 3)编写实现Animal接口的Dog类和Cat类。具体的UML图如下所示:4)编写主类Application,其main方法中至少包含如下代码: Simulator si=new Simulator();

c语言程序设计实践教程答案完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A 6.B

8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为: 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D 6.C 7.D

vb程序设计实验教程习题答案

实验教材实验一 1:单项选择题: A A C C C D C B B C 2:填空题: (1).bas (2).vbp,.frm (3)视图工具箱 (4)对象 (5)属性对象事件方法 (6)Windows (7)事件行为 (8)窗体模块 实验二 1:单项选择题: A D C C A B A B D C B B C B C B A B D C 2:基本运算题: (1)27 (2)3.33333333333333 (3)3 (4)0 (5)-3 (6)2 (7)ab33 (8)类型不匹配 (9)3 (10)AB3 实验三 1:单项选择题: B C B D C 2:填空题: (1)300 (2)321456 (3)Shanghai (4)6 7 6 (5)True (6)2+3=5 (7)”area=” 12.56 (8)VISUAL 实验四 1:单项选择题: C A A C A 2:填空题: (1)7 (2)3 5

(3)输入的数小于0 (4)3 (5)False (6)2010 is not leap year. 试验五 1:单项选择题: A C C A B A C C C B 2:填空题: (1)9 (2)①n ②1 (3)①Len(a) ②n\2 ③Mid(a,(n-i+1),1) ④Mid(a,(n-i+1),1) (4)①n Mod 3=1 And n Mod 5=1 And n Mod 7=1 ②While CountN<5 (5)Mid(c1,1,i) 实验六 1:单项选择题: D B D C D A C A D D 2:填空题: (1)30 (2)3 (3)①a(2) ②a(3) ③a(1) (4)①1 ②2 ③a(i)=a(6-i) (5)①i+j ②0 ③a(i,j) (6)①Print ②k ③a(k,j)=a(j,k) ④a(k,j); 实验七 1:单项选择题: A B B A C B 2:填空题: (1)15 (2)①Preserve a(n+1) ②a(i+1)=a(i) ③Exit For ④a(i+1)=m⑤0 to n+1 (或LBound(a) to UBound(a)) (3)d,c,b,a 实验八 1:单项选择题: C A D B D C A C B 2:填空题: (1)a=9 b=4 (2) 36 25 16 9 4 1 (3)①a ②UBound(b) ③

程序设计实践报告模板

面向对象程序设计实践(Project 2) 报告 题目: 专业软件工程(NIIT) 学生姓名 班级学号 指导教师杨健 指导单位计算机学院/软件学院 日期

评分细则 评分项优秀良好中等差遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简短 评语教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

Title(Here,please write the name of your Project) (题目格式:宋体,3号,加粗,居中对齐) 一、D escription and Requirement(格式:Times New Roman,4号,加粗, 两端对齐) (正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 二、Requirement Analysis(格式:Times New Roman,4号,加粗,两端对齐) 在该部分中叙述系统的功能,由此得到相应的模块,并分析需要什么的数据,由此可以指导数据库的设计。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距) 三、High level design(格式:Times New Roman,4号,加粗,两端对齐) 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明),数据库设计的说明(给出数据库的结构,包括有哪些表,每个表有什么字段,分别存储什么样的数据) (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 四、Low level design格式:Times New Roman,4号,加粗,两端对齐) 各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 注意:不要粘贴全部程序,只要把关键算法的程序粘贴过来就可以了。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 五、Tested data and result analysis(格式:Times New Roman,4号,加粗,

计算机程序设计(C)综合实践

计算机程序设计(C)综合 实践 设计报告 学院:电子通信与物理学院 设计名称:职工信息管理系统 专业班级:电子信息科学与技术14-2 学生:本良 学号: 201401100211 组号: 140203 指导教师:宋戈 完成时间: 2015年 7月23日

目录 第1部分实训题目与要求 (2) 1. 问题提出 (2) 2. 功能要求 (2) 3. 任务分工 (2) 第2部分设计实训题目功能......................................................................... . (3) 1. 总体设 计...................................................................... (3) 2. 数据结 构...................................................................... (4) 3. 程序设 计...................................................................... (5) 4. 测试与调 试......................................................................

(8) 第3部分实训总结......................................................................... . (12) 1. 个人总 结...................................................................... (12) 2. 结束 语...................................................................... (12) 第4部分参考文献......................................................................... . (13) 《C程序设计综合实践》评分表......................................................................... (14)

VB程序设计教程(第3版)课后实验答案最新版2

1、完成实验A(P.259)中的第1、 2、 3、5题。 2、参照第2章例2.6,建立一个类似记事本的应用程序,提供:(1) 剪切、复制和粘贴的编辑操作;(2) 字体大小的格式设置;此外,再对记事本的应用程序的功能进行一点扩允。 1.完成在实验B 顺序结构程序。(P.262)中的第1、2 、4 、5.、6题 2.完成实验C 选择结构(P.266)中的第1、2、4、5题 3.用上面实验B的第二题和实验C的第二题完成下面的实验报告。 1、完成实验D循环结构(P.268)中的第1、3、4、6题,其中第1题利用单循环结构显示如图D.1(P.268)所示的界面,而后将图形改为倒三角形。 2、选做实验E数组(P.271)中的第1、2、3题中的任意二题 3、以实验D中的第4题和实验E中的做完的某一题完成下面的实验报告。 A.1 Private Sub Command1_Click() Label3 = Text1 End Sub A.2 Private Sub Form_Load() Timer1.Interval = 0 End Sub Private Sub Command1_Click() '自动 Timer1.Interval = 200 End Sub Private Sub Command2_Click() '手动 Timer1.Interval = 0 Call MyMove End Sub Private Sub Timer1_Timer() Call MyMove End Sub Sub MyMove() Label1.Move Label1.Left - 50 If Label1.Left < 0 Then Label1.Left = Form1.Width End Sub A.3 Private Sub Form_Click() Text1 = Val(Text1) + 1 End Sub Private Sub Form_Load() Text1 = 0 End Sub A.5

实验报告模板-《C程序设计实践 》

大型程序设计实验报告 课程名称C程序设计实践实验日期2011年月日至2011年月日 学生姓名所在班级学号 实验名称 实验地点同组人员 1. 问题描述 实现图书管理系统 如何让实现如下功能: 1.新进图书及基本信息输入 2.图书基本信息查询 3. 对撤销图书信息的删除 4 办理借书手续 5 办理还书手续 2. 问题分析 根据题目要求,需要建立图书管理系统结构体,分别需要建立读者结构体,图书结构体。 该程序主要涉及到C语言中的文件和链表 图书信息应该存放在文件中,所以提供文件的输入输出等操作;并且程序需具有实现图书信息浏览,查找,修改等功能,并进行借入借出服务;另外还提供接盘是选择菜单来实现功能选择 3. 系统设计 系统应该包括以下模块:信息输入,图书查找,信息删除,图书借出,图书归还 3.1 总体设计 1系统功能的文字概述: 图书管理系统主要功能是用户的设定,读者管理,数据的录入与查询,数据的修改和删除等 2 系统的总体结构图

3主要模块的控制流程图 主函数 ( 1. 系统功能的文字概述;2.系统的总体结构图;3. 主要模块的控制流程图)3.2 界面设计 3.3 系统主要流程设计 (文字描述加流程图) 3.4 主要数据结构设计 /*--------- 数据结构的定义------------*/ struct reader {

/*姓名,学生学号/教师工号,性别,所在学院,角色*/ char name[9]; char num[11]; char sex[3]; char college[21]; char role[2]; struct reader *next; } *readersHead=NULL, *readersTail=NULL, *reader_p; struct book{ /*书名,作者,出版社,价格,ISBN号和类别*/ char book_name[41]; char author_name[21]; char publish[15]; float price; char ISBN[18]; char b_type[9]; struct book *next; } *booksHead=NULL, *booksTail=NULL, *book_p; struct borrow_info{ /*借者编号,借书日期,图书ISBN号*/ char borrower_num[11]; char borrow_date[15]; char ISBN[18]; struct borrow_info *next; } *biHead=NULL, *biTail=NULL, *bi_p; /*--------- 数据结构的定义完毕------------*/ 3.4.1 系统数据结构概述 主要有读者数据结构,用以读者信息的记录 图书数据结构用以图书信息的记录 还有已借图书数据结构用以对已借图书的统计和记录(主要用了哪些数据结构,各自的用途)

C语言程序设计实验实验指导书及答案

实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include <> int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include <> int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

项目3. 调试并运行下面程序,并写出运行结果: #include <> int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

MATLAB程序设计教程课后答案

实验指导 1、 n=input('请输入一个三位数:'); a=fix(n/100); b=fix((n-a*100)/10); c=n-a*100-b*10; d=c*100+b*10+a 2(1) n=input('请输入成绩'); switch n case num2cell(90:100) p='A'; case num2cell(80:89) p='B'; case num2cell(70:79) p='C'; case num2cell(60:69) p='D'; otherwise p='E'; end price=p (2)n=input('请输入成绩'); if n>=90&n<=100 p='A'; elseif n>=80&n<=89 p='B'; elseif n>=70&n<=79 p='C'; elseif n>=60&n<=69 p='D'; else p='E'; end price=p (3)try n; catch price='erroe' end 3 n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6]; a=n(1);

for m=2:20 if n(m)>a a=n(m); elseif n(m)=0 disp(A([n],:)); elseif n<0 disp(lasterr); else disp(A([6],:)); disp(lasterr); end 7(1) f=[]; for n=1:40

C语言程序设计实验报告优秀范文

C语言程序设计实验报告优秀范文 实验名称计算出1000以内10个最大素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内最大的10个素数以及它们的和。 要求: 在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i if(n%i==0)/* 如果不是素数,返回0 */ return 0; return n;/* 如果是素数,返回该数*/ } void main { int i,j=0,n,m=0,a[1000],x; /*clrscr;*/ printf("please input a number form 1 to 1000:"); scanf("%d",&x); if(x==2)/* x=2时的处理*/ printf("%dn",x); else if(x printf("error!n");

测量程序设计实习报告

测量程序设计实习报告 姓名: 班级: 学号: 教师评语: 日期:二零一四年十二月

实验名称:使用C#开发环境建立测量程序框架 一、实验的目的与任务: (1)学会用C#窗体程序开发环境建立应用程序框架方法 (2)学会使用常见的Windows控件 (3)根据自身需要设计一个测量程序界面 二、实验的过程与步骤: 1.创建窗体项目 打开“新建项目”对话框,选左边“已安装模板”栏的“其他语言\Visual C#”项,再选右边“模板”栏的“Windows应用程序”模板。选择磁盘卷和父目录位置后,输入项目名称“测量程序”按“确定”按钮关闭对话框。 2.修改窗体属性 窗体的属性有很多,其中常用的有: 布局:大小Size——缺省为300*300像素,可以通过修改此属性,或直接拖动窗体的边框来改变窗体的尺寸。运行时用户也可以自己改变窗体大小。 设计:是程序设计中窗口的引用名称,名称(Name)缺省为Form1,可以改成自己喜欢的名称,如CLCX,回车确认后,系统会自动修改所有相关内容中的该标识符。 外观:文本Text——对应于窗体的标题,缺省也为Form1,可以改为自己喜欢的标题,如“导线简易平差”。 单击窗口界面,再点击菜单工具栏中“属性”工具,调出属性窗口,此时属性窗口显示的内容便是窗口的属性,找到“Name”栏,将其值改为“CLCX”;再找到“Text”栏,将其值改为“导线简易平差”。 将鼠标箭头放置于窗口边缘,拖动窗口以调整窗口大小,将窗口大小调整为合适大小。 3.添加按钮和控件 可以在窗口中添加标准控件,以实现可视化的目的,C#中常用的标准控件有:(1)按钮(Button) 是用户以交互方式控制程序运行的控件之一。 主要属性: 1)Text属性 设置显示在按钮表面上的文字,用于说明该按钮的作用。 2)Enabled属性 设置按钮是否可用; (2)Label控件 Label控件主要用于通过其Text属性显示文本信息。 主要属性: 1)Text属性 标签中显示的文本内容 2)Font

VB程序设计学习与实验指导答案

Visual Basic 程序设计学习与实验指导答案 上篇学习指导 第1章Visual Basic 概述 1.事件 2.查看对象 3.工程 4.视图属性窗口 5.窗体编辑器 第2章面向对象程序设计初步 1.控件 2.事件 3.类属性 4.属性 5.略 https://www.360docs.net/doc/8e2897709.html, 第3章Visual Basic 语言基础 1.(a*sin(30/180*3.14)+c*(log(b)/log(10)))/((Abs(d)+1)*(e+f))+1

2.mod 3.X=Int(X) And Y=Int(Y) And X*Y>0 4. 4.Y Mod 4=0 And Y Mod 100<>0 Or Y Mod 400=0 5.x=Int((99-10+1)*Rnd+10) 6.0 “” 7.空格 8.6,845.30 9. (1)8 (2)1 (3)abcd (4)出错,类型不匹配 (5)False (6)2008-6-29 (7)I likeVB (8)4 (9)4 4 (10)3 4 (11)10 -10 (12)-1 (13)aa (14)3 (15)0 (16)1 (17)C (18)5 (19)8 (20)34.54 (21)中国 (22)上海 (23)VISUAL BASIC (24)visual basic 10. (1)x<-100 or x>100 (2)a=Int(a) And b =Int(b) Or a<0 And b<0 (3)x<=y or x>=z (4)a>0 And a<>Int(a) (5)a=0 xor b=0 (6)Len(S)<10 (7)UCase(S)=S (8)Left(S,1)=”a” And Right(S,1)=”a” (9)Instr(S,”@”)<>0 (10)Trim(S)=S (11)Date=#8/8/2008#

C语言程序设计实验报告(实验1-12)

文档从网络中收集,已重新整理排版.word版本可编辑.欢迎下载支持. 《C语言程序设计》 实验报告 2013~2014学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue

2. (1) 改正后的源程序: #include int main( ) { int a,b,sum; a=3; b=4; sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容:

C语言程序设计实验与习题指导课后程序设计答案,DOC

P18 (1) #include intmain(void) celsius=26; fahr=9*celsius/5+32; printf("celsius=%d,fahr=%d\n",celsius,fahr); return0; }

(3) #include intmain(void) { intaverage,math,eng,comp; intn,a,b,c; n=152; c=n%10; b=(n/10)%10; a=n/100;

printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,c,b,a); return0; } P27 (2) #include #include intmain(void) {

intmoney,year; doublerate,interest; printf("Entermoney,year,rate:"); scanf("%d%d%lf",&money,&year,&rate); interest=money*pow(1+rate,year)-money; y=pow(x+1,2)+2*x+1/x; } else{ y=sqrt(x); }

printf("y=f(%f)=%.2f\n",x,y); return0; } (4) #include return0; } 10的阶乘 #include intmain(void)

{ inti,n,product; printf("Entern:"); scanf("%d",&n); product=1;

C程序设计教程与实验实验答案

#include void main() { int i; static int a[8]={10,5,4,0,12,18,20,46}; void jhmaxmin(); printf("Original array:\n"); for(i=0;i<8;i++) printf("%5d",a[i]); printf("/n"); jhmaxmin(a,8); printf("Array after swapwing max and min: \n"); for(i=0;i<8;i++) printf("%5d",a[i]); printf("\n"); } void jhmaxmin(int p[],int n) { int t,*max,*min,*end,*q; end=p+n; max=min=p; for(q=p+1;q*max) max=q; if(*q<*min) min=q; } t=*max; *max=*min; *min=t; } Sy8-2 #include int len(char s[]) { char *p=s; while (*p!='\0')p++; return p-s; } main() { char s[80]; gets(s); printf("\"%s\"include %d characters.\n",s,len(s)); }

#include #include void main() { int i,a[26]; char ch,str[80],*p=str; gets(str); for(i=0;i<26;i++) a[i]=0; while(*p!='\0') { ch=*(p++); ch=ch>'A'&&ch<='Z'?ch+'a'-'A':ch; if('a' main() { int a[8],*p; int i,j,t,k; p=a; printf("Input the numbers:"); for(i=0;i<8;i++) scanf("%d",p+i); t=*p; for(i=0;i<8;i++) { for(j=i;j<8;j++) if(j==i||*(p+j)