地大2013C++課程實(shí)習(xí)評(píng)測(cè)報(bào)告_第1頁(yè)
地大2013C++課程實(shí)習(xí)評(píng)測(cè)報(bào)告_第2頁(yè)
地大2013C++課程實(shí)習(xí)評(píng)測(cè)報(bào)告_第3頁(yè)
已閱讀5頁(yè),還剩25頁(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)介

1、計(jì)算機(jī)高級(jí)語(yǔ)言課程設(shè)計(jì)報(bào)告姓名:學(xué)號(hào):學(xué)院:專業(yè):目錄1實(shí)習(xí)題目一32、實(shí)習(xí)題目二53、實(shí)習(xí)題目三94、實(shí)習(xí)題目四135、實(shí)習(xí)題目五176、實(shí)習(xí)題目六23總結(jié)36實(shí)習(xí)題目一【需求規(guī)格說(shuō)明】1、有1、2、3、4、5、6六個(gè)數(shù),能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?問(wèn)題描述及分析:這道題是數(shù)學(xué)中的排列組合問(wèn)題,可以利用三個(gè)for循環(huán)來(lái)解決。【算法設(shè)計(jì)】<1)設(shè)計(jì)思想:利用for循環(huán),使輸出三位數(shù)的百位、十位和個(gè)位都小于7,并用判斷語(yǔ)句限定個(gè)、十、百位均不相同,然后輸出百位數(shù)*100+十位數(shù)*10+個(gè)位數(shù) 的結(jié)果。而求輸出數(shù)字的個(gè)數(shù),只要從0開(kāi)始,每次判斷通過(guò)就加1,一直到循環(huán)結(jié)

