機(jī)房收費管理系統(tǒng)_第1頁
機(jī)房收費管理系統(tǒng)_第2頁
機(jī)房收費管理系統(tǒng)_第3頁
機(jī)房收費管理系統(tǒng)_第4頁
機(jī)房收費管理系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、目 錄第一章 課程設(shè)計任務(wù)內(nèi)容1第二章 詳細(xì)課程設(shè)計22.1系統(tǒng)總體模塊圖22.2 系統(tǒng)的功能模塊劃分22.3 主要函數(shù)介紹32.4 系統(tǒng)程序代碼及注釋3第三章 軟件使用說明83.1 錄入系統(tǒng)83.2 計算功能93.3 查詢功能93.4 機(jī)器使用情況10第四章 課程設(shè)計心得與體會11附錄一:程序清單12第1章 課程設(shè)計任務(wù)內(nèi)容 題目:機(jī)房收費管理系統(tǒng)目前,在部分高校中,計算機(jī)機(jī)房的上機(jī)收費仍然采用傳統(tǒng)的人工計時方式,即學(xué)生憑有效證件前來上機(jī),由機(jī)房管理人員手工登記開始時間和結(jié)束時間,然后按實際機(jī)時進(jìn)行計算并收取相應(yīng)費用。人工計時計費方式不但效率低,而且容易出錯,也不利于定期的統(tǒng)計工作。隨著高校

2、學(xué)生人數(shù)的不斷增加,這些工作的難度和強(qiáng)度也不斷加大,給機(jī)房管理部門帶來了很大的壓力。本課程設(shè)計要求實現(xiàn)機(jī)房收費管理系統(tǒng),具體任務(wù)如下:(1)輸入功能:輸入30名學(xué)生的學(xué)號、班級、姓名、上機(jī)起始時間。(2)計算功能:計算每個下機(jī)學(xué)生的上機(jī)費用,每小時1元。(上機(jī)費用=上機(jī)時間* 1.0/h ,不足一小時按一小時計算)(3)查詢功能:按條件(班級、學(xué)號、姓名)顯示學(xué)生的上機(jī)時間。(4)機(jī)器使用情況的顯示(顯示方式不限但要一目了然)。第二章 詳細(xì)課程設(shè)計2.1系統(tǒng)總體模塊圖系統(tǒng)的整體模塊描述如圖所示機(jī)房收費系統(tǒng)機(jī)房運行管理計算機(jī)管理用戶管理計算機(jī)使用情況顯示用戶上下機(jī)管理用戶充值用戶查找用戶刪除用戶

3、添加用戶修改計算機(jī)添加計算機(jī)刪除計算機(jī)維護(hù)圖3-1 系統(tǒng)總體模塊圖2.2 系統(tǒng)的功能模塊劃分 每一條記錄包含一個學(xué)生學(xué)號、學(xué)生班級、學(xué)生姓名、上機(jī)起始時間,同時包含:完成對學(xué)生上機(jī)時間的錄入;按條件(班級、學(xué)號、姓名)顯示學(xué)生的上機(jī)時間,計算每個下機(jī)學(xué)生的上機(jī)費用,并能根據(jù)學(xué)生的上機(jī)時間進(jìn)行計算上機(jī)費用,而且還能顯示機(jī)器使用情況。2.3 主要函數(shù)介紹 Main-menu函數(shù):輸出機(jī)房管理系統(tǒng)菜單 Input函數(shù):輸入若干學(xué)生的學(xué)號、班級和姓名及上機(jī)時間 Online函數(shù):學(xué)生上機(jī),輸入上機(jī)學(xué)生學(xué)號或姓名及時間Calculator函數(shù):計算上機(jī)費用并輸出Offline函數(shù):學(xué)生下機(jī)時間,調(diào)用ca

4、lculator函數(shù)得到上機(jī)費用Search函數(shù):查找學(xué)生上機(jī)信息Display函數(shù):顯示全部機(jī)器的使用信息Main函數(shù):函數(shù)調(diào)用以及結(jié)束程序2.4 系統(tǒng)程序代碼及注釋2.4.1輸入功能:輸入30名學(xué)生的學(xué)號、班級、姓名、上機(jī)起始時間#include#include #include#include#define N 20#define M 100 struct student char idN; char theclassN; char nameN; char ontimeN;studentM;int n;void addition() int i; printf(n請輸入錄入學(xué)生信息的總數(shù)

