




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)蒙古科技大學(xué)c+課程設(shè)計內(nèi)蒙古科技大學(xué)本科生課程設(shè)計論文課題:c+課程設(shè)計 -個人記賬軟件的設(shè)計 姓名: 學(xué)號: 專業(yè): 班級: 指導(dǎo)老師:孫濤目錄摘要與引言21.1摘要21.2 程序設(shè)計:31.3背景31.4理財軟件的目的3第一章 C+簡介41.1編輯本段組成部分41.2編輯本段代碼性能51.3編輯本段編程技巧61.4編輯本段編程開發(fā)7第二章 需求分析7第三章 設(shè)計分析93.1系統(tǒng)的基本功能93.2系統(tǒng)流程圖10第四章 運行及測試結(jié)果154.1、登錄主界面 :154.3修改賬目信息:174.4查詢、修改賬目:184.5統(tǒng)計賬目:19第五章 總結(jié)20附錄21摘要與引言1.1摘要計主要解決個人
2、日常生活中收入與支出等進行記錄的程序設(shè)計.在課程設(shè)計中,系統(tǒng)開發(fā)平臺為Windows xp,程序設(shè)計開發(fā)環(huán)境采用Microsoft visual studio 2005/Vc6.0,賬目庫采用Microsoft Access 2003,程序運行平臺為Windows 98/2000/XP。對于收入支出進行記錄,在程序設(shè)計中,采用了面向?qū)ο蠼鉀Q問題的方法。程序通過調(diào)試運行,初步實現(xiàn)了設(shè)計目標(biāo),并且經(jīng)過適當(dāng)完善后,將可以應(yīng)用在商業(yè)中為個人解決簡單的實際問題。1.2 程序設(shè)計:賬目庫;SQL;c+;個人理財1.3背景 理財?shù)哪康?,在追求不虞遺乏的豐富人生,是以經(jīng)濟學(xué)為精神、會計學(xué)為基礎(chǔ)、財務(wù)學(xué)為手段的
3、一門實用科學(xué)。 為什么要理財?每個人都希望過幸福美滿的生活,但是你首先應(yīng)自問有沒有這樣的能力?房子、車子、股票、珠寶 /系統(tǒng)生成代碼,略去 /系統(tǒng)生成代碼,略去,在某些人眼里是財富的象征,生活品質(zhì)的保證,是他們努力追求的價值。 也有許多所謂的有錢人,寧愿選擇平平淡淡的生活,辛勤工作、努力儲蓄,他們不認(rèn)為華麗的外表相可以代表高水準(zhǔn)的生活品質(zhì)。不過,顯然大多數(shù)人一生中都是無法滿足的。 心理學(xué)家馬斯洛的需求理論告訴我們,人類的需求是有層級之分的:在安全無虞的前提下追求溫飽,當(dāng)基本生活條件獲得滿足之后,則需求得到社會的尊重;并進一步追求人生的最終目標(biāo)自我實現(xiàn)。 而要依層級滿足這些需求,必須建立在不虞遺
4、乏的財務(wù)條件上。因此,你必須認(rèn)識理財?shù)闹匾?,訂定一套適合自己的理財計劃,來達成自己的生活目標(biāo)。 我們知道,追求效益極大化是經(jīng)濟學(xué)的基本精神,即說以最小的代價,獲得最大的收益。但這并非表示我們吝于付出,因為資源是有限的,稀少的資源,迫使我們必須做選擇,而理財行為就是聰明的選擇。我們付出代價最少、收益最大的一條路,讓有限的資源得以發(fā)揮最大的效用。 對于我們能擁有的、以及想要爭取的,透過會計學(xué)對財富流量及存量的記錄,客觀地顯現(xiàn)在資產(chǎn)負(fù)債表以及損益表上,可以幫助我們看清自己的財務(wù)狀況,進而規(guī)劃出符合我們的需求、能力可及的財務(wù)目標(biāo)。 對于資金的籌措及運用,財務(wù)學(xué)可以提供我們最佳的策略及方法,以最少的成本
5、取得資源,并做好有效的分配,因應(yīng)景氣循環(huán)及環(huán)境的變化,配合目標(biāo)定出自己的資產(chǎn)組合。11.4理財軟件的目的 俗話說“你不理財,財不理你”,只有通過合理的理財,才能夠有效的管理你的個人資產(chǎn)的合理運用。個人理財軟件不僅可以幫你記帳,更多的是可以實時掌握你的收入與支出,掌握資金的變動情況,同時還可以統(tǒng)計出資金的主要流向,從而更合理的分配資金。本課題將達到以下幾個目的:(1)清晰簡便明了的操作,減少不必要的精力消耗。傳統(tǒng)的個人理財軟件中,有大量的冗余功能,使用戶的大部分精力將耗費在了解復(fù)雜的界面與繁瑣的操作上,而作為缺少個人理財所應(yīng)具有的簡便明了的特點。通過此個人理財軟件,用戶可以將絕大部分精力放在對賬
6、目的研究上,而不是無意義的操作上。(2)提供更好的服務(wù)。個人理財軟件可以較迅速、有效地收集各種個人財務(wù)信息,用戶可以直接從系統(tǒng)中獲得自己所需的個人財務(wù)信息,并根據(jù)相關(guān)的信息做出決策和相應(yīng)的行動方案。(3)降低成本。個人理財軟件沒有繁瑣的操作,簡便易懂的操作使用戶減少了上手時間,降低了使用成本。第一章 C+簡介1.1編輯本段組成部分根據(jù)Effective C+第三版第一條款的描述,現(xiàn)在C+由以下四個“子語言”組成: 1、C子語言。C+支持C語言的幾乎全部功能,主要是c89的部分,在語法上與C語言僅有極微妙的差別(如括號表達式的左右值性,具體請參考C+標(biāo)準(zhǔn)文獻)。 2、面向?qū)ο蟮腃+語言。C+語言
7、原本不具備面向?qū)ο蟮脑O(shè)計功能,然而隨著面向?qū)ο缶幊痰母拍畹奶岢鲆约叭鏙ava等語言的發(fā)展成熟,C+語言也開發(fā)出了支持面向?qū)ο蠊δ艿陌姹尽?3、泛型編程語言。C+強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。 4、STL(C+標(biāo)準(zhǔn)模板庫,Standard Template Library)。隨著STL的不斷發(fā)展,它已經(jīng)逐漸成為C+程序設(shè)計中不可或缺的部分,其效率可能比一般的native代碼低些,但是其安全性與規(guī)范性使它大受歡迎。 此外,包含在TR1等中的C+0x將實現(xiàn)的新功能在開發(fā)和測試中。 編輯本段語言特點· C+設(shè)計成靜態(tài)類型、和C同樣高效且可移植
8、的多用途程序設(shè)計語言。 · C+設(shè)計成直接的和廣泛的支持多種程序設(shè)計風(fēng)格(程序化程序設(shè)計、資料抽象化、面向?qū)ο蟪绦蛟O(shè)計、泛型程序設(shè)計)。 · C+設(shè)計成給程序設(shè)計者更多的選擇,即使可能導(dǎo)致程序設(shè)計者選擇錯誤。 · C+設(shè)計成盡可能與C兼容,籍此提供一個從C到C+的平滑過渡。 · C+避免平臺限定或沒有普遍用途的特性。 · C+不使用會帶來額外開銷的特性。 · C+設(shè)計成無需復(fù)雜的程序設(shè)計環(huán)境。 出于保證語言的簡潔和運行高效等方面的考慮,C+的很多特性都是以庫(如STL)或其他的形式提供的,而沒有直接添加到語言本身里。關(guān)于此類話題,Bj
9、arne Stroustrup的C+語言的設(shè)計和演化(1994)里做了詳盡的陳述。 優(yōu)點C+在一定程度上可以和C語言很好的結(jié)合,甚至目前大多數(shù)C語言程序是在C+的集成開發(fā)環(huán)境中完成的。C+相對眾多的面向?qū)ο蟮恼Z言,具有相當(dāng)高的性能。 C+引入了面向?qū)ο蟮母拍?,使得開發(fā)人機交互類型的應(yīng)用程序更為簡單、快捷。很多優(yōu)秀的程序框架包括MFC、QT、wxWidgets就是使用的C+。 爭議C+由于語言本身過度復(fù)雜,這甚至使人類難于理解其語義。更為糟糕的是C+的編譯系統(tǒng)受到C+的復(fù)雜性的影響,非常難于編寫,即使能夠使用的編譯器也存在了大量的問題,這些問題大多難于被發(fā)現(xiàn)。 由于本身的復(fù)雜性,復(fù)雜的C+程序的
10、正確性相當(dāng)難于保證。也有人提出不支持多線程的原語等缺陷。不過有如此多的知名人士提出了如此多的缺陷,正說明C+被廣泛使用和成功。 1.2編輯本段代碼性能人們一般認(rèn)為,使用Java或C#的開發(fā)成本比C+低。但是,如果你能夠充分分析C+和這些語言的差別,會發(fā)現(xiàn)這句話的成立是有條件的。這個條件就是:軟件規(guī)模和復(fù)雜度都比較小。如果不超過3萬行有效代碼(不包括生成器產(chǎn)生的代碼),這句話基本上還能成立。否則,隨著代碼量和復(fù)雜度的增加,C+的優(yōu)勢將會越來越明顯。造成這種差別的就是C+的軟件工程性。 美國AT&T貝爾實驗室的本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)博士在20
11、世紀(jì)80年代初期發(fā)明并實現(xiàn)了C+(最初這種語言被稱作“C with Classes”)。一開始C+是作為C語言的增強版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。虛函數(shù)(virtual function)、運算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、命名空間(name space)逐漸被加入標(biāo)準(zhǔn)。1998年國際標(biāo)準(zhǔn)組織(ISO)頒布了C+程序設(shè)計語言的國際標(biāo)準(zhǔn)ISO/IEC 1988-1998。C+是具有國際標(biāo)準(zhǔn)的編程語言,通常稱作ANSI/ISOC+。 199
12、8年是C+標(biāo)準(zhǔn)委員會成立的第一年,以后每5年視實際需要更新一次標(biāo)準(zhǔn)。C+0x最終國際投票已于2011年8月10日結(jié)束,并且所有國家都投出了贊成票,C+0x已經(jīng)毫無疑義地成為正式國際標(biāo)準(zhǔn)。先前被臨時命名為C+0x的新標(biāo)準(zhǔn)將被稱為C+ 2011。C+ 2011將取代現(xiàn)行的C+標(biāo)準(zhǔn)ISO/IEC 14882,它公開于1998年并于2003年更新,通稱C+98以及C+03。國際標(biāo)準(zhǔn)化組織于2011年9月1日出版發(fā)布ISO/IEC 14882:2011,名稱是:Information technology - Programming languages - C+ Edition: 3。 C+語言發(fā)展大概
13、可以分為三個階段:第一階段從80年代到1995年。這一階段C+語言基本上是傳統(tǒng)類型上的面向?qū)ο笳Z言,并且憑借著接近C語言的效率,在工業(yè)界使用的開發(fā)語言中占據(jù)了相當(dāng)大份額; 第二階段從1995年到2000年,這一階段由于標(biāo)準(zhǔn)模板庫(STL)和后來的Boost等程序庫的出現(xiàn),泛型程序設(shè)計在C+中占據(jù)了越來越多的比重性。當(dāng)然,同時由于Java、C#等語言的出現(xiàn)和硬件價格的大規(guī)模下降,C+受到了一定的沖擊; 第三階段從2000年至今,由于以Loki、MPL等程序庫為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C+出現(xiàn)了發(fā)展歷史上又一個新的高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C+已經(jīng)成為當(dāng)今主流程序設(shè)
14、計語言中最復(fù)雜的一員。 1.3編輯本段編程技巧運算符new和delete提供了存儲的動態(tài)內(nèi)存分配和釋放功能,它的作用相當(dāng)于C語言的函數(shù)malloc()和free(),但是性能更為優(yōu)越。使用new較之使用malloc()有以下的幾個優(yōu)點: (1)new自動計算要分配類型的大小,不使用sizeof運算符,比較省事,可以避免錯誤。 (2)自動地返回正確的指針類型,不用進行強制指針類型轉(zhuǎn)換。 (3)可以用new對分配的對象進行初始化。 對于頻繁使用的函數(shù),C語言建議使用宏調(diào)用代替函數(shù)調(diào)用以加快代碼執(zhí)行,減少調(diào)用開銷。但是宏調(diào)用有許多的弊端,可能引起不期望的副作用。例如宏:#define abs(a)(
15、a)<0?(-a):(a),當(dāng)使用abs(i+)時,這個宏就會出錯。 所以在C+中應(yīng)該使用inline內(nèi)聯(lián)函數(shù)替代宏調(diào)用,這樣既可達到宏調(diào)用的目的,又避免了宏調(diào)用的弊端。 使用內(nèi)聯(lián)函數(shù)只須把inline關(guān)鍵字放在函數(shù)返回類型的前面。例如: inline int Add(int a,int b);/聲明Add()為內(nèi)聯(lián)函數(shù) 這樣編譯器在遇到Add()函數(shù)時,就不再進行函數(shù)調(diào)用,而是直接嵌入函數(shù)代碼以加快程序的執(zhí)行。 使用函數(shù)重載。在C語言中,兩個函數(shù)的名稱不能相同,否則會導(dǎo)致編譯錯誤。而在C+中,函數(shù)名相同而參數(shù)賬目類型不同的兩個函數(shù)被解釋為重載。例如: void PutHz(char*
16、str);/在當(dāng)前位置輸出漢字 void PutHz(int x,?int y,?char * str);/在x,y處輸入數(shù)字 使用函數(shù)重載可以幫助程序員處理更多的復(fù)雜問題,避免了使用諸如intabs()、fabs()、dabs()等繁雜的函數(shù)名稱;同時在大型程序中,使函數(shù)名易于管理和使用,而不必絞盡腦汁地去處理函數(shù)名。同時必須注意,參數(shù)賬目類型相同,但是函數(shù)返回類型不同的兩個函數(shù)不能重載。 用引用(reference)代替指針進行參數(shù)傳遞。通常的情況下,一個函數(shù)應(yīng)該具有盡可能大的靈活性。使用缺省參數(shù)為程序員處理更大的復(fù)雜性和靈活性問題提供了有效的方法,所以在C+的代碼中都大量地使用了缺省參數(shù)
17、。 需要說明的是,所有的缺省參數(shù)必須出現(xiàn)在不缺省參數(shù)的右邊。亦即,一旦開始定義缺省參數(shù),就不可再說明非缺省的參數(shù)。否則當(dāng)你省略其中一個參數(shù)的時候,編譯器無法知道你是自定義了這個參數(shù)還是利用了缺省參數(shù)而定義了非缺省的參數(shù)。 1.4編輯本段編程開發(fā)開發(fā)方式 :在unix世界有大量的程序員是傳統(tǒng)的非IDE的方式進行軟件開發(fā)。一般是如下組合: 1.編譯器:gcc,clang等 2.編輯器:一般是vim/emacs 3.make:gnu make 或者bsd 的pmake等,功能與用法基本一樣 4.版本管理:cvs,svn,git等 5.代碼閱讀:cscope,ctags,lxr等 集成開發(fā)環(huán)境(IDE
18、) 第二章 需求分析內(nèi)蒙古科技大學(xué)課程設(shè)計任務(wù)書課程名稱C+語言課程設(shè)計設(shè)計題目長途客運售票管理系統(tǒng)的設(shè)計指導(dǎo)教師時間2011-2012春學(xué)期 第17、18周一、教學(xué)要求1. 鞏固和加深學(xué)生對C+語言課程的基本知識的理解和掌握2. 掌握C+語言編程和程序調(diào)試的基本技能3. 利用C+語言進行基本的軟件設(shè)計4. 掌握書寫程序設(shè)計說明文檔的能力5. 提高運用C+語言解決實際問題的能力二、設(shè)計資料及參數(shù)用C+設(shè)計一個系統(tǒng),能提供下列服務(wù):(1) 錄入消費和支出信息,格式為:日期金額操作類型消費類別備注2011-11-225支出食購買水果2011-11-1040收入食副食補貼其中操作類型包括收入和支出,
19、消費類別為衣,食,住,行和其他。(2) 查詢功能。查詢某一天的消費和支出記錄,并能進行修改; (3) 統(tǒng)計功能。統(tǒng)計某個區(qū)間的消費和支出,例如11月份,則輸入時間段2011-11-1到2011-11-30統(tǒng)計總的支出和收入。按照消費類別統(tǒng)計某個時間段內(nèi)的消費記錄,如統(tǒng)計11月份買衣服的支出共有多少?三、設(shè)計要求及成果根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)分析系統(tǒng)中的各個實體之間的關(guān)系及其屬性和行為;(2)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(3)完成類層次中各個類的描述(包括屬性和方法);(4)完成類中各個成員函數(shù)的定義;(5)完成系統(tǒng)的應(yīng)用模塊;(6)功能調(diào)試;(7)提交課程設(shè)計報
20、告:完成系統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書功能:輸入正確密碼登錄系統(tǒng),增加賬目,刪除賬目,查詢及修改賬目,統(tǒng)計賬目信息,退出系統(tǒng)。設(shè)計思路:1.登錄系統(tǒng):輸入正確密碼進行登錄,如密碼錯誤提示重新輸入密碼,為確保賬本安全,只有三次輸入機會,三次后將不具有打開此賬的權(quán)力。2.新增賬目:可以增加賬目內(nèi)容,保存新增賬目信息,以便查閱。3.刪除賬目:刪除無用或過期賬目,此功能為徹底刪除,刪除后不可恢復(fù)數(shù)據(jù),若輸入日期有誤系統(tǒng)給出提示。4.查詢及修改:查看賬目信息,查賬后可以是否對賬目進行修改,修改錯誤賬目,并保存修改信息,若輸入日期有誤系統(tǒng)給出提示。5.統(tǒng)計賬目:輸入你想查詢的賬目的起、止日期,若輸入日期有
21、誤系統(tǒng)給出提示,統(tǒng)計系統(tǒng)自動分類一段時間內(nèi)的交易類別和消費類別,方便查看。第三章 設(shè)計分析3.1系統(tǒng)的基本功能 本軟件具有六大模塊:登錄系統(tǒng),輸入賬目,刪除賬目,查詢及修改,統(tǒng)計信息,退出系統(tǒng)。登錄系統(tǒng):輸入密碼進行登錄,如密碼錯誤提示重新輸入密碼。新增賬目:增加賬目內(nèi)容,方便查閱。刪除賬目:刪除無用或過期賬目。查詢及修改:查看賬目,修改錯誤賬目。統(tǒng)計賬目:統(tǒng)計與分析賬目信息。功能圖如下:個人理財 圖3.1 系統(tǒng)總體框架圖登錄系統(tǒng)輸入數(shù)據(jù)刪除數(shù)據(jù)查詢及修改統(tǒng)計數(shù)據(jù)退出系統(tǒng) 3.2系統(tǒng)流程圖3.2.1登錄流程:開始輸入密碼 錯誤 正主菜單 三 確 次 錯選擇“退出系統(tǒng)” 序號 誤結(jié)束圖3.2.1
22、 登錄流程圖3.2.2輸入流程:開始輸入密碼 錯誤 正主菜單 三 確 次 錯選擇“新增賬目”序號 誤輸入日期輸入消費金額輸入消操作類型輸入消費類別輸入備注結(jié)束圖3.2.2 輸入流程圖3.2.3刪除流程:開始輸入密碼 錯誤 正主菜單 三 確 次 錯選擇“刪除賬目”序號 誤輸入刪除日期選擇刪除內(nèi)容序號結(jié)束圖3.2.3 刪除流程圖3.2.4查詢及修改流程:開始輸入密碼 錯誤 正主菜單 三 確 次 錯選擇“查詢及修改”序號 誤輸入查詢或修改日期是否修改信息 否輸入修改內(nèi)容的序號 是輸入修改日期輸入金額輸入消操作類型輸入消費類別輸入備注結(jié)束圖3.2.4 查詢及修改流程圖3.2.5統(tǒng)計流程:開始輸入密碼
23、錯誤 正主菜單 三 確 次 錯選擇“賬目統(tǒng)計” 序號 誤輸入統(tǒng)計開始日期輸入統(tǒng)計結(jié)束日期結(jié)束圖3.2.5統(tǒng)計流程圖第四章 運行及測試結(jié)果4.1、登錄主界面 :圖4.1.1主界面登錄窗口,密碼正確時進入主界面圖4.1.2 系統(tǒng)主界面,選擇系統(tǒng)功能4.2新增賬目功能:圖4.2.1 輸入賬目信息4.3修改賬目信息:圖4.3.1刪除無用信息4.4查詢、修改賬目:圖4.4.1 查詢交易日期,并決定是否修改圖4.4.2 查詢后修改信息4.5統(tǒng)計賬目:圖4.5.1 統(tǒng)計一段時間內(nèi)總收支、以及各消費類別的金額4.6退出系統(tǒng):圖4.6.1 使用完畢,退出系統(tǒng)并保存第五章 總結(jié) 在為期兩周的課程設(shè)計中,我體會頗多
24、,學(xué)到很多東西。我懂得了如何用 MFC編寫可視化界面的應(yīng)用程序,利用設(shè)計個人記賬系統(tǒng)的機會,我加強了對C+的認(rèn)識,復(fù)習(xí)了自己以前的知識,自己的邏輯思考能力也提高不少。從而對Microsoft Visual C+ 6.0又有了更深入的認(rèn)識!在這次課程設(shè)計中,我還懂得了程序開發(fā)的一些比較重要的步驟,比如總體設(shè)計、數(shù)據(jù)庫設(shè)計(含概念設(shè)計、邏輯設(shè)計、物理設(shè)計)、程序模塊設(shè)計(含功能需求、用戶界面設(shè)計、程序代碼設(shè)計與分析、運行結(jié)果)、系統(tǒng)使用說明等??傊ㄟ^這次課程設(shè)計,我收獲頗豐,相信會為自己以后的學(xué)習(xí)和工作帶來很大的好處。 最重要的還是激發(fā)了我編程的興趣和熱情,讓我從一個只懂理論變成了能做一些小型
25、程序,讓我對編程更加熱愛了。整體地評價這次課程設(shè)計,我認(rèn)為收獲很大,正如上面所說的那樣,通過課程設(shè)計,既復(fù)習(xí)了以前的舊知識,又學(xué)到了一些新的知識;設(shè)計增強了我們用所學(xué)知識去解決具體問題的能力,進一步培養(yǎng)了我們獨立思考問題和解決問題的能力。特別是學(xué)會了在Visual C+ 集成開發(fā)環(huán)境中如何調(diào)試程序的方法。 當(dāng)然,老師的悉心指導(dǎo)和同學(xué)的幫助也是不可忽視的,在此感謝本次課程設(shè)計中所有輔導(dǎo)老師對我的關(guān)心和幫助,誠心誠意感謝他們對我的鼓勵與教導(dǎo),是她們在我迷茫的時候給了我些許提示,激發(fā)了我編程的靈感;還有,我在此也十分感謝本次課程設(shè)計中同學(xué)們對我的幫助,盡管本次不是團隊合作,但是他們也給了我不少的提示
26、和幫助,是他們讓我有信心堅持做下來,在此感謝他們! 通過完成本次面向?qū)ο蟪绦蛟O(shè)計的任務(wù),使我熟練和掌握了這學(xué)期所學(xué)的有關(guān)visual c+中的一些主要知識點和應(yīng)用點,如類的定義,類的實現(xiàn),對象的定義,類的繼承等等??梢运鶎W(xué)有所學(xué),所有所用,不至于自己所學(xué)知識由于沒有經(jīng)歷可用過程,而放棄對它的興趣。 面向?qū)ο蟪绦蛟O(shè)計作為一門軟件設(shè)計的課程,具有極強的實踐性,使我加強了靈活應(yīng)用理論知識的能力及面向?qū)ο蟪绦蛟O(shè)計技能。 此次,應(yīng)用程序的設(shè)計和創(chuàng)建,經(jīng)歷了平時在課堂中和考試中,決不會有的重重難題和問題。而這些問題,又都是課本上很少提到的、更深一層的知識領(lǐng)域和應(yīng)用領(lǐng)域。這些問題,并不是我們平時只靠課本,就
27、可以輕易解決的。所以,鍛煉了我們面對難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問題、解決問題的獨斷能力。 當(dāng)然,此次任務(wù)的完成,也體現(xiàn)出同學(xué)之間的團結(jié)精神。所遇種種難以解決的問題,大家都會把它當(dāng)作共同遇到的問題,在一起共同探討,共同發(fā)揮自己所學(xué)和所知,投入式的互相幫助和解決困難。 “實踐是檢驗真理的唯一標(biāo)準(zhǔn)”。沒有實踐,就不會發(fā)現(xiàn)和深刻體會它的真實所在。只有通過檢驗的真理,在自己的心里,才會認(rèn)可它的真實性。面向?qū)ο蟪绦蛟O(shè)計的完成,使我們懂得了真理的重要性,理論和實際的相結(jié)合,才能真正把握所學(xué)和所掌握的知識。 附錄以下是程序的源代碼,并且加上了詳細(xì)的注釋:#include <iostream
28、> /io流#include <string> /字符#include <iomanip> /setw#include <fstream> /對文件操作#include <cstdlib> /exit(0); cstdlib是C+里面的一個常用函數(shù)庫, 等價于C中的<stdlib.h>。 using namespace std; /標(biāo)準(zhǔn)命名空間 防止與全局標(biāo)示符重名class book public: book();/默認(rèn)構(gòu)造函數(shù) char inter_face();/首頁 void add_info();/添加數(shù)據(jù) void
29、del_info();/刪除數(shù)據(jù) void show_info();/顯示指定數(shù)據(jù) void count();/統(tǒng)計 void save_new();/保存新增加的數(shù)據(jù) void CreateFile(char *s); void ReadFile(char *s); void print();private: string cosdate;/日期 float money;/交易金額 string coslx;/交易類型 string xflb;/消費類別 string rema;/備注; book:book() /構(gòu)造函數(shù) 初始化 cosdate = "0" money
30、= 0; coslx = "0" xflb = "0" rema = "0" /首頁char book:inter_face() system("cls"); /清除屏幕 cout <<endl; cout<<"tt$" <<endl <<"tt" <<endl<<"tt$ 個 人 記 賬 系 統(tǒng) $" <<endl <<"tt" <&
31、lt;endl<<"tt$" <<endl <<"tt$ $" <<endl <<"tt$ 1.新增賬目 4.賬目統(tǒng)計 $" <<endl <<"tt$ $" <<endl <<"tt$ 2.刪除賬目 5.退出系統(tǒng) $" <<endl <<"tt$ $" <<endl <<"tt$ 3.查詢及修改 $"
32、 <<endl <<"tt$ $" <<endl<<"tt$" <<endl <<endl<<"ttt請選擇:" ; char choose; cin >>choose; fflush(stdin);/清緩存 return choose; /添加數(shù)據(jù) void book:add_info() cout <<endl <<"根據(jù)提示輸入消費信息" <<endl <<endl
33、<<"日期(例如:2012.12.25):" ; cin >>cosdate; fflush(stdin); cout <<"金額 : " cin >>money; fflush(stdin); cout <<"操作類型(支出(A)和收入(B)) : " cin >>coslx; fflush(stdin); cout <<"消費類別(衣(a)食(b)住(c)行(d)其它(e)) : " cin >>xflb; fflu
34、sh(stdin); cout <<"備注 : " cin >>rema; fflush(stdin); save_new(); /保存信息函數(shù) cout <<endl <<endl <<"信息已經(jīng)保存!" <<endl <<endl; system("pause"); /等待 按任意鍵繼續(xù) /刪除數(shù)據(jù)void book:del_info() ofstream outtemp1("temp1.txt", ios:out); /寫操作
35、 輸出方式打開ofstream outData("temp.txt", ios:out); ifstream indata("Personal system of accounting.txt", ios:in); / 讀操作 輸入方式打開if (!outData | !indata) cout <<endl <<"對不起!找不到文件!" <<endl; system("pause"); return; string sign; cout <<endl <<
36、;"輸入你要刪除交易的日期:" cin >>sign; bool flag = true; string str1,str2; string str200; int a=1,b; while (indata >>cosdate) getline(indata, stra);/按行讀取if (sign=cosdate) if(flag)cout <<endl <<"你想刪除的交易:" <<endl <<endl;/格式化cout <<setiosflags(ios:left
37、)<< setw(16) <<"交易日期"<< setw(10)<<"交易金額"<< setw(16) <<"交易類型"<< setw(17) <<"消費類別"<< setw(20) <<"備注"<<endl;cout<<"序號:"<<a<<endl;cout <<setiosflags(ios:l
38、eft)<<cosdate <<stra <<endl;flag = false; a+; if (flag) cout <<endl <<"對不起!無記錄!" <<endl <<endl; else cout<<"請選擇要刪除的記錄(序號),退出請輸入0,然后回車刪除:"<<endl;while(b>a|b<0)cin>>b;if(b=0)return;outtemp1 <<setiosflags(ios:le
39、ft)<<sign<<strb <<endl;outtemp1.close();ifstream in1("temp1.txt", ios:in);getline(in1, str1);in1.close;indata.close(); ifstream indata("Personal system of accounting.txt", ios:in);/將不是要刪除的信息保存到temp文件中 while (getline(indata, str2) if(str2!=str1) outData<<st
40、r2<<endl; indata.close(); outData.close(); ofstream out("Personal system of accounting.txt", ios:out); ifstream in("temp.txt", ios:in); if (!out | !in) cout <<endl <<"對不起不能打開文件!" <<endl <<endl; system("pause"); return; while (getl
41、ine(in, str2) /用緩存數(shù)據(jù)覆蓋源文件的數(shù)據(jù) out <<str2<<endl; out.close();/關(guān)閉文件in.close(); cout <<endl <<"此交易記錄已刪除!" <<endl <<endl; system("pause"); /查詢、修改void book:show_info() ofstream outData("temp.txt", ios:out);ofstream outtemp1("temp1.txt&
42、quot;, ios:out); ifstream indata("Personal system of accounting.txt", ios:in); if (!outData | !indata) cout <<endl <<"對不起!找不到文件!" <<endl; system("pause"); return; string sign; cout <<endl <<"輸入你要查詢或修改的數(shù)據(jù)的日期:" cin >>sign; boo
43、l flag = true; string str200; int a=1,b=0,c; string str1,str2; while (indata >>cosdate) getline(indata, stra);if (sign=cosdate) if(flag)cout <<endl <<"你想查詢/修改的交易:" <<endl <<endl;cout <<setiosflags(ios:left)<< setw(16) <<"交易日期"<&l
44、t; setw(10)<<"交易金額"<< setw(16) <<"交易類型"<< setw(17) <<"消費類別"<< setw(20) <<"備注"<<endl;cout<<"序號:"<<a<<endl;cout <<setiosflags(ios:left)<<cosdate<<stra <<endl;flag
45、 = false; a+; indata.close(); outData.close(); if (flag) cout <<endl <<"無記錄!" <<endl <<endl; else cout <<endl <<"是否對信息進行修改?" <<endl<<"0為否 1為是" <<endl; cin >>c;if(c=0)return; elsecout<<"請選擇要修改的記錄(序號),
46、然后回車修改,退出請輸入0:"<<endl;cin >>b;while(b>a|b<=0)if(b=0)return;cout <<endl <<"請根據(jù)下面提示修改信息 : " <<endl; cout <<"交易日期:" ; cin >>cosdate; fflush(stdin); cout <<"金額:" cin >>money; fflush(stdin); cout <<"
47、交易類型(支出(A)和收入(B)):" cin >>coslx; fflush(stdin);cout <<"消費類別(衣(a)食(b)住(c)行(d)其它(e)):" cin >>xflb; fflush(stdin);cout <<"備注:" cin >>rema; fflush(stdin);save_new(); flag = false; outtemp1 <<setiosflags(ios:left)<<sign/調(diào)用刪除部分<<strb
48、 <<endl;outtemp1.close();ifstream in1("temp1.txt", ios:in);getline(in1, str1);in1.close;ofstream outData("temp.txt", ios:out);ifstream indata("Personal system of accounting.txt", ios:in);while (getline(indata, str2) if(str2!=str1)outData<<str2<<endl; i
49、ndata.close(); outData.close();ofstream out("Personal system of accounting.txt", ios:out); ifstream in("temp.txt", ios:in); if (!out | !in) cout <<endl <<"對不起不能打開文件!" <<endl <<endl; system("pause"); return; while (getline(in, str2) out
50、<<str2<<endl; out.close();in.close();cout <<endl <<"此交易記錄已被修改!" <<endl <<endl; system("pause"); /統(tǒng)計信息void book:count() ifstream inData("Personal system of accounting.txt",ios:in); int b=0; if (!inData) cout <<endl <<"
51、對不起!文件找不到!" <<endl; system("pause"); return; string sign1;string sign2; cout <<endl <<"輸入交易開始日期: " cin >>sign1; fflush(stdin); cout <<endl <<"輸入交易終止日期: " cin >>sign2; string str1; bool flag = true;bool flag1 = true; int a=0
52、;float num1=0,num2=0,num3=0,num4=0,num5=0,num6=0,num7=0; string str100; while (inData >>cosdate>>money>>coslx>>xflb) getline(inData, stra); if (strcmp(cosdate.c_str(),sign1.c_str()>=0 && strcmp(cosdate.c_str(),sign2.c_str()<=0) /以ascii比較日期大小 if(flag) cout <&l
53、t;endl <<"該時間段的交易信息有: " <<endl <<endl; cout<<setiosflags(ios:left)<< setw(16) <<"交易日期"<< setw(10)<<"交易金額"<< setw(16) <<"交易類型"<< setw(17) <<"消費類別"<< setw(20) <<"備注"<<endl; cout <<setiosf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范例廣聯(lián)達
- 寫勞動合同范本
- 北京自住房合同范本
- 合同范本游樂場
- 合同范本修改格式
- 合作廠房修建合同范本
- 2025年IC卡鑒別機項目發(fā)展計劃
- 單位分工合同范本
- 創(chuàng)業(yè)培訓(xùn)合同范本
- 基地種植合作合同范本
- 2025年湖南大眾傳媒職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫學(xué)生專用
- 開學(xué)安全第一課主題班會課件
- 一年級珍惜糧食主題班會學(xué)習(xí)教案
- 2025年南京旅游職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 新版《醫(yī)療器械經(jīng)營質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年高縣縣屬國企業(yè)公開招聘工作人員高頻重點提升(共500題)附帶答案詳解
- 2025年人教版數(shù)學(xué)五年級下冊教學(xué)計劃(含進度表)
- 海岸動力學(xué)英文課件Coastal Hydrodynamics-復(fù)習(xí)
- 第7課 課題二《清潔工具與生活·創(chuàng)意清潔工具設(shè)計》(說課稿)-2023-2024學(xué)年四年級下冊綜合實踐活動浙教版
- 碳足跡研究-洞察分析
- DB11-T 1191.3-2024 實驗室危險化學(xué)品安全管理要求 第3部分:科研單位
評論
0/150
提交評論