2、束即可。最后利用MFC,將程序結(jié)果呈現(xiàn)出來(lái)。<2) 設(shè)計(jì)表示:本程序結(jié)構(gòu)較為簡(jiǎn)單,需注意細(xì)節(jié)。有三個(gè)大循環(huán),for(i=1。i<7。i+> for(j=1。j<7。j+>for(k=1。k<7。k+>,用 i!=j&&j!=k&&k!=i限制 i j k,輸出結(jié)果 100i+10j+k然后再運(yùn)用到 MFC中保存在對(duì)話框的 cpp源文件里?!菊{(diào)試報(bào)告】開(kāi)始不知道怎么用 MFC文本框,就直接用 cpp運(yùn)行保存。后來(lái)學(xué)習(xí)了解了MFC對(duì)話框,就對(duì)原程序稍加更改,用MFC對(duì)話框運(yùn)行程序。Con figuratio n: 1 - W

3、in 32 Debug1.exe - 0 error(s>, 0 warnin g(s> 【附錄】(1)源程序清單#i nclude "stdafx.h"#i nclude "1.h"#i nclude "1Dlg.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_實(shí)習(xí)題目二【需求規(guī)格說(shuō)明】5、文本文件中有一組整數(shù),以空格分隔,要求排序后輸出到另一個(gè)文件中。 問(wèn)題描述及分析:此題需要利用到輸入輸出流以及排序

4、。【算法設(shè)計(jì)】 <1)設(shè)計(jì)思想: 在.txt的文檔中輸入一組數(shù)字,以空格分開(kāi),保存后能在C+中將程序打開(kāi)并讀出這一列的數(shù)據(jù)在另一個(gè)txt文件中輸出。(2)設(shè)計(jì)表示: 用輸出輸入流打開(kāi)輸入文件并用getli ne函數(shù)讀取文檔文本中的數(shù)字。【算法設(shè)計(jì)】<1)設(shè)計(jì)思想:用輸入輸出流建立對(duì)象,然后調(diào)用這個(gè)對(duì)象的open, close函數(shù)來(lái)打開(kāi)和關(guān)閉文件。當(dāng)打開(kāi)文件后再用冒泡法排序文件里的整數(shù),并輸出到另一個(gè)文件中。再用MFC中的ShellExecute 函數(shù)將文本文件打開(kāi)?!菊{(diào)試報(bào)告】剛開(kāi)始輸入的數(shù)據(jù)之間只能用空格間隔,不支持換行,后來(lái)進(jìn)行了改進(jìn)。剛開(kāi)始對(duì)MFC不是很熟練的應(yīng)用,致使開(kāi)始無(wú)

5、法用MFC中的函數(shù)打開(kāi)文本文件,只能手動(dòng)打開(kāi),后來(lái)用ShellExecute改進(jìn)了。Con figurati on: 05 - Win32 Debug Compili ng.05Dlg.cppLinkin g.LINK : LNK6004: Debug/05.exe not found or not built by the last i ncreme ntal link。 performi ngfull li nk05.exe - 0 error(s>, 0 warnin g(s>【附錄】/ 05Dlg.cpp : implementation file:)veidiCM果05D

6、lg:OnButton2(>#in clude "stdafx.h"#in clude "Hst?eam in file。#inelude,加斤附尿n("1.txt">。#include "fsftamnhi"outfile。#ifdef 。丘甜匪叩©n("2.txt">。 #defi ne n。恪聘96_他 #undef TH|S_e損(s>。static charWHIS_FLEJJ =f_FILE_。 #en difif(s=' '|s='n

7、'>/打開(kāi)原文本void CMy05Dlg:O nButto n1(>+。ShellExecuteNULkS>pe n","1.txt",NULL,NULL,SW_SHOWNORMAL> infile.close(> 。/打開(kāi)處理后void后的新文本"1.txt">。CMy05D*p=OnBult 閭int j=m。 int k=pm。while(j>0&&k<pj-1> pj=pj-1。 j-。 pj=k。for(int n=1 。 n<a。n+> ou

8、tfile<<pn<<""。MessageBox("已經(jīng)處理完畢!">。(>for(int i=1 。 i<a。 i+>SljellExecute(NULL,"ope n",”2.txt",NULL,NULL,SW_SHOWNORMAL>infile>>pi。for(int m=1。m<a。m+>/對(duì)文件里的整數(shù)排序?qū)嵙?xí)題目三【需求規(guī)格說(shuō)明】6、計(jì)算正方體、球體和圓柱體的表面積和體積< 要求使用虛函數(shù))。問(wèn)題描述及分析:此題利用虛函數(shù),計(jì)算表

9、面積和體積,然后再M(fèi)FC中編?!舅惴ㄔO(shè)計(jì)】<1)設(shè)計(jì)思想:這道題主要用到類的繼承與派生、虛函數(shù)等在MFC中的應(yīng)用。首先要理解虛函數(shù),實(shí)現(xiàn)多態(tài)性,通過(guò)指向派生類的基類指針,訪問(wèn)派生類中同名覆蓋成員函數(shù)。所以將這些 基類與派生類、虛函數(shù)調(diào)用等代碼寫(xiě)在里面,然后再在對(duì)話框中對(duì)各種按鈕進(jìn)行編寫(xiě)代碼(2)設(shè)計(jì)表示:Base型的指針對(duì)象是指向派生類同名覆蓋函數(shù)的基類指針。double fun1(Shape *str)<return str>GetArea();double Fun2(Sliape *str)return str->GetUo丄派生類、基類直接的關(guān)系圖:/#i ncl

10、ude "stdafx.h"#i nclude "6.h"#i nclude "6Dlg.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE.#en difconst double Pl=3.14。class Shape /基類public:virtual double GetArea(>=0 。virtual double GetV olume(>=0 。class Cube: public Shape /

11、 正方體的類public:Cube(double a>:l(a> 。double GetArea(>return 6*l*l 。double GetV olume(>return l*l*l 。private:double l 。class Sphere:public Shape /球的類public:Sphere(double radius>:r(radius> 。double GetArea(>return 4*PI*r*r 。double GetV olume(>return 4*PI*r*r*r/3 。private:double r 。

12、class Cylinder:public Shape / 圓柱體的類public:Cylinder(double high,double radius>:h(high>,r(radius> 。 double GetArea(>return 2*PI*r*r+2*PI*r*h 。double GetV olume(>return PI*r*r*h 。private:double h。double r 。double fun1(Shape *str> / 計(jì)算表面積 return str->GetArea(> 。double fun2(Shape

13、*str> / 計(jì)算體積return str->GetVolume(> 。void CMy6_Dlg:OnButton1(>UpdateData(> 。Cube str1(m_2> 。 m_6=fun1(&str1> 。 m_9=fun2(&str1> 。Sphere str2(m_1>。 m_5=fun1(&str2> 。m_8=fun2(&str2> 。Cylinder str3(m_3,m_4> 。 m_7=fun1(&str3> 。 m_10=fun2(&str

14、3> 。UpdateData(false> 。( 2)運(yùn)行結(jié)果實(shí)習(xí)題目四【需求規(guī)格說(shuō)明】9、定義復(fù)數(shù)的類 Complex并測(cè)試其功能:(1復(fù)數(shù)由實(shí)部、虛部?jī)蓚€(gè)部分組成,在類的定義中應(yīng)包含保存這兩部分信息的內(nèi)容。(2在類中定義構(gòu)造函數(shù),使用戶能夠在構(gòu)造對(duì)象的同時(shí)為對(duì)象賦初值。(3在類中定義復(fù)數(shù)的加法、減法、乘法三個(gè)二元操作符來(lái)完成復(fù)數(shù)間的加、減、乘的功 能。(4通過(guò)重載" ”,使得Complex類的對(duì)象能夠顯示其自身信息。(5通過(guò)顯示定義一個(gè)成員函數(shù)完成對(duì)象的賦值操作,使用戶能夠?qū)omplex類的對(duì)象進(jìn)行賦值。(6編寫(xiě)一段主程序main函數(shù)),使用戶能夠通過(guò)這段主程序輸入

15、復(fù)數(shù)并進(jìn)行復(fù)數(shù)的計(jì) 算。問(wèn)題描述及分析:此題考查運(yùn)算符的重載問(wèn)題。通過(guò)類的成員函數(shù)重載+、-、*,并調(diào)運(yùn)函數(shù)進(jìn)行兩個(gè)復(fù)數(shù)間的四則運(yùn)算?!舅惴ㄔO(shè)計(jì)】1)設(shè)計(jì)思想:使用類成員函數(shù)方式重載運(yùn)算符:自定義如下形式的complex類,并通過(guò)類成員方式對(duì)該類重載雙目運(yùn)算符+、-、*來(lái)完成題目要求。編制主函數(shù),說(shuō)明類對(duì)象,而后通過(guò)類對(duì)象進(jìn) 行所定義的各種相關(guān)運(yùn)算。(2)設(shè)計(jì)表示: 在對(duì)話框的cpp源程序中使用類,用類的成員函數(shù)方式重載運(yùn)算符。complex-real: double -imag : double+complex(> : Point+complex( r : double, i : do

16、uble> : complex+ operator + ( p2 : complex> : complex +operator - (p2 : complex > : complex+ operator*(p2 : complex> : complex+ operator<< (> : complex然后對(duì)每個(gè)按鈕的代碼進(jìn)行編譯每個(gè)編輯框的成員變量:IDC BUTTON?TIDC BUTTON3IDC BUTTONSIDC EDIT1doublem 1IDC EDIT10doublem 10二IDC EDIT?doublem_2IDC EDIT3dou

17、blem 3FDC EDLMdoublefDC EDITSdoublem_5IDC EDIT6doublem_6IDC EDIT7doublem_7【調(diào)試報(bào)告】剛開(kāi)始在按鍵中定義對(duì)象時(shí),出現(xiàn)問(wèn)題,且沒(méi)有考慮到私有成員類外無(wú)法訪問(wèn),修改之后 就沒(méi)有問(wèn)題了。Con figurati on: 09 - Win32 DebugCompili ng.09Dlg.cppLinkin g.09.exe - 0 error(s>, 0 warnin g(s>【附錄】<1)源程序清單/ 09Dlg.cpp : implementation file/#include "stdafx.

18、h"#i nclude "09.h"#i nclude "09Dlg.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_ 。#en dif#in clude<iostream.h>class complex /復(fù)數(shù)類聲明public: 外部接口complex(double r=0.0,double i=0.0> real=r 。 imag=i 。 / 構(gòu)造函數(shù)/+ 重載為成員函數(shù) / 重載為成員函數(shù) / X重載

19、為成員函數(shù) /十重載為成員函complex operator + (complex &b> 。 complex operator - (complex &b> 。 complex operator * (complex &b> 。 complex operator / (complex &b> 。/* friend istream& operator >> (istream & ,complex &>friend ostream &operator << (ostream &a

20、mp; ,complex &> 。 */ void display(> 。/輸出復(fù)數(shù)double real 。/復(fù)數(shù)實(shí)部double imag 。/ 復(fù)數(shù)虛部。complex complex:operator +(complex &b> / 重載函數(shù)實(shí)現(xiàn) complex t 。t.real=b.real+real 。t.imag=b.imag+imag 。return complex(t.real,t.imag> 。complex complex:operator -(complex &b> / 重載函數(shù)實(shí)現(xiàn) complex t 。t.re

21、al=real-b.real 。t.imag=imag-b.imag 。return complex(t.real,t.imag> 。complex complex:operator *(complex &b> / X重載函數(shù)實(shí)現(xiàn)complex t。t.real=b.real*real-b.imag*imag 。 t.imag=b.imag*real+b.real*imag 。return complex(t.real,t.imag> 。complex complex:operator /(complex &b> / / 重載函數(shù)實(shí)現(xiàn)complex t。

22、double d=b.real*b.real+b.imag*b.imag 。 t.real=(real*b.real+imag*b.imag>/d 。 t.imag=(imag*b.real-real*b.imag>/d 。 return complex(t.real,t.imag> 。void complex:display(> cout<<"("<<real<<","<<imag<<">"<<endl。 /*istream&

23、; operator >> (istream & a,complex &b> />> 重載函數(shù)實(shí)現(xiàn) a>>b.real>>b.imag 。return a 。ostream &operator <<(ostream & output,complex &b> output<<"("<<b.real<<","<<b.imag<<">"<<endl re

24、turn output 。*/實(shí)現(xiàn)復(fù)數(shù)相加按鈕void CMy09Dlg:OnButton1(> UpdateData(> 。complex A(m_1,m_2> 。 complex B(m_3,m_4> 。 complex C 。C=A+B 。m_5=C.real 。m_6=C.imag 。UpdateData(false> 。/實(shí)現(xiàn)復(fù)數(shù)相減按鈕void CMy09Dlg:OnButton2(>UpdateData(> 。 complex A(m_1,m_2> 。complex B(m_3,m_4> 。 complex C 。C=A-B

25、。m_7=C.real 。m_8=C.imag 。UpdateData(false> 。/實(shí)現(xiàn)復(fù)數(shù)相乘按鈕void CMy09Dlg:OnButton3(>UpdateData(> 。 complex A(m_1,m_2> 。complex B(m_3,m_4> 。 complex C 。C=A*B 。m_9=C.real 。 m_10=C.imag 。UpdateData(false> 。<2)運(yùn)行結(jié)果:實(shí)習(xí)題目五【需求規(guī)格說(shuō)明】10、設(shè)計(jì)實(shí)現(xiàn)一個(gè)猜數(shù)字的小游戲。游戲開(kāi)始時(shí)在程序內(nèi)部隨機(jī)生成一個(gè)4位數(shù)字 <每一位上的值不同,例如3795),用戶

26、通過(guò)若干輪的嘗試試圖猜出該數(shù)字,猜測(cè)次數(shù)不能超過(guò)8次,第八次如果仍未猜對(duì)則提示用戶下次繼續(xù)努力,程序退出。每一輪猜測(cè)過(guò)程包括:<1 )用戶輸入一個(gè)猜測(cè)的四位數(shù)字,每一位值不同,例如輸入3456;<2)程序比較用戶輸入的數(shù)字和程序內(nèi)部隨機(jī)生成的數(shù)字,如果值對(duì)但位置不對(duì)則一 個(gè)計(jì)數(shù)變量B累加,如果值對(duì)位置也對(duì)則計(jì)數(shù)變量A累加。<3)輸出A和B的累加信息以提示用戶后續(xù)的猜測(cè),例如輸入3456,則輸出1A1B ;輸入1268,則輸出0A0B ;輸入5973,則提示0A4B ;輸入3795,則提示猜測(cè)成功。要求用類來(lái)實(shí)現(xiàn)該小游戲。問(wèn)題描述及分析:此題先產(chǎn)生一個(gè)隨機(jī)四位數(shù),然后用戶來(lái)猜,

27、再將這個(gè)四位數(shù)的每位數(shù)字都提出來(lái),與產(chǎn)生的隨機(jī)數(shù)進(jìn)行比較,判斷猜測(cè)情況,共有8次機(jī)會(huì)。然后用 MFC實(shí)現(xiàn)。【算法設(shè)計(jì)】<1)設(shè)計(jì)思想:首先隨機(jī)數(shù)的生成要保證每一位數(shù)都不同,所以應(yīng)該每一位數(shù)一個(gè)個(gè)的生成。要明白題目 所說(shuō)的原理,位置錯(cuò)的數(shù)字對(duì)的是B,數(shù)字對(duì)位置也對(duì)的是A,另外還有一種情況位置錯(cuò)數(shù)字也錯(cuò)。分情況時(shí)數(shù)字對(duì)位置也對(duì)的為一種,然后就是數(shù)字對(duì)的一種,在計(jì)算位置錯(cuò)數(shù) 值對(duì)的時(shí)候應(yīng)該用第二種減去第一種的個(gè)數(shù)。<2)設(shè)計(jì)表示:與A、B提示有關(guān)的函數(shù)在對(duì)話框的頭文件中在類中作為成員函數(shù)表示。CCame-n: int+ CGame ( num : int> : CGame+ Sea

28、rch(list1 : int *,list2 : int *> : void+ e: int+ f: int然后【調(diào)試報(bào)告】岡U開(kāi)始不知道怎么產(chǎn)生隨機(jī)數(shù),后來(lái)查資料用了時(shí)間函數(shù)產(chǎn)生隨機(jī)數(shù)。Con figurati on: 10 - Win32 Debug10.exe - 0 error(s>, 0 warnin g(s> 【附錄】<1)源程序清單/ 10Dlg.cpp : implementation file/#include "stdafx.h"#i nclude "10.h"#i nclude "10Dlg.h&

29、quot;#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_ 。#en difclass CGamepublic:CGame (int num>n=num。void Search(i nt *list1,i nt *list2> 。int e,f。private:int n。void CGame:Search(i nt *list1, int *list2> / 比較兩列數(shù)int k=0 ,t=0 。for(int i=0 。 i<4。 i+>for(

30、int j=0 。 j<4。 j+>if (list2j=list1i>k+。if(j=i>t+ 。 if(t=4&&k=4>!"> 。AfxMessageBox(" 恭喜你答對(duì)了 ! 你真是太厲害了 e=t。 f=k 。int g 。/產(chǎn)生隨機(jī)四位數(shù)按鈕 void CMy10Dlg:OnButton1(>srand (time (NULL>> 。UpdateData(> 。int a ,b ,c ,d,n 。don= rand (> % 9000 + 1000 。 a=n/1000。b=(n

31、-a*1000>/100 。 c=(n-a*1000-b*100>/10 。 d=n-a*1000-b*100-c*10 。 while(a=b>|(a=c>|(a=d>|(b=c>|(b=d>|(c=d>> 。 g=n。UpdateData(false> 。/看答案按鈕void CMy10Dlg:OnButton3(>UpdateData(> 。 m_n=g。UpdateData(false> 。 int i=0 。/判斷你輸入的四位數(shù)與產(chǎn)生的隨機(jī)數(shù),并提示 void CMy10Dlg:OnButton4(>

32、UpdateData(> 。CGame num(g> 。int a,b,c,d,m,A,B,C,D 。 m=m_m 。a=g/1000。 b=(g-a*1000>/100 。c=(g-a*1000-b*100>/10。 d=g-a*1000-b*100-c*10。int Iist14=a,b,c,d 。 /隨機(jī)數(shù)的四位A=m/1000。B=(m-A*1000>/100。C=(m-A*1000-B*100>/10。D=m-A*1000-B*100-C*10。int list24=A,B,C,D。/ 猜測(cè)數(shù)的四位num.Search( list1, list2&

33、gt; 。/比較兩列數(shù)if(i>7>MessageBox("很遺憾,機(jī)會(huì)用完了!">。 i+。m i=8-i 。m t=num.e 。m k=num.f 。UpdateData(false>。(3)運(yùn)行結(jié)果:試試手氣!輸入一個(gè)四位數(shù)臨還剰慶誓題機(jī)合Mio實(shí)在猜卞出來(lái)了告訴我礁吧提示:實(shí)習(xí)題目六【需求規(guī)格說(shuō)明】14、設(shè)計(jì)一個(gè)程序用于管理自己的個(gè)人資金軟件。其中有3個(gè)類,CBC、CICBC和CCash,分別為中國(guó)銀行類、工商銀行類和現(xiàn)金類。每個(gè)類都包含一個(gè)私有數(shù)據(jù)bala nee,用于存放自己在該類帳號(hào)中的余額數(shù),每個(gè)類還有轉(zhuǎn)帳(tranfer、收入(i

34、ncome、支出(consume、統(tǒng)計(jì)(Statistic)等操作功能。類結(jié)構(gòu)如圖4-2所示。1 )界面的形式如圖4-34-5所示。界面上需要實(shí)現(xiàn)的功能包括:1、記帳功能:記錄某個(gè)帳戶中的資金變化的明細(xì)。寫(xiě)入到磁盤(pán)文件。2、統(tǒng)計(jì)功能:本月總支出;記賬功能帳單查看請(qǐng)?jiān)诖斯ノ业默F(xiàn)金嘯號(hào) 中國(guó)銀行帳號(hào) 工商銀疔帳號(hào)圖4-4帳單查看菜單設(shè)計(jì)圖4-5記賬功能界面設(shè)計(jì)<2)基類CMyAccount的定義如下:class CMyAccou ntpublic:/參數(shù)說(shuō)明:ptSourceAin-轉(zhuǎn)帳源方;/ptDestAin-轉(zhuǎn)帳目的方;/sumin-轉(zhuǎn)帳金額/ptNotein-備注/功能舉例:從銀行取

35、錢(qián)時(shí),就需要執(zhí)行轉(zhuǎn)帳操作:從某個(gè)銀行帳號(hào)轉(zhuǎn)入到現(xiàn)金帳號(hào)中。virtual long tran sfer(CMyAcco unt *ptSourceA, CMyAccou nt *ptDestA, double sum, char *ptNote=NULL>。/參數(shù)說(shuō)明:inTypein-收入類型:例如獎(jiǎng)學(xué)金、勤工儉學(xué)、父母支助等??筛鶕?jù) 實(shí)際情況添加。virtual long in come(CMyAcco unt*ptSourceA, short in Type, double sum, char*ptNote=NULL>。參數(shù)說(shuō)明:conTypein-支出類型:食物、衣物、學(xué)費(fèi)

36、、書(shū)籍等??筛鶕?jù)實(shí)際情 況添加。virtual long con sume(CMyAcco unt *ptSourceA, short con Type, double sum, char *ptNote=NULL>。參數(shù)說(shuō)明:conTypein-支出類型:食物、衣物、學(xué)費(fèi)、書(shū)籍等。可根據(jù)實(shí)際情 況添加。功能說(shuō)明:統(tǒng)計(jì)某個(gè)時(shí)間段內(nèi)的收支情況,結(jié)果有收支總體情況和各種子類的具 體數(shù)據(jù)。virtual long statistic(TimeStamp_STRU &timeStart, TimeStamp_STRU &timeE nd> 。 private:double

37、bala nee。(3)其他說(shuō)明:在實(shí)現(xiàn)的過(guò)程中可根據(jù)自己的實(shí)際情況增加軟件的實(shí)用性。實(shí)用性強(qiáng) 的軟件可酌情加分。【算法設(shè)計(jì)】<1)設(shè)計(jì)思想:創(chuàng)建一個(gè)MyAccunt類,其中有四個(gè)成員函數(shù),分別用于轉(zhuǎn)賬、收入、支出、統(tǒng)計(jì)等功能操 作。記錄某個(gè)帳戶中的資金變化的明細(xì),然后寫(xiě)入到磁盤(pán)文件,通過(guò)文件查閱記錄。記錄 應(yīng)包含我的現(xiàn)金、中國(guó)銀行、工商銀行賬戶的變化,本月收支統(tǒng)計(jì)表顯示收入支出的每一 條記錄。用MFC項(xiàng)目實(shí)現(xiàn)。<2)設(shè)計(jì)表示:框?qū)?,不知道如何將?duì)話框和菜單連接起來(lái),后來(lái)加了函數(shù)解決了。而賬單添加的時(shí)間問(wèn) 題也比較頭疼,后來(lái)用系統(tǒng)時(shí)間解決。Configuration:銀行記賬 -W

38、in32 DebugCompili ng.TrDlg.cppLinkin g.銀行記賬.exe - 0 error(s>, 0 warning(s>【附錄】<1)源程序清單:/ 基類源程序#include<iostream>#include<fstream>#include<iomanip>#include<string>#include<CTime>#include<time.h>using namespace std。class CMyAccountpublic:/ 參數(shù)說(shuō)明: ptSourceAin

39、- 轉(zhuǎn)帳源方;/ptDestAin - 轉(zhuǎn)帳目的方;/sumin - 轉(zhuǎn)帳金額/ptNotein - 備注/ 功能舉例:從銀行取錢(qián)時(shí),就需要執(zhí)行轉(zhuǎn)帳操作:從某個(gè)銀行帳號(hào)轉(zhuǎn)入到現(xiàn)金帳號(hào) 中。virtual long transfer(CString ptSourceA, CString ptDestA, double sum, CString ptNote>time_t tm 。time(&tm> 。if(ptSourceA=" 我的現(xiàn)金 ">我的現(xiàn)金帳號(hào) .txt",ios:app> 。ouf1<<" 轉(zhuǎn) 出

40、"<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。if(ptDestA=" 工商銀行 ">工商銀行帳號(hào) .txt",ios:app> 。ouf2<<" 轉(zhuǎn) 入

41、"<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。if(ptDestA=" 中國(guó)銀行 ">中國(guó)銀行帳號(hào) .txt",ios:app> 。ouf2<<" 轉(zhuǎn) 入

42、"<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。if(ptSourceA=" 工商銀行 ">工商銀行帳號(hào) .txt",ios:app> 。ouf1<<" 轉(zhuǎn)

43、出 "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。if(ptDestA=" 我的現(xiàn)金 ">我的現(xiàn)金帳號(hào) .txt",ios:app> 。ouf2<<" 轉(zhuǎn)

44、入 "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<""<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endlif(ptDestA=" 中國(guó)銀行 "> 中國(guó)銀行帳號(hào) .txt",ios:app> 。ouf2<<" 轉(zhuǎn) 入

45、"<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。 if(ptSourceA=" 中國(guó)銀行 "> 中國(guó)銀行帳號(hào) .txt",ios:app> 。ouf1<<"

46、轉(zhuǎn) 出 "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。if(ptDestA=" 工商銀行 "> 工商銀行帳號(hào) .txt",ios:app> 。ouf2<<"

47、 轉(zhuǎn) 入 "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。 if(ptDestA=" 我的現(xiàn)金 "> 我的現(xiàn)金帳號(hào) .txt",ios:app> 。ouf2<<&quo

48、t; 轉(zhuǎn) 入 "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。return 1 。/ 參數(shù)說(shuō)明:inTypein- 收入類型:例如獎(jiǎng)學(xué)金、勤工儉學(xué)、父母支助等??筛鶕?jù)實(shí)際情況添加。virtual long income(C

49、String ptSourceA, CString inType, double sum, CString ptNote> time_t tm 。 time(&tm> 。 ofstream ouf 。if(ptSourceA=" 我的現(xiàn)金 ">我的現(xiàn)金帳號(hào) .txt",ios:app> 。ouf<<" 收 入"<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<as

50、ctime(gmtime(&tm>><<endl 。if(ptSourceA=" 工商銀行 ">工商銀行帳號(hào)ouf<<" 收 入 "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<asctime(gmtime(&tm>><<endl 。if(ptSourceA=" 中國(guó)銀行 ">中國(guó)銀行帳號(hào)ouf<&l

51、t;" 收 入 "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<asctime(gmtime(&tm>><<endl 。ouf.close(> 。return 1 。"<<" "<<(LPCTSTR>inType<<""<<(LPCTSTR>ptNote<<".tx

52、t",ios:app> 。"<<" "<<(LPCTSTR>inType<<""<<(LPCTSTR>ptNote<<".txt",ios:app> 。"<<" "<<(LPCTSTR>inType<<""<<(LPCTSTR>ptNote<<""<<(LPCTSTR>con

53、Type<<""<<(LPCTSTR>ptNote<<""<<(LPCTSTR>conType<<""<<(LPCTSTR>ptNote<<"/ 參數(shù)說(shuō)明:conTypein- 支出類型:食物、衣物、學(xué)費(fèi)、書(shū)籍等??筛鶕?jù)實(shí)際情況添加。virtual long consume(CString ptSourceA, CString conType, double sum, CString ptNote>time_t tm

54、。time(&tm> 。 ofstream ouf 。if(ptSourceA=" 我的現(xiàn)金 ">我的現(xiàn)金帳號(hào) .txt",ios:app> 。 ouf<<" 消 費(fèi) "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<asctime(gmtime(&tm>><<endl 。 if(ptSourc

55、eA=" 工商銀行 ">工商銀行帳號(hào) .txt",ios:app> 。 ouf<<" 消 費(fèi) "<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<asctime(gmtime(&tm>><<endl 。if(ptSourceA=" 中國(guó)銀行 "> 中國(guó)銀行帳號(hào) .txt",i

56、os:app> 。ouf<<" 消 費(fèi) "<<" "<<(LPCTSTR>conType<<" "<<setiosflags(ios_base:left><<setw(5><<sum<<" "<<(LPCTSTR>ptNote<<" "<<asctime(gmtime(&tm>><<endl 。ouf.c

57、lose(> 。return 1 。/ 參數(shù)說(shuō)明: conTypein- 支出類型:食物、衣物、學(xué)費(fèi)、書(shū)籍等??筛鶕?jù)實(shí)際情況添加。/ 功能說(shuō)明:統(tǒng)計(jì)某個(gè)時(shí)間段內(nèi)的收支情況,結(jié)果有收支總體情況和各種子類的具體數(shù) 據(jù)。/virtual long statistic(TimeStamp_STRU &timeStart, TimeStamp_STRU &timeEnd> 。 private:double balance。/轉(zhuǎn)賬操作#include "stdafx.h"#include " 銀行記賬 .h"#include "

58、TrDlg.h"#include "MyAccount.h"#include<iostream> #include<fstream>#include<string>#include<time.h> #include<CTime> using namespace std。#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_ 。#endif /取消按鈕 void CTrDlg:OnButton1(>

59、;UpdateData(TRUE> 。OnOK(> 。UpdateData(FALSE> 。/添加轉(zhuǎn)賬按鈕void CTrDlg:OnButton2(>UpdateData(TRUE> 。long a 。CMyAccount mytr 。a=mytr.transfer(m_cbtr1,m_cbtr2,m_edtr1,m_edtr2> 。UpdateData(FALSE> 。/ 收入操作#include "stdafx.h"#include " 銀行記賬 .h"#include "IpDlg.h"

60、;#include "MyAccount.h"#include<iostream>#include<fstream>#include<string>#include<time.h>#include<CTime>using namespace std。#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_ 。#endif double income=0 。int a。 /添加收入操作按鈕 void CIpDlg:

61、OnButton2(> / TODO: Add your control notification handler code here UpdateData(TRUE> 。/*ofstream ouf 。if(m_cbip1=" 我的現(xiàn)金 ">我的現(xiàn)金帳號(hào) ouf<<" 收 入 "<<" "<<(LPCTSTR>m_edip2<<endl 。 if(m_cbip1=" 工商銀行 "> 工商銀行帳號(hào) ouf<<" 收

62、入 "<<" "<<(LPCTSTR>m_edip2<<endl 。 if(m_cbip1=" 中國(guó)銀行 "> 中國(guó)銀行帳號(hào) ouf<<" 收 入 "<<" "<<(LPCTSTR>m_edip2<<endl 。.txt",ios:app> 。"<<(LPCTSTR>m_cbip2<<""<<m_edip1<&l

63、t;".txt",ios:app> 。"<<(LPCTSTR>m_cbip2<<""<<m_edip1<<".txt",ios:app> 。"<<(LPCTSTR>m_cbip2<<""<<m_edip1<<" ouf.close(> 。 */ long b 。CMyAccount myac 。 b=myac.income(m_cbip1,m_cbip2,m_e

64、dip1,m_edip2> 。 time_t now=time(0> 。tm *ptm=localtime(&now> 。 time(&now> 。int month 。 month=ptm->tm_mon+1 。if(a!=month> income=0 。 income+=m_edip1 。 a=month。本月收支統(tǒng)計(jì)表 .txt"> 。onf<<" 本月總收入為 "<<" "<<income<<" "<&l

65、t;asctime(gmtime(&now>><<endl onf.close(> 。UpdateData(FALSE> 。/取消按鈕void CIpDlg:OnButton1(>/ TODO: Add your control notification handler code here UpdateData(TRUE> 。OnOK(> 。UpdateData(FALSE> 。/消費(fèi)操作#include "stdafx.h" #include " 銀行記賬 .h"#include &q

66、uot;OpDlg.h"#include "MyAccount.h" #include<iostream> #include<fstream> #include<string> #include<time.h> #include<CTime> using namespace std。#ifdef _DEBUG#define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_ 。#endifdouble consume=0。int m

67、。/添加消費(fèi)記錄按鈕void COpDlg:OnButton2(>/ TODO: Add your control notification handler code here UpdateData(TRUE> 。/*ofstream ouf 。if(m_cbop1=" 我的現(xiàn)金 ">我的現(xiàn)金帳號(hào) ouf<<" 消 費(fèi) "<<" "<<(LPCTSTR>m_edop2<<endl 。 if(m_cbop1=" 工商銀行 "> 工商銀行帳號(hào) ouf<<" 消 費(fèi) "<<" "<<(LPCTSTR>m_edop2<<endl 。 if(m_cbop1=" 中國(guó)銀行

溫馨提示

  • 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)論