C語言課程設(shè)計(jì)報告機(jī)房管理系統(tǒng)_第1頁
C語言課程設(shè)計(jì)報告機(jī)房管理系統(tǒng)_第2頁
C語言課程設(shè)計(jì)報告機(jī)房管理系統(tǒng)_第3頁
C語言課程設(shè)計(jì)報告機(jī)房管理系統(tǒng)_第4頁
C語言課程設(shè)計(jì)報告機(jī)房管理系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

..目錄一.設(shè)計(jì)內(nèi)容二.設(shè)計(jì)要求(1)題目要求(2)輸入/輸出要求三.整體設(shè)計(jì)思路四.流程圖(1)層次模塊圖(2)空機(jī)號查問N—S圖五.主函數(shù)及功能菜單說明六.各模塊簡要說明七.心得領(lǐng)會附錄一.源程序代碼二.各模塊運(yùn)轉(zhuǎn)結(jié)果截圖word教育資料..一:設(shè)計(jì)內(nèi)容題目:機(jī)房管理系統(tǒng)設(shè)計(jì)機(jī)房管理系統(tǒng),要求由菜單進(jìn)行管理。1)上機(jī)前先檢查能否有空機(jī)位,有則將其顯示出,無則提示無空位。2)還有空地點(diǎn)時,運(yùn)轉(zhuǎn)進(jìn)入,并記錄下地點(diǎn)號以及序號,與上機(jī)時間。3)可對上機(jī)者上機(jī)信息進(jìn)行查問,改正與刪除。4)設(shè)計(jì)有關(guān)模塊,顯示上機(jī)者的上機(jī)花費(fèi)。5)顯示全部上機(jī)者的上機(jī)信息。二:設(shè)計(jì)要求題目要求:(1)為各項(xiàng)操作功能設(shè)計(jì)一個菜單。應(yīng)用程序運(yùn)轉(zhuǎn)后,先顯示這個菜單,而后用戶經(jīng)過菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。(2)要求以上功能分別用函數(shù)實(shí)現(xiàn)。輸入/輸出要求:(1)應(yīng)用程序運(yùn)轉(zhuǎn)后,先顯示一個菜單,而后用戶依據(jù)需要選擇相應(yīng)的操作項(xiàng)目。進(jìn)入每個操作后,依據(jù)程序的提示輸入相應(yīng)的信息。(2)要求用戶輸入數(shù)據(jù)時,要給出清楚、明確的提示信息,包含輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。三:整體設(shè)計(jì)思路在設(shè)計(jì)該程序時,要將系統(tǒng)的不一樣功能分紅各個模塊。每個模塊由一個函數(shù)word教育資料..定義,整個程序由函數(shù)調(diào)用來實(shí)現(xiàn)。每個模塊是一個子函數(shù),由一個主函數(shù)調(diào)用各個子函數(shù)。在定義子函數(shù)時,依據(jù)不一樣的功能選擇不一樣的語句,如需要使用循環(huán)時能夠用“dowhile”來實(shí)現(xiàn);需要使用選擇時能夠用“switch”或“if”語句來實(shí)現(xiàn)等。設(shè)計(jì)以菜單方式工作的機(jī)房管理系統(tǒng),主要包含六個模塊,分別是上機(jī)者信息輸入模塊,上機(jī)者信息查問模塊,上機(jī)者信息改正模塊,上機(jī)者信息刪除模塊,上機(jī)者上機(jī)花費(fèi)計(jì)算模塊,全部上機(jī)者信息顯示模塊。每個模塊由組員相應(yīng)達(dá)成。其他考慮到機(jī)房的特別要求,新增一個上課模式,此模式功能是將全部機(jī)子開啟,一致賦上上機(jī)者有關(guān)信息,防范管理員一個一個的給機(jī)子輸入信息。本系統(tǒng)程序要點(diǎn)在于一個空機(jī)位的檢索,亦是本程序核心之所在。本程序是經(jīng)過給StudentList[time]賦值為0或1分別實(shí)現(xiàn)空機(jī)號的判斷。0代表無人上機(jī),及為空機(jī)號,反之1代表有人上機(jī),及不為空機(jī)號。本程序經(jīng)過定義構(gòu)造體,包含姓名[name],機(jī)號[seat],學(xué)號[stu_num],上機(jī)時間[time]四個成員。詳細(xì)以下;Structstudent_info{charname[10];intseat;Longstu_num;inttime;}word教育資料..四:流程圖層次模塊圖主菜單學(xué)空查修刪顯顯上退生機(jī)詢改除示示課出信號上上上上所模系息查機(jī)機(jī)機(jī)機(jī)有式統(tǒng)輸詢情信信費(fèi)上模入模況息息用機(jī)塊模塊模模模模信塊塊塊塊塊息模塊空機(jī)號查問N—S圖i=0,k=0for(i=0;i<80;i++)StudentList[i].time==0YN輸出i;Yk==0K=1輸出“無空機(jī)位”

