




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言課程設計報告題目:機房收費管理系統專業年級:通信三班學號:姓名:指導教師:張采芳20 12 年 6 月 問題定義選定的題目內容:選題十二:機房收費管理系統(1)輸入功能:輸入若干名學生的學號、班級、姓名、開始上機時間和結束上機時間。 (2)計算功能:計算每個學生的上機費用(計算公式:上機費用=(結束上機時間-開始上機時間)*收費標準,(以分鐘為單位) (3)修改功能:修改學生上機的個人檔案(如:增添) (4)查詢功能:按條件(班級、學號、姓名)查詢學生上機信息,并能顯示查詢學生的相應全部檔案。實際完成的軟件功能:(1)輸入功能:輸入若干名學生的學號、班級、姓名、開始上機時間和結束上機時間
2、。 (2)計算功能:計算每個學生的上機費用(計算公式:上機費用=(結束上機時間-開始上機時間)*收費標準,(以分鐘為單位) (3)修改功能:修改學生上機的個人檔案(如:增添) (4)查詢功能:按條件(班級、學號、姓名)查詢學生上機信息,并能顯示查詢學生的相應全部檔案(5)顯示功能:顯示全部機器的使用信息開發工具數據結構 見代碼注釋/(1)輸入功能:輸入若干名學生的學號、班級、姓名、開始上機時間和結束上機時間。 /(2)計算功能:計算每個學生的上機費用(計算公式:上機費用=(結束上機時間-開始上機時間)*收費標準,(以分鐘為單位) /(3)修改功能:修改學生上機的個人檔案(如:增添)/(4)查詢
3、功能:按條件(班級、學號、姓名)查詢學生上機信息,并能顯示查詢學生的相應全部檔案。#include #include #include #include struct time-/*時間*/int hour;int minute;int second;typedef struct-/*學生信息*/char num20;-/*學號*/char banji;-/*班級*/int flag;-/*用來標注學生是否上機*/char name20;-/*姓名*/struct time kaishi,jiesu;-/*上機起始時間*/Student;Student stu50;-/*信息庫*/struct
4、 computer-/*機器信息*/int f;-/*用來標注這臺機器是否使用*/Student stut;-/*使用這臺機器的學生*/com30;-/*30臺機器*/int k;int main_menu()-/*主菜單*/char c;dosystem(cls);-/*清屏*/printf(t機房收費管理系統n);printf(t 1.輸入學生信息 n);printf(t 2.上機時間 n);printf(t 3.下機時間 n); printf(t 4.查詢上機時間及費用 n);printf(t 5.電腦使用情況顯示 n);printf(t 0.退出系統 n);printf(tn);pri
5、ntf(t請選擇菜單序號(0-5): );c=getchar();while(c5);-/*判斷輸入是否合法*/return(c-0);int input(Student stu,int n)-/*輸入學生信息*/int i=0;char sign=0;while(sign!=n&sign!=N)-/*判斷是否繼續輸入學生信息*/getchar();-/*吃掉回車*/printf(ntt 學號:);gets(stun+i.num);printf(tt 班級:);scanf(%s,&stun+i.banji);getchar();printf(tt 姓名:);gets(stun+);
6、printf(tt 繼續輸入? 是請按Y,否請按N:);scanf(%c,&sign);stun+i.flag=0;-/*初始化為未上機*/i+;return(n+i);void shangji(Student stu,int n)-/*上機*/char num_t20,name_t20;int i,s;doprintf(ntt 使用姓名輸入1ntt 使用學號輸入2ntt 請輸入序號:);scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 請輸入姓名:);gets(name_t);for(i=0;in;i+)-/*查找信息庫中是否有
7、該學生信息*/if(strcmp(,name_t)=0)break;elseprintf(tt 請輸入學號:);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 無該生記錄!請輸入該生信息后再上機!n);return;else if(stui.flag=1)printf(tt 該生正在上機!n);return;elsefor(k=0;k30;k+)if(comk.f=0)comk.f=1;-/*該臺機器標記為使用*/printf(tt請輸入上機時間(當前時間):);scan
8、f(%d:%d:%d,&stui.kaishi.hour,&stui.kaishi.minute,&stui.kaishi.second);stui.flag=1;-/*該生標記為上機*/comk.stut=stui;-/*記錄使用這臺機器的學生信息*/break;if(k=30)printf(tt 機器全部使用中,請稍后再上機!n);void calculate(Student stu)-/*上機時間及費用計算*/int t;struct time timet;if(stu.jiesu.secondstu.kaishi.second)if(stu.jiesu.minute=0)stu.jie
9、su.hour-=1;stu.jiesu.minute=59;elsestu.jiesu.minute-=1;timet.second=stu.jiesu.second+60-stu.kaishi.second;elsetimet.second=stu.jiesu.second-stu.kaishi.second;if(stu.jiesu.minutestu.kaishi.minute)stu.jiesu.hour-=1;timet.minute=stu.jiesu.minute+60-stu.kaishi.minute;elsetimet.minute=stu.jiesu.minute-st
10、u.kaishi.minute;timet.hour=stu.jiesu.hour-stu.kaishi.hour;=0&timet.minute=0)t=timet.hour;elset=timet.hour+1;-/*不滿一小時按一小時算*/printf(tt 該生上機用時%d小時,費用為%d元n,t,t);void xiaji(Student stu,int n)-/*下機*/char num_t20,name_t20;int i,s;doprintf(ntt 使用姓名輸入1ntt 使用學號輸入2ntt 請輸入序號:);scanf(%d,&s);while(s!=1&s!=2);getc
11、har();if(s=1)printf(tt 請輸入姓名:);gets(name_t);for(i=0;in;i+)if(strcmp(,name_t)=0)break;elseprintf(tt 請輸入學號:);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 沒有這個學生!n);return;else if(stui.flag=0)printf(tt 該生未上機或已下機!n);return;elseprintf(tt 請輸入下機時間(當前時間):);scanf(%d:%
12、d:%d,&stui.jiesu.hour,&stui.jiesu.minute,&stui.jiesu.second);calculate(stui);-/*計算并輸出上機費用*/stui.flag=0;-/*該生標記為未上機*/for(k=0;k3;k+)-/*將剛下機同學使用的機器標記為未使用*/if(strcmp(comk.stut.num,stui.num)=0)comk.f=0;-/*該機器標記為未使用*/break;void chaxun(Student stu,int n)-/*上機時間查詢*/char num_t20,name_t20;int i,s;doprintf(ntt
13、 使用姓名輸入1ntt 使用學號輸入2ntt 請輸入序號:);scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 請輸入姓名:);gets(name_t);for(i=0;in;i+)if(strcmp(,name_t)=0)break;elseprintf(tt 請輸入學號:);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 記錄無此學生!n);return;else if(stui.flag=1)print
14、f(tt 該生正在上機,上機起始時間為:%d:%d:%dn,stui.kaishi.hour,stui.kaishi.minute,stui.kaishi.second);elseprintf(tt 該生未上機或下機!n);void qingkuang()-/*全部機器使用情況顯示*/printf(t 機器號 是否使用 使用者 學號 班級 上機時間n);printf(t-n);for(k=0;k30;k+)if(comk.f=0)printf(t%02d否-:-:-n,k+1);elseprintf(t%02d是%-10s%-10s%2s%02d:%02d:%02dn,k+1,comk.stu
15、,comk.stut.num,comk.stut.banji,comk.stut.kaishi.hour,comk.stut.kaishi.minute,comk.stut.kaishi.second);printf(t);system(pause);-/*屏幕顯示內容停留一段時間,直到繼續操作為止*/int main()-/*主函數*/int n=0;for(k=0;k30;k+)-/*全部機器標記為未使用*/comk.f=0;for(;)switch(main_menu()case 1:system(cls);printf(*輸入學生信息*n);n=input(stu,n);b
16、reak;case 2:system(cls);printf(*學生上機*n);shangji(stu,n);printf(tt);system(pause);break;case 3:system(cls);printf(*學生下機*n);xiaji(stu,n);printf(tt);system(pause);break;case 4:system(cls);printf(*查詢上機時間及費用*);chaxun(stu,n);printf(tt);system(pause);break;case 5:system(cls);printf(*電腦使用情況顯示*n);qingkuang();
17、break;case 0:system(cls);printf(*感謝使用機房收費管理系統,歡迎下次使用!*);printf(tt);system(pause);exit(0);return 0;算法描述程序調試情況1.在調試過程中發現自己犯了很多細節性的錯誤,比如標點符號的錯誤,然后一個一個發現,修正,過程很冗雜,都要怪自己在編寫的時候不細心,挺后悔的,以后在做一件事的時候就要認真,以避免不必要的麻煩。 2此外,若只是最后對學生的信息進行系統的上機時間和下機時間的輸入就使得學生在使用計算機時無法查詢自己上機的相關信息。最后通過上機時學生信息的查找(增添)并輸入該學生的上機時間(當前時間),下
18、機時學生信息查找且輸入下機時間(當前時間),使得學生能更好的查詢自己使用計算機的情況。 3.考慮到現實因素,機房的計算機數目有限,不能不受限制的使用。因此,我對該題目所做的要求進行了拓展,即顯示所有計算機的使用情況,這樣能更直觀的了解當前機房所有計算機的使用情況。心得及體會在做這次課程設計的過程中,我遇到了很多的困難;在發現解決這些問題的過程中,我收獲了寶貴的經驗:1) 在設計程序之前,要認真閱讀題目及要求,對你所設計的題目和內容有一個系統的了解,知道所設計的題目和內容包含那些資源。2) 設計程序過程中,最重要的是要有一個清晰的思路和一個完整的軟件流程圖。所以,先把設計原理與整體思路弄清楚,再把流程圖畫出來,按照流程圖一步步的編程,這樣做起來井井有條,事半功倍。3) 在設計程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年MySQL開發常識試題及答案
- 保育工作總結4篇
- 信息技術設計院的職責與創新驅動
- 企業內部文學活動計劃
- 小學美術教育在線課程設計計劃
- 智能家居生態鏈技術入股合作協議書
- 生物樣本冷鏈運輸與冷鏈物流設備租賃協議
- 夫妻道德約束協議及忠誠責任履行合同
- 小產權房買賣合同附帶相鄰權調整及補償條款
- 高端精密模具知識產權收益分成協議
- 線段的垂直平分線(第1課時) 教學設計
- 建筑工程概預算智慧樹知到答案章節測試2023年浙江廣廈建設職業技術大學
- 合肥一中2021-2022學年第一學期高一年級期末考試數學試卷
- 數據出境安全評估申報指南(第一版)
- GB/T 8177-2004兩點內徑千分尺
- 第四章 流域產流與匯流計算
- GB/T 3164-2007真空技術圖形符號
- GB/T 1048-2019管道元件公稱壓力的定義和選用
- GA 1283-2015住宅物業消防安全管理
- 突發事件的心理危機干預培訓課件
- 鋰電池隔膜技術工藝專題培訓課件
評論
0/150
提交評論