實驗五-模板與異常處理_第1頁
實驗五-模板與異常處理_第2頁
實驗五-模板與異常處理_第3頁
實驗五-模板與異常處理_第4頁
實驗五-模板與異常處理_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

皖西學院信息工程學院

SchoolofInformationandEngineering,WestAnhuiUniversity

《面向對象方法與C++程序設計》

實驗報告

實驗五模板與異常處理(2學時)

學號:2012013854姓名:柯冬生班級:計科1202班成績:

實驗名稱:模板與異常處理實驗地點:綜合樓207

所使用的工具軟件及環(huán)境:MierosoftVisualC++6.0

一、實驗目的:

(1)正確理解模板的概念.

(2)掌握函數模板和類模板的聲明和使用方法。

(3)學習簡單的異常處理方法。

二、實驗內容:

I。分析并調試下列程序,寫出運行結果并分析原因。

(1)

//test6_1_1。epp

#inc1ude<iostream>

usingnamespacestd;

template<lypenameT)

Tmax(Tx,Ty)

{retumx>y?x:y;

}

intmax(inta,intb)

{returna>b?a:b;

)

doublemax(doublea,doubleb)

{returna>h?a:h:

)

intmain()

{cout((“max('3','7')is”〈(max('3','7')<<end1;

return0;

)

(2)

//test6_1_2oepp

#inc1ude<iostream>

usingnamespace$td;

in(max(inta,intb)

{returna)b?a:b;

)

doublemax(doublea,doub1eb)

{returna>b?a:b;

I

intmain()

{cout<V"max('3',7)is44(〈max('3','7')Wend1;

relurn0;

代碼:

(1)

#include<iostrcam>

usingnamesPacestd;

temp1ate<typenameT)

Tmax(Tx,Ty)

{returnx)y?x:y;}

intniax(inta,intb)

{returna)b?a:b:)

doublcmax(doublca,doubleb)

{returna>b?a:b;}

intmain()

1

cout<<,,max(,3\'7,)is"<<max('3',’7')(<endl;

return0;

}

(2)

#includc(iostrcam}

usingnaniespacestd;

intmax(inta,intb)

{returna>b?a:b;}

doublemax(doub1ea,doubleb)

{returna>b?a:b;}

intmain()

{

coutvV'max(3,7)is”((max('3',7)?endl;

return0;

)

實驗結果:

(1)

c\*C:\DOCUIEMTSANDSETTIMGS\T0I\^?\C++\5\Debug\l(1).exew

Pressanykeytocontinue

定義了?個求最大值的函數模板,定義了?個求整型最大值的函數以及?個求雙精度型最大值

的函數,這兩個同名非模板函數與函數模板重載?!?'和T均是字符型,找小到與之匹配的函數,所

以調用了函數模板,使其實例化,由'T'型轉變?yōu)椤甤har,型。

(2)

c\-C:\DOCUIEITSAHDSETTINGS\TO■'桌面\C++\6\Debug\1(2).exew

kax<,3*,,7,>is55

Pressanykeytocontinue

定義了一個求整型最大值的函數以及一個求雙精度型最大值的函數,這兩個同名函數重載3'

和7'均是字符型,找不到與之匹配的函數,所以得不出正確結果。

2。編寫一個求任意類型數組中最大元素和最小元素的程序,要求將求最大元素和最小元素的函數設

計成函數模板.

代碼:

#inc1ude(iostream>

usingnamespacestd:

Iemplate<typenameT>

Tmax(T*x,intn)

(

Tmax=x[0];

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

max=max)x[i]?max:x[i];

returnmax;

)

template(typenameT)

Tmin(T*x,intn)

