C語(yǔ)言計(jì)費(fèi)系統(tǒng)報(bào)告_第1頁(yè)
C語(yǔ)言計(jì)費(fèi)系統(tǒng)報(bào)告_第2頁(yè)
C語(yǔ)言計(jì)費(fèi)系統(tǒng)報(bào)告_第3頁(yè)
C語(yǔ)言計(jì)費(fèi)系統(tǒng)報(bào)告_第4頁(yè)
C語(yǔ)言計(jì)費(fèi)系統(tǒng)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、R號(hào) 0121510880212 計(jì)算機(jī)基礎(chǔ)與綜合編程實(shí)驗(yàn)報(bào)告 學(xué) 院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專 業(yè) 計(jì)算機(jī)類 班 級(jí) m1502班 姓 名 韓龍 張蕊 指導(dǎo)教師 日期 2016-4-25 精選文庫(kù) 9 目錄 添加卡信息 查詢卡信息 上 3. 典型算法分析- 4. 開發(fā)難點(diǎn)與體會(huì) 5. 實(shí)驗(yàn)總結(jié) 實(shí) 驗(yàn)?zāi)?的 1 系 統(tǒng)功能描 述 1 -1 -2 操 作 -2 操 作 2 操 作 3 操 作 3 操 作 -4 -4 7 卡 8 1. 2. 1實(shí)驗(yàn)?zāi)康?了解迭代式軟件開發(fā)的一般過(guò)程,領(lǐng)會(huì)需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng) 實(shí)現(xiàn)以及系統(tǒng)測(cè)試等階段的任務(wù)要點(diǎn);深入理解和熟練應(yīng)用C/C+語(yǔ)言的 基本概念和基本原

2、理,如數(shù)據(jù)類型、順序選擇和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)、函 數(shù)等;熟練理解和掌握C/C+語(yǔ)言的高級(jí)知識(shí),如字符串、結(jié)構(gòu)體、文件 讀寫、動(dòng)態(tài)內(nèi)存管理、鏈表等技術(shù);熟練掌握在 C/C+語(yǔ)言環(huán)境下,模塊 化開發(fā)的具體實(shí)現(xiàn)方法,深入領(lǐng)會(huì)和分析一些C/C+g序設(shè)計(jì)實(shí)用開發(fā)方 法和技術(shù);綜合應(yīng)用所學(xué)知識(shí)去分析需求,能夠把所學(xué)的C/C+語(yǔ)言技術(shù) 應(yīng)用到具體的實(shí)踐中去,并迭代式開發(fā)出一個(gè)軟件系統(tǒng),從而培養(yǎng)學(xué)生 分析和解決問(wèn)題的能力。通過(guò)迭代式開發(fā),深入掌握C語(yǔ)言的文件、鏈 表、結(jié)構(gòu)體、動(dòng)態(tài)內(nèi)存管等技術(shù),開發(fā)實(shí)現(xiàn)一個(gè)計(jì)費(fèi)管理軟件。 2系統(tǒng)功能與描述 1.添加卡與查詢卡的操作 添加卡信息。 在數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行迭代開發(fā),添

3、加一張新卡,將卡信息保存到結(jié)構(gòu)體變 量中。 卡信息包括:卡號(hào)、密碼、開卡金額、卡狀態(tài)、開卡時(shí)間、截止時(shí)間、最后使 用時(shí)間、使用次數(shù)、累積金額。 在輸入后程序自動(dòng)顯示本次添加的卡信息內(nèi)容。 編 川 山 單 慣朵 加詢機(jī)機(jī)偵費(fèi)椚出樣 km - - J .4 -f 一 K 了忝 JjH fv 背徊入卡兮C氏反為廣IB): tt 占輸入沖H冋 #i nclude 精選文庫(kù) 11 #i nclude #i nclude #i nclude #define _ int main(void) int num_selection = -1; printf(您好,歡迎進(jìn)入計(jì)費(fèi)管理系統(tǒng)n); printf( n)

4、; go on me nu .h data.h card_file.h CRT SECURE_NO_WARNING 然后通過(guò)分解與重組,將程序分為幾個(gè)模塊,方便以后查看,修改,完善以及維 接下來(lái)是宏定義部分 #ifndef MENU_H #define MENU_H void void void void void void void /void queryStatisticsO; void annul(); void exitApp(); 通過(guò)使用宏定義,可以有效防止程序過(guò)于繁雜,也能夠使同一個(gè)語(yǔ)句能夠在多次 使用時(shí)不需要重復(fù)編寫,從而不影響整個(gè)程序的運(yùn)行,減少了工作量,提高了效 率。 (2

