倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)_第1頁(yè)
倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)_第2頁(yè)
倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)_第3頁(yè)
倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)_第4頁(yè)
倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

77/77昆明理工大學(xué)城市學(xué)院面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)報(bào)告?zhèn)}庫(kù)商品檢查登記管理系統(tǒng)專業(yè):班級(jí):姓名:學(xué)號(hào):指導(dǎo)老師:2012年1月6日目錄目錄………………1實(shí)訓(xùn)的目的和任務(wù)………………3實(shí)訓(xùn)內(nèi)容指導(dǎo)……3倉(cāng)庫(kù)商品檢查登記管理系統(tǒng)……類設(shè)計(jì)……………流程圖……………源代碼……………程序運(yùn)行結(jié)果……總結(jié)………………一、實(shí)訓(xùn)的目的和任務(wù)C++語(yǔ)言程序設(shè)計(jì)的實(shí)訓(xùn),是教學(xué)計(jì)劃中的一個(gè)有機(jī)組成部分,是培養(yǎng)學(xué)生綜合應(yīng)用所學(xué)的基礎(chǔ)的理論,基本知識(shí)和技能,分析解決實(shí)際問(wèn)題能力的重要一環(huán),與其它教學(xué)環(huán)節(jié)緊密配合,相輔相成,是前面教學(xué)環(huán)節(jié)的繼續(xù),深入和發(fā)展。通過(guò)實(shí)訓(xùn)過(guò)程可在不同程度上提高調(diào)查研究,查問(wèn)文獻(xiàn),實(shí)際應(yīng)用的能力。二、實(shí)訓(xùn)內(nèi)容指導(dǎo)(一)數(shù)據(jù)類型和表達(dá)式基礎(chǔ)實(shí)訓(xùn)1、定義一個(gè)描述學(xué)生的結(jié)構(gòu)體類型student,含有學(xué)號(hào)num、姓名name、性別sex、成績(jī)score幾個(gè)分量,再定義屬于這個(gè)結(jié)構(gòu)體類型的兩個(gè)變量stu1、stu2。structstudent

{

intnum;/*學(xué)號(hào)*/

charname[20];/*姓名*/

charsex;/*性別*/

floatscore;/*成績(jī)*/

};structstudentstudent1,student2;2、建立一個(gè)適于描述碗和勺子的結(jié)構(gòu)體,有關(guān)的信息是:兩者都有貨號(hào)、價(jià)格、顏色,不同的是碗的大小用口徑來(lái)表示,勺子的大小用枚舉類型表示,分大、中、小三種。現(xiàn)有的勺子的大小是中,將其表示出來(lái)。#include<iostream>usingnamespacestd;structbowl{intNo;intprice;charcolor;floatsize;};structspoon{intNo;intprice;charcolor;struct{enum{small,medium,big}shaozi;}a;}b;voidmain(){b.a.shaozi=b.a.medium;cout<<b.a.shaozi;}3、編程實(shí)現(xiàn)兩個(gè)整數(shù)相加。#include<iostream.h>intmain(){ intinteger1,integer2,sum; cout<<"Enterfirstinteger\n"; cin>>integer1; cout<<"Entersecondinteger\n"; cin>>integer2; sum=integer1+integer2; cout<<"Sumis"<<sum<<endl; return;}4、編程實(shí)現(xiàn),輸入一個(gè)三位整數(shù),能夠?qū)⑺聪蜉敵觥?include<stdio.h>#include<iostream>usingnamespacestd;voidmain(){intnum;cout<<"input:";cin>>num;while(num){cout<<num%10;num/=10;}cout<<endl;}5、讀程序?qū)懡Y(jié)果。綜合實(shí)訓(xùn)數(shù)字互換實(shí)訓(xùn)。輸入一個(gè)大于三位的整數(shù),編一個(gè)程序,將它的十位數(shù)和百位數(shù)互換位置。#include<iostream>usingnamespacestd;intmain(){intx;inta[3];cin>>x;for(inti=0;i<3;i++){a[i]=x%10;x=x/10;}x=x*1000+a[0]+a[1]*100+a[2]*10;cout<<x<<endl;return1;}(二)語(yǔ)句和函數(shù)基礎(chǔ)實(shí)訓(xùn)1、根據(jù)考試成績(jī)的等級(jí)A、B、C和D,輸出對(duì)應(yīng)的百分制分?jǐn)?shù)段,A對(duì)應(yīng)85~100,B對(duì)應(yīng)70~84,C對(duì)應(yīng)60~69,D對(duì)應(yīng)0~60。#definenum100inta[]=newint[num];for(inti=0;i<num;i++){if(a[i]>=85)cout<<'A';eseif(a[i]>=70)cout<<'B';elseif(a[i]>=60)cout<<'C';elsecout<<'D';}2、用for語(yǔ)句編程求1~100之和。#include<iostream.h>voidmain(){ intsum(0); for(inti=1;i<=100;i++) sum+=i; cout<<"sum="<<sum<<endl;}3、用for語(yǔ)句、while語(yǔ)句和遞歸函數(shù)三種方法計(jì)算n!。#include<iostream.h>main(){intn;intsum=1;cin<<n;for(;n>0;)sum*=n--;while(n>0)sum*=n--;intf(intx){if(x>1){x*=f(x-1);returnx;}elsereturnx;}4、用for循環(huán)編程打印圖形。#include<iostream>usingnamespacestd;intmain(){for(inti=1;i<=5;i++){for(intj=1;j<=i;j++)cout<<"*";cout<<endl;}cout<<"*****"<<endl;cout<<"*"<<endl;}5、編寫函數(shù),判斷一個(gè)數(shù)是否是質(zhì)數(shù)。#include<iostream>