5、:);scanf(%d,&n);for(i=1;i=n;i+) printf(nt請輸入第%d個學(xué)生學(xué)號(20s):,i);scanf(%s,studenti-1.id);printf(nt請輸入第%d個學(xué)生班級(20s):,i);scanf(%s,studenti-1.theclass); printf(nt請輸入第%d個學(xué)生姓名(20s):,i); scanf(%s,); printf(nt請輸入第%d個學(xué)生上機(jī)時間(20s)(例:02):,i); scanf(%s,studenti-1.ontime); printf(nt提示:您已成功錄入第%d條信息n,i

6、); 2.4.2計算功能:計算每個下機(jī)學(xué)生的上機(jī)費用,每小時1元。(上機(jī)費用=上機(jī)時間* 1.0/h ,不足一小時按一小時計算)void calculate() int hours;char times30; time_t rawtime; struct tm * timeinfo;time ( &rawtime );timeinfo = localtime(&rawtime ); strcpy(times,asctime(timeinfo); printf(t所有學(xué)生上機(jī)費用如下:n);for(int i=1;i(times14-48)*10+times15) hours=(times11-

7、48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1;else hours=(times11-48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1+1; printf(%dn,hours); void calculate() int hours;char times30; time_t rawtime; struct tm * timeinfo;time ( &rawtime );timeinfo = localtime(&rawtime ); strcpy(

8、times,asctime(timeinfo); printf(t所有學(xué)生上機(jī)費用如下:n);for(int i=1;i(times14-48)*10+times15) hours=(times11-48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1;else hours=(times11-48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1+1; printf(%dn,hours); 2.4.3查詢功能:按條件(班級、學(xué)號、姓名)顯示學(xué)生的上機(jī)時間。voi

9、d search() int i,b,c,count; do char find20; printf(n請選擇查詢方式:1.根據(jù)學(xué)號查詢;2.根據(jù)班級查詢;3.根據(jù)姓名查詢;4.根據(jù)上機(jī)時間:);scanf(%d,&b);switch(b) case 1: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf(n*請輸入學(xué)生的學(xué)號:);scanf(%s,find);for(i=0;in;i+) if (strcmp(studenti.id,find)=0) count+; if(count=PF_FLOATING_POINT_EMULATED)pri

10、ntf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontime); if(!count)printf(*提示:該生不存在);goto A; case 2: count=PF_FLOATING_POINT_PRECISION_ERRATA;printf(n*請輸入學(xué)生的班級:); scanf(%s,find);for(i=0;in;i+) if (strcmp(studenti.theclass,find)=0) count+;if(cou

11、nt=PF_FLOATING_POINT_EMULATED) printf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontime); if(!count)printf(*提示:該生不存在);goto A;case 3: count=PF_FLOATING_POINT_PRECISION_ERRATA;printf(n*請輸入學(xué)生的姓名:);scanf(%s,find); for(i=0;in;i+) if (strcmp(student

12、,find)=0) count+; if(count=PF_FLOATING_POINT_EMULATED) printf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontime); if(!count) printf(*提示:該生不存在);goto A; case 4: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf(n*請輸入學(xué)生的上機(jī)時間:);scanf(%s,find)

13、;for(i=0;in;i+) if (strcmp(studenti.ontime,find)=0) count+; if(count=PF_FLOATING_POINT_EMULATED)printf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontime); if(!count)printf(*提示:該生不存在);goto A;default:printf(*提示:輸入錯誤); A:printf(nt*1.繼續(xù)nt*0.返回主菜單)

14、; printf(nt 請輸入您的選擇:);scanf(%d,&c);while(c);2.4.4機(jī)器使用情況的顯示(顯示方式不限但要一目了然)void menu() printf(nt*歡迎進(jìn)入機(jī)房收費管理系統(tǒng)!*n);printf(t* 1.錄入功能2.計算功能*n);printf(t* 3.查詢功能0.-*EXIT*- *n); printf(t*n);printf(nt 請輸入您的選擇:);void main() system(color 5f);int a;C:menu();scanf(%d,&a);switch(a) case 0:printf(*正在退出*謝謝使用本系統(tǒng),再見);

15、break;case 1:addition();goto C; /*錄入功能*/ case 2:calculate();goto C; /*瀏覽功能*/ case 3:search();goto C; /*查詢功能*/ 第三章 軟件使用說明3.1 錄入系統(tǒng)圖3-1 輸入30名學(xué)生的學(xué)號、班級、姓名、上機(jī)起始時間3.2 計算功能圖3-2計算每個下機(jī)學(xué)生的上機(jī)費用3.3 查詢功能圖3-3 按條件(班級、學(xué)號、姓名)顯示學(xué)生的上機(jī)時間3.4 機(jī)器使用情況圖3-4 機(jī)器使用情況查詢第四章 課程設(shè)計心得與體會 在這次課程設(shè)計中,我體會頗多,學(xué)到很多東西。我加強(qiáng)了對C+的認(rèn)識,復(fù)習(xí)了自己以前的知識,自己的

16、邏輯思考能力也提高不少。從而對Microsoft Visual C+ 6.0又有了更深入的認(rèn)識!在這次課程設(shè)計中,我還懂得了程序開發(fā)的一些比較重要的步驟,比如需求分析、總體設(shè)計、程序模塊設(shè)計(含功能需求、程序代碼設(shè)計與分析、運行結(jié)果)、系統(tǒng)使用說明等??傊?,通過這次課程設(shè)計,我收獲頗豐,相信會為自己以后的學(xué)習(xí)和工作帶來很大的好處。最重要的還是激發(fā)了我編程的興趣和熱情,讓我從一個只懂理論變成了能做一些小型程序,讓我對編程更加熱愛了。整體地評價這次課程設(shè)計,我認(rèn)為收獲很大,正如上面所說的那樣,通過課程設(shè)計,既復(fù)習(xí)了以前的舊知識,又學(xué)到了一些新的知識;設(shè)計增強(qiáng)了我們用所學(xué)知識去解決具體問題的能力,進(jìn)

17、一步培養(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é)們對我的幫助,盡管本次不是團(tuán)隊合作,但是他們也給了我不少的提示和幫助,是他們讓我有信心堅持做下來,在此感謝他們!附錄一:程序清單#include#include #include#include#define N 20#define M 100 struct stu

18、dent char idN; char theclassN; char nameN; char ontimeN; studentM; int n; void addition() int i; printf(n請輸入錄入學(xué)生信息的總數(shù):); scanf(%d,&n); for(i=1;i=n;i+) printf(nt請輸入第%d個學(xué)生學(xué)號(20s):,i); scanf(%s,studenti-1.id); printf(nt請輸入第%d個學(xué)生班級(20s):,i); scanf(%s,studenti-1.theclass); printf(nt請輸入第%d個學(xué)生姓名(20s):,i);

19、scanf(%s,); printf(nt請輸入第%d個學(xué)生上機(jī)時間(20s)(例:02):,i); scanf(%s,studenti-1.ontime); printf(nt提示:您已成功錄入第%d條信息n,i); (上機(jī)費用=上機(jī)時間* 1.0/h ,不足一小時按一小時計算)void calculate() int hours; char times30; time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime(&rawtime ); strcpy(times

20、,asctime(timeinfo); printf(t所有學(xué)生上機(jī)費用如下:n); for(int i=1;i(times14-48)*10+times15) hours=(times11-48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1; else hours=(times11-48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1+1; printf(%dn,hours); void calculate() int hours; char times3

21、0; time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime(&rawtime ); strcpy(times,asctime(timeinfo); printf(t所有學(xué)生上機(jī)費用如下:n); for(int i=1;i(times14-48)*10+times15) hours=(times11-48)*10+times12-(studenti-1.ontime0-48)*10-studenti-1.ontime1; else hours=(times11-48)*10+times12-(s

22、tudenti-1.ontime0-48)*10-studenti-1.ontime1+1; printf(%dn,hours); void search() int i,b,c,count; do char find20; printf(n請選擇查詢方式:1.根據(jù)學(xué)號查詢;2.根據(jù)班級查詢;3.根據(jù)姓名查詢;4.根據(jù)上機(jī)時間:); scanf(%d,&b); switch(b) case 1: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf(n*請輸入學(xué)生的學(xué)號:); scanf(%s,find); for(i=0;in;i+) if (st

23、rcmp(studenti.id,find)=0) count+; if(count=PF_FLOATING_POINT_EMULATED) printf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontime); if(!count) printf(*提示:該生不存在); goto A; case 2: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf(n*請輸入學(xué)生的班級:); scan

24、f(%s,find); for(i=0;in;i+) if (strcmp(studenti.theclass,find)=0) count+; if(count=PF_FLOATING_POINT_EMULATED) printf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontime); if(!count) printf(*提示:該生不存在); goto A; case 3: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf(n*請輸入學(xué)生的姓名:); scanf(%s,find); for(i=0;in;i+) if (strcmp(,find)=0) count+; if(count=PF_FLOATING_POINT_EMULATED) printf(學(xué)生學(xué)號t學(xué)生班級t學(xué)生姓名t上機(jī)時間n); printf(%8s%15s%15s%17s,studenti.id,studenti.theclass, ,studenti.ontim

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論