C語言課程設(shè)計報告學生宿舍管理系統(tǒng)_第1頁
C語言課程設(shè)計報告學生宿舍管理系統(tǒng)_第2頁
C語言課程設(shè)計報告學生宿舍管理系統(tǒng)_第3頁
C語言課程設(shè)計報告學生宿舍管理系統(tǒng)_第4頁
C語言課程設(shè)計報告學生宿舍管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、高級語言程序設(shè)計課程設(shè)計說明書設(shè)計題目: 學生宿舍管理系統(tǒng) 目 錄一、總體設(shè)計 3 1程序的總體設(shè)計 32. 函數(shù)原型聲明 3二、用戶說明 4 1、菜單界面 52、入住登記界面 53、刪除界面 54、瀏覽界面 65、查詢修改 66、排序界面 67、退出 6三、小結(jié) 7四、參考文獻 7 五、源程序代碼 7 一、總體設(shè)計1程序的總體設(shè)計 確定界面,使用戶可選擇操作項目(錄入,刪除,瀏覽,修改,查詢,排序)。 錄入:使用結(jié)構(gòu)體,要求用戶輸入 樓棟、房號、面積、可住人數(shù)、已住人數(shù) 刪除:按房號刪除以上信息 查詢:按房號查詢以上信息修改:按房號修改以上信息排序:按已住人數(shù)排序信息2. 函數(shù)原型聲明str

2、uct room *add(struct room *head);/添加函數(shù)struct room *del(struct room *h);/刪除函數(shù)void show(struct room *h);/信息瀏覽函數(shù)void serh(struct room *h);/查詢與修改函數(shù)struct room *sort(struct room *head);/排序函數(shù)void can();/結(jié)束函數(shù) 開 始入住刪除瀏覽break結(jié)束查詢修改二、用戶使用說明運行程序后即可按提示模仿以上操作進行。 1、菜單界面 2、入住登記界面 3、刪除界面 4、瀏覽界面 5、查詢修改 6、排序界面 7、退出 三

3、、小結(jié)通過編寫該程序,熟悉了C語言的基本語法,選擇,循環(huán)等結(jié)構(gòu),深入練習了函數(shù)的調(diào)用方法,和文件的讀寫方法,熟悉了結(jié)構(gòu)體的使用,更加深化了面向過程語言思想,和一些基本算法。通過對程序的后期調(diào)試,熟悉了C常見錯誤,鍛煉了思維的嚴密性,和完備性。通過對程序的注釋和畫流程圖,形成了一套自己編程的風格,和清晰地思路,使思維更加條理化,清晰化。四、參考文獻1譚浩強.C程序設(shè)計(第二版).北京:清華大學出版社,19992鄧文新.張宏烈.哈爾濱工業(yè)大學出版社3百度.五、附件源程序代碼#include#include#include#include struct roomint Lnum;int Fnum;i

