


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)號(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目錄實(shí)驗(yàn)?zāi)康?系統(tǒng)功能描述1添加卡信息1查詢卡信息2上機(jī)操作2下機(jī)操作2充值操作3退費(fèi)操作3注銷卡操作43.典型算法分析4開發(fā)難點(diǎn)與體會(huì)7實(shí)驗(yàn)總結(jié)1實(shí)驗(yàn)?zāi)康牧私獾杰浖_發(fā)的一般過程,領(lǐng)會(huì)需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)以及系統(tǒng)測(cè)試等階段的任務(wù)要點(diǎn);深入理解和熟練應(yīng)用C/C+語言的基本概念和基本原理,如數(shù)據(jù)類型、順序選擇和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)、函數(shù)等;熟練理解和掌握C/C+語言的高級(jí)知識(shí),如字符申、結(jié)構(gòu)體、文件讀寫、動(dòng)態(tài)內(nèi)存管理、鏈表等技術(shù);熟練掌握
2、在C/C+語言環(huán)境下,模塊化開發(fā)的具體實(shí)現(xiàn)方法,深入領(lǐng)會(huì)和分析一些C/C+程序設(shè)計(jì)實(shí)用開發(fā)方法和技術(shù);綜合應(yīng)用所學(xué)知識(shí)去分析需求,能夠把所學(xué)的C/C+語言技術(shù)應(yīng)用到具體的實(shí)踐中去,并迭代式開發(fā)出一個(gè)軟件系統(tǒng),從而培養(yǎng)學(xué)生分析和解決問題的能力。通過迭代式開發(fā),深入掌握C語言的文件、鏈表、結(jié)構(gòu)體、動(dòng)態(tài)內(nèi)存管等技術(shù),開發(fā)實(shí)現(xiàn)一個(gè)計(jì)費(fèi)管理軟件。2系統(tǒng)功能與描述實(shí)驗(yàn)流程:開始捋朔保存到故組中將卡皇密碼保存至勝吉構(gòu)體中將卡的其余信息保薦甄吉構(gòu)體中以列表形g示1.添加卡與查詢卡的操作添加卡信息。在數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行迭代開發(fā),添加一張新卡,將卡信息保存到結(jié)構(gòu)體變量中??ㄐ畔ǎ嚎ㄌ?hào)、密碼、開卡金額、卡狀態(tài)
3、、開卡時(shí)間、截止時(shí)間、最后使用時(shí)間、使用次數(shù)、累積金額。在輸入后程序自動(dòng)顯示本次添加的卡信息內(nèi)容,添加卡八氣御卡L上機(jī)1.卜FLM充值匚注銷卡).退由著選擇槳單J頁(yè)編4()3=添力口卡者輸入卡。(氐度為L(zhǎng)IS)!tost肖偷入密碼(女度為1F):123456吉4俞入汁卡金削13V1R):1OO爾所添加的R信息如F:k狀態(tài)余制i;est1234561()0,0喬力II仁佶息成力!查詢卡信息::精確查詢,要求輸入正確格式的卡號(hào),若不存在輸入的卡號(hào)則提示用戶無此卡,若存在卡號(hào),則輸出此卡的信息。若找到相對(duì)應(yīng)符合條件的卡,則按照結(jié)構(gòu)所存儲(chǔ)的內(nèi)容輸出卡信息查詢卡請(qǐng)輸入查詢的卡號(hào)(長(zhǎng)度為ri8):test
4、查詢到的卡信息如下使用次數(shù)上次使用時(shí)間02016-04-2521:4*卡號(hào)狀態(tài)余額察計(jì)使用test0100,0100.fl:模糊查詢,要求輸入卡號(hào)的關(guān)鍵字符申,若存在包含此關(guān)鍵字符申,則輸出這些卡的信息。不存在則提示用戶請(qǐng)輸入查詢的卡號(hào)(長(zhǎng)度為1、18):t查詢到的卡信息如下使用次數(shù)上次使用時(shí)間02016-04-2521:48卡號(hào)狀態(tài)奈額察計(jì)使用test0100.01D0.02.上機(jī):提示用戶輸入正確格式的上機(jī)的卡號(hào)及密碼,若不存在此卡,則提示用戶卡號(hào)不存在,若存在,則判斷卡的狀態(tài),若未上機(jī)狀態(tài)則提示上機(jī)成功,更新上機(jī)信息,否則提示卡的狀態(tài)以及上機(jī)失敗。同時(shí)程序更改卡的狀態(tài),記錄下當(dāng)前上機(jī)時(shí)間
5、保存在鏈表中。1. 下機(jī):提示用戶輸入正確格式的下機(jī)的卡號(hào)及密碼,若不存在此卡,則提示卡號(hào)不存在,若存在,則判斷卡的狀態(tài),若上機(jī)狀態(tài)則提示下機(jī)成功,更新下機(jī)信息,否則提示卡的狀態(tài)及下機(jī)失敗。同時(shí)把上下機(jī)的時(shí)間,和扣除消費(fèi)金額的余額輸出。國(guó)輸入卡號(hào)(長(zhǎng)度為18):test,輸入密碼(長(zhǎng)度為8):123456卜一一下機(jī)信息如下俐號(hào)消費(fèi)余額上機(jī)時(shí)間下機(jī)時(shí)間Lst0.299.82016-04-2522:072016-04-2522:12卜機(jī)成珈充值:提示用戶輸入正確格式的充值的卡號(hào)及密碼和充值金額,若不存在此卡,則提小用戶卡號(hào)不存在,若存在,則判斷卡的狀態(tài),若已注銷或失效則提小已注銷或失效及充值失敗,
6、否則更新卡余額,提示用戶充值成功,輸出充值信息。同時(shí)程序更改卡的余額,以原來的金額加上充值金額,保存在鏈表中。-充值-請(qǐng)輸入卡號(hào)(長(zhǎng)度為E):e請(qǐng)輸入密碼(長(zhǎng)度為8);123456請(qǐng)輸入充值金額:50充值信息如下卡號(hào)充值金額余額test50.0149.0充值成功!4. 退費(fèi):提示用戶輸入正確格式的退費(fèi)的卡號(hào)及密碼和退費(fèi)金額,若不存在此卡,則提示用戶卡號(hào)不存在,若存在,則判斷卡的狀態(tài),若已注銷或失效則提示已注銷或失效及退費(fèi)失敗,否則判斷卡余額,若余額大丁退費(fèi)金額,則更新卡余額,提示用戶退費(fèi)成功,否則提示用戶余額不足。-退費(fèi)-芾輸入卡號(hào)(長(zhǎng)度為廣18):test請(qǐng)輸入密仍(K度為8):123156
7、退費(fèi)信息如下怡號(hào)退費(fèi)金額余額test150.00,0退費(fèi)成功!5. 注銷卡信息:提示用戶輸入正確的要注銷的卡號(hào)以及密碼,若不存在此卡,則提小用戶卡號(hào)不存在,若存在,則判斷卡的狀態(tài),并提小用戶注銷成功。抱歉!退費(fèi)失敗,請(qǐng)檢查后重試_注銷-請(qǐng)輸入卡號(hào)(長(zhǎng)度ri8):test浦輸入密碼(長(zhǎng)度為8):123456主銷成功!6. 自己添加的部分特色功能:(1)按使用次數(shù)排序使用次數(shù)底*數(shù)排序后岑狀態(tài)余額累計(jì)使用56O0.3230213.00.0充值送費(fèi)3典型算法分析(完整源代碼請(qǐng)見光盤)搭建程序框架在主界面功能的基礎(chǔ)上進(jìn)行迭代開發(fā)程序按照三層結(jié)構(gòu)進(jìn)行構(gòu)建:表示層、邏輯層、存儲(chǔ)層'編寫相應(yīng)預(yù)處理指
8、令:文件包含、條件編譯以及宏定義。#include<stdio.h>#include<stdlib.h>#include"menu.h"#include"data.h"#include"card_file.h"#define_CRT_SECURE_NO_WARNINGintmain(void)(intnum_selection=-1;printf("您好,歡迎進(jìn)入計(jì)費(fèi)管理系統(tǒng)n");printf("n");goon>>然后通過分解與重組,將程序分為幾個(gè)模塊,方
9、便以后查看,修改,完善以及維接下來是宏定義部分#ifndefMENU_H#defineMENU_HvoidoutputMenu();voidadd();voidquery();voidlogon();voidlogoff();voidaddMoney();voidrefundMoney();/voidqueryStatistics();voidannul();添加卡操作/查詢卡操作/上機(jī)操作/下機(jī)操作/充值操作/退費(fèi)操作/查詢統(tǒng)計(jì)操作/注銷卡操作/退出voidexitApp();通過使用宏定義,可以有效防止程序過于繁雜,也能夠使同一個(gè)語句能夠在多次使用時(shí)不需要重復(fù)編寫,從而不影響整個(gè)程序的運(yùn)行
10、,減少了工作量,提高了效率。文件的處理直接到卡文件中查找卡,通過循環(huán)讀取卡,當(dāng)卡的卡號(hào)正確時(shí)返回1,否則返回0tips:fseek(fp,sizeof(Card)-sizeof(aName),1);/將位置指針移到下一個(gè)結(jié)構(gòu)代碼部分:intisExist(constchar*pName,constchar*pPath)FILE*fp=NULL;charaName18=0;/保存讀取的卡號(hào)信息if(fp=fopen(pPath,"rb")=NULL)printf("ThefunctionofisExsitcan'topenfile!n");exit
11、(-1);while(!feof(fp)if(fread(aName,sizeof(aName),1,fp)=1)if(strcmp(aName,pName)=0)fclose(fp);return1;else(fseek(fp,sizeof(Card)-sizeof(aName),1);/將位置指針移到下一個(gè)結(jié)構(gòu)體fclose(fp);return0;關(guān)閉文件用fclose函數(shù),可以使文件指針變量不再指向該文件,及時(shí)關(guān)閉文件,可以防止誤操作創(chuàng)建鏈表用來添加,查詢卡信息,將鏈表中的數(shù)據(jù)保存到文件中部分代碼:intaddCard(Cardcard)/復(fù)制新添加的卡信息到鏈表(lpCardNode
12、cur=NULL;if(cardList=NULL)initCardList();將卡信息添加到當(dāng)前位置cur=(lpCardNode)malloc(sizeof(CardNode);if(cur!=NULL)(cur->data=card;cur->next=NULL;while(cardList->next!=NULL)提高循環(huán)在鏈表找到最后一個(gè)結(jié)點(diǎn)(cardList=cardList->next;cardList->next=cur;returnTRUE;returnFALSE;一:從文件中讀取信息(1) 用一個(gè)指針p指向鏈表的頭結(jié)點(diǎn)(2) 判斷讀取是否有錯(cuò)
13、誤,如果沒有執(zhí)行下一步,否則提示錯(cuò)誤(3) while(!feof(fp)(4) 判斷需要的值,如果是則執(zhí)行4,如果不是則執(zhí)行5(5) 再次判斷是否讀出,如果滿足則輸出或者返回,如果不滿足則提示用戶(6) p指向下一個(gè)節(jié)點(diǎn)關(guān)閉文件第二:更新文件中的信息(1) 創(chuàng)建文件指針,(2) while(!feof(fp)判斷fread(&card,sizeof(Card),1,fp)是否為空,如果是,獲取文件位置,如果不是,繼續(xù)循環(huán)。(3) 指針移到標(biāo)記的位置(4) 更新卡中的信息(5) 輸出更新的信息關(guān)閉文件第三:將數(shù)據(jù)保存到文件中去(1) 創(chuàng)建文件指針(2) 判斷文件打開是否有錯(cuò)誤,如果有,
14、提示用戶,如果沒有,則執(zhí)行下一步(3) 每一一個(gè)card的長(zhǎng)度的向文件中輸入數(shù)據(jù)。(4) 關(guān)閉文件結(jié)束第四:獲取當(dāng)?shù)氐臅r(shí)間(雖然不是很難但是用的很多很典型)(1) 用某某等丁time(NULL)來獲取當(dāng)?shù)氐臅r(shí)間(2) 編寫tinetostring函數(shù)將time的類型轉(zhuǎn)化為%Y-%m-%d%H:%M類型以字符申的類型輸出4開發(fā)難點(diǎn)與體會(huì)剛開始的時(shí)候自己連VS2010都不會(huì)用,以前一直用的是DEVC+,然后邊開始在白度上面不斷搜索怎樣使用VS2010,慢慢地終丁知道并開始熟悉VS2010的環(huán)境,也知道了如何創(chuàng)建文件,以前都只是寫點(diǎn)小程序,還沒寫過這么大的程序,開始挺高興的,但是當(dāng)真正去做的時(shí)候,卻
15、茫然不知所措,不斷地看書與實(shí)踐。這次實(shí)驗(yàn)比上學(xué)期難的多,并且要求各個(gè)方面知識(shí)都要學(xué)好,但是上學(xué)期沒有認(rèn)真聽講,導(dǎo)致落下很多,所以只能一點(diǎn)點(diǎn)去充實(shí)自己。第一次實(shí)驗(yàn)并不是特別難,但是不知道怎么創(chuàng)建文件,最后在軟酷上看學(xué)習(xí)資料慢慢會(huì)了。添加卡和查詢卡要用文件和數(shù)組知識(shí)。但是自己這方面并沒有掌握的很好。所以只能一邊寫,遇到不會(huì)的再問老師和同學(xué),就這樣最終還是成功了。然后是對(duì)鏈表的單獨(dú)操作,鏈表是我最頭癰的地方,關(guān)鍵是一點(diǎn)都不會(huì),然后乂把上學(xué)期的書翻出來好好地補(bǔ)習(xí)了一下。最后還是完成任務(wù)了。到后來越來越難,但是有了前面的鋪墊,自己慢慢地得心應(yīng)手,所以遇到困難也不怕,能夠一一克服,通過我們的導(dǎo)師張蕊老師和
16、寢室的大神韓飛翔,好多問題都得到了解決。通過這次實(shí)驗(yàn),我學(xué)習(xí)到了如何將卡信息保存到文本文件,如何讀取文件,掌握了FILE類型結(jié)構(gòu)體,并且知道了如何打開文件以及讀取數(shù)據(jù)以及關(guān)閉文件,等等好多以前不知道的知識(shí)。有一下一些難點(diǎn):鏈表的形式:在鏈表中查找節(jié)點(diǎn):瑜入被TEfft返回查找不成功.返呵我們這次計(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)
17、管理系統(tǒng)的功能十分強(qiáng)大,程序的編寫也十分的復(fù)雜,所以我們花了兩個(gè)多月,每個(gè)星期完成一部分程序.程序的編寫是一項(xiàng)困難的任務(wù),完成此程序必需運(yùn)用書中的大部分知識(shí),而且要有活晰的思路,有較強(qiáng)的語言組織能力.由丁每個(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)框架
18、:本次實(shí)驗(yàn)難度較大,需要考察學(xué)生的多方面能力:對(duì)基礎(chǔ)編程知識(shí)的掌握,在開始階段,大部分的代碼都是利用我們的已有知識(shí)進(jìn)行實(shí)驗(yàn),通過實(shí)驗(yàn)讓我們對(duì)知識(shí)的掌握更加熟練對(duì)整個(gè)系統(tǒng)的功能以及實(shí)現(xiàn)的認(rèn)識(shí),在后期的實(shí)驗(yàn)中,我們不斷的向初始工程中添加代碼,這時(shí)由于工程變大,我們就需要了解到整個(gè)工程的各個(gè)部分,以便我們的工程能夠有效快速的進(jìn)行。對(duì)新知識(shí)的吸收能力。在工程進(jìn)行的過程中,我們將會(huì)遇到許多我們現(xiàn)有知識(shí)無法解決的問題,這就需要我們通過各種方法來解決,如上網(wǎng)查閱資料,向老師提問等。對(duì)實(shí)驗(yàn)中發(fā)現(xiàn)的問題要有耐心去解決它,只有通過一次乂一次的錯(cuò)誤,并從中吸取經(jīng)驗(yàn),我們才能讓自己做的更好。這次實(shí)驗(yàn)讓我們知道了如何使
19、用函數(shù),鏈表和文件的操作。也讓我們對(duì)我們所學(xué)的有了更加一步的了解,也終于有了學(xué)以致用的感覺,雖然自己寫的程序并不完美無瑕,可以說丑陋無比,但是我相信以后會(huì)越來越優(yōu)化與美好。更加重要的是我們知道了什么叫迭代,它對(duì)于我們來說不再難以理解,而是深入我們的內(nèi)心。但是我覺得這次實(shí)驗(yàn)也有許多與實(shí)際生活不符的地方,如輸密碼的時(shí)候不能隱藏,可能會(huì)造成信息的泄露。經(jīng)過兩個(gè)多月的課程實(shí)訓(xùn),完成了對(duì)計(jì)費(fèi)管理系統(tǒng)代碼的設(shè)計(jì),收獲頗多。也明白了自己在C語言上存在的一些問題,尤其在用C語言編程方面存在的缺點(diǎn)與不足。經(jīng)過課程實(shí)訓(xùn)使我明白做一個(gè)完整的系統(tǒng)要用到我們學(xué)到的很多方面的知識(shí),一個(gè)完整的系統(tǒng)包含的C語言知識(shí)很多,要有
20、好強(qiáng)的綜合運(yùn)用能力才能開發(fā)一個(gè)完整的系統(tǒng)。在程序操作過程中要有耐心,更要細(xì)心。同時(shí),也體會(huì)到學(xué)軟件專業(yè)要有好強(qiáng)的動(dòng)手能力,而實(shí)訓(xùn)操作完成小系統(tǒng)鍛煉了我的動(dòng)手能力,今后,在動(dòng)手操作方面要加強(qiáng),畢竟熟能生巧,練多了才能提高自己的編寫程序的能力。畢竟,對(duì)于軟件專業(yè)的初學(xué)者來說,起初的編程還屆于經(jīng)驗(yàn)編程,靠自己的學(xué)習(xí)及動(dòng)手操作獲得經(jīng)驗(yàn),以便為今后開發(fā)出新的程序打下基礎(chǔ)。通過這次實(shí)驗(yàn),學(xué)到了很多,也堅(jiān)定了我學(xué)習(xí)計(jì)算機(jī)的決心,我相信以后會(huì)越做越好的。通過這次課程設(shè)計(jì),我把書本的理論和實(shí)踐聯(lián)系起來,有利于鞏固所學(xué)理我感覺收益匪淺,同時(shí)也為我以后走向工作崗位打下一個(gè)初步的基礎(chǔ)。盡管時(shí)間有限,我們做的設(shè)計(jì)不是很完善,但是仍然給了我很多啟示。在這次課程設(shè)計(jì)中,我覺得組員之間的合作很重要,組員之間的溝通能夠給我?guī)砗芏鄮椭?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)藥代表技能培訓(xùn)
- 培訓(xùn)經(jīng)理半年度培訓(xùn)總結(jié)
- 客戶關(guān)系管理培訓(xùn)
- 復(fù)地-世茂地產(chǎn)專題研究
- 學(xué)生安全教育培訓(xùn)
- 小學(xué)生流感病人的護(hù)理
- 四川省廣元市蒼溪縣2024-2025學(xué)年九年級(jí)下學(xué)期一診歷史試卷(含答案)
- 部編版2024-2025學(xué)年第二學(xué)期四年級(jí)語文期中測(cè)試卷(含答案)
- 大學(xué)古詩(shī)詞課件
- 成功創(chuàng)業(yè)項(xiàng)目的市場(chǎng)調(diào)研
- 2025年保定幼兒師范高等??茖W(xué)校高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 5.2做自強(qiáng)不息的中國(guó)人課件 -2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 運(yùn)維面試試題及答案
- 山東大學(xué)教師外其他專業(yè)技術(shù)崗位招聘真題2024
- 函數(shù)與導(dǎo)數(shù)-2025高考數(shù)學(xué)大題突破(含答案)
- 2025年中考數(shù)學(xué)模擬試卷一(含詳解)
- 2025年倉(cāng)儲(chǔ)物流改進(jìn)與合作伙伴協(xié)議
- 小學(xué)生數(shù)據(jù)分析課件
- 術(shù)后鎮(zhèn)痛規(guī)范與流程
- 影視短劇投資合作合同
- 植入式靜脈給藥裝置護(hù)理技術(shù)課件
評(píng)論
0/150
提交評(píng)論