c語言課程設計機房機位預定系統(tǒng)絕對正確附源代碼_第1頁
c語言課程設計機房機位預定系統(tǒng)絕對正確附源代碼_第2頁
c語言課程設計機房機位預定系統(tǒng)絕對正確附源代碼_第3頁
c語言課程設計機房機位預定系統(tǒng)絕對正確附源代碼_第4頁
c語言課程設計機房機位預定系統(tǒng)絕對正確附源代碼_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1設計目的機房機位預定系統(tǒng)2任務概述20臺機器,編號1到20,從早八點到晚八點。兩小時一個時間段,每次可預定一個時間段。功能規(guī)定:(1)系統(tǒng)以菜單方式工作(2)查詢,根據(jù)輸入時間,輸出機位信息。(3)機位預定,根據(jù)輸入的時間查詢是否有空機位,若有則預約,若無則提供最近的時間段,另:若用戶在非空時間上機,則將用戶信息列入等待列表。(4)退出預定,根據(jù)輸入的時間,機器號撤消該事件的預定!(5)查詢是否有等待信息,若有則提供最優(yōu)解決方案(等待時間盡量短),若無則顯示提醒信息。.........3模塊劃分機房機位預約系統(tǒng)機房機位預約系統(tǒng)查詢機位預定機位退出預定查詢等待信息4重要函數(shù)說明及其N-S圖主函數(shù):intmain(){ Menu();/*當前狀態(tài)函數(shù)*/}voidMenu()/*主界面*/{ intn,w; do { puts("\t\t****************機房機位預約系統(tǒng)*******************\n");puts("\t\t*************************菜單***************************\n"); puts("\t\t\t1.查詢某時間段機位狀態(tài)");/*查詢某時間段機位狀態(tài)*/ puts("\t\t\t2.預定空機位");/*預定空機位*/ puts("\t\t\t3.取消預訂");/*取消預訂*/ puts("\t\t\t4.查詢等待信息");/*查詢等待信息*/puts("\t\t\t5.退出");/*退出*/ puts("\t\t********************************************************\n"); printf("選擇菜單號(1-5):"); scanf("%d",&n); if(n<1||n>5) {w=1;getchar();} else w=0; }while(w==1); switch(n) { case1:Situation();break; case2:Book();break; case3:Cancel();break; case4:SearchWaiting();break; case5:exit(0);break; } getch();}機位查詢:voidSituation(){ inttime; printf("輸在(8-20)范圍內(nèi)的時間:"); scanf("%d",&time); if(time<8||time>20) {printf("\t時間輸入錯誤!\n"); printf("輸入在(8-20)范圍內(nèi)的時間:"); scanf("%d",&time);} detail(time);/*函數(shù)調(diào)用*/ getchar(); Menu();}機位預定:voidBook(){inttime,i=0,x,y;FILE*fp;charc;printf("在(8-20)時間范圍內(nèi)輸入你想要預定的時間:");scanf("%d",&time);if(time<8||time>20){ printf("\t時間輸入錯誤!\n"); printf("\t在(8-20)時間范圍內(nèi)輸入你想要預定的時間:"); scanf("%d",&time);}detail(time);/*函數(shù)調(diào)用*/if(sum[T]>0){if((fp=fopen("waitlist.txt","a"))==NULL) { printf("\n無法打開文獻!\n"); exit(0); } printf("\n\t請輸入你想要預定的機號,并且留下你的電話號碼!:\n"); scanf("%s%s",wait[i].number,wait[i].telephonenumber); for(i=0;i<1;i++) fwrite(&wait[i],sizeof(structwaitlist),1,fp); fclose(fp);/*向文本文檔添加一個結構體單元*/ printf("\t再次輸入你想要預定的時間!\n"); scanf("%d",&x); /*sum[T]--;/*預定后該時間段空機位數(shù)減1*/ /*computer[T][x]=1;/*預定后該機狀態(tài)變?yōu)?*/ printf("\t預訂成功!\n"); getchar(); Menu();}else{ printf("這是在這個時間段內(nèi)未預定的電腦!\n"); for(i=T+1;i<6;i++) {time=9+2*i; detail(time);/*函數(shù)調(diào)用*/ if(sum[T]>0) printf("\tThelatestfreetimeis%d,%d\n",2*i+8,2*i+10);break; } printf("\t你想要預定嗎?:y/n?"); scanf("%s",&c); getchar(); if(c=='Y'||c=='y') { if((fp=fopen("waitlist.txt","r"))==NULL) {printf("\n無法打開文獻!\n"); exit(0); } else {printf("waitlist:numbertelephonenumber\n");for(i=0;!feof(fp);i++) { fscanf(fp,"%s%s",&wait[i].number,&wait[i].telephonenumber); }fclose(fp); } for(i=0;i<10;i++) {prione(i);}printf("\n\t請輸入你想要預定的機號,并且留下你的電話號碼!:\n");if((fp=fopen("waitlist.txt","a"))==NULL) { printf("\n無法打開文獻!\n"); exit(0); } scanf("%s%s",wait[i].number,wait[i].telephonenumber); for(i=0;i<1;i++) fwrite(&wait[i],sizeof(structwaitlist),1,fp); fclose(fp);/*若等待,就用文獻的方式列出當時的等待列表并提醒輸入你的等待序號和聯(lián)系方式*/ printf("再次輸入電腦的序號!\n"); scanf("%d",&y); sum[T]--; computer[T][y]=1; printf("\t好了,請等待我們的電話!\n"); Menu(); }elseMenu();}}NN取消預定:voidCancel(){ inttime,number; printf("在(8-20)時間范圍內(nèi)輸入你已經(jīng)預定的時間:"); scanf("%d",&time); if(time<8||time>20) { printf("\t輸入時間錯誤!\n"); printf("\t在(8-20)時間范圍內(nèi)輸入你已經(jīng)預定的時間:"); scanf("%d",&time); } else {printf("\t輸入你預定的機號:"); scanf("%d",&number);} detail(time);/*sum[T]++;/*預定后該時間段空機位數(shù)加1*/ /*computer[T][number]=0;/*預定后該機狀態(tài)變?yōu)?*/ printf("\t取消成功!\n"); getchar(); Menu();}查詢等待信息:voidSearchWaiting(){ inttime,i;FILE*fp; printf("\tInputtimeyouwanttosearchbetween(8-20):"); scanf("%d",&time); if(time<8||time>20) { printf("\tWrongtime!\n"); printf("\tInputtimeyouwanttosearchbetween(8-20):"); scanf("%d",&time); } else ;if((fp=fopen("waitlist.txt","r"))==NULL){printf("\nCannotopenfile!\n"); exit(0);}else{printf("waitlist:numbertelephonenumber\n");for(i=0;!feof(fp);i++) { fscanf(fp,"%s%s",&wait[i].number,&wait[i].telephonenumber); }fclose(fp); } for(i=0;i<10;i++) {prione(i);} Menu();}5程序運營數(shù)據(jù)及其結果主菜單:2.機位查詢:3.機位預定:4.查詢等待信息:6課程設計心得課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握一些基本的軟件開發(fā)技術是十分重要和必要的?;仡櫰鸨敬握n程設計,至今我仍感慨頗多,的確,自從拿到題目到完畢整個編程,從理論到實踐,在整整一個星期的日子里,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,并且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,從而提高自己的實際動手能力和獨立思考的能力,這樣才干真正為體會和結識它,才干寫出一個完整的程序代碼,才干使自己在過程中得到鍛煉和提高。在設計的過程中碰到問題,這畢竟獨立做的,難免會碰到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的局限性之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體的建立,指針的應用等都不太純熟。通過這次課程設計,也使我對以前所學過的知識重新溫故和加強。程序設計過程有如解決一實際問題,從解決實際問題的角度,我們可以這樣來看:一方面要了解這個問題的基本規(guī)定,即輸入、輸出、完畢從輸入到輸出的規(guī)定是什么;另一方面,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導出輸出,在這個過程中,可擬定所需的變量、數(shù)組、函數(shù),然后擬定解決過程--算法;最后可得結論。通過這次課程設計,我深刻地體會到:<1>.細節(jié)決定成?。涸趯W習的過程中,要注意每一個細節(jié),要知道一個分隔符或一個括號都會使整個程序出現(xiàn)錯誤。<2>.要純熟掌握一些經(jīng)典的結構和方法,如選擇排序,遞歸,遞推等,在碰到問題是可直接應用,快速解決問題。<3>.要熟悉一些標準數(shù)據(jù)庫,對一些可直接運用的函數(shù)就直接運用,沒必要重新定義。<4>.在設計過程中最佳使程序模塊化,既便于閱讀,也可增長其移植性。<5>.熟能生巧。平時應當多加訓練,要知道,即使我們能完全看懂一個程序,但要讓你自己寫出一個時仍是很困難的。它規(guī)定你對每一個語句,每一個變量,每一個函數(shù),每一個模塊都充足的熟悉,要知道它們的作用,作用域等等。因此只有平時做的多了,屆時候才會游刃有余。一個多禮拜中,我有過山窮水盡的困惑;有過柳暗花明的驚喜;一個多禮拜的時間我經(jīng)歷了很多,也收獲了很多。與其說它是體力與腦力的作業(yè),不如說它是合作精神和毅力的考驗。通過這次課程設計,我不僅學到了很多知識和技能,更重要的是我學會了如何運用所學知識去解決實際問題.附錄:#include<stdio.h>#include<stdlib.h>#include<string.h>#defineN20#defineT(time-8)/2intsum[6]={0};intcomputer[6][20]={{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1},{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0},{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1}};/*該數(shù)組表達假設某天某人查詢時機房各個時間段機位數(shù)情況*/voidMenu();voidSituation();voidBook();voidCancel();voidSearchWaiting();voiddetail(inttime);voidprione(inti);structwaitlist/*等待列表*/{charnumber[3];chartelephonenumber[11];}wait[N];voidprintone(inti);intmain(){ Menu();/*當前狀態(tài)函數(shù)*/}voidMenu()/*主界面*/{ intn,w; do { puts("\t\t****************機房機位預約系統(tǒng)************************\n");puts("\t\t*************************菜單***************************\n"); puts("\t\t\t1.查詢某時間段機位狀態(tài)");/*查詢某時間段機位狀態(tài)*/ puts("\t\t\t2.預定空機位");/*預定空機位*/ puts("\t\t\t3.取消預訂");/*取消預訂*/ puts("\t\t\t4.查詢等待信息");/*查詢等待信息*/puts("\t\t\t5.退出");/*退出*/ puts("\t\t********************************************************\n"); printf("選擇菜單號(1-5):"); scanf("%d",&n); if(n<1||n>5) {w=1;getchar();} else w=0; }while(w==1); switch(n) { case1:Situation();break; case2:Book();break; case3:Cancel();break; case4:SearchWaiting();break; case5:exit(0);break; } getch();}/*時間查詢*/voidSituation(){ inttime; printf("輸在(8-20)范圍內(nèi)的時間:"); scanf("%d",&time); if(time<8||time>20) {printf("\t時間輸入錯誤!\n"); printf("輸入在(8-20)范圍內(nèi)的時間:"); scanf("%d",&time);} detail(time);/*函數(shù)調(diào)用*/ getchar(); Menu();}/*預定函數(shù)*/voidBook(){inttime,i=0,x,y;FILE*fp;charc;printf("在(8-20)時間范圍內(nèi)輸入你想要預定的時間:");scanf("%d",&time);if(time<8||time>20){ printf("\t時間輸入錯誤!\n"); printf("\t在(8-20)時間范圍內(nèi)輸入你想要預定的時間:"); scanf("%d",&time);}detail(time);/*函數(shù)調(diào)用*/if(sum[T]>0){if((fp=fopen("waitlist.txt","a"))==NULL) { printf("\n無法打開文獻!\n"); exit(0); } printf("\n\t請輸入你想要預定的機號,并且留下你的電話號碼!:\n"); scanf("%s%s",wait[i].number,wait[i].telephonenumber); for(i=0;i<1;i++) fwrite(&wait[i],sizeof(structwaitlist),1,fp); fclose(fp);/*向文本文檔添加一個結構體單元*/ printf("\t再次輸入你想要預定的時間!\n"); scanf("%d",&x); /*sum[T]--;/*預定后該時間段空機位數(shù)減1*/ /*computer[T][x]=1;/*預定后該機狀態(tài)變?yōu)?*/ printf("\t預訂成功!\n"); getchar(); Menu();}else{ printf("這是在這個時間段內(nèi)未預定的電腦!\n"); for(i=T+1;i<6;i++) {time=9+2*i; detail(time);/*函數(shù)調(diào)用*/ if(sum[T]>0) printf("\t最近的空閑時間是%d,%d\n",2*i+8,2*i+10);break; } printf("\t你想要預定嗎?:y/n?"); scanf("%s",&c); getchar(); if(c=='Y'||c=='y') { if((fp=fopen("waitlist.txt","r"))==NULL) {printf("\n無法打開文獻!\n"); exit(0); } else {printf("waitlist:numbertelephonenumber\n");for(i=0;!feof(fp);i++) { fscanf(fp,"%s%s",&wait[i].number,&wait[i].telephonenumber); }fclose(fp); } for(i=0;i<10;i++) {prione(i);}printf("\n\t請輸入您想預定的機號并留下您的聯(lián)系方式!:\n");if((fp=fopen("waitlist.txt","a"))==NULL) { printf("\n無法打開文獻!\n"); exit(0); } scanf("%s%s",wait[i].number,wait[i].telephonenumber); for(i=0;i<1;i++) fwrite(&wait[i],sizeof(structwaitlist),1,fp); fclose(fp);/*若等待,就用文獻的方式列出當時的等待列表并提醒輸入你的等待序號和聯(lián)系方式*/ printf("再次輸入電腦的序號!\n"); scanf("%d",&y); sum[T]--; computer[T][y]=1; printf("\t好了,請等待我們的電話!\n"); Menu(); }elseMenu();}}/*取消預訂*/voidCancel(){ inttime,number; printf("在(8-20)時間范圍內(nèi)輸入你已經(jīng)預定的時間:"); scanf("%d",&time); if(time<8||time>20) { printf("\t輸入時間錯誤!\n"); printf("\t在(8-20)時間范圍內(nèi)輸入你已經(jīng)預定的時間:"); scanf("%d",&time); } else {printf("\t輸入你預定的機號:"); scanf("%d",&number);} detail(time);/*sum[T]++;/*預定后該時間段空機位數(shù)加1*/ /*comput

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論