VC++課程實(shí)踐報(bào)告_第1頁
VC++課程實(shí)踐報(bào)告_第2頁
VC++課程實(shí)踐報(bào)告_第3頁
VC++課程實(shí)踐報(bào)告_第4頁
VC++課程實(shí)踐報(bào)告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

江蘇科技大學(xué)課程實(shí)踐報(bào)告設(shè)計(jì)題目: 計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐(VC++)設(shè)計(jì)時(shí)間:2012.3.27至2012.3.4學(xué) 院: 機(jī)械工程學(xué)院 專業(yè)班級(jí):機(jī)械電子工程專業(yè)10402062班學(xué)生姓名: 王磊學(xué)號(hào)1040206223指導(dǎo)老師: 華偉 2012年3月1日、實(shí)踐任務(wù)任務(wù)一:建立一個(gè)STRING,,將一個(gè)字符串交叉插入到另一個(gè)字符串中(假設(shè)兩字符串等長)。具體要求如下:私有數(shù)據(jù)成員charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。私有數(shù)據(jù)成員charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。公有成員函數(shù)??(2)STRING(char*s1,char*s2):構(gòu)造函數(shù),用si和s2初始化strl和str2。voidprocess():將str2中的字符插入到strl中。voidprint():輸出插入后的字符串。(3)在主函數(shù)中定義STRING類的對(duì)象test對(duì)該類進(jìn)行測試。任務(wù)二:建立一個(gè)STRING,,將一個(gè)字符串交叉插入到另一個(gè)字符串中(假設(shè)兩字符串不等長)。具體要求如下:(1) 私有數(shù)據(jù)成員charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。charstr3[100]:存放插入后的字符串。(2) 公有成員函數(shù)STRING(char*s1,char*s2):構(gòu)造函數(shù),用s1和s2初始化str1和str2。voidprocess():將str2中的字符插入到str1中,存放到str3中。voidprint():輸出插入后的字符串。(3) 在主函數(shù)中定義STRING類的對(duì)象test對(duì)該類進(jìn)行測試。任務(wù)三:建立一個(gè)類NUM,并統(tǒng)計(jì)特定序列中相同的數(shù)字的個(gè)數(shù)。具體要求如下:(1) 私有數(shù)據(jù)成員intdata[25]:隨機(jī)生成25個(gè)在0-9之間的數(shù)字。intnum[10]:儲(chǔ)存每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù)。(2) 公有成員函數(shù)NUM(intdata):構(gòu)造函數(shù),初始化數(shù)組data。Voidprocess():。數(shù)組data中每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),并保存到數(shù)組num中。voidprint():輸出每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),每行輸出5個(gè)。(3) 在主程序中定義一個(gè)對(duì)象,對(duì)該類進(jìn)行測試。任務(wù)四:建立一個(gè)類NUM,求指定數(shù)據(jù)范圍內(nèi)所以的素?cái)?shù)。提示:素?cái)?shù)定義是“只能被1和它本身整除的整數(shù)”,即質(zhì)數(shù)。具體要求如下:私有數(shù)據(jù)成員intdata[10]:依次存放原始數(shù)據(jù)。intprime[10]:存放指定數(shù)據(jù)內(nèi)所求出的所以素?cái)?shù)。intnum:存放素?cái)?shù)個(gè)數(shù)。公有成員函數(shù)NUM(intn[]):構(gòu)造函數(shù),用參數(shù)n初始化data,同時(shí)初始化num為0。Intisprime(intx):判斷x是否為素?cái)?shù)。若是素?cái)?shù),返回1,否則,返回0。voidprocess():求指定data數(shù)組中的所有素?cái)?shù),把它們依次存放在數(shù)組prime中,并求出素?cái)?shù)的個(gè)數(shù)賦給num。voidprint():輸出求出的素?cái)?shù)個(gè)數(shù)級(jí)所有素?cái)?shù),每行輸出4個(gè)素?cái)?shù)。在主函數(shù)中完成對(duì)該類的測試。定義NUM類對(duì)象test調(diào)用成員函數(shù)完成求素?cái)?shù)及輸出素?cái)?shù)的工作。原始數(shù)據(jù)為{4,5,6,11,36,29,1,101,56,199}。任務(wù)五:試定義一個(gè)類ID,實(shí)現(xiàn)根據(jù)某人身份證號(hào)碼判斷在其指定年份時(shí)的虛歲年齡。具體要求如下:私有數(shù)據(jù)成員charid[19]:存放身份證號(hào)碼,身份證號(hào)碼為18位。intage:根據(jù)身份證號(hào)碼和指定年份計(jì)算后得到的虛歲年齡。公有成員函數(shù)ID(char*p):構(gòu)造函數(shù),利用參數(shù)p初始化身份證號(hào)碼。Intsubstr(char*p0,charn0,intn):取字符串p0中從第n0個(gè)字符開始的連續(xù)n個(gè)字符(假設(shè)都是數(shù)字字符)并按順序轉(zhuǎn)換為相應(yīng)的整數(shù)值,結(jié)果作為函數(shù)的返回值。voidfun(inty1):計(jì)算相對(duì)某個(gè)年份一,該身份證號(hào)碼主人的虛歲年齡。對(duì)于18位身份證,從第七位(序號(hào)從1開始)開始的四位數(shù)字為其出生年份。voidprint():打印身份證號(hào)碼及其年齡。在主程序中對(duì)該類進(jìn)行測試。任務(wù)六:試定義一個(gè)類NUM,實(shí)現(xiàn)對(duì)于給定的任意整數(shù),求出其降序數(shù)。具體要求如下:私有數(shù)據(jù)成員intn:存放一個(gè)整數(shù)。intm:存放n的降序數(shù)。公有成員函數(shù)NUM(intx=0):參數(shù)x初始化數(shù)據(jù)成員n。voiddecrease():求數(shù)據(jù)成員n的降序數(shù),并存到數(shù)據(jù)成員m中。voidprint():按輸入/輸出示例格式輸出原整數(shù)及其降序數(shù)。在主函數(shù)中對(duì)該類進(jìn)行測試。任務(wù)七:試定義一個(gè)類NUM,實(shí)現(xiàn)求大于整數(shù)m的最小的k個(gè)自反數(shù)。具體要求如下:私有數(shù)據(jù)成員int*p:p指向用于儲(chǔ)存滿足條件的k個(gè)自反數(shù)的動(dòng)態(tài)數(shù)組。intm,k:公有成員函數(shù)NUM(intt1,intt2):構(gòu)造函數(shù),用參數(shù)t1、t2分別初始化m、k,并為p分配相應(yīng)的存儲(chǔ)空間。Intisinv(intn):判斷整數(shù)n是否為自反數(shù),如果是,則返回1,否則返回0.voidfun():根據(jù)題意將求的的自反數(shù)按從小到大的順序存放到p所指向的動(dòng)態(tài)數(shù)組中。要求利用成員函數(shù)isinv()來判斷某個(gè)整數(shù)是否為自反數(shù)。voidprint():按輸出示例格式輸出滿足條件的自反數(shù)。~NUM():析構(gòu)函數(shù),釋放動(dòng)態(tài)內(nèi)存。在主函數(shù)中對(duì)該類進(jìn)行測試。任務(wù)八:。試定義一個(gè)類Num,其功能是求出1000以內(nèi)滿足所有下列條件的整數(shù):(1)該整數(shù)是一個(gè)素?cái)?shù),(2)其各位數(shù)字之和和它的平方數(shù)的各位數(shù)字之和相等。具體要求如下:私有數(shù)據(jù)成員Inta[20];;存放結(jié)果。Intcount;結(jié)果數(shù)組的元素個(gè)數(shù)。公有成員函數(shù)Num();構(gòu)造函數(shù)。設(shè)置count的初始值為0。intprime(intx);判斷參數(shù)x是否為素?cái)?shù),如果是返回1,否則返回0。intdigitsum(intx);計(jì)算參數(shù)x的各位數(shù)字之和,并返回計(jì)算的結(jié)果。voidfun();找出1000以內(nèi)所有滿足條件的數(shù),并存放到數(shù)組a中,同時(shí)計(jì)數(shù)。voidprint();按輸出示例格式輸出所有滿足條件的數(shù)。在主函數(shù)中完成對(duì)該類的測試。二、系統(tǒng)設(shè)計(jì)任務(wù)一任務(wù)(系統(tǒng))分析通過類STRING的成員函數(shù)process()將s1,s2中的字符賦給str1,str2。類的定義如下:classSTRING{private:charstr1[80];charstr2[40];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}算法設(shè)計(jì)求字符串的長度遍歷兩個(gè)字符串的所有元素,將str2中的元素插入strl,同時(shí)i累加系統(tǒng)測試在主函數(shù)中以整數(shù)初始化STRING的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測試結(jié)果(字符串strl)。主函數(shù)定義如下:voidmain()(chars1[]="abcde”;chars2[]="ABCDE";STRINGtest(s1,s2);cess();test.print();}用以測試的字符串為:ABCDEabcde預(yù)期的輸出結(jié)果為:字符串為:aAbBcCdDeE任務(wù)二任務(wù)(系統(tǒng))分析通過類STRING將s1,s2中的字符賦給str1,str2.。類的定義如下:classSTRING{charstr1[60];charstr2[40];charstr3[100];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}算法設(shè)計(jì)比較兩個(gè)字符串的長度,使得str1字符串中的字符數(shù)量比str2中的多,遍歷str2中的字符,利用自增使得字符依次插入。系統(tǒng)測試在主函數(shù)中以整數(shù)初始化STRING的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測試結(jié)果(字符串str1)。主函數(shù)定義如下:voidmain(){STRINGtest("ABCDEFG”,”abcde”);cess();test.print();}用以測試的字符串為:ABCDEFGabcde預(yù)期的輸出結(jié)果為:字符串為:aAbBcCdDeEFG任務(wù)三任務(wù)(系統(tǒng))分析通過NUM()函數(shù)進(jìn)行賦值;通過process()函數(shù)統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的次數(shù);通過print()函數(shù)輸出結(jié)果。類的描述與定義classNUM{intdata[25];intnum[10];public:NUM(intdata1[]){for(inti=0;i<25;i++){data[i]=data1[i];num[i]=0;}}算法設(shè)計(jì)intnum[10]儲(chǔ)存每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),voidprocess()來統(tǒng)計(jì)數(shù)組data中每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),并保存到數(shù)組num中。系統(tǒng)測試主函數(shù)定義如下:voidmain(){intdata[25]={0,2,1,1,3,6,5,2,4,9,8,6,0,4,8,7,4,1,2,3,5,1,0,8,9};NUMtest(data);cess();test.print();}任務(wù)四任務(wù)(系統(tǒng))分析通過類NUM構(gòu)造函數(shù),將n[]中的數(shù)字賦給data[],類的定義如下:classNUM{intdata[10];intprime[10];intnum;public:NUM(intn[]){for(inti=0;i<10;i++)data[i]=n[i];num=0;}算法設(shè)計(jì)首先利用函數(shù)isprime()測試數(shù)組中的元素是否為素?cái)?shù),然后將素?cái)?shù)存入到prime[]中系統(tǒng)測試在主函數(shù)中初始化數(shù)組a[],然后測試成員函數(shù),調(diào)用voidprint()輸出結(jié)果。主函數(shù)定義如下:voidmain(){inta[]={4,5,9,11,36,29,31,101,56,199};NUMtest(a);cess();test.print();}用以測試的數(shù)組為{4,5,9,11,36,29,31,101,56,199}預(yù)期的結(jié)果為:5112931101199任務(wù)五1、任務(wù)(系統(tǒng))分析構(gòu)造函數(shù)初始化身份證號(hào)碼,在substr(char*p0,charn0,intn)中將數(shù)字字符變成一個(gè)整數(shù),fun(inty1)中計(jì)算虛歲年齡,通過調(diào)用substr(char*p0,charn0,intn)尋找出生年份,并根據(jù)指定年份求虛歲年齡。2、算法設(shè)計(jì)substr(char*p0,charn0,intn)定義一個(gè)sum=0,通過循環(huán)語句進(jìn)行sum=10*sum+p0[i]-'0',求出一個(gè)整數(shù),返回。fun(inty1)調(diào)用substr(char*p0,charn0,intn)進(jìn)行age=y1-substr(id,7,10)+1,求出虛歲年齡。3、系統(tǒng)測試在主函數(shù)中初始化ID的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測試結(jié)果。主函數(shù)定義如下:voidmain()inta;charb[19]={'0'};cout<<"請(qǐng)輸入指定年份和身份證號(hào)碼:”;cin>>a;cin>>b;IDtest(b);test.fun(a);test.print();}測試數(shù)據(jù):2011 3206211991050522831X預(yù)期結(jié)果:指定年份:2011身份證號(hào):3206211991050522831X虛歲年齡:21任務(wù)六1、 任務(wù)(系統(tǒng))分析構(gòu)造函數(shù)初始化數(shù)據(jù)成員n,decrease()函數(shù)求n的降序數(shù)。2、 算法設(shè)計(jì)decrease()中將整數(shù)的各位數(shù)字通過循環(huán)語句求余依次存放到一維數(shù)組a中,再將數(shù)組a中的元素用指針進(jìn)行降序排列,最后用數(shù)組a中的元素組成整數(shù)。3、系統(tǒng)測試在主函數(shù)中初始化NUM的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測試結(jié)果。主函數(shù)定義如下:voidmain(){inta;cout<<"輸入一個(gè)正整數(shù):";cin>>a;NUMtest(a);test.decrease();test.print();}測試數(shù)據(jù):431252預(yù)期結(jié)果:輸入一個(gè)正整數(shù):431252該數(shù)的降序數(shù)為:543221任務(wù)七1、任務(wù)(系統(tǒng))分析構(gòu)造函數(shù)初始化m、k、并為p分配相應(yīng)的存儲(chǔ)空間,isinv(intn)判斷一個(gè)數(shù)是否為自反數(shù),fun()根據(jù)題意將求得的自反數(shù)按從小到大的順序存放到p所指向的動(dòng)態(tài)數(shù)組中。2、 算法設(shè)計(jì)isinv(intn)中通過循環(huán)語句求余將整數(shù)的逆序,比較逆序前后的兩個(gè)數(shù)若相等則返回1,否則返回0.fun()通過調(diào)用isinv(intn)將求得的自反數(shù)存放在p指向的動(dòng)態(tài)數(shù)組中。3、 系統(tǒng)測試在主函數(shù)中初始化NUM的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測試結(jié)果。主函數(shù)定義如下:voidmain(){intm,k;cout<<"請(qǐng)輸入m和k:";cin>>m;cin>>k;NUMtest(m,k);test.fun();test.print();}測試數(shù)據(jù):1000 6預(yù)期結(jié)果:大于1000的6個(gè)自反數(shù)為:10011111 1221 1331 1441 1551任務(wù)八1、 任務(wù)(系統(tǒng))分析構(gòu)造函數(shù),初始化count=0,prime(intx)判斷x是否為素?cái)?shù),digitsum(intx)計(jì)算x的各位數(shù)字之和,fun()找出1000以內(nèi)所有滿足條件的數(shù)存放在成員數(shù)組a中同時(shí)計(jì)數(shù)。2、 算法設(shè)計(jì)prime(intx)通過遍歷2~x之間的所有數(shù),若存在x的約數(shù),返回0,否則返回1.digitsum(intx)通過循環(huán)求余得到x各位數(shù)字之和。fun()遍歷2~1000內(nèi)的所有數(shù)若是素?cái)?shù)并且其各位數(shù)字之和與其平方數(shù)的各位數(shù)字之和相等,則存放在a中。3、系統(tǒng)測試在主函數(shù)中初始化Num的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測試結(jié)果。主函數(shù)定義如下:voidmain(){Numtest;test.fun();test.print();}預(yù)期結(jié)果:19 361199 39601379 143641739 546121三、實(shí)踐小結(jié)本次實(shí)踐讓我學(xué)會(huì)很多,尤其是掌握隨機(jī)函數(shù)的運(yùn)用,運(yùn)用類,數(shù)組等來解決問題方面有了更深的認(rèn)識(shí)。起初,自己也碰到了很多很多問題,一時(shí)找不清方向,但是冷靜下來,好好地仔細(xì)地考慮,再加上老師的細(xì)心指導(dǎo),以及同學(xué)間的討論,最后問題都被一一克服。我明白了這門課程對(duì)于以后的就業(yè)很重要,因?yàn)楝F(xiàn)在畢竟是信息化的時(shí)代了,所以我會(huì)精益求精,把這門課學(xué)得更好。四、 參考文獻(xiàn)2008~2011二級(jí)考試試卷匯編VisualC++語言分冊(cè) 蘇州大學(xué)出版社VisualC++程序設(shè)計(jì) 蘇州大學(xué)出版社五、 源程序清單任務(wù)一#include<iostream.h>#include<string.h>classSTRING{private:charstr1[80];charstr2[40];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}voidprocess(){chartemp[100]={0};intj=0;for(inti=0;i<(int)strlen(str1);i++){temp[j++]=str1[i];temp[j++]=str2[i];}strcpy(str1,temp);}voidprint(){cout<<"插入后字符串為:"<<str1<<'\n';}};voidmain(){chars1[]="abcde”;chars2[]="ABCDE";STRINGtest(s1,s2);cess();test.print();任務(wù)二#include<iostream.h>#include<string.h>classSTRING{charstr1[60];charstr2[40];charstr3[100];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}voidprocess(){inti=0,j=0;while(str2[j]){str3[i++]=str2[j];str3[i++]=str1[j++];}while(str1[j]){str3[i++]=str1[j++];}str3[i]='\0';}voidprint(){cout<<str3<<endl;}};voidmain(){STRINGtest("ABCDEFG","abcde");cess();test.print();}任務(wù)三#include<iostream.h>classNUM{intdata[25];intnum[10];public:NUM(intdata1[]){for(inti=0;i<25;i++){data[i]=data1[i];num[i]=0;}}voidprocess(){for(inti=0;i<25;i++)if(data[i]>=0&&data[i]<=9){intj=data[i];num[j]++;}}voidprint(){for(inti=0;i<10;i++){if(i%5==0)cout<<endl;cout<<i<<"出現(xiàn)個(gè)數(shù):"<<num[i]<<'\t';}}};voidmain(){intdata[25]={0,2,1,1,3,6,5,2,4,9,8,6,0,4,8,7,4,1,2,3,5,1,0,8,9};NUMtest(data);cess();test.print();任務(wù)四#include<iostream.h>classNUM{intdata[10];intprime[10];intnum;public:NUM(intn[]){for(inti=0;i<10;i++)data[i]=n[i];num=0;}intisprime(intx){intm=1;for(inti=2;i<x;i++)if(x%i==0){m=0;break;}returnm;}voidprocess(){for(inti=0;i<10;i++)if(isprime(data[i]))prime[num++]=data[i];}voidprint(){cout<<num<<'\n';for(inti=0;i<num;i++)cout<<prime[i]<<'\t*;if((i+1)%4==0)cout<<*\n*;}cout<<'\n';}};voidmain(){inta[]={4,5,9,11,36,29,31,101,56,199};NUMtest(a);cess();test.print();任務(wù)五#include<iostream.h>classID{charid[19];intage;public:ID(char*p);intsubstr(char*p0,charn0,intn);voidfun(inty1);voidprint();};ID::ID(char*p){for(inti=0;i<19;i++)id[i]=p[i];}intID::substr(char*p0,charn0,intn){intm=0;for(inti=n0;i<n;i++)m=m*10+(p0[n0+i-1]-48);returnm;}voidID::fun(inty1){intm=substr(id,11,4)+1;y1=y1-m;age=y1+10;}voidID::print(){fun(substr(id,1,4));cout<<"虛歲年齡:"<<age<<endl;}voidmain(){charp1[20];cin.getline(p1,19);IDtest(pl);test.print();任務(wù)六#include<iostream.h>classNUM{intn;intm;public:NUM(intx);voiddecrease();voidprint();};NUM::NUM(intx){n=x;}voidNUM::decrease(){inta[100],t=n,i=0;while(t){a[i++]=t%10;t/=10;}for(intk=0;k<i-1;k++){for(intj=k+1;j<i;j++)if(a[j]>a[k]){t=a[j];a[j]=a[k];a[k]=t;}}m=0;for(k=0;k<i;k++)m=m*10+a[k];}voidNUM::print(){cout<<"降序排序?yàn)?<<m<<endl;}voidmain(){intx;cin>>x;NUMtest(x);test.decrease();test.print();}任務(wù)七#include<iostream.h>classNUM{int*p;intm,k;public:NUM(intt1,intt2);intisinv(intn);voidfUn();voidprint();~NUM(){del

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論