




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE2學(xué)號《計算機(jī)基礎(chǔ)與綜合編程實(shí)驗(yàn)》報告學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院專業(yè)計算機(jī)類班級m1502班姓名指導(dǎo)教師日期2016-4-
目錄1.實(shí)驗(yàn)?zāi)康?2.系統(tǒng)功能描述1添加卡信息1查詢卡信息2上機(jī)操作2下機(jī)操作2充值操作3退費(fèi)操作3注銷卡操作43.典型算法分析44.開發(fā)難點(diǎn)與體會75.實(shí)驗(yàn)總結(jié)81實(shí)驗(yàn)?zāi)康牧私獾杰浖_發(fā)的一般過程,領(lǐng)會需求分析、系統(tǒng)設(shè)計、系統(tǒng)實(shí)現(xiàn)以及系統(tǒng)測試等階段的任務(wù)要點(diǎn);深入理解和熟練應(yīng)用C/C++語言的基本概念和基本原理,如數(shù)據(jù)類型、順序選擇和循環(huán)結(jié)構(gòu)程序設(shè)計、函數(shù)等;熟練理解和掌握C/C++語言的高級知識,如字符串、結(jié)構(gòu)體、文件讀寫、動態(tài)內(nèi)存管理、鏈表等技術(shù);熟練掌握在C/C++語言環(huán)境下,模塊化開發(fā)的具體實(shí)現(xiàn)方法,深入領(lǐng)會和分析一些C/C++程序設(shè)計實(shí)用開發(fā)方法和技術(shù);綜合應(yīng)用所學(xué)知識去分析需求,能夠把所學(xué)的C/C++語言技術(shù)應(yīng)用到具體的實(shí)踐中去,并迭代式開發(fā)出一個軟件系統(tǒng),從而培養(yǎng)學(xué)生分析和解決問題的能力。通過迭代式開發(fā),深入掌握C語言的文件、鏈表、結(jié)構(gòu)體、動態(tài)內(nèi)存管等技術(shù),開發(fā)實(shí)現(xiàn)一個計費(fèi)管理軟件。2系統(tǒng)功能與描述實(shí)驗(yàn)流程:1.添加卡與查詢卡的操作=1\*GB2⑴添加卡信息。在數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行迭代開發(fā),添加一張新卡,將卡信息保存到結(jié)構(gòu)體變量中??ㄐ畔ǎ嚎ㄌ?、密碼、開卡金額、卡狀態(tài)、開卡時間、截止時間、最后使用時間、使用次數(shù)、累積金額。在輸入后程序自動顯示本次添加的卡信息內(nèi)容。=2\*GB2⑵查詢卡信息:=1\*GB3①:精確查詢,要求輸入正確格式的卡號,若不存在輸入的卡號則提示用戶無此卡,若存在卡號,則輸出此卡的信息。若找到相對應(yīng)符合條件的卡,則按照結(jié)構(gòu)所存儲的內(nèi)容輸出卡信息。=2\*GB3②:模糊查詢,要求輸入卡號的關(guān)鍵字符串,若存在包含此關(guān)鍵字符串,則輸出這些卡的信息。不存在則提示用戶。2.上機(jī):提示用戶輸入正確格式的上機(jī)的卡號及密碼,若不存在此卡,則提示用戶卡號不存在,若存在,則判斷卡的狀態(tài),若未上機(jī)狀態(tài)則提示上機(jī)成功,更新上機(jī)信息,否則提示卡的狀態(tài)以及上機(jī)失敗。同時程序更改卡的狀態(tài),記錄下當(dāng)前上機(jī)時間保存在鏈表中。3.下機(jī):提示用戶輸入正確格式的下機(jī)的卡號及密碼,若不存在此卡,則提示卡號不存在,若存在,則判斷卡的狀態(tài),若上機(jī)狀態(tài)則提示下機(jī)成功,更新下機(jī)信息,否則提示卡的狀態(tài)及下機(jī)失敗。同時把上下機(jī)的時間,和扣除消費(fèi)金額的余額輸出。4.充值:提示用戶輸入正確格式的充值的卡號及密碼和充值金額,若不存在此卡,則提示用戶卡號不存在,若存在,則判斷卡的狀態(tài),若已注銷或失效則提示已注銷或失效及充值失敗,否則更新卡余額,提示用戶充值成功,輸出充值信息。同時程序更改卡的余額,以原來的金額加上充值金額,保存在鏈表中。6.退費(fèi):提示用戶輸入正確格式的退費(fèi)的卡號及密碼和退費(fèi)金額,若不存在此卡,則提示用戶卡號不存在,若存在,則判斷卡的狀態(tài),若已注銷或失效則提示已注銷或失效及退費(fèi)失敗,否則判斷卡余額,若余額大于退費(fèi)金額,則更新卡余額,提示用戶退費(fèi)成功,否則提示用戶余額不足。7.注銷卡信息:提示用戶輸入正確的要注銷的卡號以及密碼,若不存在此卡,則提示用戶卡號不存在,若存在,則判斷卡的狀態(tài),并提示用戶注銷成功。8.自己添加的部分特色功能:(1)按使用次數(shù)排序(2)充值送費(fèi)3典型算法分析(完整源代碼請見光盤)(1)搭建程序框架在主界面功能的基礎(chǔ)上進(jìn)行迭代開發(fā)。程序按照三層結(jié)構(gòu)進(jìn)行構(gòu)建:表示層、邏輯層、存儲層。編寫相應(yīng)預(yù)處理指令:文件包含、條件編譯以及宏定義。#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)入計費(fèi)管理系統(tǒng)\n"); printf("\n"); goon>>然后通過分解與重組,將程序分為幾個模塊,方便以后查看,修改,完善以及維 接下來是宏定義部分#ifndefMENU_H#defineMENU_HvoidoutputMenu();voidadd(); //添加卡操作voidquery(); //查詢卡操作voidlogon(); //上機(jī)操作voidlogoff(); //下機(jī)操作voidaddMoney(); //充值操作voidrefundMoney(); //退費(fèi)操作//voidqueryStatistics(); //查詢統(tǒng)計操作voidannul(); //注銷卡操作voidexitApp(); //退出通過使用宏定義,可以有效防止程序過于繁雜,也能夠使同一個語句能夠在多次使用時不需要重復(fù)編寫,從而不影響整個程序的運(yùn)行,減少了工作量,提高了效率。(2)文件的處理直接到卡文件中查找卡,通過循環(huán)讀取卡,當(dāng)卡的卡號正確時返回1,否則返回0tips:fseek(fp,sizeof(Card)-sizeof(aName),1);//將位置指針移到下一個結(jié)構(gòu)代碼部分:intisExist(constchar*pName,constchar*pPath){FILE*fp=NULL;charaName[18]={0};//保存讀取的卡號信息if((fp=fopen(pPath,"rb"))==NULL){printf("ThefunctionofisExsitcan'topenfile!\n"); exit(-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);//將位置指針移到下一個結(jié)構(gòu)體}}}fclose(fp);return0;}關(guān)閉文件用fclose函數(shù),可以使文件指針變量不再指向該文件,及時關(guān)閉文件,可以防止誤操作創(chuàng)建鏈表用來添加,查詢卡信息,將鏈表中的數(shù)據(jù)保存到文件中部分代碼:intaddCard(Cardcard)//復(fù)制新添加的卡信息到鏈表{ lpCardNodecur=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)在鏈表找到最后一個結(jié)點(diǎn) { cardList=cardList->next; } cardList->next=cur; returnTRUE; } returnFALSE;}一:從文件中讀取信息(1)用一個指針p指向鏈表的頭結(jié)點(diǎn)(2)判斷讀取是否有錯誤,如果沒有執(zhí)行下一步,否則提示錯誤(3)while(!feof(fp))(4)判斷需要的值,如果是則執(zhí)行4,如果不是則執(zhí)行5(5)再次判斷是否讀出,如果滿足則輸出或者返回,如果不滿足則提示用戶(6)p指向下一個節(jié)點(diǎn)(7)關(guān)閉文件第二:更新文件中的信息(1)創(chuàng)建文件指針,(2)while(!feof(fp))(3)判斷fread(&card,sizeof(Card),1,fp)是否為空,如果是,獲取文件位置,如果不是,繼續(xù)循環(huán)。(4)指針移到標(biāo)記的位置(5)更新卡中的信息(6)輸出更新的信息(7)關(guān)閉文件第三:將數(shù)據(jù)保存到文件中去(1)創(chuàng)建文件指針(2)判斷文件打開是否有錯誤,如果有,提示用戶,如果沒有,則執(zhí)行下一步(3)每一一個card的長度的向文件中輸入數(shù)據(jù)。(4)關(guān)閉文件(5)結(jié)束第四:獲取當(dāng)?shù)氐臅r間(雖然不是很難但是用的很多很典型)(1)用某某等于time(NULL)來獲取當(dāng)?shù)氐臅r間(2)編寫tinetostring函數(shù)將time的類型轉(zhuǎn)化為%Y-%m-%d%H:%M的類型(3)以字符串的類型輸出4開發(fā)難點(diǎn)與體會剛開始的時候自己連VS2021都不會用,以前一直用的是DEVC++,然后邊開始在百度上面不斷搜索怎樣使用VS2021,慢慢地終于知道并開始熟悉VS2021的環(huán)境,也知道了如何創(chuàng)建文件,以前都只是寫點(diǎn)小程序,還沒寫過這么大的程序,開始挺高興的,但是當(dāng)真正去做的時候,卻茫然不知所措,不斷地看書與實(shí)踐。這次實(shí)驗(yàn)比上學(xué)期難的多,并且要求各個方面知識都要學(xué)好,但是上學(xué)期沒有認(rèn)真聽講,導(dǎo)致落下很多,所以只能一點(diǎn)點(diǎn)去充實(shí)自己。第一次實(shí)驗(yàn)并不是特別難,但是不知道怎么創(chuàng)建文件,最后在軟酷上看學(xué)習(xí)資料慢慢會了。添加卡和查詢卡要用文件和數(shù)組知識。但是自己這方面并沒有掌握的很好。所以只能一邊寫,遇到不會的再問老師和同學(xué),就這樣最終還是成功了。然后是對鏈表的單獨(dú)操作,鏈表是我最頭痛的地方,關(guān)鍵是一點(diǎn)都不會,然后又把上學(xué)期的書翻出來好好地補(bǔ)習(xí)了一下。最后還是完成任務(wù)了。到后來越來越難,但是有了前面的鋪墊,自己慢慢地得心應(yīng)手,所以遇到困難也不怕,能夠一一克服,通過我們的導(dǎo)師張蕊老師和寢室的大神韓飛翔,好多問題都得到了解決。通過這次實(shí)驗(yàn),我學(xué)習(xí)到了如何將卡信息保存到文本文件,如何讀取文件,掌握了FILE類型結(jié)構(gòu)體,并且知道了如何打開文件以及讀取數(shù)據(jù)以及關(guān)閉文件,等等好多以前不知道的知識。有一下一些難點(diǎn):鏈表的形式:插入操作:在鏈表中查找節(jié)點(diǎn):我們這次計費(fèi)管理系統(tǒng)分三步.一是對要寫成的計費(fèi)管理系統(tǒng)做全面的分析,即對計費(fèi)管理系統(tǒng)要使用的編寫方法,管理功用,運(yùn)行方式進(jìn)行分析,并作出明確的解決方案.
針對這次的計費(fèi)管理系統(tǒng),它的流程是:以管理員和用戶方式進(jìn)入,要有密碼認(rèn)證.實(shí)現(xiàn)添加、查詢、上機(jī)、下機(jī)、充值、退費(fèi)、查詢統(tǒng)計、注銷等功能。二是程序的編寫.由于計費(fèi)管理系統(tǒng)的功能十分強(qiáng)大,程序的編寫也十分的復(fù)雜,所以我們花了兩個多月,每個星期完成一部分程序.程序的編寫是一項(xiàng)困難的任務(wù),完成此程序必需運(yùn)用書中的大部分知識,而且要有清晰的思路,有較強(qiáng)的語言組織能力.由于每個星期完成一部分,所以程序能銜接得十分完整,所以每個星期編寫程序的基礎(chǔ)上考慮以前的程序結(jié)構(gòu).編寫程序就是一項(xiàng)十分困難的事,所以一定要細(xì)心,不能有一絲的馬虎,否則會前功盡棄.三是程序的檢查和系統(tǒng)的調(diào)用.程序?qū)懲旰蟛⒉荒鼙WC它一定能運(yùn)行,所以要對它進(jìn)行調(diào)試,發(fā)現(xiàn)其中的弊端,并作出相應(yīng)的修改,以完善程序,使其邏輯性,運(yùn)算能力都符合題目要求,使計費(fèi)管理系統(tǒng)的運(yùn)行能力達(dá)到課程的目的。5實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)框架:本次實(shí)驗(yàn)難度較大,需要考察學(xué)生的多方面能力:對基礎(chǔ)編程知識的掌握,在開始階段,大部分的代碼都是利用我們的已有知識進(jìn)行實(shí)驗(yàn),通過實(shí)驗(yàn)讓我們對知識的掌握更加熟練對整個系統(tǒng)的功能以及實(shí)現(xiàn)的認(rèn)識,在后期的實(shí)驗(yàn)中,我們不斷的向初始工程中添加代碼,這時由于工程變大,我們就需要了解到整個工程的各個部分,以便我們的工程能夠有效快速的進(jìn)行。對新知識的吸收能力。在工程進(jìn)行的過程中,我們將會遇到許多我們現(xiàn)有知識無法解決的問題,這就需要我們通過各種方法來解決,如上網(wǎng)查閱資料,向老師提問等。對實(shí)驗(yàn)中發(fā)現(xiàn)的問題要有耐心去解決它,只有通過一次又一次的錯誤,并從中吸取經(jīng)驗(yàn),我們才能讓自己做的更好。這次實(shí)驗(yàn)讓我們知道了如何使用函數(shù),鏈表和文件的操作。也讓我們對我們所學(xué)的有了更加一步的了解,也終于有了學(xué)以致用的感覺,雖然自己寫的程序并不完美無瑕,可以說丑陋無比,但是我相信以后會越來越優(yōu)化與美好。更加重要的是我們知道了什么叫迭代,它對于我們來說不再難以理解,而是深入我們的內(nèi)心。但是我覺得這次實(shí)驗(yàn)也有許多與實(shí)際生活不符的地方,如輸密碼的時候不能隱藏,可能會造成信息的泄露。經(jīng)過兩個多月的課程實(shí)訓(xùn),完成了對計費(fèi)管理系統(tǒng)代碼的設(shè)計,收獲頗多。也明白了自己在C語言上存在的一些問題,尤其在用C語言編程方面存在的缺點(diǎn)與不足。經(jīng)過課程實(shí)訓(xùn)使我明白做一個完整的系統(tǒng)要用到我們學(xué)到的很多方面的知識,一個完整的系統(tǒng)包含的C語言知識很多,要有好強(qiáng)的綜合運(yùn)用能力才能開發(fā)一個完整的系統(tǒng)。在程序操作過程中要有耐心,更要細(xì)心。同時,也體會到學(xué)軟件專業(yè)要有好強(qiáng)的動手能力,而實(shí)訓(xùn)操作完成小系統(tǒng)鍛煉了我的動手能力,今后,在動手操作方面要加強(qiáng),畢竟熟能生巧,練多了才能提高自己的編寫程序的能力。畢竟,對于軟件專業(yè)的初學(xué)者來說,起初的編程還屬于經(jīng)驗(yàn)編程,靠自己的學(xué)習(xí)及動手操作獲得經(jīng)驗(yàn),以便為今后開發(fā)出新的程序打下基礎(chǔ)。通過這次實(shí)驗(yàn),學(xué)到了很多,也堅定了我學(xué)習(xí)計算機(jī)的決心,我相信以后會越做越好的。通過這次課程設(shè)計,我把書本的理論和實(shí)踐聯(lián)系起來,有利于鞏固所學(xué)理我感覺收益匪淺,同時也為我以后走向工作崗位打下一個初步的基礎(chǔ)。盡管時間有限,我們做的設(shè)計不是很完善,但是仍然給了我很多啟示。在這次課程設(shè)計中,我覺得組員之間的合作很重要,組員之間的溝通能夠給我?guī)砗芏鄮椭易约旱南敕ㄊ呛芏嗑窒扌?,通過討論可以完善我的設(shè)計,也讓我的書本上的理論有了新的理解。通過這次實(shí)訓(xùn),增加了我學(xué)習(xí)軟件技術(shù)的興趣,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從C語言這門課程開始,已發(fā)現(xiàn)程序設(shè)計的樂趣,在學(xué)習(xí)C語言的過程中也學(xué)到了許多計算機(jī)應(yīng)用基礎(chǔ)知識,對計算機(jī)的機(jī)體也有了一個大體的了解。這次實(shí)訓(xùn)是老師給了范例程序,經(jīng)過自己的改寫,實(shí)現(xiàn)要求。先做簡單的輸出,一步步的再做其它復(fù)制部分,在實(shí)際操作過程中犯的一些錯誤還會有意外的收獲,感覺實(shí)訓(xùn)很有意思。在具體操作中對上學(xué)期所學(xué)的C語言的理論知識得到鞏固,達(dá)到實(shí)訓(xùn)的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機(jī)中應(yīng)更加注意,同時體會到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)實(shí)訓(xùn)的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。通過實(shí)際操作,學(xué)會C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。深刻體會到“沒有做不到的,只有想不到的”,“團(tuán)結(jié)就是力量”,“實(shí)踐是檢驗(yàn)真理的標(biāo)準(zhǔn)”,“不恥下問”……的寓意。計時在此希望以后應(yīng)多進(jìn)行這樣的實(shí)訓(xùn),加長設(shè)間,培養(yǎng)學(xué)生獨(dú)立思考問題的能力,提高實(shí)際操作水平。
《計算機(jī)基礎(chǔ)與綜合編程實(shí)驗(yàn)》成績評定表班級:m1502姓名:韓龍學(xué)號:0121510880212序號評分項(xiàng)目滿分實(shí)得1學(xué)習(xí)態(tài)度認(rèn)真、遵守紀(jì)律102迭代開發(fā)進(jìn)度合理,提交結(jié)果正確403代碼規(guī)范、注釋清晰、可讀性好104軟件功能完善、運(yùn)行正確205驗(yàn)收情況良好106報告規(guī)范、描述清晰準(zhǔn)確10總得分評語:指導(dǎo)教師簽名:2021年4月29日
公司印章管理制度一、目的公司印章是公司對內(nèi)對外行使權(quán)力的標(biāo)志,也是公司名稱的法律體現(xiàn),因此,必須對印章進(jìn)行規(guī)范化、合理化的嚴(yán)格管理,以保證公司各項(xiàng)業(yè)務(wù)的正常運(yùn)作,由公司指定專人負(fù)責(zé)管理。二、印章的種類公章,是按照政府規(guī)定,由主管部門批準(zhǔn)刻制的代表公司權(quán)力的印章。專用章,為方便工作專門刻制的用于某種特定用途的印章,如:合同專用章、財務(wù)專用章、業(yè)務(wù)專
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東??瓶荚囋囶}及答案
- 教師個人專業(yè)的發(fā)展總結(jié)
- 飼料原料考試題及答案
- 財稅理論考試題及答案
- 陜西省咸陽中學(xué)2026屆化學(xué)高一第一學(xué)期期中達(dá)標(biāo)檢測模擬試題含解析
- 魔方挑戰(zhàn)空間感知
- 生物標(biāo)志物的臨床應(yīng)用
- 家電公司融資合同管理規(guī)定
- 家電公司生產(chǎn)計劃管理辦法
- 江西豐城二中2026屆化學(xué)高三上期末達(dá)標(biāo)測試試題含解析
- 急性中毒性肝損傷護(hù)理查房
- 靜脈治療行標(biāo)理論考核試題及答案
- 2025屆六年級下學(xué)期人教版小升初分班考數(shù)學(xué)試卷(含答案)
- GB/T 3836.31-2021爆炸性環(huán)境第31部分:由防粉塵點(diǎn)燃外殼“t”保護(hù)的設(shè)備
- CB/T 3780-1997管子吊架
- 【表格】面試評估表(模板)
- 脛骨橫向骨搬移在糖尿病足治療中的運(yùn)用
- 物資供應(yīng)投標(biāo)書范本
- 漢譯巴利三藏中部3-后五十篇
- 2011-2017國民經(jīng)濟(jì)行業(yè)分類標(biāo)準(zhǔn)轉(zhuǎn)換對照表
- 《現(xiàn)代漢語》PPT課件(223頁P(yáng)PT)
評論
0/150
提交評論