4、nt squa;int maxnum; int innum;struct room *next;struct room *add(struct room *head);/添加函數(shù)struct room *del(struct room *h);/刪除函數(shù)void show(struct room *h);/信息瀏覽函數(shù)void serh(struct room *h);/查詢與修改函數(shù)struct room *sort(struct room *head);/排序函數(shù)/修改點void can();/結(jié)束函數(shù)void main()struct room *head;int x,y;head=(s

5、truct room *)malloc(sizeof(struct room);head-next=NULL;printf(歡迎使用學生宿舍管理系統(tǒng)!n);printf(按回車鍵進入菜單界面n);getchar();while(1)A: printf(-n);printf(|-|n);printf(| 1.入住登記 |n);printf(| 2.刪除信息 |n); printf(| 3.信息瀏覽 |n);printf(| 4.查詢修改 |n); printf(| 5.按入住人數(shù)排序 |n);printf(| 6.退出系統(tǒng) |n); printf(|-|n);printf(-n);printf(

6、請選擇服務(wù)項目!n);flushall();scanf(%d,&x);/菜單選擇if(head-next=NULL&x!=1&x!=6)printf(系統(tǒng)中無入住信息,請先進行入房登記!n);goto A;switch(x)case 1:head=add(head);system(cls);printf(登記完畢!n);continue;case 2:head=del(head);T:scanf(%d,&y);while(y!=1&y!=0)printf(輸入錯誤!請重新輸入!n);goto T;if(y=1)system(cls); continue;elsecan();goto N;cas

7、e 3:show(head);printf(是否返回菜單界面進行其他操作?(1/0)n);J: scanf(%d,&y);while(y!=1&y!=0)printf(輸入錯誤!請重新輸入!n);goto J;if(y=1)system(cls);continue;elsecan();goto N;case 4:serh(head);system(cls);continue;case 5:head=sort(head);/修改點printf(是否返回菜單界面進行其他操作?(1/0)n); scanf(%d,&y); while(y!=1&y!=0)printf(輸入錯誤!請重新輸入!n);go

8、to J;if(y=1)system(cls);continue;elsecan();goto N; continue; case 6:can();goto Q;default:printf(輸入錯誤!請重新輸入!n);N: if(y=0)break;Q: if(x=6)break;struct room *add(struct room *head)/入住登記 struct room *h,*p;int i=0,n;h=head;printf(請輸入要登記的入房數(shù):n);scanf(%d,&n);printf(請輸入入住信息:n樓號 房號 面積 最大入住人數(shù) 已入住人數(shù)n);printf(數(shù)

9、據(jù)須按規(guī)定順序輸入,不同數(shù)據(jù)用空格分開。n);for(i=0;iLnum,&p-Fnum,&p-squa,&p-maxnum,&p-innum);p-next=h-next;h-next=p;return h;struct room *del(struct room *h)/退房登記int x;struct room *p,*q;p=h-next;q=h;printf(請輸入退房房號:n);scanf(%d,&x); if(p=NULL)printf(不存在此入房登記!n是否返回菜單界面進行其他操作?(1/0));elsewhile(p)if(p-Fnum=x)q-next=p-next;fr

10、ee(p);printf(刪除成功!是否返回菜單界面進行其他操作?(1/0)n);goto K;elseq=p;p=p-next;if(p=NULL)printf(不存在此入房登記!n是否返回菜單界面進行其他操作?(1/0)n);K: return h;return h; void show(struct room *h)struct room *p;p=h-next;if(p=NULL)printf(無信息可顯示!n);elseprintf(n樓號 房號 面積 所容納人數(shù) 已入住人數(shù)nn);while(p)printf(%-7d%-7d%-8d%-13d%-8dn,p-Lnum,p-Fnum

11、,p-squa,p-maxnum,p-innum);p=p-next;void serh(struct room *h)/入住信息查詢與修改struct room *p;int x,y,z;p=h-next;H: printf(請輸入要查找的房號:n);scanf(%d,&z); while(p-Fnum!=z)p=p-next;if(p=NULL)break;if(p=NULL)printf(您所查詢的房間號無人入??!是否繼續(xù)查找?(1/0)n);Z: scanf(%d,&x);while(x!=1&x!=0)printf(輸入錯誤!請重新輸入!n);goto Z;if(x=1)goto H

12、;elseprintf(查詢結(jié)果如下:n);printf(n樓號 房號 面積 所容納人數(shù) 已入住人數(shù)nn);printf(%-7d%-7d%-8d%-13d%-8dn,p-Lnum,p-Fnum,p-squa,p-maxnum,p-innum);printf(如需修改請選擇1,按其他任意鍵返回菜單界面n);scanf(%d,&y);if(y=1)printf(請對入住信息進行修改(按順序輸入)n); scanf(%d%d%d%d%d,&p-Lnum,&p-Fnum,&p-squa,&p-maxnum,&p-innum);printf(修改成功!修改結(jié)果如下:n);printf(n樓號 房號 面

13、積 所容納人數(shù) 已入住人數(shù)nn);printf(%-7d%-7d%-8d%-13d%-8dn,p-Lnum,p-Fnum,p-squa,p-maxnum,p-innum);struct room *sort(struct room *h)/修改點struct room *p1,*p2,*t,*temp,*q; /*定義臨時指針*/ temp=h-next; /*將原表的頭指針所指的下一個結(jié)點作頭指針*/ h-next=NULL; /*第一個結(jié)點為新表的頭結(jié)點*/ while(temp!=NULL) /*當原表不為空時,進行排序*/ t=temp; /*取原表的頭結(jié)點*/ temp=temp-n

14、ext; /*原表頭結(jié)點指針后移*/ p1=h; /*設(shè)定移動指針p1,從頭指針開始*/ p2=h; /*設(shè)定移動指針p2做為p1的前驅(qū),初值為頭指針*/ while(t-innuminnum&p1!=NULL) /*作成績平均分比較*/ p2=p1; /*待排序點值小,則新表指針后移*/ p1=p1-next; if(p1=p2) /*p1=p2,說明待排序點值大,應排在首位*/ t-next=p1; /*待排序點的后繼為p*/ h=t; /*新頭結(jié)點為待排序點*/ else /*待排序點應插入在中間某個位置p2和p1之間,如p為空則是尾部*/ t-next=p1; /*t的后繼是p1*/ p2-next=t; /*p2的后繼

溫馨提示

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

最新文檔

評論

0/150

提交評論