VC++课程实践报告

时间:2024.3.31

******大学

课程实践报告

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

设计时间:20##-03-01至 20##-03-07

学    院:******工程学院

专业班级:******
学生名字:***   学号:  ******

指导老师:***



                 2010  年   3  月  

一、实践任务

建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组边。

具体要求如下:

(1)       私有数据成员

●   float array[20]:一维整型数组。

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

(2)   公有成员函数

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

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

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

二、系统测试

系统测试主要通过主函数中定义的对象来完成。

主函数定义如下:

void main(){

       float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};

       MOVE Test(b,9);

       Test.average();

       Test.print();

       cout<<endl;

}

三、实践小结

1、 对类的整体的格式要掌握;

2、 指针的应用。

四、源程序清单

#include<iostream.h>

class MOVE{

       float array[20];

       int n;

public:

       MOVE(float b[],int m);

       void average();

       void print();

};

MOVE ::MOVE(float b[],int m){

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

              array[i]=b[i];

       n=m;

}

void MOVE::average(){

       float s=0.0;

       float t;

       float *p;

       int i,j=0,x;

       x=n;

       p=new float [n+1];

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

              s+=array[i];

       t=s/n;

       cout<<"一维数组的平均值为:"<<t<<endl;

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

              if(array[i]<t) p[j++]=array[i];

              else

                     p[--x]=array[i];

       }

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

              array[i]=p[i];

       delete []p;

}

void MOVE::print(){

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

              cout<<array[i]<<'\t';

}

void main(){

       float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};

       MOVE Test(b,9);

       Test.average();

       Test.print();

       cout<<endl;

}

一、实践任务

建立一个类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}对该类进行测试。

二、系统测试

void main(){

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

       MOVE  test(b,10);

       test.exchange();

       test.print();

}

三、实践小结

1、关键是找到最大值与最小值的在原数组中所在的位置

四、源程序清单

#include<iostream.h>

class MOVE{

       int *array;

       int n;

public:

       MOVE(int b[],int m);

       void exchange();

       void print();

       ~MOVE();

};

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

       array=new int[m+1];

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

              array[i]=b[i];

       n=m;

}

void MOVE::exchange(){

       int i,j,t,k,s;

       int *p;

       p=new int[n+1];

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

              p[i]=array[i];

       for(i=0;i<n-1;i++){

              for(j=i+1;j<n;j++){

                     if (p[i]>p[j]){

                            t=p[i];

                            p[i]=p[j];

                            p[j]=t;

                     }

              }

       }

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

              if(array[i]==p[0]) k=i;

              if(array[i]==p[n-1]) s=i;

       }

       t=array[k];

       array[k]=array[s];

       array[s]=t;

       delete[]p;

}

void MOVE::print(){

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

              cout<<array[i]<<'\t';

}

MOVE::~MOVE(){delete []array;}

void main(){

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

       MOVE  test(b,10);

       test.exchange();

       test.print();

}

一、实践任务

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

具体要求如下:

(1)私有数据成员

   ●  char *str;

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

(2) 公有成员函数

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

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

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

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

二、系统测试

void main()

{

       char *str="ababcedbaba";

      

       String test(str);

       test.huiwen();

       test.show();

}

三、实践小结

1、判断是否为回文数是这道题目的关键所在

四、源程序清单

#include<iostream.h>

#include <string.h>

class String

{

       char *str;

       int y;

public:

       String(char*s)

       {

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

              strcpy(str,s);

              y=0;

       }

    void huiwen();

       void show();

};

void String::huiwen()

{

       int n=strlen(str);

       char *p1=str,*p2=str;

       for(int i=0,j=n;i<n;i++)

              if(p1[i]!=p2[--j]) break;

       if(i==n) y=1;

             

             

}

void String::show()

{

       if(y) cout<<str<<endl;

       else cout<<"此字符串不是回文字符串";

      

}

void main()

