欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C++課程實(shí)踐報(bào)告試題及答案(范文大全)

      時(shí)間:2020-11-12 13:20:27下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C++課程實(shí)踐報(bào)告試題及答案》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C++課程實(shí)踐報(bào)告試題及答案》。

      第一篇:C++課程實(shí)踐報(bào)告試題及答案

      任務(wù)一 一、實(shí)踐任務(wù) 1.試建立一個(gè)類 PP,求出下列多項(xiàng)式的前 n 項(xiàng)的值。

      ?????? ? ???n x P n x xP nx x Pnn/))()1()()1 2((1)(2 n 1 -

      110???nnn 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int n:前若干項(xiàng)的項(xiàng)數(shù)。

      ? double

      x:存放 x 的值。

      ? double *p:根據(jù) n 的大小動(dòng)態(tài)申請(qǐng)存放 P n(x)前 n 項(xiàng)的數(shù)組空間。

      (2)公有成員函數(shù) ? PP(int num,double x1):構(gòu)造函數(shù),初始化數(shù)據(jù)成員 n 和 x,使 p 指向動(dòng)態(tài)申請(qǐng)的數(shù)組空間。

      ? ~PP():析構(gòu)函數(shù),釋放 p 指向的動(dòng)態(tài)內(nèi)存空間。

      ? double fun(int n1,double x):遞歸函數(shù),用于求多項(xiàng)式)(x P n 的第 n1 項(xiàng)。注意:將遞歸公式中的 n 用作函數(shù)參數(shù)。本函數(shù)供 process 函數(shù)調(diào)用。

      ? void process():完成求前 n 項(xiàng)的工作,并將它們存放到 p 指向的動(dòng)態(tài)數(shù)組中。

      ? void show():輸出 n 和 x,并將前 n 項(xiàng)以每行 4 個(gè)數(shù)的形式輸出到屏幕上。

      2、主要函數(shù)設(shè)計(jì)

      在主函數(shù)中完成對(duì)該類的測(cè)試。先輸入 num 和 x1,并定義一個(gè) PP 類的對(duì)象 items,用 num 和 x1 初始化 items 的成員 n 和 x,調(diào)用 items 的成員函數(shù),求出并輸出多項(xiàng)式前 num 項(xiàng)的值。

      三、源程序清單 #include class PP{ private:

      int n;

      double x;

      double*p;public:

      PP(int num,double x1)

      {

      n=num;

      x=x1;

      p=new double[n];

      }

      ~PP()

      {

      if(p)delete []p;

      }

      double fun(int n1,double x);

      void process();

      void show();};double PP::fun(int n1,double x){

      if(n1==0)return 1;

      else if(n1==1)return x;

      else if(n1>1)return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;} void PP::process(){

      for(int i=0;i

      {

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

      } } void PP::show(){

      cout<<“n=”<

      for(int i=0;i

      {

      cout<

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

      } } void main(){

      int num;

      double x1;

      cout<<“請(qǐng)輸入 num 和 x1:”;

      cin>>num>>x1;

      PP items(num,x1);

      items.process();

      items.show();}

      任務(wù)二

      一、實(shí)踐任務(wù) 2.試建立一個(gè)類 SP,求k k k kn k n f ? ? ? ? ?....3 2 1),(,另有輔助函數(shù) power(m,n)用于求nm。

      二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int n,k:存放公式中 n 和 k 的值;(2)公有成員函數(shù) ? SP(int n1,int k1):構(gòu)造函數(shù),初始化成員數(shù)據(jù) n 和 k。

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

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

      ? void show():輸出求得的結(jié)果。

      2、主要函數(shù)設(shè)計(jì) 在主程序中定義對(duì)象 s,對(duì)該類進(jìn)行測(cè)試。

      三、源程序清單 #include class SP{

      private:

      int n,k;public:

      SP(int n1,int k1)

      {

      n=n1;

      k=k1;

      }

      int power(int m,int n);

      int fun();

      void show();};int SP::power(int m,int n){

      int s=1;

      for(int i=0;i

      {

      s*=m;

      }

      return s;} int SP::fun(){

      int s=0;

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

      {

      s+=power(i,k);

      }

      return s;}

      void SP::show(){

      cout<<“f(”<

      int n1,k1;

      cout<<“請(qǐng)輸入 n1,k1:”;

      cin>>n1>>k1;

      SP s(n1,k1);

      s.fun();

      s.show();}

      任務(wù)三

      一、實(shí)踐任務(wù) 3.建立一個(gè)類 MOVE,不進(jìn)行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。

      二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? float array[20]:一維整型數(shù)組。

      ? int n:數(shù)組中元素的個(gè)數(shù)。

      (2)公有成員函數(shù) ? MOVE(float b[],int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。

      ? void average():輸出平均值,并將數(shù)組中的元素按要求重新放置。

      ? void print():輸出一維數(shù)組。

      2、主要函數(shù)設(shè)計(jì) 在主程序中用數(shù)據(jù){1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}對(duì)該類進(jìn)行測(cè)試。

      三、源程序清單 #include class MOVE{ private:

      float array[20];

      int n;public:

      MOVE(float b[],int m)

      {

      for(int i=0;i

      {

      array[i]=b[i];

      }

      n=m;

      }

      void average();

      void print();

      ~MOVE()

      {};};void MOVE::average(){

      float ave=0;

      int i,j;

      for(i=0;i

      {

      ave+=array[i];

      }

      ave/=n;

      cout<

      float turn[20];

      j=0;

      for(i=0;i

      {

      if(array[i]<=ave)

      {

      turn[j]=array[i];

      j++;

      }

      }

      j=0;

      for(i=0;i

      {

      if(array[i]>ave)

      {

      turn[n-1-j]=array[i];

      j++;

      }

      }

      for(i=0;i

      {

      array[i]=turn[i];

      } } void MOVE::print(){ for(int i=0;i

      cout<

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

      int num;

      num=sizeof(b1)/sizeof(float);

      MOVE s(b1,num);

      s.average();

      s.print();}

      任務(wù)四

      一、實(shí)踐任務(wù) 4.建立一個(gè)類 MOVE,將數(shù)組中最大元素的值與最小元素的值互換。

      二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int *array:一維整型數(shù)組。

      ? int n:數(shù)組中元素的個(gè)數(shù)。

      (2)公有成員函數(shù) ? MOVE(int b[],int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。

      ? void exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。

      ? void print():輸出一維數(shù)組。

      ? ~MOVE():析構(gòu)函數(shù)。

      2、主要函數(shù)設(shè)計(jì) 在主程序中用數(shù)據(jù){21,65,43,87,12,84,44,97,32,55}對(duì)該類進(jìn)行測(cè)試。

      三、源程序清單 #include class MOVE{ private:

      int *array;

      int n;public:

      MOVE(int b[],int m)

      {

      array=new int[m];

      n=m;

      for(int i=0;i

      {

      array[i]=b[i];

      }

      }

      void exchange();

      void print();

      ~MOVE()

      {

      if(array)delete array;

      } };void MOVE::exchange()

      {

      float ave=0;

      for(int i=0;i

      {

      ave+=array[i];

      }

      ave/=n;

      cout<<“平均值為”<

      int max,min;

      max=min=array[0];

      int m;

      for(i=0,m=0;i

      {

      if(array[i]>=max)m=i,max=array[i];

      }

      int l;

      for(i=0,l=0;i

      {

      if(array[i]

      }

      i=array[m],array[m]=array[l],array[l]=i;

      } void MOVE::print()

      {

      for(int i=0;i

      cout<

      {

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

      int num;

      num=sizeof(text)/sizeof(int);

      MOVE s(text,num);

      s.print();

      cout<

      s.exchange();

      s.print();}

      任務(wù)五 一、實(shí)踐任務(wù) 定義一個(gè)類 Palindrome,實(shí)現(xiàn)絕對(duì)回文數(shù)。設(shè)計(jì)一個(gè)算法實(shí)現(xiàn)對(duì)任意整型數(shù)字判斷是否為絕對(duì)回文數(shù)。所謂絕對(duì)回文數(shù),是指十進(jìn)制數(shù)和二進(jìn)制數(shù)均對(duì)稱的數(shù)。

      二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int n:整型數(shù)字。

      ? int y:

      標(biāo)記是否為回文數(shù)。

      (2)公有成員函數(shù) ? Palindrome(int x):構(gòu)造函數(shù),根據(jù) x 參數(shù)初始化數(shù)據(jù)成員 n,y 初始化為 0。

      ? void huiwen():判斷數(shù) n 是否為絕對(duì)回文數(shù)。

      ? void show():若該數(shù)為回文數(shù),則在屏幕顯示。

      2、主要函數(shù)設(shè)計(jì)

      在主程序中定義 int a,由鍵盤輸入數(shù)字。定義一個(gè) Palindrome 類對(duì)象 p,用 a 初始化 p,完成對(duì)該類的測(cè)試。

      三、源程序清單 #include class Palindrome{ private:

      int n;

      int y;public:

      Palindrome(int x)

      {

      n=x;

      y=0;

      }

      void huiwen();

      void show();};void Palindrome::huiwen(){

      int i=0,j=0;

      int m;

      m=n;

      while(m)

      {

      m/=10;

      i++;

      }

      m=n;

      while(m)

      {

      m/=2;

      j++;

      }

      int*s10=new int[i];

      int*s2=new int[j];

      m=n;

      for(int k=0;k

      {

      s10[i-1-k]=m%10;

      m/=10;

      }

      m=n;

      for(k=0;k

      {

      s2[j-1-k]=m%2;

      m/=2;

      }

      int num10=0;

      for(k=0;k

      {

      if(s10[i-1-k]==s10[k])num10++;

      else break;

      }

      int num2=0;

      for(k=0;k

      {

      if(s2[j-1-k]==s2[k])num2++;

      else break;

      }

      if(num10==(i/2)&&num2==(j/2))y=1;

      } void Palindrome::show(){

      int i=0,j=0;

      int m;

      m=n;

      while(m)

      {

      m/=10;

      i++;

      }

      m=n;

      while(m)

      {

      m/=2;

      j++;

      }

      int*s10=new int[i+1];

      int*s2=new int[j+1];

      m=n;

      for(int k=0;k

      {

      s10[i-1-k]=m%10;

      m/=10;

      }

      m=n;

      for(k=0;k

      {

      s2[j-1-k]=m%2;

      m/=2;

      }

      if(y)

      {

      cout<<“該數(shù)為絕對(duì)回文數(shù)?。骸?

      cout<<“十進(jìn)制表示為:”;

      for(k=0;k

      cout<

      cout<<“二進(jìn)制表示為:”;

      for(k=0;k

      cout<

      }

      else

      {

      cout<<“該數(shù)不是絕對(duì)回文數(shù)?。骸?

      cout<<“十進(jìn)制表示為:”;

      for(k=0;k

      cout<

      cout<<“二進(jìn)制表示為:”;

      for(k=0;k

      cout<

      }

      cout<

      int a;

      cout<<“請(qǐng)輸入一個(gè)數(shù)字:”;

      cin>>a;

      Palindrome p(a);

      p.huiwen();

      p.show();}

      任務(wù)六

      一、實(shí)踐任務(wù) 6.定義一個(gè)字符串類 String,實(shí)現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是

      指該字符串左右對(duì)稱。例如字符串“123321”是回文字符串。

      二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? char *str;

      ? int y:標(biāo)記是否為回文字符串。

      (2)公有成員函數(shù) ? String(char *s):構(gòu)造函數(shù),用給定的參數(shù) s 初始化數(shù)據(jù)成員 str。y 初始化為 0。

      ? void huiwen():判斷 str 所指向的字符串是否為回文字符串。

      ? void show():在屏幕上顯示字符串。

      2、主要函數(shù)設(shè)計(jì) 在主程序中定義字符串 char s[]=”ababcedbaba”作為原始字符串。定義一個(gè) String 類對(duì)象 test,用 s 初始化 test,完成對(duì)該類的測(cè)試。

      三、源程序清單 #include #include class String{ private:

      char*str;

      int y;public:

      String(char*s)

      {

      int n=strlen(s);

      str=new char[n+1];

      strcpy(str,s);

      y=0;

      }

      void huiwen();

      void show();

      ~String()

      { if(str)delete []str;} };void String::huiwen(){

      int n,judge=0;

      n=strlen(str);

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

      {

      if(str[i]==str[n-1-i])judge++;

      }

      if(judge==i)y=1;} void String::show()//輸出; {

      if(y==1)cout<<“y=1,?該字符串是回文數(shù)”<

      else cout<<“y=0,該字符串不是回文數(shù)”<

      char s[]=“ababcedbaba”;

      String test(s);

      test.huiwen();

      test.show();}

      任務(wù)七

      一、實(shí)踐任務(wù) 7.建立一個(gè)類 PHALANX,生成并顯示一個(gè)折疊方陣。折疊方陣如下圖所示。折疊方陣的生成過程為:起始數(shù)置于方陣的左上角,然后從起始數(shù)開始遞增,依次折疊構(gòu)成方陣。

      二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 1

      … 1 1

      4

      9

      16

      ? int(*p)[20]:指向按照折疊規(guī)律存放方陣的二維整型數(shù)組。

      ? int startnum:折疊方陣的起始數(shù)。

      ? int n:存放方針的層數(shù)。

      (2)公有成員函數(shù) ? PHALANX(int s, int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。

      ? void process():生成起始數(shù)為 startnum 的 n 行方陣。

      ? void print():輸出折疊方陣。

      ? ~ PHALANX():析構(gòu)函數(shù)。

      2、主要函數(shù)設(shè)計(jì) 在主程序中對(duì)該類進(jìn)行測(cè)試。

      三、源程序清單 #include class phalanx {

      int(*p)[20];

      int startnum;

      int n;

      public:

      phalanx(int s[20][20],int m)

      {

      startnum=1;

      p=s;

      n=m;

      }

      void process()

      {

      p[0][0]=startnum;

      for(int i=0;i

      for(int j=0;j

      {if(i>j){p[i][j]=1+i*i+i+i-j;}

      else{p[i][j]=1+j*j+i;}}

      }

      void print()

      {

      for(int i=0;i

      {

      for(int j=0;jcout<<“n”;

      }

      }

      ~ phalanx(){ }

      };

      void main()

      {

      int m;

      int s[20][20];

      cout<<“請(qǐng)輸入折疊層數(shù):”;

      cin>>m;

      cout<<“n”;

      phalanx pp(s,m);

      pp.process();

      pp.print();

      }

      第二篇:C++實(shí)踐報(bào)告

      中南大學(xué)

      本科生課程設(shè)計(jì)(實(shí)踐)任務(wù)書、設(shè)計(jì)報(bào)告

      (C++程序設(shè)計(jì))

      題 目 學(xué)生姓名 指導(dǎo)教師

      C++程序設(shè)計(jì)實(shí)踐

      * *

      孫 岱

      學(xué) 院 地球科學(xué)與信息物理學(xué)院 專業(yè)班級(jí) 信息物理工程類1106班 學(xué)生學(xué)號(hào)

      01451106**

      計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)中心

      2012年 7 月 日

      C++程序設(shè)計(jì)實(shí)踐報(bào)告書

      C++是一種使用非常廣泛的電腦程式設(shè)計(jì)語言,在當(dāng)今網(wǎng)絡(luò)如此發(fā)達(dá)的時(shí)代能夠運(yùn)用C++語言進(jìn)行編程顯得尤為重要。它是一種靜態(tài)資料類型檢查的,支援多范型的通用程式設(shè)計(jì)語言。C++支援程序化程式設(shè)計(jì)、資料抽象化、面向?qū)ο蟪淌皆O(shè)計(jì)、泛型程式設(shè)計(jì)、基于原則設(shè)計(jì)等多種程式設(shè)計(jì)風(fēng)格。在系統(tǒng)學(xué)習(xí)完《C++程序設(shè)計(jì)基礎(chǔ)》課程后,我們?cè)诶蠋煹闹笇?dǎo)下進(jìn)行了這次C++程序設(shè)計(jì)實(shí)踐,主要以visual C++6.0為編譯環(huán)境,重點(diǎn)使用了visual C++ MFC編程實(shí)現(xiàn)實(shí)踐所要求的功能。

      【任務(wù)描述】

      這次實(shí)踐采用了上機(jī)實(shí)踐與老師集體輔導(dǎo)結(jié)合的方式,以完成輔導(dǎo)老師下發(fā)的《C++語言課程設(shè)計(jì)任務(wù)書》中指定任務(wù)與要求為目的,要求我們?cè)谝褜W(xué)過的《C++程序設(shè)計(jì)基礎(chǔ)》所掌握的一些C++語言的結(jié)構(gòu)和函數(shù)的基礎(chǔ)上,以全新的角度去感知和運(yùn)用C++語言進(jìn)行一些具有相關(guān)目的和功能的程序設(shè)計(jì)和編譯。在這次實(shí)踐中,我們統(tǒng)一以visual C++ 6.0為編譯系統(tǒng),使用visual C++ MFC編程來達(dá)到和完成輔導(dǎo)老師給的《C++語言課程設(shè)計(jì)任務(wù)書》中給出的題目,其中部分題目以基本對(duì)話框?yàn)閼?yīng)用程序的框架,另一部分則設(shè)計(jì)為單文檔界面(SDI)應(yīng)用程序。這些程序都具有不同的設(shè)計(jì)目的和應(yīng)用功能,運(yùn)用了常用的基本控件,如靜態(tài)文本框、命令按鈕、編輯框、復(fù)選框、列表框、組合框、滾動(dòng)條等。

      本次實(shí)踐可分為三部分:

      一、基于對(duì)話框的Windows應(yīng)用程序:

      這部分以知識(shí)要點(diǎn)掌握與編程實(shí)例主輔結(jié)合的方式,讓我們基本掌握了基于對(duì)話框的應(yīng)用程序的創(chuàng)建過程,建立基于對(duì)話框的 MFC 應(yīng)用程序框架,放置控件并設(shè)置控件屬性,以及為控件連接變量(即為控件命名),添加并且編寫消息處理函數(shù)。在這部分實(shí)踐中,我按照任務(wù)書中要求按照任務(wù)書所給的實(shí)例,基本掌握了基于對(duì)話框的 MFC 應(yīng)用程序中各常用的基本控件的使用。在完成對(duì)MFC編程的初步了解后,我們按《C++語言課程設(shè)計(jì)任務(wù)書》所給出的題目和要求完成了相關(guān)基于對(duì)話框的 MFC 應(yīng)用程序的編譯。實(shí)踐完成了以下任務(wù)和要求:

      1.編寫一個(gè)如圖所示的應(yīng)用程序。若單擊“復(fù)制”按鈕,則把上面的編輯框中的內(nèi)容復(fù)制到下面的編輯框中;若單擊“結(jié)束”按鈕,則退出程序的運(yùn)行。

      2.輸入一元二次方程 ax2 +bx+c=0 的系數(shù) a、b、c,計(jì)算并輸出兩個(gè)根 x1、x2。

      3.編寫一個(gè)能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作的應(yīng)用程序。

      4.設(shè)計(jì)如圖所示的對(duì)話框。若選定了“日期”或“時(shí)間”復(fù)選框,則在對(duì)應(yīng)的只讀編輯框中顯示系統(tǒng)當(dāng)前日期或時(shí)間。

      5.設(shè)計(jì)如圖所示的對(duì)話框。單擊“確定”按鈕后,在列表框中顯示選擇的信息。

      二、文檔/視圖結(jié)構(gòu)應(yīng)用程序:

      文檔/視圖結(jié)構(gòu)的思想是將數(shù)據(jù)的管理與顯示分離,其中文檔用于管理應(yīng)用程序的數(shù)據(jù),而視圖是用戶界面,用于顯示、打印文檔中的數(shù)據(jù),并管理與用戶的交互。在這部分實(shí)踐過程中,通過對(duì)任務(wù)書中介紹的幾種SDI結(jié)構(gòu)的典型應(yīng)用程序來了解其結(jié)構(gòu)及設(shè)計(jì)方法,學(xué)習(xí)和實(shí)踐了典型應(yīng)用包括:?利用畫筆、畫刷等工具及位圖處理的方法實(shí)現(xiàn)文字和圖形的輸出。?利用定時(shí)器控件制作動(dòng)畫程序。?對(duì)鼠標(biāo)和鍵盤進(jìn)行編程的基本方法。?文件、字體、顏色等幾種通用對(duì)話框的使用方法及自定義對(duì)話框的設(shè)計(jì)、調(diào)用方法。?菜單的設(shè)計(jì)方法。

      通過課程實(shí)踐,以及與同學(xué)之間的討論,我們完成了這一階段的任務(wù)要求:

      6.編寫一個(gè)程序,繪制如圖所示的-2π~2π 之間的 sin 曲線。

      7.設(shè)計(jì)一個(gè)如圖所示的畫圖程序。要求按下鼠標(biāo)右鍵畫圓,按住鼠標(biāo)左鍵移動(dòng)畫線。(圖略)

      8.用定時(shí)器控制蝴蝶在窗口中飛舞,如圖所示。(圖略)

      9.設(shè)計(jì)一個(gè)如圖所示的應(yīng)用程序。若用戶單擊左鍵,則彈出輸入成績(jī)對(duì)話框,選擇 OK 后平均成績(jī)和總分在窗口的客戶區(qū)輸出。(圖略)

      10.設(shè)計(jì)如圖所示的菜單,并編寫相應(yīng)用的消息處理函數(shù)。(圖略)

      三、完成綜合題的程序設(shè)計(jì):

      將實(shí)踐過程中選擇3~5題(或類似的題),做成一個(gè)綜合程序,要求通過菜單調(diào)用各部分功能。可自行組織和發(fā)揮,使其安排合適。

      【系統(tǒng)設(shè)計(jì)思想】

      首先建立一個(gè)單文檔結(jié)構(gòu)的應(yīng)用程序作為綜合程序的主程序,通過對(duì)菜單的設(shè)計(jì)完成與所需調(diào)用的各個(gè)對(duì)話框功能相適應(yīng)的編輯。利用對(duì)話框類資源創(chuàng)建自己的對(duì)話框,然后建立成與實(shí)踐中3~5題相對(duì)應(yīng)的對(duì)話框,并分別按要求進(jìn)行相關(guān)功能的實(shí)現(xiàn)。然后建立對(duì)話框類CMyDlg,在調(diào)用的地方建立對(duì)話框類對(duì)象CMyDlg dlg;然后dlg.DoModal();從而實(shí)現(xiàn)主程序?qū)Ω鱾€(gè)對(duì)話框的調(diào)用。在主程序的單文檔界面的菜單中,可以對(duì)所需功能進(jìn)行選擇,然后調(diào)用出不同的對(duì)話框?qū)崿F(xiàn)所系的功能,達(dá)到設(shè)計(jì)程序通過菜單調(diào)用各部分功能的目的。

      【系統(tǒng)功能】

      設(shè)計(jì)的綜合程序以一個(gè)文檔類的程序界面為依托,實(shí)現(xiàn)其余各個(gè)部分功能的調(diào)用。對(duì)書目管理、時(shí)間顯示以及教師綜合信息管理者三部分進(jìn)行了整合,達(dá)到了對(duì)各個(gè)部分功能之間的調(diào)用。在主界面中,我們可以對(duì)所需功能進(jìn)行選擇,從而到達(dá)不同的對(duì)話框界面進(jìn)行不同功能的交互。?當(dāng)我們?cè)诓藛沃羞x擇“書目管理”時(shí),程序自動(dòng)彈出書目管理對(duì)話框,然后我們能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作等。?而我們?nèi)绻谥鹘缑娴牟藛沃羞x擇“時(shí)間顯示”,則系統(tǒng)會(huì)跳至另一個(gè)對(duì)話框界面,這個(gè)界面可以對(duì)當(dāng)前的時(shí)間進(jìn)行顯示,在對(duì)話框中若選擇了“日期”或者“時(shí)間”復(fù)選框,則在對(duì)應(yīng)的只讀編輯框中顯示系統(tǒng)當(dāng)前的日期或時(shí)間,從而實(shí)現(xiàn)了對(duì)系統(tǒng)當(dāng)前時(shí)間信息的捕獲。?如果我們?cè)谧畛醯闹鹘缑娌藛芜x擇了“教師綜合信息管理”,則在彈出的對(duì)話框中我們可以實(shí)現(xiàn)對(duì)教師姓名、性別、愛好、工齡以及職稱進(jìn)行選擇。

      【設(shè)計(jì)過程】

      首先打開VC++ 6.0編譯系統(tǒng),因?yàn)槲以O(shè)計(jì)的綜合程序以一個(gè)文檔類的程序界面為依托,實(shí)現(xiàn)其余各個(gè)部分功能的調(diào)用。對(duì)書目管理、時(shí)間顯示以及教師綜合信息管理者三部分進(jìn)行了整合,從而達(dá)到了對(duì)各個(gè)部分功能之間的調(diào)用。所以創(chuàng)建過程如下:

      ?按照任務(wù)書要求設(shè)定工程名為“xw1106_0145110626“,利用 AppWizard 創(chuàng)建一個(gè) SDI 應(yīng)用程序框架。

      ?在工作區(qū)中選定“ ResourceView ”,展開 Menu,雙擊其中的 IDR_MAINFRAME,可以看到由 AppWizard 生成的標(biāo)準(zhǔn)菜單。首先刪除原有菜單項(xiàng),然后添加自己所需要的菜單,添加方式為:雙擊空白菜單框,彈出“ Menu Item Properties ”,輸入菜單項(xiàng)的標(biāo)題(名稱)。若菜單項(xiàng)有一個(gè)子菜單(單擊會(huì)彈出了一子菜單),則選定“彈出”,否則不要選定“彈出”;要輸入一條分割線,則選定“分隔符”。我將菜單欄設(shè)定為三項(xiàng),分別為“菜單”、“小工具”以及“QQ”,其中菜單包含三個(gè)子選項(xiàng)分別為“方程求解/時(shí)間顯示/書目管理”,小工具包含“復(fù)制/字符游戲”,而“QQ”則是通過進(jìn)程方式實(shí)現(xiàn)對(duì)外部軟件QQ的調(diào)用。

      ?利用“CDialog dlg;dlg.DoModal();”來實(shí)現(xiàn)各個(gè)子菜單項(xiàng)所對(duì)應(yīng)的對(duì)話框的調(diào)用,而QQ的調(diào)用是個(gè)人加進(jìn)去的(不是任務(wù)要求),利用了進(jìn)程方式調(diào)用外部exe程序:STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si,sizeof(si));si.cb = sizeof(si);ZeroMemory(&pi,sizeof(pi));if(!CreateProcess(NULL, ”G:Program FilesTencentQQBinQQ.exe “,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi)){ MessageBox(”出錯(cuò) “, ”提示 ",MB_OK|MB_ICONINFORMATION);} WaitForSingleObject(pi.hProcess,INFINITE);CloseHandle(pi.hProcess);CloseHandle(pi.hThread);【運(yùn)行情況】

      編譯鏈接后程序運(yùn)行正常,能實(shí)現(xiàn)通過菜單項(xiàng)調(diào)出相應(yīng)的對(duì)話框的目的,以一個(gè)文檔類的程序界面為依托,實(shí)現(xiàn)其余各個(gè)部分功能的調(diào)用。對(duì)書目管理、時(shí)間顯示以及教師綜合信息管理者三部分進(jìn)行了整合,達(dá)到了對(duì)各個(gè)部分功能之間的調(diào)用。其中點(diǎn)擊QQ也能很快的彈出QQ登陸界面。在主程序的單文檔界面的菜單中,可以對(duì)所需功能進(jìn)行選擇,然后調(diào)用出不同的對(duì)話框?qū)崿F(xiàn)所系的功能,達(dá)到設(shè)計(jì)程序通過菜單調(diào)用各部分功能的目的。

      【心得體會(huì)】

      在為期不到兩周的課程設(shè)計(jì)中,我體會(huì)頗多,學(xué)到很多東西。我懂得了如何用 MFC編寫可視化界面的應(yīng)用程序,我加強(qiáng)了對(duì)C++的認(rèn)識(shí),復(fù)習(xí)了自己以前的知識(shí),自己的邏輯思考能力也提高不少。從而對(duì)Microsoft Visual C++ 6.0又有了更深入的認(rèn)識(shí)!在這次課程設(shè)計(jì)中,我還懂得了程序開發(fā)的一些比較重要的步驟,總之,通過這次課程設(shè)計(jì),我收獲頗豐,相信會(huì)為自己以后的學(xué)習(xí)和工作帶來很大的好處。最重要的還是激發(fā)了我編程的興趣和熱情,讓我從理論變成了能做一些小型程序,讓我對(duì)編程更加熱愛了。整體地評(píng)價(jià)這次課程設(shè)計(jì),我認(rèn)為收獲很大,正如上面所說的那樣,通過課程設(shè)計(jì),既復(fù)習(xí)了以前的舊知識(shí),又學(xué)到了一些新的知識(shí);設(shè)計(jì)增強(qiáng)了我們用所學(xué)知識(shí)去解決具體問題的能力,進(jìn)一步培養(yǎng)了我們獨(dú)立思考問題和解決問題的能力。特別是學(xué)會(huì)了在Visual C++ 集成開發(fā)環(huán)境中如何調(diào)試程序的方法。當(dāng)然,老師的悉心指導(dǎo)和同學(xué)的幫助也是不可忽視的,在此感謝本次課程設(shè)計(jì)中所有輔導(dǎo)老師對(duì)我的關(guān)心和幫助,誠(chéng)心誠(chéng)意感謝老師對(duì)我的鼓勵(lì)與教導(dǎo),是老師在我迷茫的時(shí)候給了我些許提示,激發(fā)了我編程的靈感;還有,我在此也十分感謝本次課程設(shè)計(jì)中同學(xué)們對(duì)我的幫助,盡管本次不是團(tuán)隊(duì)合作,但是他們也給了我不少的提示和幫助,我們相互溝通、共同進(jìn)步。

      【參考文獻(xiàn)】

      [1] 楊長(zhǎng)興、劉衛(wèi)國(guó).《C++程序設(shè)計(jì)》.中國(guó)鐵道出版社

      [2] 劉衛(wèi)國(guó)、楊長(zhǎng)興.《C++程序設(shè)計(jì)實(shí)踐教程》.中國(guó)鐵道出版社

      第三篇:c++課程實(shí)踐火車票管理系統(tǒng)

      #include #include #include #include #include

      using namespace std;

      class Bus_infor { int No;

      static int Bus_No;char start[20];char end[20];int Bus_order;

      int all_tickted;int tickted;int Hour_start,Minute_start,Hour_end,Minute_end;int Hour;int Minute;

      public: Bus_infor *next;Bus_infor();~Bus_infor();int Get_no();int Get_all_tickted();int Get_tickted();int Get_bus_order();

      char *Get_start();char *Get_end();void addr();

      void Order_tickt(int n);void Unorder_tickt(int n);void GetTime_start();void GetTime_end();void ShowTime();void GetTime();void Show_infor();

      void input(){

      cout<<“ttt按提示輸入:”<

      cout<<“tt輸入車次: ”;

      cin>>Bus_order;

      cout<<“請(qǐng)輸入車的額定載量: ”;

      cin>>all_tickted;

      GetTime_start();

      GetTime_end();

      addr();

      char a;

      cout<<“是否清空售票(y/n)?”<

      cin>>a;

      if(a=='y')tickted=0;}

      void input(ifstream & is)

      {

      is>>Bus_order>>start>>end>>all_tickted>>tickted>>Hour_start>>Minute_start>>Hour_end>>Minute_end;

      is.get();

      }

      void output(){cout<<“客車基本信息如下:”<

      <<“ 發(fā)車時(shí)間:”<

      <<“ 起點(diǎn)站:”<

      <<“ 終點(diǎn)站:”<

      <<“行車時(shí)間”<

      <<“額定載量”<

      void output(ofstream & os)

      {

      os<

      <

      <

      <

      <

      <

      <

      <

      <

      <

      };

      int Bus_infor::Bus_No=1;

      void Bus_infor::GetTime_start(){ int NewH=0,NewM=0;cout<<“請(qǐng)輸入發(fā)車時(shí)間:”<>NewH>>NewM;Hour_start=NewH;Minute_start=NewM;}

      void Bus_infor::GetTime_end(){ int NewH=0,NewM=0;cout<<“請(qǐng)輸入行車時(shí)間:”<>NewH>>NewM;Hour_end=NewH;Minute_end=NewM;}

      void Bus_infor::GetTime(){ if(Minute_end>=Minute_start){Minute=(Minute_end-Minute_start);Hour=(Hour_end-Hour_start);}

      else {Minute=(Minute_end-Minute_start+60);Hour=(Hour_end-Hour_start-1);} } void Bus_infor::ShowTime(){ cout<

      cout<

      tickted=0;} Bus_infor::~Bus_infor(){ Bus_No--;}

      void Bus_infor::addr(){ cout<<“請(qǐng)輸入起點(diǎn)站與終點(diǎn)站:”<

      cin>>a;cin>>b;strcpy(start,a);strcpy(end,b);}

      char *Bus_infor::Get_start(){ return start;}

      char *Bus_infor::Get_end(){ return end;}

      int Bus_infor::Get_no(){

      return No;}

      int Bus_infor::Get_all_tickted(){ return all_tickted;}

      int Bus_infor::Get_tickted(){ return tickted;}

      int Bus_infor::Get_bus_order(){ return Bus_order;}

      void Bus_infor::Order_tickt(int n){ tickted=tickted+n;}

      void Bus_infor::Unorder_tickt(int n){ tickted=tickted-n;};

      class Bus_link{ public: Bus_link(){head=new Bus_infor;head->next=NULL;key=0;}

      void input();void mend();void del();int find(Bus_infor **p,int num,char *pn);

      int find1(Bus_infor **p,int num,char *pn);

      void found();void show();

      void Order();

      void Unorder();

      void save();

      void begin();

      void clear();

      char mainmenu();

      int getkey(){ return key;}

      void setkey(int k){ key=k;} private:

      Bus_infor *head;

      int key;};

      void Bus_link::input(){ Bus_infor *p,*p2=NULL;p=head;

      int n;while(p->next)

      p=p->next;while(n){

      p2=new Bus_infor;

      p2->input();

      p->next=p2;

      p2->next=NULL;

      p=p->next;

      Bus_link::setkey(1);

      cout<<“ttt按1繼續(xù),按0返回 : ”;

      cin>>n;} }

      void Bus_link::Order(){ Bus_infor *p;cout<<“確定購(gòu)票(y/n)?”<>X;if(X=='y'){

      int num;

      cout<<“ttt輸入車次號(hào): ”;

      cin>>num;

      if(!find1(&p,num,“^”))

      {

      cout<<“tt找不到你要定票的車輛的內(nèi)容!”<

      return;

      }

      cout<<“輸入要定的票數(shù) ”;

      int n;cin>>n;

      p=p->next;

      if((p->Get_tickted()+n)<=p->Get_all_tickted())

      {p->Order_tickt(n);

      cout<<“謝謝使用”<

      else cout<<“對(duì)不起,沒有足夠的票數(shù)?!?

      } else if(X=='n')cout<<“謝謝使用”<

      void Bus_link::Unorder(){ Bus_infor *p;cout<<“確定退票(y/n)?”<>X;if(X=='y'){

      int num;

      cout<<“ttt輸入車次號(hào): ”;

      cin>>num;

      if(!find1(&p,num,“^”))

      {

      cout<<“tt找不到你要定票的車輛的內(nèi)容!”<

      return;

      }

      cout<<“輸入要退的票數(shù) ”;

      int n;cin>>n;

      p=p->next;

      if((p->Get_tickted()-n)>=0)

      p->Unorder_tickt(n);

      else cout<<“對(duì)不起,數(shù)據(jù)出錯(cuò)!?!?

      } else if(X=='n')cout<<“謝謝使用”<

      void Bus_link::found(){ Bus_infor *p;int num=-1,n=9;char name[20]=“^”;do {

      cout<<“tt1:按車次查找,2:按終點(diǎn)站查找: ”;

      cin>>n;}while(n<1||n>2);if(n==1){

      cout<<“ttt輸入車次: ”;

      cin>>num;} if(n==2){

      cout<<“ttt輸入終點(diǎn)站: ”;

      cin>>name;} if(!find(&p,num,name)){

      cout<<“tt找不到你要查找的內(nèi)容!”<

      return;} }

      int Bus_link::find(Bus_infor **p1,int num,char *pn){ Bus_infor *p;

      p=head;

      int t=0;

      while(p->next){

      (*p1)=p;

      if((p->next)->Get_bus_order()==num||!strcmp((p->next)->Get_end(),pn))

      {

      (p->next)->output();

      t=1;

      break;

      }

      p=p->next;} return t;}

      int Bus_link::find1(Bus_infor **p1,int num,char *pn){ Bus_infor *p;p=head;int t=0;while(p->next){

      (*p1)=p;

      if((p->next)->Get_bus_order()==num||!strcmp((p->next)->Get_end(),pn))

      {return 1;}

      p=p->next;}

      return 0;} void Bus_link::del(){ Bus_infor *p,*p2;int num;cout<<“ttt輸入車次號(hào): ”;cin>>num;

      if(!find(&p,num,“^”)){

      cout<<“tt找不到你要?jiǎng)h除的內(nèi)容!”<

      return;} p2=p->next;p->next=p2->next;delete p2;Bus_link::setkey(1);}

      void Bus_link::show(){ Bus_infor *p;p=head;while(p->next){

      (p->next)->output();

      p=p->next;} } void Bus_link::mend(){ Bus_infor *p;int num=-1;char name[20]=“^”;

      cout<<“ttt輸入車次號(hào): ”;cin>>num;

      if(!find1(&p,num,name)){

      cout<<“tt找不到你要修改的內(nèi)容!”<

      return;}(p->next)->output();(p->next)->input();Bus_link::setkey(1);} void Bus_link::save(){ Bus_infor *p;p=head;ofstream os(“bus.txt”,ios::out);if(Bus_link::getkey()==1){

      while(p->next)

      {

      (p->next)->output(os);

      p=p->next;

      } } cout<<“ttt文件已保存!”<

      Bus_infor *p,*p2;p=head;clear();long t;ifstream is(“bus.txt”,ios::in);

      if(!is){

      ofstream os(“bus.txt”,ios::out);

      os.close();

      return;} int num=-1;while(1){

      num=-1;

      t=is.tellg();

      is>>num;

      is.seekg(t);

      if(num<0)

      {

      is.close();

      return;

      }

      p2=new Bus_infor;

      p2->input(is);

      p->next=p2;

      p2->next=NULL;

      p=p->next;} }

      void Bus_link::clear(){ Bus_infor *p,*p2;p=head->next;while(p){

      p2=p;

      p=p->next;

      delete p2;} }

      char Bus_link::mainmenu(){ char n[6];cout<<“nn

      ---歡迎使用車票管理系統(tǒng)---”<

      制作人 劉強(qiáng)

      ”<

      <<“

      物理學(xué)院

      ”<

      <<“

      ”<

      <<“

      1.錄入車票信息

      2.瀏覽車票信息

      <<”

      3.查詢車票信息

      4.刪除車票信息

      <<“

      5.修改車票信息

      6.定購(gòu)車票信息

      <<”

      7.退還車票信息

      8.保存車票信息

      <<“

      0:

      退出系統(tǒng)

      <<”--------------------------“<

      <<”--------------------------“<

      <<”

      請(qǐng)選擇功能按鈕: “;cin>>n;return n[0];}

      int main(){

      Bus_link pp;int k=1;char n;pp.begin();

      while(k==1){

      n=pp.mainmenu();

      switch(n)

      {

      case '1':pp.input();break;

      case '2':pp.show();break;

      case '3':pp.found();break;

      ”<

      case '4':pp.del();break;

      case '5':pp.mend();break;

      case '6':pp.Order();break;

      case '7':pp.Unorder();break;

      case '8':pp.save();break;

      case '0':

      if(pp.getkey()==1)

      {

      cout<<“ttt是否保存? 1 : 保存 0:不保存 : ”;

      cin>>k;

      if(k==1)

      pp.save();

      }

      pp.clear();

      k=0;

      break;

      } } return 0;}

      第四篇:c++課程心得體會(huì)

      心得體會(huì)

      在這幾周的面向?qū)ο蟮恼n程設(shè)計(jì)中,通過完成本次任務(wù),我所收獲到的東西頗豐。

      利用設(shè)計(jì)這次學(xué)生信息管理的機(jī)會(huì),使我熟練地掌握了上學(xué)期所學(xué)的C++面向?qū)ο蟪绦蚓幊?,也更加深入理解了學(xué)生信息管理的操作原理和了解了文件的用法及其作用,為日后如何熟練使用文件打下堅(jiān)實(shí)的基礎(chǔ)。此外,本次算法的實(shí)現(xiàn)采用了C和C++語言面向?qū)ο缶幊蹋刮覍?duì)基類的構(gòu)建,派生類的使用等等各類c的知識(shí),有更深層次的認(rèn)識(shí)。

      在這次課程設(shè)計(jì)中,我還懂得了程序開發(fā)的一些比較重要的步驟,如總體分析,程序模塊設(shè)計(jì)等。相信通過此次課程設(shè)計(jì)會(huì)為我以后的學(xué)習(xí)和工作帶來很大的好處。最重要的還是激發(fā)我對(duì)編程的興趣和熱情,讓我從一個(gè)只懂理論變成了做一些小程序,讓我們對(duì)編程更加熱愛。

      最重要的是,在這次的編程中我們不斷地從源程序中尋找錯(cuò)誤,修改錯(cuò)誤,通過不斷地更新程序提升對(duì)編程的理解。雖然現(xiàn)有的編程還不完美,但是執(zhí)著認(rèn)識(shí)到了追求完美的信念,相信在下一次的面向?qū)γ婢幊痰倪^程中能將程序推向所能的極致。

      通過在這次編程中和隊(duì)友的攜手合作,為以后的合作打下不錯(cuò)的默契,培養(yǎng)相互的信心,提高集體的凝聚力。總而言之,這次的課程設(shè)計(jì)是比較成功的。程序設(shè)計(jì)最重要的是要敢于創(chuàng)新,而不應(yīng)該止步于舊知識(shí)的應(yīng)用,唯有不安于現(xiàn)狀,才能有更大的發(fā)展空間。

      第五篇:中南大學(xué)(C++實(shí)踐報(bào)告)

      中南大學(xué)

      本科生課程設(shè)計(jì)(實(shí)踐)設(shè)計(jì)報(bào)告(程序設(shè)計(jì)基礎(chǔ))題目

      MFC課程設(shè)計(jì)

      學(xué)生學(xué)號(hào)

      學(xué)生姓名

      指導(dǎo)教師

      學(xué)院

      專業(yè)班級(jí)

      計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)中心 2015年

      06月 14

      一、引言

      MFC(Microsoft Foundation Class Library, 微軟基礎(chǔ)類庫)是微軟基Windows平臺(tái)下的C++類庫集合。MFC包含了所有與系統(tǒng)相關(guān)的類,其中封裝了大多數(shù)的API(Application Program Interface)函數(shù),提供了應(yīng)用程序框架和開發(fā)應(yīng)用程序的工具,如應(yīng)用程序向?qū)?、類向?qū)?、可視化資源設(shè)計(jì)等高效工具,用消息映射處理消息響應(yīng),大大簡(jiǎn)化了Windows應(yīng)用程序的開發(fā)工作,使程序員可以從繁重的編程工作中解脫出來,提高了工作效率。

      程序設(shè)計(jì)實(shí)踐旨在課堂學(xué)習(xí)的基礎(chǔ)上幫助學(xué)生掌握C++應(yīng)用系統(tǒng)的開發(fā)方法和技巧。在系統(tǒng)學(xué)習(xí)完《C++程序設(shè)計(jì)》這門課程后,通過實(shí)踐對(duì)幾個(gè)小型C++應(yīng)用程序?qū)嵗O(shè)計(jì)與實(shí)現(xiàn)過程分析,幫助學(xué)生利用C++開發(fā)應(yīng)用系統(tǒng)的一般方法和步驟,掌握MFC的基本知識(shí)。

      這次實(shí)踐采用學(xué)生上機(jī)與老師集體輔導(dǎo)的方式,以完成老師下發(fā)的《C++語言課程設(shè)計(jì)任務(wù)書》為要求和目的,運(yùn)用課堂上學(xué)習(xí)的C++基礎(chǔ)知識(shí),采用Visual C++ MFC編程系統(tǒng),以全新的角度和感知去認(rèn)識(shí)C++語言在編程方面的優(yōu)越性。在實(shí)踐過程中,基于對(duì)話框的MFC應(yīng)用程序,達(dá)到了解基本控件,如靜態(tài)文本框、命令按鈕、編輯框、列表框、組合框等的使用的目的。還有理解Windows應(yīng)用程序采用“消息傳遞、事件驅(qū)動(dòng)”的運(yùn)行機(jī)制。本次實(shí)踐的任務(wù)主要分為兩個(gè)部分: 使用Visual C++ MFC編程實(shí)現(xiàn)以下功能:

      輸入一元二次方程ax2+bx+c=0 的系數(shù)a、b、c,計(jì)算并輸出兩個(gè)根x1、x2.編寫一個(gè)能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作的應(yīng)用程序。編寫一個(gè)程序,繪制-2π~2π之間的sin曲線。用定時(shí)器控制蝴蝶在窗口中飛舞。等共10道。

      將第一部分中選擇3~5題,做一個(gè)綜合程序,要求有登陸界面和調(diào)用各部分的功能??傮w設(shè)計(jì)

      本次實(shí)踐的主要目的就是了解和掌握運(yùn)用MFC編程的一般思想和具體的操作步驟。實(shí)踐主要是基于MFC的多文檔對(duì)話框和單文檔視圖,通過實(shí)踐完成第一大部分的任務(wù)之后,還要完成第二部分的綜合題目。第二部分的任務(wù)由學(xué)生自主發(fā)揮,自主找資料,詢問同學(xué)和老師。第一部分的任務(wù)比較簡(jiǎn)單,具體的就不再描述。關(guān)于第二部分,我做了一個(gè)基于對(duì)文檔對(duì)話框。首頁為一個(gè)登陸頁面,需要輸入用戶名和密碼才能登陸,登陸后的頁面是把第一大部分的幾個(gè)題目連接起來。達(dá)到預(yù)覽的目的。

      三、詳細(xì)設(shè)計(jì)

      實(shí)踐前首先要認(rèn)識(shí)AppWizard的工作環(huán)境。其項(xiàng)目工作區(qū)一共有三個(gè)選項(xiàng)卡分別為“ResourceView”“ClassView”“FileView”,中間是對(duì)話框設(shè)計(jì)界面,右邊是控件工具欄。實(shí)踐過程中,我們是先完成第一大部分的任務(wù)。雖然在第一次上機(jī)實(shí)踐前,我仔細(xì)地閱讀了老師給我們下發(fā)的資料,并且結(jié)合《C++程序設(shè)計(jì)實(shí)踐教程》了解相關(guān)知識(shí),但是在實(shí)踐時(shí)結(jié)果不理想。主要是對(duì)創(chuàng)建對(duì)話框程序的步驟沒有掌握。在經(jīng)過幾次嘗試失敗后,總結(jié)其一般步驟為:(1)建立基于對(duì)話框的MFC應(yīng)用程序框架;(2)放置控件;(3)設(shè)置控件屬性;(4)為控件連接變量,即為控件命名;(5)添加并且編寫消息處理函數(shù)。

      基于對(duì)話框的MFC程序設(shè)計(jì),對(duì)各種控件的了解和使用顯得特別重要。這里就不一一詳細(xì)介紹它們的功能。控件控制欄一個(gè)有26個(gè)控件圖標(biāo),每一個(gè)圖標(biāo)都可以看做一個(gè)對(duì)象,消息便是通過函數(shù)對(duì)它們進(jìn)行操作。每一個(gè)控件都有兩個(gè)重要而且必不可少的基本屬性:ID和標(biāo)題。ID便是該控件的標(biāo)識(shí),某些函數(shù)需要通過ID對(duì)控件進(jìn)行操作。了解一定相關(guān)知識(shí)后,對(duì)課程實(shí)踐有了很大的幫助。其中“輸入一元二次方程ax2+bx+c=0 的系數(shù)a、b、c,計(jì)算并輸出兩個(gè)根x1、x2”這個(gè)題目比較復(fù)雜,而且與C++連續(xù)很緊密。其中的有這樣的語句m_x1=(-b+sqrt(b*b-4*a*c))/(2*a);m_x2=(-b-sqrt(b*b-4*a*c))/(2*a),這就是我們?cè)谡n堂上學(xué)習(xí)的C++基本語句,在實(shí)踐過程中考驗(yàn)學(xué)生的靈活運(yùn)用能力。完成這個(gè)題目的關(guān)鍵是把每個(gè)編輯框(控件)連接好變量和選的數(shù)據(jù)類型,接下來的就是編寫消息處理函數(shù)。這道題很全面地體現(xiàn)了MFC的“消息傳遞、事件驅(qū)動(dòng)”的思想,在操作步驟方面也在很多地方得到了實(shí)踐。

      MFC編程除了基于多文本對(duì)話框以外,還有很重要的一部分是基于單文檔界面的應(yīng)用程序,如Windows自帶的Notepad程序。在本次實(shí)踐的第一大部分的后5個(gè)小題就是基于單文檔的。那么首先要對(duì)其有一定的了解:文檔/視圖結(jié)構(gòu)的思想是將數(shù)據(jù)的管理與顯示分離,其中文檔用于管理應(yīng)用程序的數(shù)據(jù),而視圖是用戶界面,用于顯示、打印文檔中的數(shù)據(jù),并管理與用戶的交互。SDI具有文檔/視圖結(jié)構(gòu)的應(yīng)用程序框架,該框架包括應(yīng)用程序類、窗口框架類、文檔類和視圖類,編程的任務(wù)是在文檔類和視圖類中添加適當(dāng)?shù)拇a。其中文檔類中一個(gè)重要的成員函數(shù)是OnNewDocument(),用戶在此添加代碼完成對(duì)數(shù)據(jù)的初始化;而視圖類中最重要的成員函數(shù)是OnDraw(),通過在該函數(shù)中添加代碼實(shí)現(xiàn)窗口內(nèi)容的輸出。本次實(shí)踐是對(duì)單文檔的典型實(shí)例,包括: ? 利用畫筆、畫刷等工具及位圖處理的方法實(shí)現(xiàn)文字和圖形的輸出。? 利用定時(shí)器控件制作動(dòng)畫程序。? 對(duì)鼠標(biāo)和鍵盤進(jìn)行編程的基本方法。

      ? 文件、字體、顏色等幾種通用對(duì)話框的使用方法及自定義對(duì)話框的設(shè)計(jì)、調(diào)用方法。? 菜單的設(shè)計(jì)方法。

      雖然進(jìn)行充分的準(zhǔn)備,實(shí)踐中還是遇到了很多的困難和問題。在完成題目“用定時(shí)器控制蝴蝶在窗口中飛舞”時(shí),主要的問題就是在插入蝴蝶圖片的,嘗試了幾次都沒有編譯成功。最終再詢問同學(xué)后,才知道是要把GIF格式的圖片分割成一幀一幀,然后才能插入。最后用定時(shí)器控制,達(dá)到動(dòng)態(tài)的效果。在完成了第一大部分的任務(wù)后,第二部分的綜合題是一個(gè)不小的挑戰(zhàn)對(duì)我來說。要靠自己去網(wǎng)上或者圖書館查找資料。在經(jīng)過一番準(zhǔn)備后,最終決定做一個(gè)相對(duì)簡(jiǎn)單的基于多文檔對(duì)話框的登陸界面,把幾個(gè)原來的程序文件連接起來。但是在這個(gè)過程中,完全要靠自己一步一步去探索,當(dāng)然也遇到了各種各樣的困難和挑戰(zhàn)。關(guān)鍵是在連接各部分對(duì)話框,經(jīng)過不斷的實(shí)驗(yàn),不斷的調(diào)試程序,總結(jié)的操作步驟如下:(1)創(chuàng)建工程,MFC Application(exe),工程命名按要求命名;(2)工程建立后有如圖對(duì)話框,將途中的靜態(tài)文本框和按鈕都刪掉,留下空白,再使用靜態(tài)文本,編輯框,按鈕和靜態(tài)圖片重新排版,并進(jìn)行命名。注意靜態(tài)圖框應(yīng)該第一個(gè)布置,不然運(yùn)行時(shí)圖片會(huì)將其他控件覆蓋;(3)右擊密碼對(duì)應(yīng)的編輯框,選擇屬性,選樣式中的密碼;(4)在Dialog上右擊選擇插入DIG,重復(fù)插入4個(gè),依次作為菜單,題目1,題目2和題目3的對(duì)話框,并對(duì)其分別創(chuàng)建類,以菜單對(duì)話框?yàn)槔?,改一下表頭為“菜單”,在對(duì)話框空白處雙擊,點(diǎn)OK創(chuàng)建類,并對(duì)其命名(假如命名為MyMenu);(5)回到登錄界面的對(duì)話框,雙擊登錄控件,出現(xiàn)如圖按鈕,點(diǎn)擊OK,在頂端添加#include”MyMenu.h”,并OnButton1下添加以下代碼CString c_user,c_password;m_user.GetWindowText(c_user);m_password.GetWindowText(c_password);if(c_user.IsEmpty()||c_password.IsEmpty()){

      MessageBox(“用戶名或密碼不能為空”,“用戶登錄信息”);

      return;} if(c_user==“123”&&c_password==“123”){

      CMyMenu dlg;

      dlg.DoModal();//這兩段代碼是用于調(diào)用菜單對(duì)話框

      }

      else {

      MessageBox(“用戶名或密碼不正確”,“提示”,MB_ICONINFORMATION);

      return;對(duì)對(duì)話框添加背景圖片。在如下圖文件上右擊,選擇引入,然后導(dǎo)入已準(zhǔn)備好的bmp格式的圖片,然后選擇登錄界面的靜態(tài)圖框右擊,進(jìn)行如圖操作,這樣圖片就加入了,它會(huì)改掉按鈕和編輯框,這沒關(guān)系,運(yùn)行后會(huì)顯示出來的;(7)通過以上操作,已經(jīng)做好了登錄界面和實(shí)現(xiàn)和登錄界面與菜單對(duì)話框的連接,現(xiàn)在進(jìn)行菜單對(duì)話框的編輯。將原有的按鈕刪除,自己加入按鈕并命名;(8)雙擊題目1,點(diǎn)OK,在代碼頁的頂端加入如圖代碼,并在OnButton1下加入以下代碼 CT1 dlg;dlg.DoModal();其他的按相同操作。

      四、設(shè)計(jì)總結(jié)

      為期為兩周的課程實(shí)踐中,我體會(huì)頗多,學(xué)到的東西也很多。我懂得了如何運(yùn)用MFC編寫可視化界面的應(yīng)用程序,加強(qiáng)了對(duì)C++的認(rèn)識(shí),復(fù)習(xí)了以前的知識(shí),自己的邏輯思考能力,解決問題的能力也提高了不少。從而對(duì)Microsoft Visual C++有了更加深刻的認(rèn)識(shí)和體會(huì)!在這次課程設(shè)計(jì)實(shí)踐過程中我還懂得了一些程序開發(fā)的重要步驟,總之,在這次課程設(shè)計(jì)實(shí)踐中,我收獲頗豐。

      對(duì)于對(duì)任務(wù)的完成情況,第一部分主要按老師的步驟完成。第二部分,由學(xué)生自主選題,自主設(shè)計(jì)完成??偟膩碚f,我個(gè)人對(duì)自己的完成情況感覺良好。當(dāng)然,老師的悉心指導(dǎo)和同學(xué)的幫助是不能忽視的,在此感謝所有在本次課程設(shè)計(jì)實(shí)踐過程中對(duì)我細(xì)心指導(dǎo)的老師和不斷鼓勵(lì)和幫助我的同學(xué)們。

      總之,此次課程實(shí)踐是對(duì)學(xué)生動(dòng)手動(dòng)腦的一次很好的鍛煉,為學(xué)生的今后發(fā)展奠定基礎(chǔ)。

      下載C++課程實(shí)踐報(bào)告試題及答案(范文大全)word格式文檔
      下載C++課程實(shí)踐報(bào)告試題及答案(范文大全).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        課程改革試題小題及答案

        《基礎(chǔ)教育課程改革綱要》模擬試題一及答案 一、 單選 1.課程改革的的基本理念是: ( C ) A. ②③④ B. ①②③ C. ①③ D. ②④ ①以學(xué)生發(fā)展為本②培養(yǎng)環(huán)境意識(shí) ③以創(chuàng)新精......

        中南大學(xué)c++計(jì)算器實(shí)踐報(bào)告

        中南大學(xué)本科生課程設(shè)計(jì)(實(shí)踐)任務(wù)書、設(shè)計(jì)報(bào)告(C++程序設(shè)計(jì))題目 學(xué)生姓名 指導(dǎo)教師 學(xué)院 專業(yè)班級(jí) 學(xué)生學(xué)號(hào) 科學(xué)計(jì)算器應(yīng)用程序嚴(yán)暉 材料科學(xué)與工程學(xué)院 1206計(jì)算機(jī)基礎(chǔ)......

        c++課程設(shè)心得

        C++課程設(shè)計(jì)心得體會(huì) 短學(xué)期的課程設(shè)計(jì)是一次非常珍貴的機(jī)會(huì),這是一次可以讓我們所學(xué)的理論 與實(shí)際相結(jié)合的機(jī)會(huì)。我們選擇了成績(jī)統(tǒng)計(jì)系統(tǒng)這一題目。通過這次比較完整的一個(gè)......

        綜合實(shí)踐活動(dòng)試題及答案

        綜合實(shí)踐活動(dòng)試題及答案 1、如何確立子課題? 根據(jù)自己的興趣與特長(zhǎng)去選擇和設(shè)計(jì)內(nèi)容,通常遵循以下原則:生活化原則(來源于生活,與大家的生活經(jīng)驗(yàn)相聯(lián)系,有可利用的豐富資源);實(shí)用性......

        c++實(shí)踐心得體會(huì)1600

        在本課程學(xué)習(xí)過程中我遇到了下面這些問題: 1、剛開始C++實(shí)踐理論課的學(xué)習(xí)時(shí),我的學(xué)習(xí)興趣很高,總想著自己能夠完全掌握PPT的知識(shí),做成一個(gè)完美的程序。隨著學(xué)習(xí)的進(jìn)展,調(diào)試程序......

        建筑工程概算課程復(fù)習(xí)考試試題及答案A

        《建筑工程概算》復(fù)習(xí)綱要A 一、單項(xiàng)選擇題 1.根據(jù)建筑安裝工程定額編制的原則,按平均先進(jìn)水平編制的是( )。 A、預(yù)算定額B、企業(yè)定額 C、概算定額D、概算指標(biāo) 2.對(duì)于施工周轉(zhuǎn)材......

        基礎(chǔ)教育課程改革綱要試題及答案

        《基礎(chǔ)教育課程改革綱要》一、 填空題1.義務(wù)教育課程設(shè)計(jì)比例,語文( 20%-22% )、 數(shù)學(xué)( 13%-15% )、英( 6%-8%)、品德與生活、品德與社會(huì)、思想品德( 7%-9%)、科學(xué)、生物、物理、化學(xué)......

        課程實(shí)踐報(bào)告

        課程實(shí)踐報(bào)告15篇 課程實(shí)踐報(bào)告1 摘 要:本課題主要從系統(tǒng)構(gòu)建、整體推進(jìn)和校本實(shí)施的角度探討綜合實(shí)踐活動(dòng)課程的有效實(shí)施。首先從縱向,我們對(duì)小學(xué)、初中和高中綜合實(shí)踐活動(dòng)......