5、)文件的處理 直接到卡文件中查找卡,通過(guò)循環(huán)讀取卡,當(dāng)卡的卡號(hào)正確時(shí)返回1,否則返回 0 tips : fseek(fp,sizeof(Card)-sizeof(aName),1); / 個(gè)結(jié)構(gòu) 代碼部分: int isExist(c onst char* p Name, const char* pP ath) FILE* fp = NULL; char aName18=0; /保存讀取的卡號(hào)信息 if(fp=fo pen(pP ath,rb)=NULL) prin tf(The fun cti on of isExsit cant open file! n); exit(-1); out p

6、utMe nu(); add(); queryO; logo n(); logoffO; addMo ney(); refundMon ey(); / / / / /添加卡操作 查詢卡操作 上機(jī)操作 /下機(jī)操作 充值操作 /退費(fèi)操作 /查詢統(tǒng)計(jì)操作 注銷卡操作 /退出 將位置指針移到下一 精選文庫(kù) while(!feof(fp) if(fread(aName,sizeof(aName),1,f p)=1) if(strcm p( aName ,p Name)=0) fclose(fp); return 1; else 將位置指針移到 fseek(fp,sizeof(Card)-sizeof(a

7、Name),1); / 下一個(gè)結(jié)構(gòu)體 fclose(fp); return 0; 關(guān)閉文件用fclose函數(shù),可以使文件指針變量不再指向該文件,及時(shí)關(guān)閉文件, 可以防止誤操作 (3)創(chuàng)建鏈表用來(lái)添加,查詢卡信息,將鏈表中的數(shù)據(jù)保存到文件中 部分代碼: int addCard(Card card) /復(fù)制新添加的卡信息到鏈表 if lp CardNode cur=NULL; (cardList=NULL) ini tCardListO; 將卡信息添加到當(dāng)前位置 sizeof (CardNode); / cur = (Ip CardNode)malloc( if (cur!=NULL) cur-d

8、ata =card; cur- next =NULL; while (cardList-next!=NULL)/提高循環(huán)在鏈表找到最后一個(gè)結(jié)點(diǎn) cardList=cardList- next; cardList- n ext=cur; return TRUE; return FALSE; 從文件中讀取信息 (1) 用一個(gè)指針P指向鏈表的頭結(jié)點(diǎn) 18 (2) 判斷讀取是否有錯(cuò)誤,如果沒(méi)有執(zhí)行下一步,否則提示錯(cuò)誤 while(!feof ( fp) 判斷需要的值,如果是則執(zhí)行 4,如果不是則執(zhí)行5 (5) 再次判斷是否讀出,如果滿足則輸出或者返回,如果不滿足則提示用戶 (6) P指向下一個(gè)節(jié)點(diǎn) (

9、7) 關(guān)閉文件 第二:更新文件中的信息 (1)創(chuàng)建文件指針, (2) while(!feof (fp) (3)判斷 fread(&card,sizeof(Card),1,fp) 是否為空,如果是,獲取文件位置, 如果不是,繼續(xù)循環(huán)。 指針移到標(biāo)記的位置 更新卡中的信息 輸出更新的信息 (7) 關(guān)閉文件 第三:將數(shù)據(jù)保存到文件中去 (1)創(chuàng)建文件指針 (2) 判斷文件打開是否有錯(cuò)誤,如果有,提示用戶,如果沒(méi)有,則執(zhí)行下一步 (3)每一一個(gè)card的長(zhǎng)度的向文件中輸入數(shù)據(jù)。 (4)關(guān)閉文件 (5)結(jié)束 第四:獲取當(dāng)?shù)氐臅r(shí)間(雖然不是很難但是用的很多很典型) (1)用某某等于time(NULL)來(lái)獲

10、取當(dāng)?shù)氐臅r(shí)間 (2)編寫tinetostring函數(shù)將time的類型轉(zhuǎn)化為Y-%m-%d %H:%勺類型 (3) 以字符串的類型輸出 4開發(fā)難點(diǎn)與體會(huì) 剛開始的時(shí)候自己連VS2010都不會(huì)用,以前一直用的是 DEVC+然后邊開始在 百度上面不斷搜索怎樣使用 VS2010慢慢地終于知道并開始熟悉 VS201O勺環(huán)境, 也知道了如何創(chuàng)建文件,以前都只是寫點(diǎn)小程序,還沒(méi)寫過(guò)這么大的程序,開始 挺高興的,但是當(dāng)真正去做的時(shí)候,卻茫然不知所措,不斷地看書與實(shí)踐。這次 實(shí)驗(yàn)比上學(xué)期難的多,并且要求各個(gè)方面知識(shí)都要學(xué)好,但是上學(xué)期沒(méi)有認(rèn)真聽 講,導(dǎo)致落下很多,所以只能一點(diǎn)點(diǎn)去充實(shí)自己。第一次實(shí)驗(yàn)并不是特別難

11、,但 是不知道怎么創(chuàng)建文件,最后在軟酷上看學(xué)習(xí)資料慢慢會(huì)了。 添加卡和查詢卡要 用文件和數(shù)組知識(shí)。但是自己這方面并沒(méi)有掌握的很好。 所以只能一邊寫,遇到 不會(huì)的再問(wèn)老師和同學(xué),就這樣最終還是成功了。然后是對(duì)鏈表的單獨(dú)操作,鏈 表是我最頭痛的地方,關(guān)鍵是一點(diǎn)都不會(huì),然后又把上學(xué)期的書翻出來(lái)好好地補(bǔ) 習(xí)了一下。最后還是完成任務(wù)了。到后來(lái)越來(lái)越難,但是有了前面的鋪墊,自己 慢慢地得心應(yīng)手,所以遇到困難也不怕,能夠一一克服,通過(guò)我們的導(dǎo)師張蕊老 師和寢室的大神韓飛翔,好多問(wèn)題都得到了解決。通過(guò)這次實(shí)驗(yàn),我學(xué)習(xí)到了如 何將卡信息保存到文本文件,如何讀取文件,掌握了FILE類型結(jié)構(gòu)體,并且知 道了如何打開

12、文件以及讀取數(shù)據(jù)以及關(guān)閉文件, 等等好多以前不知道的知識(shí)。有 一下一些難點(diǎn): 鏈表的形式: 插入操作: 我們這次計(jì)費(fèi)管理系統(tǒng)分三步. 一是對(duì)要寫成的計(jì)費(fèi)管理系統(tǒng)做全面的分析,即對(duì)計(jì)費(fèi)管理系統(tǒng)要使用的編寫方 法,管理功用,運(yùn)行方式進(jìn)行分析,并作出明確的解決方案. 針對(duì)這次的計(jì)費(fèi)管理系統(tǒng),它的流程是:以管理員和用戶方式進(jìn)入,要有密碼認(rèn)證. 實(shí)現(xiàn)添加、查詢、上機(jī)、下機(jī)、充值、退費(fèi)、查詢統(tǒng)計(jì)、注銷等功能。 二是程序的編寫.由于計(jì)費(fèi)管理系統(tǒng)的功能十分強(qiáng)大,程序的編寫也十分的復(fù)雜, 所以我們花了兩個(gè)多月,每個(gè)星期完成一部分程序 .程序的編寫是一項(xiàng)困難的任 務(wù),完成此程序必需運(yùn)用書中的大部分知識(shí),而且要有清

13、晰的思路,有較強(qiáng)的語(yǔ)言 組織能力.由于每個(gè)星期完成一部分,所以程序能銜接得十分完整,所以每個(gè)星期編寫程序的基礎(chǔ)上考慮以前的程序結(jié)構(gòu).編寫程序就是一項(xiàng)十分困難的事,所以 一定要細(xì)心,不能有一絲的馬虎,否則會(huì)前功盡棄. 三是程序的檢查和系統(tǒng)的調(diào)用.程序?qū)懲旰蟛⒉荒鼙WC它一定能運(yùn)行,所以要對(duì) 它進(jìn)行調(diào)試,發(fā)現(xiàn)其中的弊端,并作出相應(yīng)的修改,以完善程序,使其邏輯性,運(yùn)算 能力都符合題目要求,使計(jì)費(fèi)管理系統(tǒng)的運(yùn)行能力達(dá)到課程的目的。 5實(shí)驗(yàn)總結(jié) 實(shí)驗(yàn)框架: 注ft卡 需要考察學(xué)生的多方面能力: 本次實(shí)驗(yàn)難度較大, 對(duì)基礎(chǔ)編程知識(shí)的掌握,在開始階段,大部分的代碼都是利用我們的已有知識(shí)進(jìn) 行實(shí)驗(yàn),通過(guò)實(shí)驗(yàn)讓我

14、們對(duì)知識(shí)的掌握更加熟練 對(duì)整個(gè)系統(tǒng)的功能以及實(shí)現(xiàn)的認(rèn)識(shí), 在后期的實(shí)驗(yàn)中,我們不斷的向初始工程中 添加代碼,這時(shí)由于工程變大,我們就需要了解到整個(gè)工程的各個(gè)部分,以便我 們的工程能夠有效快速的進(jìn)行。 對(duì)新知識(shí)的吸收能力。在工程進(jìn)行的過(guò)程中,我們將會(huì)遇到許多我們現(xiàn)有知識(shí)無(wú) 法解決的問(wèn)題,這就需要我們通過(guò)各種方法來(lái)解決, 如上網(wǎng)查閱資料,向老師提 冋等。 對(duì)實(shí)驗(yàn)中發(fā)現(xiàn)的問(wèn)題要有耐心去解決它, 只有通過(guò)一次又一次的錯(cuò)誤,并從中吸 取經(jīng)驗(yàn),我們才能讓自己做的更好。這次實(shí)驗(yàn)讓我們知道了如何使用函數(shù), 鏈表 和文件的操作。也讓我們對(duì)我們所學(xué)的有了更加一步的了解, 也終于有了學(xué)以致 用的感覺(jué),雖然自己寫的程

15、序并不完美無(wú)瑕, 可以說(shuō)丑陋無(wú)比,但是我相信以后 會(huì)越來(lái)越優(yōu)化與美好。更加重要的是我們知道了什么叫迭代,它對(duì)于我們來(lái)說(shuō)不 再難以理解,而是深入我們的內(nèi)心。但是我覺(jué)得這次實(shí)驗(yàn)也有許多與實(shí)際生活不 符的地方,如輸密碼的時(shí)候不能隱藏,可能會(huì)造成信息的泄露。經(jīng)過(guò)兩個(gè)多月的 課程實(shí)訓(xùn),完成了對(duì)計(jì)費(fèi)管理系統(tǒng)代碼的設(shè)計(jì),收獲頗多。也明白了自己在C 語(yǔ)言上存在的一些問(wèn)題,尤其在用C語(yǔ)言編程方面存在的缺點(diǎn)與不足。經(jīng)過(guò)課程 實(shí)訓(xùn)使我明白做一個(gè)完整的系統(tǒng)要用到我們學(xué)到的很多方面的知識(shí),一個(gè)完整的 系統(tǒng)包含的C語(yǔ)言知識(shí)很多,要有好強(qiáng)的綜合運(yùn)用能力才能開發(fā)一個(gè)完整的系 統(tǒng)。在程序操作過(guò)程中要有耐心,更要細(xì)心。同時(shí),也體

16、會(huì)到學(xué)軟件專業(yè)要有好 強(qiáng)的動(dòng)手能力,而實(shí)訓(xùn)操作完成小系統(tǒng)鍛煉了我的動(dòng)手能力, 今后,在動(dòng)手操作 方面要加強(qiáng),畢竟熟能生巧,練多了才能提高自己的編寫程序的能力。畢竟,對(duì) 于軟件專業(yè)的初學(xué)者來(lái)說(shuō),起初的編程還屬于經(jīng)驗(yàn)編程,靠自己的學(xué)習(xí)及動(dòng)手操 作獲得經(jīng)驗(yàn),以便為今后開發(fā)出新的程序打下基礎(chǔ)。 通過(guò)這次實(shí)驗(yàn),學(xué)到了很多, 也堅(jiān)定了我學(xué)習(xí)計(jì)算機(jī)的決心,我相信以后會(huì)越做越好的。通過(guò)這次課程設(shè)計(jì), 我把書本的理論和實(shí)踐聯(lián)系起來(lái), 有利于鞏固所學(xué)理我感覺(jué)收益匪淺, 同時(shí)也為 我以后走向工作崗位打下一個(gè)初步的基礎(chǔ)。 盡管時(shí)間有限,我們做的設(shè)計(jì)不是很 完善,但是仍然給了我很多啟示。在這次課程設(shè)計(jì)中,我覺(jué)得組員之間

17、的合作很 重要,組員之間的溝通能夠給我?guī)?lái)很多幫助, 我自己的想法是很多局限性,通 過(guò)討論可以完善我的設(shè)計(jì),也讓我的書本上的理論有了新的理解。通過(guò)這次實(shí)訓(xùn), 增加了我學(xué)習(xí)軟件技術(shù)的興趣,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從C 語(yǔ)言這門課程開始,已發(fā)現(xiàn)程序設(shè)計(jì)的樂(lè)趣,在學(xué)習(xí)C語(yǔ)言的過(guò)程中也學(xué)到了許 多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)大體的了解。這次實(shí)訓(xùn)是 老師給了范例程序,經(jīng)過(guò)自己的改寫,實(shí)現(xiàn)要求。先做簡(jiǎn)單的輸出,一步步的再 做其它復(fù)制部分,在實(shí)際操作過(guò)程中犯的一些錯(cuò)誤還會(huì)有意外的收獲,感覺(jué)實(shí)訓(xùn) 很有意思。在具體操作中對(duì)上學(xué)期所學(xué)的 C語(yǔ)言的理論知識(shí)得到鞏固,達(dá)到實(shí)訓(xùn) 的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機(jī)中應(yīng)更加注意,同時(shí)體會(huì)到 C語(yǔ)言具有的語(yǔ)句簡(jiǎn)潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)實(shí)訓(xùn)的重要作 用,特別是對(duì)數(shù)組和循環(huán)有了深刻的理解。通過(guò)實(shí)際操作,學(xué)會(huì)C語(yǔ)言程序編 程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問(wèn)題、解決 問(wèn)題的能力。深刻體會(huì)到“沒(méi)有做不到的,只有想不到的”,“

溫馨提示

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