{

       char *str="ababcedbaba";

      

       String test(str);

       test.huiwen();

       test.show();

}

一、实践任务

建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。例如将字符串“abcde”交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。

具体要求如下:

(1)私有数据成员

   ● char str1[80]:存放被插入的字符。

   ● char str2[40]:存放待插入的字符。

(2)公有成员数据

   ● STRING (char *s1,char *s2):构造函数,用s1和s2初始化str1和str2。

   ● void process():将str2中的字符串插入到str1。

   ● void print():输出插入后的字符。

二、系统测试

void main ()

{

       char str1[80],str2[40];

       cin.getline(str1,9);

       cin.getline(str2,9);

       STRING test(str1,str2);

       test.process();

       test.print();

}

三、实践小结

1、一个字符串插入一个字符串,主要在于,要另用一个数组存放新字符串

四、源程序清单

#include <iostream.h>

#include <string.h>

class STRING

{

       char str1[80];

       char str2[40];

public:

       STRING (char *s1,char *s2)

       {

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

                     str1[i]=s1[i];

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

            str2[i]=s2[i];

       }

       void process();

       void print();

};

void STRING::process()

{

       char t[40];

       int i=0,j=0;

       strcpy(t,str1);

       while(str2[i])

       {

              str1[j++]=str2[i];

           str1[j++]=t[i];

              i++;

       }

}

void STRING::print()

{

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

              cout<<str1[i];

}

void main ()

{

       char str1[80],str2[40];

       cin.getline(str1,9);

       cin.getline(str2,9);

       STRING test(str1,str2);

       test.process();

       test.print();

}

一、实践任务

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

具体要求如下:

(1)私有数据成员

   ● int array[20]:一位整型数组。

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

(2)公有成员函数

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

   ● void change():进行循环换位。

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

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

二、系统测试

void main()

{   int n;

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

       cout<<"输入n的值:"<<endl;

       cin>>n;

      

       MOVE test(array,n);

       test.change();

       test.print();}

三、实践小结

1、要将最后三位拉出来重新考虑

四、源程序清单

#include <iostream.h>

class MOVE

{

       int array[20];

       int n;

public:

       MOVE(int b[],int m)

       {

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

                     array[i]=b[i];

              n=m;

       }

       void change();

       void print();

};

void MOVE ::change()

{

       int a,b,c;

       a=array[n-3];

       b=array[n-2];

       c=array[n-1];

       for(int i=0;i<n-3;i++)

       {

              array[i+3]=array[i];

       }

       array[0]=a;

    array[1]=b;

    array[2]=c;

      

}

void MOVE::print()

{

      

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

              cout<<array[i]<<'\t';

}

void main()

{

       int n;

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

       cout<<"输入n的值:"<<endl;

       cin>>n;

      

       MOVE test(array,n);

       test.change();

       test.print();

}

一、实践任务

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

具体要求如下:

(1)私有数据成员

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

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

(2)公有成员函数

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

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

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

● ~MOVE():析构函数。

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

二、系统测试

void MOVE::print()

{       

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

              cout<<array[i];

       cout<<'\0';

}

void main()

{

       char *array="fdsUFfsTjfsKFEkWC";

       MOVE test(array,17);

       test.change();

       test.print();

}

三、实践小结

1、判断大小写字母;

2、存放新数组。

四、源程序清单

#include <iostream.h>

class MOVE

{

       char *array;

       int n;

public :

       MOVE (char b[],int m)

       {

              array=new char[m+1];

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

              {

                     array[i]=b[i];

              }

                     n=m;

       }

       void change();

       void print();

       ~MOVE() {delete []array;}

};

void MOVE::change()

{

       int x=0;

    int y=n;

      

       char *p;

       p=new char[n+1];

      

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

       {

              if(array[i]>='A' && array[i]<='Z')

                     p[x++]=array[i];

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

                     p[--y]=array[i];

       }

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

              array[i]=p[i];

}

void MOVE::print()