{Tmin=x[0];

for(inti=1;i(n;i4"+)

min=min<x[i]?min:xLi];

returnmin;

)

intmain()

{inta[5]={I,4,2,3,5};

doublebf5]={l.l,4.4,2.2,3.3,5.5);

cout<〈”數組a[5]={l,4,2,3,5}的最大值is:M<<max[a,5)(<endl;

cout(〈"數組a[5]={1,4,2,3,5}的最小值is:"<<min(a,5)?end1;

cout<(”數組b[5]={1.1,4。4,2.2,3。3,5。5}的最大值is:"〈(max(b,5)(<endl:

coui數組b[5]={1。1,4o4,2.2,3。3,5.5}的最小值is:“<<min(b,5)((endl;

return0;

}

實驗結果:

*C:\Docu>entsandSettings\Io■'桌面\c++\5\Debug\2.exe

數組^(?】?《二4工35〉的蜃+值1S:5

數組.[51?a.4.2.3.5)的最小值1

數組b[5]=a.1,4.4,2.2,3.3,5.5)的蜃大值is:5.5

數組1)[5]=<1.1.4?4,2?2,3.3,5.5)的最小植1$:1.1

Preos&nykeytocontinue

3.編寫一個程序,使用類模板為數組元素進行排序、倒置、查找和求和。

【提示】

設計一個類模板

ternplate<c1assType>

c1assArray{

?0?

);

具有對?數組元素進行排序、倒置、查找和求和功能,然后產生類型實參分別為int型和double型的

兩個模板類,分別對整型數組與雙精度數組完成所要求的操作.

代碼:

#include<iostrcam)

usingnamespacestd;

template<classType)

classArrayI{

publie:

Array1(Type*a,intlength)

{len=length;

for(inti=0;i(len;i++)

Array[i]=a[i];

}

//template<c1assType>

voidsort()//排序

(

Typea[10],temp;

for(intn=0:n〈len;n++)

{

a[n]=Array[n];

)

for(intj=O;j<1en;j++)

(

for(inti=0;i<len-1—j;i++)

if(a[i]>a[i+1])

{

temp=a[i];

a[i]=a[i+l];

a[i+1]=temp;

)

}

cout<(M數組排序"VVendl;

for(intm=0;m<len;m++)

(

cout<<a[m]

}

cout(<end1;

//template(classType)

voidinvert()〃倒置

(

Typeinvert[10]:

for(intj=0:j<Ien;j++)

invert[jl=Array[len-1—j];

)

cout<<"數組倒置"<<endi;

fbr(intm=0;m〈len:m++)

{cout<<invert[m]〈v””}

cout((end1;

)

voidseek(Typey)//查找

(

inti=0;

for(intj=O;j<len:j++)

(

if(Array[j]==y)

{cout〈〈”查找成功!”在第"位置”《cndl:

i=j;

I

//break;

)

if(i==0)

cout(V"查找不成功!"?end1;

)

//template<classType>

voidsum()〃求和

(

Typesum=Array[0];

for(intj=l;j(len;j+4-)

sum=sum+Array[j];

cout〈v”數組之和:“〈<sutn<<endl;

1

private:

in11en;

TypeArray[10];

};

intmain()

(

intc[5]={1,8,2,7,9};

doubled[4]={3。1,8.9,56。9,2.9);

Arrayl〈ini〉a(c?5);

Array1(double>b(d,4);

cout?"***int型數組***"V<endl;

cout〈〈”原函數為:"V<endl:

for(inti=0;i<5;i++)

(

cout<<c[i]<<"";

}

cout(<end1;

a.sort();

a.invert();

a。seek(3):

a.suni();

cout〈〈”***double型數組****<<endl;

cout〈V”原函數為:"<<endl;

fbr(intj=O;j<4;j++)

{

cout<<d[j]〈〈””;

}

cout(<cndl;

bosor(();

boinvert();

b.seek(8。9);

b.sum();

return0:

)

實驗結果:

c\*C:\DocuBentsandSettings'To?'桌面\c++\5\Debug\3.exe”

型數組**?

原函致為:

18279

數組排序

12789

數組倒置

97281

查找不成功!

數組之和:27

uble型數組***

原函數為:

3.18.956.92.9

數組排序

2.93.18.956.9

數組但置

2.956.98.93.1

亭其成功I在第2位置

數組之和:71.8

Pressanykeytocontinue

4。編寫一個程序,求輸入數的平方根。設置異常處理,對輸入負數的情況給出提示。

代碼:A#inc1ude<iostream>

#include<cmath)

usingnamespacestd;

voidmain()

doublenumber;

doubleresult:

cout<〈”請輸入一個數:

cin?number;

try

(

if(numbcr<0)

{

throwexception("輸入的數是負數!");

)

result=sqrt(number);

cout<v"平方根是:"(<resuIt(<end1;

I

catch(exceptione)

{

cout<<e.what()<<endl;

}

實驗結果:

c\<C:\DOCUIEMTSANDSETTIBGS\TOI\jg0|\C++\5\Debug\4.exe

平方根是:1.73205

Pressanykeytocontinue.

|c\,(::\00(:111£片15AMDSEIIINGS'TO?'桌面\CH\5\Debug\4.exe

請輸入一

輸入的數是負數?

Pressanykeytocontinue

三、實驗總結:

1.在使用非模板函數時要注意輸入的語句應符合函數的類型,或者定義?個函數模板使其實例化,

否則無法得出正確結論。

2.對異常處理有了?些理解,但不知道異常處理(如第4題)可以循環(huán)嗎?

3.對用類模板實現線性表小是很懂。

任課教師簽名:

實驗六C++的流類庫與輸入輸出(2學時)

學號:2012013854姓名:柯冬生班級:計科1202班成績:

實驗名稱:C++的流類庫與輸入輸出實驗地點:綜合樓207

所使用的工具軟件及環(huán)境:MicrosoftVisua1C++6。0

一、實驗目的:

(1)掌握C++格式化的輸入輸出方法。

(2)掌握重載運算符和”>〉”的方法.

(3)掌握磁盤文件的輸入輸出方法。

二、實驗內容:

1。下面給出的tesl7_l」。cpp程序用于打印九九乘法表,但程序中存在錯誤。請上機調試,使

得此程序運行后,能夠輸出如卜所示的九九乘法表。

*123456789

11

224

3369

4481216

5510152025

661218243036

77142128354249

8816243240485664

991827364554637281

//test7—1locpp

#inelude(iostream>

ttinclude<iomanip>

usingnamespacestd;

intmain()

inti,j;

cout〈<“*";

for(i=1;i<=9;i++)

cout<<i<C"

cout(<end1;

for(i=l;i<=9;i++)

{cout?i;

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

Cout<<i*j;

)

return0;

}

代碼:

#include(iostream;

#inc1ude<iomanip>

usingnamespacestd;

intmain()

inti,j;

?cout<<setiosflags(ios::right)<<setw(4)〈V";

?for(i=1;i〈=9;i++)

KOUtV(setiosf1ags(ios::right)<<setw(4)<<i;

cout<(endl;

for(i=l:i〈=9:i++)

6(

??cout<<setiosf1ags(ios::right)<<setw(4)<〈i;

。for(j=l;j<=i;j++)

。cout<(setiosflags(ios::right)<<sotw(4)〈<i*j;

<?cout〈<endl;

°)

?return0;

實驗結果:

?'C:\Users\Administrator\Desktop\C+4-\Debug\test7_l_l.exe"

*123456789

11

224

3369

4481216

5510152025

661218243036

77142128354249

8816243240485664

991827364554637281

Pressanykeytocontinue

2.下面的程序用于統(tǒng)計文件xyz。txt中的字符個數,請?zhí)羁胀瓿沙绦颉?/p>

//test7_2_1ocpp

#inc1ude(iostream>

#include<fstrcam)

usingnamespacestd;

intmain()

{charch;

inti=0;

ifstreamfile;

file.open("xyz。txtv,ios::in);

if(①)

(

,,

coutV<"xyz0txtcannotopen<<end1;

abort();

)

While(Ifileoeof())

(

i++;

}

cout〈v"文件字符個數:"(<i?endl;

return0;

}

代碼:

#incIude<iostrea:n>

#inchide〈fstream>

usingnamespaccstd;

intmain()

(

charch;

?inti=0;

ifstreamfile;

。file。open("xyz。txt'\ios::in);

Af(!file)

{

cout(<"xyzotxtcannotopen”<<endl;

?aborl();

)

while(!file。eof())

(

。file.get(ch);

“f((ch<=l22&&ch>=97)I|(ch<=90&&ch>=65))

i++:

coutv<"文件字符個數:"<<i<<endl;

file.close();

?return0;

)

實驗結果:

**C:\Users\Administrator\Desktop

二|xyz.txt-記事本

文件(F)編輯(/格式查看(V)幫助(H)文件字符個數:26

Pressanykeytocontinue

Iqwertyuioplkjhgfdsainnbvcxzl234567890

3.重載運算符“Vv”和“>>”,使其能夠輸入一件商品的信息和輸出這件商品的信息.商品的信息由

編號、商品名和價格.假如商品類Merchandise的框架如下:

classmerchandise{

public:

Merchandiss();

?Merchandiss();

friendistream&operator)>(istream&in,Merchandiss&s);

friendostream&operator<<(ostream&out,Merchandiss&s);

private:

intno;

char*name:

doubleprice;

};

要求實現該類,并編寫以下的main函數對該類進行操作。

intmain()

{Merchandisemcr;

cin>>mer;

cout?mcr;

return0:

}

代碼:

#include<iostream。h>

classMerchandise

(

publie:

Merchandise();

。?Merchandise();

^friendistrcam&opcrator)>(istream&in,Mcrchandisc&s);

?friendostream&operator<<(ostream&out,Merchandise&s);

private:

intno;

char*name;

力oubleprice;

};

Merchandisc::Mcrchandisc()

{

0no=0;

name=newchar_20];

price=0;

)

Merchandise::?Merchandise()

(

^deletename;

)

istream&operator>>(istream&in,Mer:handise&s)

{

scoui〈(“inpu11heMerchandise's:M(<endl;

cout〈〈"no:

in)>s.no:

acout<("name:";

in>>s.name;

?cout?wprice:";

。in>>s.price;

returnin;

)

ostream&operator(<(ostream&out,Merchandise&s)

{

out<<"Merchandise:"〈(endl;

out(("no:'*<(s.no<<end1;

g11tV("name:"Vvs.namevVend1;

out?"price:"<<s0price<<end1;

returnout;

)

intmain()

(

,Merchandisemer;

℃in>〉mer;

cout<<mer;

return0;

)

實驗結果:

r

?"C:\Users\Administrator\Desktop\C4-+\Debug\Merchandis(

inputtheMerchandisers:

no:2012

name:we1Ihor

price:98.5

Merchandise:

no:2012

Henne:viellliur

price:98.5

Pressanykeytocontinue

4。編寫一個程序,將兩個文本文件連接成一個文件,然后將此文件中所有小寫字母轉換成大寫字母,

并打印出來.

代碼:

#inc1ude(iostream>

#incIude<fstream>

usingnamespacestd;

intmain()

(

charch;

itstreamfilel;

ifstrearnfi1e2;

。0fstreamfile3;

4i1e1.open("xyz。txt",ios::in);

file2oopen("qwe。txt”,ios::in);

4ile3.open("asd.tx:out);

if(!filelI|!fi1e2)

。cout<<"xyz.txtcannotopenw〈〈endI;

abort();

)

file1oseekg(0);

4iIe2.seekg(0);

while(!fi1e1oeof()i

。(

fiIel.get(ch);

if(ch<=122&&ch>=97)

3ch=ch-32;

。file3oput(ch);

。cout<<ch;

)

while(!file2.eof())

°{

file2.get(ch);

-if(Ch<=122&&ch)=97)

。ch=ch-32;

。file3oput(ch);

ocoutv(ch;

}

。file1.close();

fi1e2oc1ose();

4ile3.close();

<>return0;

)

實驗結果:

asd.txt-記事本T]qwe.txt-記事本

文件(F)編輯任)1^C(O)>^(V)幫助(H)文件(F)編輯(E)中

>ERTYUIOPLKJHGFDSAMNBVCXZ12345678900FLGGHKGHIIFLGGHKGHI

|xyz.txt-記事本

文件(F)輻(E)做(Of?(V)幫助(H)

qwertyuioplkjhgfdsamnbvcxzl234567890|

**C:\Users\Administrator\Desktop\C-h+\Debug\outtxt.exe"oI

?WERT¥UIOPLKJHGFDSAMNBUCXZ12345678900FLGGHKGHIIPressanykeytocontinue

三、實驗總結:

通過這次試驗,我學習掌握了C++格式化的輸入輸出方法,掌握了重載運算符“v(”和“力”

的方法,掌握了磁盤文件的輸入輸出方法,能夠更加熟悉地運用Visua1C++6.0的系統(tǒng).

任課教

師簽名:

實驗七VVindows程序框架及MFC編程(2學時)

學號:2012013854姓名:柯冬生班級:計科1202班成績:

實驗名稱:Windows程序框架及MFC編程實驗地點:綜合樓207

所使用的工具軟件及環(huán)境:MicrosoftVisualC++6.0

一、實驗目的:

1.學習windows基于消息事件驅動方式的程療設計

2.學習一個完整的窗口編制的四個操作步驟

3.了解Windows提供的窗口類

4.了解回調函數

5.學習MFC對話框和單文檔編程的一般方法

5.學習使用MSDN幫助解決問題

二、實驗內容:

1.寫一個Win32Application應用程序,要求當點擊關閉時,彈出對話框確定關閉,否則不關閉。

運行初始時,在文檔窗口顯示“Hello”。

代碼:

//---------初始化

BOOLCTestDlg::OnlnitDia1og()

(

?Dialog::0nInitDialogi);

。//Add"About.o."menuitemtosystemmenu。

?//IDM_ABOUTB0Xmustbeinthesystemcommandrange。

&ASSERT((IDM_ABOUTBOX&OxFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<OxF000);

CMenu*pSysMenu=GetsystemMenu(FALSE);

if(pSysMenu!=NULL)

(

CStringstrAboutMenu;

oStrAboutMenu.LoadString(IDS_ABOUTBOX);

。if(IstrAboutMenuoIsEmpty())

(

pSysMenu->AppendMenu(MF_SEPARATOR);

。pSysMenu-)AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

00}

)

"/Settheiconforthisdialog.Theframeworkdoesthisautomatic

ally

whentheapplication*smainwindowisnotadia1og

oSetIcon(m_hIcon,TRUE);。IISetbigicon

SetIcon(m_hlcon,FALSE);setsmallicon

。//TODO:Addextrainitializationhere

SetDIgItemText(ICCEDIT1,"hello");

returnTRUE;//returnTRUEun1essyousetthefocustoacontrol

)

//-------一一提示對話框確定是否關閉

voidCTestDlg::OnOK()

(

//TODO:Addextrava1idationhere

Antflag:

.flag=AfxMessageBox("是否確認關閉?",100,10);

if(flag!=6)

^return:

CDia1og::OnOK();

)

2.練習使用VC++的AppWizard(應用程序向導)生成一個最簡單的基于MFC單文檔或者基于

對話框的應用程序.

提示:

[單擊File菜單中的New選項,顯示New(新建)對話框.在Project(項目)選項卡中,選擇“Win32

Application"。在Location(位置)文本框中指定?個路徑,在PrejectName(項目名稱)文本框中

為項目輸入一個名字,單擊OK(確定)。

選擇菜單命令Project|AddtoProject|New,彈出New對話框。

在new對話框的Files選項卡中選擇C++SourceFiIe,并填入文件名稱,單擊OK按鈕,完成新建

C++源程序文件。

II.創(chuàng)建一個項目,單擊File菜單中的New選項,顯示New(新建)對話框。在Pr。ject(項目)

選項卡中,選擇“MFCApoWizard(exe)M.在Location(位置)文本框中指定一個路徑,在P

rejectName(項目名稱)文本框中為項目輸入一個名字,單擊0K(確定)。

III。在出現的對話框中選擇Sing1eDocument或者dialogbased,單擊Next(下一步)

按鈕。以后每步接受缺省,單擊Finish(完成)按鈕,AppWizard)顯示一個摘要表,其中列出了所選

的項目特征。單擊OK(確定)創(chuàng)建項目.

IVo編譯、運行。查看各個生成的cpp文件,分析生成的,了解代碼的執(zhí)行過程。

代碼:

---------確定按鈕

voidCTestDIg::OnButton1()

//TODO:Addyourcontro1notificationhandlercodehere

oCStringstr="您選擇的商品有:\n”;

if(((CButton*)GetDIgltem(IDC_CHECK1))->GetChe

ck()==BST_CHECKED)

?str=str+”青椒肉絲"+"\n";

oif(<(CButton*)GetDlgltem(IDC_CHECK2))-)GetCheck()==BST_CHECKED)

str=str+”魚香肉絲"+”\n”;

if(<(CButton*)GetDlgItem(IDC_CHECK3))—>GetCheck()==BST_CHECKED)

-str=str+"圓蔥大腸"+“\n”;

if(((CButton*)GetD1gltem(IDC_CHECK4))—>GetCheck()==BST_CHEC

KED)

。str=str+”茂林小炒“+”\n”;

oif(<(CButton*)GetDIgItem(IDC_CHECK5))—>GetCheckf)==BST_CHECKED)

str=str+”韭菜雞蛋"+"\n”;

if(((CButton*)GetDlgltem(IDC_CHECK6))->GetCheek()==BSTCHECKED)

-str=str+”西紅柿雞蛋湯"+"\n";

intflag;

flag=AfxMessageBox(str,100,10);

if(flag!=6)

。return;

else

°(

MessageBox("訂購成功","訂餐系統(tǒng)",0);

。}

^CDialog::OnOK();

}

//--------一一--一關閉按鈕

voidCTestDlg::OnOK()

(

//TODO:Addextravalidationhere

dntflag;

flag=AfxMessageBox("是否確認關閉?”,100,10);

if(flag!=6)

。return;

oCDialog::OnOK();

)

實驗結果:

編訂餐神Ig

確定I

關閉I

彳青椒肉絲

“魚香肉絲

“圓蔥大腸

廠茂林小炒

廠韭莢雞蛋

r西紅柿雞蛋湯

xfrrauali(1atinnhprp

言實驗&或

通過這次試驗,我學習了windows基于消息事件驅動方式的程序設計,一個完整的窗口編制

的四個操作步驟,了解了Windows提供的窗口類,了解回調函數,學習到MFC對話框和單文檔編程

的一般方法,學習使用MSDN幫助解決問題.

課教師簽名:

實驗八數據庫編程(2學時)

學號:2012013854姓名:柯冬生班級:計科1202班成績:

實驗名稱:數據庫編程實驗地點:綜合樓207

所使用的工具軟件及環(huán)境:MicrosoftVisua1C++6。0

一、實驗目的:

1.創(chuàng)建數據庫unicom.mdb;

2.在視圖類,DAO數據庫View,cpp”文件前面的文件中導入另一個類CSludenlInfoDlg,通過#inc

1ude”StudentlnfoD1g”;

3.控件變量的設置;

4.數據記錄的顯示。

二、實驗內容:

(1)打開MicrosoftAccess2003,創(chuàng)建數據庫unicom。mdb(該數據庫包含一個表unico

m,表的結構和表的內容如表6。20所示)。

(2)由于DAO要求與MicrosOftAccess97數據庫進行操作,因此必須將unicon】。mdb換

成MicrosoftAccess97文件格式,轉換后的數據庫文件名為unicomn,并存放在“桌面”上。

轉換步驟:打開用MicrosoftAcccss2003創(chuàng)建的數據庫unicorn?mdb并選中unicom

表,選擇“工具”一“數據庫使用工具”“轉換數據庫”一“轉為Access97文件格式”命令,在出現的

對話框中的“文件名(N)”處重起文件名,如unicomn.保存并單擊“確定”按鈕,至此該數據庫就

轉換成MicrosoflAccess97文件格式了。

注意:當打開轉換好的unicomn數據庫時,在出現的對話框中,選中“打開數據庫”單擊“確定”再單云“打開”今

確定分雙擊數據表的名字,該數據庫就打開了。

(3)創(chuàng)建一個單文檔應用程序,名為:DAO數據庫。在“MFCAppwizard-step2of6”對

話框中選擇Databaseviewwithoutfilesupport(查看數據庫不使用文件支持)選項,單擊D

ataSource按鈕,出現圖6.55所示的對話框.選擇DAO單選按鈕,單擊:J按鈕出現如圖6.56所示

的對話框,選擇unicomn,單擊“打開"按鈕,發(fā)現⑤DAO:處已有C:DocumentsandSettings\Adm

inistrator\桌面\unicomn。mdb,如圖6。57所示.單擊OK按鈕,出現如圖6.58所示的對話框,

從中選中unicom數據表,單擊OK按鈕回到“MFCAppwizard-step2of6”對話框,單擊Fini

sh按鈕完成操作。

(4)打開對話框資源編銀器IDD_DAO_FORM,在對話框上添加如圖6.59布局,如表6。23

所示的控件.

(5)按Ctrl+W組合鍵,在出現的MFCClassWizard對話框中打開MemberVariables

項卡,為5個編輯框分別添加5個成員變量,如圖6。60所示。

圖6.55選擇數據源HI6.56選擇轉換后的unicomn數據庫

圖6。57選擇了unicornn數據庫圖6.58選擇unicoin數據表

—加記錄⑷|

修改記錄(外|

吟抹(》|

對話框上添加的控件圖6。60添加成員變量

表6。23添加控件列表

控件ID標題

GroupBoxIDC.STATIC學生信息

StaticTextIDC_STATIC學號

EditBoxIDC_EDIT_ID—

StaticTextIDC_STATIC姓名

EditBoxIDC_EDIT_NAME

StaticTextIDC_STATIC性別

EditBoxIDC_EDIT_SEX■一

SiaticTextIDC_STATIC年齡

EditBoxIDC_EDIT_AGE—

StaticTextIDC_STATIC家庭住址

EditBoxIDC_ED1T_ADDRESS—

ButtonIDC_BUTTON_ADD添加記錄(&A)

Bu11onIDC_BUTTON_EDIT修改記錄(&U)

ButtonIDC_BUTTON_DELETE刪除記錄(&D)

(6)向項日中添加一個對話框資源,將IDD_DAO_FORM

對話框上的“學生信息”組框以及“學生信息”組框內的各個控件發(fā)

制到此對話框(IDD_DIALOG1)上,如圖6。61所示.

復制方法是:選中IDD_DAO_FORM對話框上的組框及組框內的各個控件,

鼠標對準選中處右鍵單擊,在彈出的快捷菜單中選擇copy命令,然后雙擊項目

工作區(qū)中的IDD_DIAL0G1選項,出現IDD_DIALOGI對話框,鼠標對

準對話框右鍵單擊并選擇Paste命令,就把IDD_DAO_FORM對話框上的

控件復制到IDD_DIAL0G1對話框hT.

說明:復制到IDD_DIALOG1對話框上的控件ID與原對話框圖6.61復制到[DD_DIALOG1

IDDDAOFORM上的控件ID完全相同.對話框上的控件

(7)為添加的IDD_DIALOG1對話框資源建類,類名為:CStudentInfoDlg,并用Clas

sWizard為CStudentlnfoDIg類添加5個如表6.24所示的編輯框的成員變量。

表6.24添加成員變量列表

類名ID成員變量名成員變量類型

CStudcntlnfoDlgIDC_EDIT_IDm_idshorl

CStudentlnfoDIgIDC_EDIT_NAMEin_nameCString

CStudentlnfoD1gIDC_EDIT_SEXm_sexCString

CStudcntInfoD1gIDC_EDIT_AGEm_ageshort

IDC_EDIT

CStudenilnfoDigni_addressCString

一ADDRESS

(8)在視圖類“DAO數據庫View.cpp”文件前面的文件包含處寫:

甘include"Student■工nf。Dlg.h"

在視圖類“DAO數據庫View”為圖6.59中的“添加記錄”(IDC_BUTTON_ADD)、“修改

溫馨提示

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

最新文檔

評論

0/150

提交評論