N空機(jī)號檢索是本程序的核心,本程序的其他幾個模塊皆是經(jīng)過先對空機(jī)號的判毅而后進(jìn)行下去的(及先對StudentList[time]的值進(jìn)行0或1的判斷)。例如“顯示全部上機(jī)信息模塊”,我們小組經(jīng)過一個for循環(huán)語句,從機(jī)號0—79號逐個判斷,符合條件則將其輸出。而判斷的標(biāo)準(zhǔn)就是if(StudentList[i].time!=0)。N—S圖以下所示:word教育資料..i=0for(i=0;i<80;i++)StudentList[i].time!=0YN輸出上機(jī)信息不輸出其他模塊近似,流程圖省略。五:主函數(shù)及功能菜單說明在主函數(shù)以前,我們第一定義了一個構(gòu)造體,同時進(jìn)行了有關(guān)函數(shù)的申明。此中,構(gòu)造體包含:姓名[name],機(jī)號[seat],學(xué)號[stu_num],上機(jī)時間[time]四個成員。在主函數(shù)中,我們定義了一個變量j,經(jīng)過一個for循環(huán)語句,從j=0到j(luò)=80,分別給全部機(jī)子編號,同時給全部機(jī)子的上機(jī)時間賦以初值0,即:for(j=0;j<80;j++){StudentList[j].time=0;StudentList[j].seat=j;}從而為空機(jī)號的檢索以及下邊各個模塊順利的連結(jié)編譯做下鋪墊。而功能菜單的實(shí)現(xiàn),我們采納的是switch選擇語句并聯(lián)合dowhile循環(huán)的方法,經(jīng)過人為的輸入來實(shí)現(xiàn)菜單的操作。為美化菜單,我們加上相應(yīng)的頭文件#include<stdlib.h>,再加上相應(yīng)的顏色函數(shù):system("color5A"),word教育資料..從而成功使系統(tǒng)界面背景顏色與字體分別變?yōu)樽仙c綠色。系統(tǒng)菜單界面截圖六:各模塊簡要說明學(xué)生信息輸入模塊學(xué)生信息輸入模塊是本系統(tǒng)的第一個模塊,亦是本系統(tǒng)尤其要點(diǎn)的一個模塊。下邊的模塊能夠正常運(yùn)轉(zhuǎn),皆離不開這一模塊。聯(lián)合主函數(shù),我們在輸入上機(jī)者信息時,我們經(jīng)過對StudentList[i].time進(jìn)行0或1的判斷,對整個機(jī)房進(jìn)行一個空機(jī)號的檢索,檢查能否有空機(jī)號,有則履行輸入功能,無則輸出“機(jī)房已滿”信息。自然,管理員亦能先履行第二個模塊:空機(jī)號檢索模塊,先檢索出空機(jī),再讓上機(jī)者選擇機(jī)號上機(jī)??諜C(jī)號查問模塊詳見上文流程圖部分的介紹。查問、改正、刪除、顯示上機(jī)信息模塊word教育資料..這四個模塊采納的設(shè)計(jì)思路基本一致,皆經(jīng)過對StudentList[i].time的值進(jìn)行0或1的判斷,達(dá)到功能的實(shí)現(xiàn)。比方:查問上機(jī)信息模塊。在此模塊中,設(shè)計(jì)者經(jīng)過一個if的判斷語句(即:if(StudentList[i].time!=0)),對管理員所輸入機(jī)號進(jìn)行一個能否為空機(jī)號的判斷,若檢測到所輸機(jī)號是空機(jī)號(即:StudentList[i].time=0)時,則不輸出有關(guān)信息,反之,輸出有關(guān)上機(jī)者信息。顯示上機(jī)花費(fèi)模塊此模塊采納的是時間乘上每單位時間的花費(fèi)的計(jì)費(fèi)方式來進(jìn)行計(jì)費(fèi)的。在本系統(tǒng)中,我們規(guī)定每小時上機(jī)花費(fèi)是2元,經(jīng)過調(diào)用在“學(xué)生信息輸入模塊”中所輸入的上機(jī)時間(即:StudentList[i].time)乘上此花費(fèi),從而獲得上機(jī)者上機(jī)花費(fèi)。上課模式模塊此模塊為本系統(tǒng)新增模塊,是依據(jù)機(jī)房某些時候的特別需要設(shè)計(jì)的,旨在能夠方便管理員一次性輸入數(shù)據(jù)。而為達(dá)到這一功能,我們采納了一個for循環(huán)語句,從0號機(jī)向來到79號機(jī)一致賦上同樣的上機(jī)時間,學(xué)號。For循環(huán)語句如下:for(i=0;i<80;i++){StudentList[i].time=n;StudentList[i].stu_num=0;word教育資料..strcpy(StudentList[i].name,"");}七:心得領(lǐng)會C語言程序設(shè)計(jì)是本學(xué)期才開的課,固然到此刻已經(jīng)告一段落,可是此刻回想,感覺經(jīng)過大部分個學(xué)期的學(xué)習(xí),自己的確學(xué)到了許多東西,可是依舊不過個入門者,經(jīng)后還得靠自己連續(xù)學(xué)習(xí),增強(qiáng)。此次C語言課程設(shè)計(jì),在我們小組開始準(zhǔn)備時,大家?guī)缀醵际且活^霧水,尤其是我這個當(dāng)組長的,更是不知該如何給小構(gòu)成員分派任務(wù),這也是我碰到的第一個難題。此后在學(xué)習(xí)函數(shù)而且與其他小組談?wù)撘院?,逐漸有了眉目。于是我決定按功能模塊給小構(gòu)成員分派任務(wù),我們這個小組基本上是一人負(fù)責(zé)一個模塊,而我在負(fù)責(zé)“刪除上機(jī)信息模塊”的同時,也擔(dān)負(fù)起主函數(shù)與連結(jié)各個模塊的任務(wù)。在這個過程中我于是碰到了第二個困難。這第二個困難就是如何利用“構(gòu)造體”。說句真話,在我們小組開始著手準(zhǔn)備之時連構(gòu)造體都弄不清楚,由于壓根就還沒學(xué)到此部分。但在自己查閱有關(guān)書籍以及與同學(xué)談?wù)撛偌由洗撕罄蠋熢凇皹?gòu)造體”一章中的解說,我們終于在最后用構(gòu)造體達(dá)成了此次課程設(shè)計(jì)。此次的課程設(shè)計(jì)之所以能夠順利達(dá)成也離不開組員之間的團(tuán)結(jié)協(xié)作。比方在此次課程設(shè)計(jì)中,開初大家都不知道該如何將各個部分連結(jié)起來,也就是說該如何采納一個一致的判斷標(biāo)準(zhǔn)。此后在經(jīng)過組員的談?wù)摬⒂H身實(shí)踐調(diào)試以后,大家獲得了一致的建議。從本系統(tǒng)源程序代碼中能夠大家能夠發(fā)現(xiàn),我們小組所編寫的程序的核心就是空機(jī)號的判斷,及上文所提到的StudentList[j].time值的判斷。(Student[i].time==0表示空機(jī)號,等于1則表示非空極號,有人正在操作word教育資料..此機(jī))。于是在接下來的模塊編寫時,我們小構(gòu)成員都嚴(yán)格的一致依照此規(guī)定完成了接下來的任務(wù)。比方“顯示全部上機(jī)信息模塊”,我們小組就是經(jīng)過一個for循環(huán)語句,經(jīng)過逐個檢查,碰到符合條件的則將其輸出。而我們的判斷標(biāo)準(zhǔn)就是Student[i].time的值為零則不輸出,不為零則將其輸出。由于在此次C語言課程設(shè)計(jì)中,我們小組堪稱經(jīng)歷了一次“自學(xué)大作戰(zhàn)”,所以我們也逐漸感覺到了自學(xué)的妙處,我想這勢必會對我此后的學(xué)習(xí)產(chǎn)生必定的踴躍影響。比方在我們小組基本達(dá)成設(shè)計(jì)以后,我們感覺主界面不夠雅觀,能否能夠改良一下呢?于是我們經(jīng)過上網(wǎng)查閱了有關(guān)的資料,發(fā)現(xiàn)我們其實(shí)能夠給主界面以及字體加點(diǎn)背景顏色,而這項(xiàng)工作也其實(shí)不是很難,只要要調(diào)用庫函數(shù)中的顏色函數(shù)。于是我們在主函數(shù)中加上System("color0A"),并加上相應(yīng)的頭文件#include<stdlib.h>。于是我們就成功實(shí)現(xiàn)了這一功能,給該程序主界面賦上了紫色,字體也變?yōu)榱司G色。在課程設(shè)計(jì)中,收獲知識,提升能力的同時,我也學(xué)到了好多人生真理,懂得如何去擬定計(jì)劃,怎么樣去實(shí)現(xiàn)這個計(jì)劃,并掌握了在履行過程中如何去戰(zhàn)勝心理上的不良情緒,所以在此后的生活和學(xué)習(xí)過程中,我必定會把課程設(shè)計(jì)的精神帶到生活中,不畏困難,一往無前!word教育資料..附錄一:源程序代碼#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMaxSize80structstudent_info{charname[10];//姓名intseat;//機(jī)號longstu_num;//學(xué)號inttime;//上機(jī)時間}StudentList[MaxSize];voidInsert( );voidEmpty( );voidSearch( );voidUpdate( );voidDelete( );voidDispallmoney( );voidShow( );voidClass( );intmain( )word教育資料..{inti,j;system("color5A");//字體和背景顏色for(j=0;j<80;j++){StudentList[j].time=0;//給全部機(jī)子上機(jī)時間賦值為0,代表空機(jī)StudentList[j].seat=j;//給全部機(jī)子編號}printf("\t\t\t*****************************\n\n");//顯示一個簡單菜單printf("\t\t\t歡迎使用機(jī)房管理系統(tǒng)\n\n");printf("\t\t\t*****************************\n\n");do{printf("\n");printf("\t\t\t1------輸入學(xué)生信息(Insert)\n");printf("\t\t\t2------查問空機(jī)位(Empty)\n");printf("\t\t\t3------查問上機(jī)狀況(Search)\n");printf("\t\t\t4------改正上機(jī)信息(Update)\n");printf("\t\t\t5------刪除上機(jī)信息(Delete)\n");printf("\t\t\t6------顯示學(xué)生上機(jī)花費(fèi)(Dispallmoney)\n");printf("\t\t\t7------顯示全部上機(jī)信息(Show)\n");printf("\t\t\t8------上課模式(Class)\n");word教育資料..printf("\t\t\t9------退出(Exit)\n");scanf("%d",&i);//接受用戶的選擇switch(i){case1:Insert( );//調(diào)用學(xué)生信息輸入函數(shù)break;case2:Empty( );//調(diào)用空機(jī)號檢索函數(shù)break;case3:Search( );//調(diào)用上機(jī)信息查問函數(shù)break;case4:Update( );//調(diào)用上機(jī)信息改正函數(shù)break;case5:Delete( );break;case6:Dispallmoney( );//調(diào)用計(jì)費(fèi)函數(shù)break;case7:Show( );//調(diào)用上機(jī)信息全顯示函數(shù)break;case8:Class( );//調(diào)用機(jī)房上課模式函數(shù)break;case9:break;default:printf("錯誤選擇!請重選");break;}word教育資料..}while(i!=9);return0;}voidInsert( ){inti,k=0;for(i=0;i<80;i++){if(StudentList[i].time==0)//檢測機(jī)房能否有空機(jī)位k=1;}if(k==0){printf("機(jī)房已滿!");return;}printf("請輸入機(jī)號:");scanf("%d",&i);if(i>=80){printf("請輸入小于80的整數(shù)");return;}if(StudentList[i].time!=0){printf("已經(jīng)有人正在操作此機(jī):");return;}printf("請輸入上機(jī)者姓名:");word教育資料..scanf("%s",StudentList[i].name);printf("請輸入上機(jī)者學(xué)號:");scanf("%ld",&StudentList[i].stu_num);printf("請輸入上機(jī)時間:");scanf("%d",&StudentList[i].time);}voidEmpty( ){inti,k=0;printf("空機(jī)號為:\n");for(i=0;i<80;i++)//檢測空機(jī)號并將其輸出{if(StudentList[i].time==0){printf("%d\t",i);k=1;}}if(k==0){printf("無空機(jī)位!");return;}}word教育資料..voidSearch( ){inti;printf("請輸入要查問的機(jī)號:");scanf("%d",&i);if(StudentList[i].time!=0)//判斷標(biāo)準(zhǔn),檢索到則輸出{printf("姓名:%s\t",StudentList[i].name);printf("學(xué)號:%ld\t",StudentList[i].stu_num);printf("上機(jī)時間:%d\t",StudentList[i].time);}elseprintf("沒有查問到!");}voidUpdate( ){inti;printf("請輸入要改正數(shù)據(jù)的機(jī)號:");scanf("%d",&i);if(StudentList[i].time!=0)//判斷標(biāo)準(zhǔn),檢索到則輸出word教育資料..{printf("請輸入姓名:");scanf("%s",StudentList[i].name);printf("請輸入學(xué)號:");scanf("%ld",&StudentList[i].stu_num);printf("請輸入上機(jī)時間:");scanf("%d",&StudentList[i].time);}elseprintf("沒有查問到能夠改正的數(shù)據(jù)!");}voidDelete( ){inti;printf("請輸入要刪除信息的機(jī)號:");scanf("%d",&i);if(StudentList[i].time==0)printf("無需改正!");StudentList[i].time=0;strcpy(StudentList[i].name,"");word教育資料..}voidDispallmoney( ){inti,money;printf("請輸入結(jié)賬機(jī)號:");scanf("%d",&i);money=2*StudentList[i].time;//計(jì)費(fèi)采納公式:時間*每次的花費(fèi),簡單計(jì)算printf("您的上機(jī)花

溫馨提示

  • 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

提交評論