#include<cmath>

usingnamespacestd;

intmain()

{inti,j,k;

cin>>j;

k=sqrt(j);

for(i=2;i<=k;i++)

if(j%i==0)break;

if(i>k)

cout<<1;

elsecout<<0;

return0;

}9、設(shè)計(jì)一個(gè)函數(shù),求三個(gè)數(shù)中的最大值。#include<iostream.h>intmax(int,int,int);voidmain(){ cout<<max(35,48,26)<<endl;}intmax(inta,intb,intc){ intt=max(a,b); returnmax(t,c);}10、編寫程序,利用itoa函數(shù)實(shí)現(xiàn)整數(shù)到字符串的轉(zhuǎn)換。#include<stdio.h>

int

itoa(x)

{

char

c;

c=x;

printf("%c",c);

getch();

}

int

main(void)

{

int

a;

printf("input

a

number:");

scanf("%d",&a);

itoa(a);

}11、編寫程序,最多讀入10個(gè)數(shù),讀入0表示結(jié)束。將讀入的非零的數(shù)放在一個(gè)數(shù)組里,按從大到小的順序排序后輸出。#include<iostream>#include<iterator>#include<algorithm>#include<vector>usingnamespacestd;intmain()//主函數(shù){vector<int>b;for(inti=0;i<10;i++){intx=0;cin>>x;if(x)b.push_back(x);elsebreak;}sort(b.begin(),b.end());copy(b.begin(),b.end(),ostream_iterator<int>(cout,""));return0;}12、將一個(gè)代表整型數(shù)的字符串轉(zhuǎn)換為一個(gè)整型的數(shù)字。#include<iostream>#include<string>#include<sstream>usingnamespacestd;intmain(intargc,char*argv[]){stringstreama;stringb;inti;cin>>b;a.str(b);a>>i;cout<<i*2<<endl;return0;}綜合實(shí)訓(xùn)(職工信息處理函數(shù)實(shí)訓(xùn))職工的信息有姓名、年齡、工齡、性別、婚姻狀況、級(jí)別、工資、在職否?,F(xiàn)在要進(jìn)行工資的調(diào)整,規(guī)定凡是退休職工一律增加工資50元,在職1~5級(jí)職工的工資分別增加20、40、60、80、100元。編程實(shí)現(xiàn)上述工資調(diào)整。要求如下:(1)分析要存放的信息,設(shè)計(jì)合適的數(shù)據(jù)結(jié)構(gòu);(2)分析要對(duì)信息進(jìn)行的操作,進(jìn)行處理;(3)打印程序執(zhí)行前后的工資狀況和級(jí)別。(三)面向?qū)ο蠡靖拍钆c類實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、讀程序?qū)懡Y(jié)果;2、設(shè)計(jì)一個(gè)表示貓的類,包括貓的顏色、體重、年齡等數(shù)據(jù),具有設(shè)置貓的顏色,修改和顯示貓的體重、年齡等操作。設(shè)貓類的類名為Cat,貓類Cat有3個(gè)數(shù)據(jù)成員,顏色用字符串color[7],可以存放3個(gè)漢字,體重用實(shí)型數(shù)weight表示,年齡用整型數(shù)age表示,為了數(shù)據(jù)的安全性,Cat的3個(gè)數(shù)據(jù)成員全部為私有的。對(duì)貓的屬性數(shù)據(jù)的設(shè)置和修改,PutColor為設(shè)置和修改顏色,PutWeight為設(shè)置和修改體重,PutAge為設(shè)置和修改年齡,它們都設(shè)置為公有函數(shù),還要有一個(gè)1個(gè)3個(gè)參數(shù)的函數(shù)SetCat。設(shè)計(jì)Display函數(shù)輸出貓的信息。#include<iostream>classCat{privateStringcolour;privateintweight;privateintage;...intgetWeight(){returnweight;}intgetAge(){returnage;}voidsetClolur(StringxClolour){colour=xCloour;}voidsetWeight(intxWeight){weight=xWeight;}voidsetAge(intxAge){age=xAge;}}設(shè)計(jì)一個(gè)表示學(xué)習(xí)成績(jī)的類,至少包括三門課程的成績(jī),可以設(shè)置、顯示每門課程的成績(jī),可以計(jì)算、顯示平均成績(jī)。classGrades{private:intMath,English,Chinese;public:Grades(){Math=English=Chinese=0;}Grades(inta,intb,intc){Math=a;English=b;Chinese=c;}intgetM(){returnMath;}intgetE(){returnEnglish;}intGetC(){returnChinese;}voidSetvalue(inta,intb,intc){Math=a;English=b;Chinese=c;}voidDisplay();floatAverage(){return(Math+English+Chinese)/3.0;}}4、設(shè)計(jì)成績(jī)類,成績(jī)類的數(shù)據(jù)成員,應(yīng)該包括學(xué)生的學(xué)號(hào)Number[10]和姓名Name[9],假設(shè)有3門課,分別為C++程序設(shè)計(jì)語(yǔ)言,用整型變量Cpp表示;計(jì)算機(jī)原理,用整型變量Computer表示;數(shù)據(jù)庫(kù),用整型變量DataBase表示。平均成績(jī)用實(shí)型變量Average表示。為了Grade類數(shù)據(jù)的安全性,數(shù)據(jù)成員全部為私有成員,對(duì)成績(jī)類的屬性數(shù)據(jù)用一些函數(shù)進(jìn)行設(shè)置和修改,PutNo為設(shè)置和修改學(xué)號(hào),PutName為設(shè)置和修改姓名,PutCpp為設(shè)置和修改C++程序設(shè)計(jì)語(yǔ)言的成績(jī),PutCom為設(shè)置和修改計(jì)算機(jī)原理的成績(jī),PutData為設(shè)置和修改數(shù)據(jù)庫(kù)的成績(jī),還有一個(gè)同時(shí)設(shè)置所有5個(gè)參數(shù)的函數(shù)SetGrade,它們都設(shè)置為公有函數(shù)。計(jì)算平均成績(jī)的函數(shù)為Calc,設(shè)計(jì)函數(shù)Display輸出成績(jī)。有時(shí)可能要查看某個(gè)學(xué)生的成績(jī),所以設(shè)計(jì)比較學(xué)號(hào)的函數(shù)為ComNo,設(shè)計(jì)比較姓名的函數(shù)為ComName,GetCpp為讀取C++程序設(shè)計(jì)語(yǔ)言的成績(jī),GetCom為讀取計(jì)算機(jī)原理的成績(jī),GetData為讀取數(shù)據(jù)庫(kù)的成績(jī),設(shè)計(jì)讀取平均成績(jī)的函數(shù)為GetAvg。計(jì)算平均成績(jī)只是在類的內(nèi)部實(shí)現(xiàn),所以設(shè)計(jì)為私有函數(shù),其它都為公有函數(shù)。綜合實(shí)訓(xùn)設(shè)計(jì)一個(gè)表示整型數(shù)據(jù)的集合類,可以對(duì)集合中的數(shù)據(jù)進(jìn)行添加、刪除,可以判斷一個(gè)整數(shù)是否在這個(gè)集合里,可以求出集合數(shù)據(jù)的多少,可以判斷集合的空與滿,空集合就是沒(méi)有數(shù)據(jù)元素,滿集合就是數(shù)據(jù)元素已經(jīng)占滿給出的存儲(chǔ)單元。兩個(gè)集合可以做交運(yùn)算,就是將兩個(gè)集合的公共數(shù)據(jù)組成一個(gè)新的集合。兩個(gè)集合可以做并運(yùn)算,就是將兩個(gè)集合的所有數(shù)據(jù)組成一個(gè)新的集合。要求如下:(1)分析集合類的數(shù)據(jù)屬性要求;(2)分析集合類的操作屬性要求;(3)編制集合類的接口定義;(4)實(shí)現(xiàn)集合類的屬性函數(shù)。#include<iostream.h>//formthedatastructData{longnum;Data*next;};//thesetclassclassGather{public:Gather(int=5);//~Gather();voidform(int);voiddel();voidsetGather();voidprint();voidadd(int);Data*getptr(){returnptr;}Gather&operator=(Gather&);Gather&operator+(Gather&);Gather&operator*(Gather&);private:intLEN;Data*ptr;};Gatherinside;Gather::Gather(inta){form(a);}voidGather::form(inta){LEN=a;Data*p;for(inti=0;i<a;i++){if(i==0){ptr=newData;p=ptr;}else{p->next=newData;p=p->next;}}p->next=NULL;}//Gather::~Gather(){del();}voidGather::del(){Data*p;Data*q;p=ptr;for(inti=0;i<LEN;i++){q=p;p=p->next;deleteq;}LEN=0;}voidGather::setGather(){Data*p;p=ptr;for(inti=0;i<LEN;i++){cout<<"Enteritem"<<i+1<<":";cin>>p->num;p=p->next;}}voidGather::print(){if(LEN==0)cout<<"It'sanemptyset!"<<endl;Data*p;p=ptr;for(inti=0;i<LEN;i++){cout<<p->num<<"";p=p->next;if(i!=0&&i%10==0)cout<<endl;}}voidGather::add(intt){booly=true;Data*p;p=ptr;for(inti=0;i<LEN;i++){if(p->num==t){y=false;break;}if(i!=LEN-1)p=p->next;}if(y){p->next=newData;p=p->next;p->num=t;p->next=NULL;LEN++;}}Gather&Gather::operator=(Gather&x){if(ptr==x.ptr)return*this;else{del();form(x.LEN);Data*p,*q;p=ptr;q=x.ptr;for(inti=0;i<x.LEN;i++){p->num=q->num;p=p->next;q=q->next;}return*this;}}Gather&Gather::operator+(Gather&x){inside.del();inside.form(LEN);Data*q;Data*p;q=ptr;p=inside.getptr();for(inti=0;i<LEN;i++){p->num=q->num;p=p->next;q=q->next;}q=x.ptr;for(i=0;i<x.LEN;i++){inside.add(q->num);q=q->next;}returninside;}Gather&Gather::operator*(Gather&x){intz=0;longg[100];booly=true;Data*p;Data*q;p=ptr;q=x.ptr;for(inti=0;i<LEN;i++){q=x.ptr;for(intj=0;j<x.LEN;j++){if(p->num==q->num){for(intt=0;t<z;t++)if(p->num==g[t]){y=false;break;}if(y){g[z]=p->num;z++;break;}y=true;break;}elseq=q->next;}p=p->next;}inside.del();inside.form(z);Data*pre;pre=inside.getptr();for(i=0;i<z;i++){pre->num=g[i];pre=pre->next;}returninside;}//themainintmain(){Gatherx(6);Gathery;Gatherresult;cout<<"Entertheitemofsetx:"<<endl;x.setGather();cout<<"Theitemsofxis:"<<endl;x.print();cout<<endl;cout<<"Entertheitemofsety:"<<endl;y.setGather();cout<<"Theitemsofyis:"<<endl;y.print();cout<<endl;cout<<"Theresultofx+yis:"<<endl;result=x+y;result.print();cout<<endl;cout<<"Theresultofx*yis:"<<endl;result=x*y;result.print();cout<<endl;cout<<"Entertheitemyouwanttoaddtox:";inta;cin>>a;x.add(a);cout<<"Nowxis:";x.print();cout<<endl;inside.del();result.del();x.del();y.del();return0;}(四)對(duì)象實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、 讀程序?qū)懡Y(jié)果;2、 設(shè)計(jì)計(jì)算圖形面積的程序,圖形有圓和長(zhǎng)方形,計(jì)算半徑為15、23、37的圓和長(zhǎng)寬分別為(32,56)、(21,45)的長(zhǎng)方形等五個(gè)圖形的面積。classrect

{

private:

floatlength;

floatwidth;

public:

rect(floatl,floatw);

voidputwidth(floatw);

voidputlength(floatl);

floatgetwidth()const;

floatgetlength()const;

floatArea()const;

floatTotal()const;

};

rect::rect(floatl=0,floatw=0)

{

length=l;

width=w;

}

voidrect::putwidth(floatw)

{

width=w;

}

voidrect::putlength(floatl)

{

length=l;

}

floatrect::getlength()const

{

returnlength;

}

floatrect::getwidth()const

{

returnwidth;

}

floatrect::Area()const

{

returnlength*width;

}

floatrect::Total()const

{

return2*(length+width);

}

//rect.cpp

#include<iostream>

#include<conio.h>

#include"rect.h"

#include<string>

usingnamespacestd;

voidmain()

{

cout<<"求長(zhǎng)方形的面積與周長(zhǎng)"<<endl;

intstr=0;

floatrw,rl;

recta(0,0);

ttt:

cout<<"請(qǐng)先輸入長(zhǎng)和寬:";

cin>>rl>>rw;//此處輸入字符時(shí)就會(huì)錯(cuò)誤

a.putlength(rl);

a.putwidth(rw);

do

{

cout<<"輸入0為退出,輸入1求面積,輸入2求周長(zhǎng),3是輸入長(zhǎng)和寬"<<endl;

cin>>str;

switch(str)

{

case1:cout<<"面積是:"<<a.Area()<<endl;break;

case2:cout<<"周長(zhǎng)是:"<<a.Total()<<endl;break;

case3:gotottt;break;

case0:cout<<"ByeBye!"<<endl;break;

default:cout<<"錯(cuò)誤!輸入1求面積,輸入2求周長(zhǎng)!"<<endl;break;

}

}while(str);//*/

getch();

}3、 設(shè)計(jì)一個(gè)日期類Date,可以求昨天的日期和明天的日期,輸出格式為:年/月/日,編寫主程序設(shè)置當(dāng)前日期為2003年9月10日,顯示昨天的日期和明天的日期,將日期改為2004年5月4日,顯示修改后的日期。綜合實(shí)訓(xùn)設(shè)計(jì)一個(gè)最多可以存放100個(gè)整數(shù)的類,要求這些整數(shù)按從小到大的順序存放在類中的數(shù)組里,可以刪除數(shù)組中的數(shù)據(jù),也可以向數(shù)組中插入數(shù)據(jù),但是要保持從小到大的順序,可以求出數(shù)據(jù)的多少,可以判斷數(shù)組的空和滿,可以顯示數(shù)組中的整數(shù)。當(dāng)然剛生成對(duì)象時(shí),對(duì)象中的數(shù)組沒(méi)有數(shù)據(jù),只有一個(gè)一個(gè)地向?qū)ο笾胁迦霐?shù)據(jù)。要求如下:(1)分析數(shù)組類的數(shù)據(jù)屬性要求;(2)分析數(shù)組類的操作屬性要求;(3)編制數(shù)組類的接口定義;(4)生成數(shù)組類對(duì)象;(5)編制程序?qū)崿F(xiàn)數(shù)組對(duì)象的插入和刪除操作;#include<iostream.h>classDate{private:intyear,month,day;public:Date(inty=1900,intm=1,intd=1):year(y),month(m),day(d){}//構(gòu)造函數(shù)voidsetDate(inty,intm,intd)//設(shè)置日期{year=y;month=m;day=d;}voidshowDate()//輸出日期格式{cout<<year<<"/"<<month<<"/"<<day<<endl;}intleap()//判斷是否為潤(rùn)年{if(year%400==0||(year%100!=0&&year%4==0))return1;elsereturn0;}intDays()//判斷當(dāng)月天數(shù){intd;switch(month){case2:if(leap())d=29;elsed=28;break;case1:case3:case5:case7:case8:case10:case12:d=31;break;case4:case6:case9:case11:d=30;break;}returnd;}intisRight()//判斷日期數(shù)是否合理{if(year<0||month<1||month>12||day<1||day>Days()){cout<<"thedatedataiswrong!!"<<endl;return0;}elsereturn1;}DateYesterday()//求昨天{Datedt(year,month,day);inty1=dt.year,m1=dt.month,d1=dt.day;switch(month){case2:case4:case6:case8:case9:case11:{if(day==1){y1=year;m1=month-1;d1=31;}else{y1=year;m1=month;d1=day-1;}break;}case5:case7:case10:case12:{if(day==1){y1=year;m1=month-1;d1=30;}else{y1=year;m1=month;d1=day-1;}break;}case3:{if(day==1){y1=year;m1=month-1;if(leap())d1=29;elsed1=28;}else{y1=year;m1=month;d1=day-1;}break;}case1:{if(day==1){y1=year-1;m1=12;d1=31;}else{y1=year;m1=month;d1=day-1;}break;}}dt.setDate(y1,m1,d1);returndt;}DateTomorrow()//求明天日期{Datedt(year,month,day);inty1=dt.year,m1=dt.month,d1=dt.day;switch(month){case1:case3:case5:case7:case8:case10:{if(day==31){y1=year;m1=month+1;d1=1;}else{y1=year;m1=month;d1=day+1;}break;}case4:case6:case9:case11:{if(day==30){y1=year;m1=month+1;d1=1;}else{y1=year;m1=month;d1=day+1;}break;}case2:{if((leap()&&day==29)||(!leap()&&day==28)){y1=year;m1=month+1;d1=1;}else{y1=year;m1=month;d1=day+1;}break;}case12:{if(day==31){y1=year+1;m1=1;d1=1;}else{y1=year;m1=month;d1=day+1;}break;}}dt.setDate(y1,m1,d1);returndt;}};//data類結(jié)束intmain(){Datedate1;inty,m,d,tr=1;while(tr){cout<<"\t請(qǐng)輸入當(dāng)天日期"<<endl;cout<<"年:";cin>>y;cout<<"月:";cin>>m;cout<<"日:";cin>>d;date1.setDate(y,m,d);if(date1.isRight()){cout<<"當(dāng)日日期";date1.showDate();cout<<"明日日期";date1.Tomorrow().showDate();cout<<"昨日日期";date1.Yesterday().showDate();}cout<<"繼續(xù)下一次測(cè)試(1)或者結(jié)束(2)"<<endl;cin>>tr;if(tr!=1)break;}return0;}(五)指針與引用實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、 讀程序?qū)懡Y(jié)果;2、 設(shè)有一個(gè)整型數(shù)組A,有10個(gè)元素,輸出各個(gè)元素,要求使用數(shù)組名和指針運(yùn)算來(lái)實(shí)現(xiàn)。3、 設(shè)計(jì)一個(gè)函數(shù),以參數(shù)方式輸入一個(gè)字符串,返回該字符串的長(zhǎng)度。#include<iostream.h>intmystrlen(char*str){ intcnt=0; while((cnt++,*str++)); returncnt-1;}intmain(){ charstr[100]; intlength; cout<<"輸入字符串:"<<endl; cin>>str; length=mystrlen(str); cout<<str<<"長(zhǎng)度為:"<<length<<endl; return0;}4、 設(shè)計(jì)一個(gè)函數(shù),比較兩個(gè)字符串是否相同。#include<iostream.h>#include<string.h>voidmain(){ charstr1[100],str2[100]; cout<<"輸入兩個(gè)字符串(str1,str2):"<<endl; cin>>str1>>str2; intret=strcmp(str1,str2); if(ret==0) cout<<"相同"<<endl;else cout<<"不同"<<endl;}4、 設(shè)計(jì)一個(gè)函數(shù),比較兩個(gè)字符串是否相同。intmyStrCmp(char*str1,char*str2){intsl1=0,sl2=0,i;while(str1[sl1++]);while(str2[sl2++]);if(sl1!=sl2)return0;elsefor(i=0;i<sl1-1;i++)if(str1[i]!=str2[i])return0;return1;}5、 用指針和引用實(shí)現(xiàn)數(shù)的交換。#include<iostream.h>#include<string.h>voidswap1(int&a,int&b){intc;c=a;a=b;b=c;}voidswap2(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}intmain(void){intnum1,num2;cout<<"(&num1,&num2):"<<endl;cin>>num1>>num2;cout<<"(原始數(shù)據(jù):num1,num2):"<<num1<<','<<num2<<endl;swap1(num1,num2);cout<<"第一次交換:"<<num1<<','<<num2<<endl;swap2(&num1,&num2);cout<<"第二次交換:"<<num1<<','<<num2<<endl;return0;}6、 對(duì)象指針遵循一般變量指針的規(guī)則。綜合實(shí)訓(xùn)冒泡排序是一個(gè)排序程序,它將無(wú)次序的數(shù)列排成從小到大的有序數(shù)列。要求如下:(1)建成一個(gè)數(shù)組類;(2)使用指針變量指向動(dòng)態(tài)數(shù)組;(3)編寫成員函數(shù)完成排序;(4)編寫主程序,驗(yàn)證結(jié)果。(六)繼承實(shí)訓(xùn)基礎(chǔ)實(shí)訓(xùn)1、 讀程序,寫結(jié)果;2、 定義B0是虛基類,B1和B2都繼承B0,D1同時(shí)繼承B1和B2,它們都是公有派生,這些類都是同名的公有數(shù)據(jù)成員和公有函數(shù),編制主程序,生成D1的對(duì)象,通過(guò)限定詞::分別訪問(wèn)D1、B0、B1、B2的公有成員。3、 定義一個(gè)文件名類,包含文件名屬性。由文件名類派生一個(gè)表示文件的類,增加文件的頁(yè)數(shù)和文件的編號(hào)。4、 設(shè)計(jì)一個(gè)樓房基類,包含變量層數(shù)、建筑面積、建筑名稱。建立派生類表示居住樓,增加變量單元數(shù)。再建立派生類表示辦公樓,增加變量表示公司數(shù)#include<string.h>#include<iostream>usingnamespacestd;classbuilding//樓房基類{public:building(intfloor,doublearea,stringname){floors=floor;areas=area;names=name;}virtualvoidDisplay()const{/*dosomethinglikeprint*/}private:intfloors;doubleareas;stringnames;//建筑名稱};classhouse:publicbuilding{public:house(intfloor,doublearea,stringname,intdomitory):building(floor,area,name){ds=domitory;}voidDisplay()const{/*dothethingyouwanttodo*/}private:intds;};classoffice:publicbuilding//不知道你是要從building繼承還是house這從buiding繼承{public:office(intfloor,doublearea,stringname,intCompanySize):building(floor,area,name){cs=CompanySize;}voidDisplay()const{/*printorsomething*/}private:intcs;};voidDoSmeThing(building*p){p->Display();}voidmain(){buildingBd(5,60,"paradise");houseHs(4,56.8,"home",5);officeOf(9,70.8,"HDD",100);DoSmeThing(&Bd);DoSmeThing(&Hs);DoSmeThing(&Of);}定義描述坐標(biāo)位置的類,由它派生出具有顯示和移動(dòng)功能的點(diǎn)類,再?gòu)狞c(diǎn)類派生出圓類,求出圓的周長(zhǎng)和面積。circle_header.h#ifndefCIRCLE_H#defineCIRCLE_H#include<iostream>#include<math.h>usingnamespacestd;#definePI3.1416classLocation{public:Location(floatxx=0,floatyy=0){X=xx;Y=yy;}floatGetX(){returnX;}floatGetY(){returnY;}voidSetX(floatxx){X=xx;}voidSetY(floatyy){Y=yy;}private:floatX;floatY;};classPoint:publicLocation{public:voidMove(floatxx,floatyy){SetX(xx);SetY(yy);}voidDisplay(){cout<<"Thelocationis"<<"x="<<GetX()<<","<<"y="<<GetY();}private:LocationPointLocation;};classCircle:publicPoint{public:Circle(Location¢re,Point&circlePoint){CirclePoint=circlePoint;Centre=centre;}floatGirth(){return2*PI*Radius();}floatAcreage(){returnPI*Radius()*Radius();}private:LocationCentre;PointCirclePoint;floatRadius(){returnsqrt((CirclePoint.GetX()-Centre.GetX())*(CirclePoint.GetX()-Centre.GetX())+(CirclePoint.GetY()-Centre.GetY())*(CirclePoint.GetY()-Centre.GetY()));}};#endiffile.cpp#include"circle_header.h"voidmain(){Locationcentre(1,2);Pointpoint;point.Move(4,5);Circlecircle(centre,point);cout<<circle.Acreage()<<""<<circle.Girth()<<endl;}綜合實(shí)訓(xùn)人員類的繼承實(shí)訓(xùn);(設(shè)計(jì)基類人員類,數(shù)據(jù)成員為姓名和身份號(hào),成員函數(shù)有輸入數(shù)據(jù)和顯示數(shù)據(jù);派生學(xué)生類,數(shù)據(jù)成員包括電話號(hào)碼和C++成績(jī),成員函數(shù)有輸入數(shù)據(jù)和顯示數(shù)據(jù);設(shè)計(jì)學(xué)生地址類,數(shù)據(jù)成員包括地址和年齡,成員函數(shù)輸入數(shù)據(jù)和顯示數(shù)據(jù);由學(xué)生類和地址類派生學(xué)生成績(jī)類,數(shù)據(jù)成員數(shù)學(xué)成績(jī)和英語(yǔ)成績(jī),成員函數(shù)輸入數(shù)據(jù)和顯示數(shù)據(jù);職員類繼承人員類,沒(méi)有任何成員。)要求如下:(1)設(shè)計(jì)人員類;(2)設(shè)計(jì)地址類;(3)由人員類派生學(xué)生類;(4)由人員類派生職員類;(5)由學(xué)生類和地址類派生出學(xué)生成績(jī)類;(6)編制主程序,驗(yàn)證結(jié)果。(七)靜態(tài)成員和友元實(shí)訓(xùn)#include<iostream>#include<string>usingnamespacestd;classPerson{private:stringname;stringid;public:voidinput(stringname,stringid){this->name=name;this->id=id;}voidprint(){cout<<"姓名:"<<name<<endl;cout<<"身份證號(hào):"<<id<<endl;}};classAddress{private:stringadd;intage;public:voidinput(stringadd,intage){this->add=add;this->age=age;}voidprint(){cout<<"住址:"<<add<<endl;cout<<"年齡:"<<age<<endl;}};classStudent:publicPerson{private:stringphone_num;intgrade_C;public:voidinput(stringname,stringid,stringphone_num,intgrade_C){Person::input(name,id);this->phone_num=phone_num;this->grade_C=grade_C;}voidprint(){Person::print();cout<<"電話:"<<phone_num<<endl;cout<<"C++成績(jī):"<<grade_C<<endl;}};classScore:publicStudent,publicAddress{private:intgrade_Math;intgrade_English;public:voidinput(stringname,stringid,stringadd,intage,stringphone_num,intgrade_C,intgrade_Math,intgrade_English){Student::input(name,id,phone_num,grade_C);Address::input(add,age);this->grade_Math=grade_Math;this->grade_English=grade_English;}voidprint(){Student::print();cout<<"數(shù)學(xué)成績(jī):"<<grade_Math<<endl;cout<<"英語(yǔ)成績(jī):"<<grade_English<<endl;Address::print();}};classEmployee:publicPerson{};intmain(){Scorec;Employeee;c.input("劉楊","2002001","重慶",20,"87935114",97,88,56);e.input("麻婷","123456");cout<<"\n學(xué)生信息\n";c.print();cout<<"\n職員信息\n";e.print();return0;}基礎(chǔ)實(shí)訓(xùn)1、 定義一個(gè)工資類,包含一個(gè)保護(hù)數(shù)據(jù)成員money表示工資,一個(gè)靜態(tài)數(shù)據(jù)成員sds表示個(gè)人所得稅占工資的比例,一個(gè)靜態(tài)成員函數(shù)modSDS更改sds。#include<string.h>#include<stdio.h>classPayroll{private:doublemoney;doubletotal;public:inttime;//假設(shè)為整數(shù)intGetTime(){do{printf("inputtime:");scanf("%d",&time);}while(time<0&&time>60);money=100;return0;}intGetTotalMoney(){return(total=time*money);}voidPrint(){print

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論