{       

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

              cout<<array[i];

       cout<<'\0';

}

void main()

{

       char *array="fdsUFfsTjfsKFEkWC";

       MOVE test(array,17);

       test.change();

       test.print();

}

更多相关推荐:
实践课程报告格式

单片机课程设计报告题院组组员组员组员组员目基于STC89C52RC的自行车测速仪系电气信息工程系专业通信工程长柴冰川学号20xx06020xx1李梁学号20xx06020xx2韩硕学号20xx06020xx3任...

大学生课程实践报告作业格式

毛泽东思想和中国特色社会主义理论体系概论课程实践报告报告名称当代大学生心理素质调查研究报告年级20xx级学院经济管理学院专业土地资源管理学号02112229姓名张静任课教师陈茉完成时间20xx424成绩报告在给...

课程与教学实践调研报告

课程与教学实践调研报告1课题的提出自上个世纪60年代以来国际化学课程改革风起云涌不少国家和地区在高中化学课程标准课程内容体系教学方式课程评价等方面进行了较为深入的研究和实践从关注课程的学术性到重视课程的社会性从...

国外课程实践总结报告

广西东方外语职业学院东南亚语言文化学院国外课程实践总结报告(09级)二级学院东南亚语言文化学院专业应用柬埔寨语班级09级柬埔寨语班姓名卢筱茜指导老师刘宜双教研室主任李艳焱20xx年x月x日国外课程实践总结报告八…

课程与教学实践调研报告

课程与教学实践调研报告李栋新课程改革开始后由于基础教育培养目标课程体系的重建要求转变教师教育观念和学生学习方式学校文化建设呈现新的面貌教育科研出现新的形势认清新形势驾驭新局面对推进新课程实验提高新课程教育质量具...

操作系统课程设计实践报告

南通大学计算机科学与技术学院操作系统实验报告班级软件工程121姓名金凯学号11020xx019指导老师戴树贵时间19周一周1程序流程图一览2实验内容1处理机管理FCFS在多道程序或多任务系统中系统中同时处于就绪...

课程实践报告

课程实践报告学生姓名学生学号专业实践时间实践公司指导教师课程实践报告20xx年10月21日在院系的组织安排下我们在XX老师的带领下进行了本次的课程实践本次实践单位是XXX塑胶有限公司一课程实践的目的本次实践的主...

国际金融课程实践报告高云敬

哈尔滨理工大学课程设计实践报告设计名称姓名高云敬学院经济学院专业国际经济与贸易学号121601010520xx年7月20日哈尔滨理工大学经济学院国际经济与贸易系课程设计实践任务书哈尔滨理工大学课程设计实践报告目...

《数控技术实践》课程实习报告

学校数控技术实践课程实习报告班级姓名学号指导老师成绩机械与车辆学院二O一四年六月1目录目录2第1章数控车削加工实践311数控车削加工零件分析312数控车削加工零件工艺分析313数控车床的操作实训314数控车削零...

”重要思想概论“课程实践调查报告

重要思想概论课程实践调查报告题目我国现阶段贫富差距的调研院系少年班学院姓名赵晨宇学号PB13000301时间20xx年春季学期我国现阶段贫富差距的调研赵晨宇1引言随着我国改革开放的不断深入人民的生活水平日益提高...

销售客户管理 课程实践性报告

提纲一序言在当今网络营销飞速发展的大环境电子商务销售平台也随着科技的进步在快速发展电子商务已经不只是简单的网络购物而成为了支撑中国经济发展的最新方式随着电子商务市场的火爆也带动了电话营销的热潮所以课程结束以后我...

《特种加工》课程实践调查报告

山西广播电视大学实践调查报告考核表实践课程特种加工实践地点学生单位姓教育层次学号市地级电大专业分校教学点特种加工课程实践调查报告一调研时间20xx年4月102112年4月25日二调研地点潞安集团机械厂和长治清华...

课程实践报告(40篇)