




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言課程設(shè)計報告題 目學(xué)生宿舍管理系統(tǒng)系部名稱: 專業(yè)名稱: 班級:學(xué)號:學(xué)生姓名:指導(dǎo)教師:一、課程設(shè)計目的1. 設(shè)計一個ubuntu下的學(xué)生宿舍管理系統(tǒng)2. 掌握用C語言定義單鏈表結(jié)構(gòu),并實現(xiàn)其創(chuàng)建、插入、刪除等基本操作。二、課程設(shè)計容用C語言編寫“學(xué)生宿舍管理系統(tǒng)”,要求如下:1. 創(chuàng)建鏈表,錄入數(shù)據(jù)。2. 數(shù)據(jù)的讀寫操作。3. 數(shù)據(jù)的更新操作。4. 數(shù)據(jù)的刪除和插入。5. 請你要求對數(shù)據(jù)進行查找。6. 按要求排序。7. 設(shè)計總體菜單界面。三、實驗要求1、錄入數(shù)據(jù)學(xué)生的基本信息,包括學(xué)號、姓名、性別、年齡、專業(yè)、班級等。宿舍樓的基本信息,包括宿舍樓號、學(xué)生所住的房間號和宿舍床位號等。2
2、、數(shù)據(jù)存儲信息的錄入要求用鏈表,把輸入的信息要求存儲到指定文件夾中,以便隨 時查看,也可供程序調(diào)用,便操作人員不用重復(fù)輸入數(shù)據(jù)。3、數(shù)據(jù)的更新更新包括插入、刪除、修改。刪除分根據(jù)學(xué)號刪除和根據(jù)學(xué)生的樓層信息刪除。5、數(shù)據(jù)的查詢查詢可以根據(jù)學(xué)號和宿舍信息不同面進行查詢,便操作者使用。6、數(shù)據(jù)的排序操作者可以使所輸入的信息按學(xué)號排序。7、數(shù)據(jù)的統(tǒng)計按整體統(tǒng)計,統(tǒng)計所有學(xué)生人數(shù),男生人數(shù)和女生人數(shù)。四、概要設(shè)計1系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)2.功能模塊說明:(1).數(shù)據(jù)錄入:創(chuàng)建單鏈表,調(diào)用Initnode()函數(shù)申請頭結(jié)點,在調(diào)用append(), 在調(diào)用Write_to_File()函數(shù)將信息寫入文
3、件中,插入模塊:先將文件信息讀出,再調(diào)用insert()函數(shù),可以向文件中插入信息。(3) 插入模塊:先將文件信息讀出,再調(diào)用 del()函數(shù),可以將輸入錯誤或者需要的信息刪除。(4) 修改模塊:先將文件信息讀出,再調(diào)用modify()函數(shù),將輸入錯誤的信息修改。 查詢模塊:先將文件信息讀出,再調(diào)用search。在search()中有調(diào)用兩個數(shù),一個按照宿舍信息查詢 sushe_search()需要樓號和宿舍號, 一個按照生信息查詢xuehao_search()需要學(xué)生學(xué)號或者姓名。(6)排序模塊:先將文件信息讀出,再調(diào)用sort (),按照學(xué)生學(xué)號排序,拍完續(xù)沒有直接寫入文件,如果要直接寫入
4、調(diào)用文件讀入函數(shù) Write_to_File().統(tǒng)計模塊:先將文件信息讀出,再調(diào)用 tongji()函數(shù),統(tǒng)計了女生人數(shù)和男 生人數(shù),還統(tǒng)計了總?cè)藬?shù).五詳細(xì)過程和運行結(jié)果:刪除模塊Z.插入模塊輸入插入的學(xué)生信息將其入棧,即將插入的學(xué) 生信息插到了最前面查找模塊按學(xué)生學(xué)號查找輸入要查找的學(xué)生學(xué)號num修改模塊輸入要修改的學(xué)生學(xué)號num組織循環(huán),掃描存儲學(xué) 生信息的鏈表表排序模塊組織循環(huán),掃描存儲學(xué)生信息的鏈表選出學(xué)號最小的學(xué)生,與第學(xué)生交換存儲位置在余下的學(xué)生中選出學(xué)號最小的學(xué)生與第二個學(xué)生交換存儲位置以此類推,直至排序完成統(tǒng)計模塊開始組織循環(huán),掃描存儲學(xué) 生信息的鏈表表p_sex=wp_se
5、x=mCou nt1+Cou nt2+z.六.參考文獻C語言程序設(shè)計: 曙燕七.源代碼#include vstdio h#i nclude #in elude #in elude typedef struct Stude ntintnum;char n ame15;char sex;char zhua ny e20;intlounum;intsushe num;intchua ngnum;struct Stude nt *n ext;Stu;/*學(xué)號*/*姓名*/*性別*/*專業(yè)*/*樓號*/*宿舍號*/*床號*/void Write_to_File(Stu *L)FILE *fp;Stu *
6、p;fp=fope n(sushe.txt,w); if(fp=NULL)printf(打開失??!); getchar();getchar(); exit(0);/*將信息寫入文件*/p=L-n ext;while(p)fprin tf(fp,%d %s %c %s %d %d p-zhua nye,p-l ounu m,p-sushe nu m,p-chua ngnu m);p=p-n ext;%dn “,p_ n um,p_ n ame,p-sex,fclose(fp);void Ini tStu(Stu *h)/*創(chuàng)建頭結(jié)點*/(*h)=(Stu *)malloc(sizeof(Stu)
7、; if(h=NULL)printf(” 創(chuàng)建失敗!);getchar();getchar(); exit(0);(*h)- next=NULL;/*錄入學(xué)生信息*/ void appe nd()Stu *head;Stu *p,*q;char ch;In itStu(&head); q=head;while(1)system(clear);printf(請錄入學(xué)生信息n); p=(Stu *)malloc(sizeof(Stu);prin tf(n 學(xué)號:); sca nf(%d,&p- nu m);printf(n 姓名:); sca nf(%s,p-n ame);printf(n 性別:
8、); scanf( %c,&p-sex);printf(n 專業(yè):); sca nf(%s,p-zhua ny e);prin tf(n 樓號:); sca nf(%d,&p-lou nu m);printf(n 宿舍號:); sca nf(%d,&p-sushe nu m);prin tf(n 床號:); sca nf(%d,&p-chua ngnu m);p_n ext=q _n ext;q_n ext=p;q=p;printf(”按任意鍵繼續(xù)錄入,按0結(jié)束錄入”);getchar();ch=getchar();if(ch=0)break;Write_to_File(head);void
9、Read_from_File(Stu *h)/* 讀出文件信息 */FILE *fp;Stu *p,*q;int i;fp=fope n(sushe.txt,r);if(fp=NULL)printf(打開失敗);exit(0);q=h;while(!feof(fp)p=(Stu *)malloc(sizeof(Stu);i=fsca nf(fp,%d %s %c %s %d %d %dn,&p-n um,p- name,&p-sex,p-zhua nye,& p-l ounum,& p-sushe num,&p-chua ngnu m);if(i = EOF)break;q_n ext=p;q
10、=p;q-next = NULL;fclose(fp);int display()/*顯示文件信息*/Stu *head = NULL;Stu *p;In itStu(&head);Read_from_File(head);/prin tf(ok!n);p=head-n ext;system(clear);if(!p)printf(無容!);printf(n按任意鍵鍵返回n);getchar();getchar();return 0;printf(學(xué)號 姓名 性別 專業(yè)樓號 宿舍號 床號nn);while(p)prin tf(%-8d%-10s%-6c%-14s%-8d%-8d%-5dn,p-
11、 num,p- name,p-sex,p-zhua nye,p-l ounu m,p-sushe nu m,p-chua ngnu m);p=p-n ext;printf(n按任意鍵返回n);getchar();getchar();return 1;void del()/*刪除學(xué)生信息*/Stu *head;Stu *p,*q;char ch,h;int N;int lounu m,sushe nu m,chua ngnum;In itStu(&head);Read_from_File(head);q=head;p=head-n ext;dosystem(clear);printf(n1.根據(jù)
12、學(xué)生學(xué)號刪除n);printf(n2.根據(jù)宿舍信息刪除n);printf(n請選擇刪除式:);scanf(” c, & ch);while(1)if(ch=1)printf(n請輸入學(xué)生學(xué)號:);scan f(%d,&N);while(p)if(p-num=N)q_n ext=p-n ext;printf(”刪除成功!);break;q=p;p=p-n ext;if(p=NULL)printf(n未找到此學(xué)生”);break;elsefree(p);else if(ch=2)printf(n請輸入宿舍信息(樓號宿舍床號):);sca nf(%d %d %d,&lounum,& sushe nu
13、m,& chua ngnu m);while(p!=NULL)&if(p-l ounum=lounum&p-sushe num=sushe nump-chua ngnum)q_n ext=p-n ext;printf(刪除成功!); break;q=p;p=p-n ext;if(p=NULL)printf(”未找到此學(xué)生); break;elsefree(p);break;printf(nn 是否繼續(xù):Y/N ?);scanf(” c, & h);while(h=Y |h=y);Write_to_File(head);void in sert()/*用頭插法插入學(xué)生信息*/Stu *p , *
14、head;char ch;In itStu(&head);Read_from_File(head);system(clear);dop=(Stu*)malloc(sizeof(Stu);p- next=NULL;prin tf(tt請輸入插入的學(xué)生信息:n ”);prin tf(t學(xué)號:);scan f(%d,&p-n um);printf(nt 姓名:);sca nf(%s,p-n ame);printf(nt性別:);scanf(” %c,&p-sex);printf(nt專業(yè):”);sca nf(%s,p-zhua ny e);printf(nt樓號:);scan f(%d,&p-lou
15、 nu m);printf(nt宿舍號:);sca nf(%d,&p-sushe nu m);printf(nt床號:);sca nf(%d,&p-chua ngnu m);p-next = head-n ext;head-n ext = p;printf(nn是否繼續(xù)插入?Y/N);scanf(” %c,&ch);while(ch=y|ch=Y);Write_to_File(head);/*修改學(xué)生信息(按學(xué)號修改)*/ void modify()Stu *head;Stu *p; char ch; int N;In itStu(&head);Read_from_File(head);sys
16、tem(clear);prin tf(nn請輸入修改的學(xué)生學(xué)號 :);scan f(%d,&N);p=head-n ext;dowhile(p!=NULL) if(p-num=N)system(clear);prin tf(n請輸入新的學(xué)生信息:n);printf(n 學(xué)號:);sca nf(%d,&p- nu m);printf(n 姓名:); sca nf(%s,p-n ame);printf(n 性別:);scanf( %c,&p-sex);printf(n 專業(yè):);sca nf(%s,p-zhua ny e);printf(n 樓號:);sca nf(%d,&p-lou nu m);
17、printf(n 宿舍號:);sca nf(%d,&p-sushe nu m);printf(n 床號:);sca nf(%d,&p-chua ngnu m);break;p=p-n ext;if(p=NULL)printf(n未找到此學(xué)生”);elseprintf(修改成功 n);prin tf(nn繼續(xù)修改?Y/N);scanf(” %c,&ch);while(ch=y|ch=Y);Write_to_File(head);void xuehao_search(Stu * head)/* 按照學(xué)生學(xué)號查找 */int num;Stu *p;char ch;p=head-n ext ;dosy
18、stem(clear);prin tf(n請輸入要查找的學(xué)生學(xué)號:”);sca nf(%d,&n um);while(p!=NULL)if(p-num = num )床號printf(”學(xué)號姓名 性別專業(yè) 樓號 宿舍號nn);prin tf(%-8d%-8s%-4c%-8s%-8d%-8d%-5dn,p- nu m,p- name,p-sex,p-zhua nye,p-l ounu m,p-sushe nu m,p-chua ngnu m);break;p=p-n ext;if(p=NULL)printf(n未找到此學(xué)生”);prin tf(nn繼續(xù)查找?Y/N);sca nf(%s,&ch)
19、;while(ch=Y | ch=y);void sushe_search(Stu *head)/* 按照宿舍信息查找 */int lounu m,sushe nu m,chua ngnum;Stu *p;char ch;p=head-n ext;dosystem(clear);printf(n請輸入要查找的學(xué)生宿舍信息(樓號 宿舍 床號):);printf(n樓號:);sea nf(%d,&lou num);prin tf(n宿舍號:”);sea nf(%d,& sushe nu m);printf(n床號:);sca nf(%d,&chua ngnu m);while(p!=NULL)if
20、(p-l ounum=lounum & p-sushe num=sushe num&p-chua ngnum=chua ngnum)printf(”學(xué)號姓名 性別 專業(yè) 樓號 宿舍號床號nn);prin tf(%-8d%-8s%-4c%-8s%-8d%-8d%-5dn,p- nu m,p- name,p-sex,p-zhuanye,p-l ounu m,p-sushe nu m,p-chua ngnu m);break;p=p-n ext;if(p=NULL)printf(n未找到此學(xué)生”);prin tf(nn是否繼續(xù)?Y/N);scan f(%s,&ch);while(ch=y | ch=
21、Y);void Search( )/*查找學(xué)生信息*/int choose;Stu *head;In itStu(&head);Read_from_File(head);system(clear);printf(n1.根據(jù)宿舍信息查找.);printf(n2.根據(jù)學(xué)生學(xué)號查找.);printf(n3.退出.nn”);printf(n請選擇查找式:);scan f(%d,&choose);switch(choose)case 1:sushe_search(head); break;case 2:xuehao_search(head);break;case 3:break;void sort( )
22、/*將學(xué)生信息按學(xué)號排序Stu *head;Stu *i,*j,*k;Stu *m,* n;Stu *temp;int 1=0;In itStu(&head);Read_from_File(head);for(m=head,i=head-n ext;i;m=i,i=i-n ext)k=i;for(n=i,j=i-n ext;j; n=j,j=j- next)if(j-numnum)k=j;break;if(i!=k)m- next=j;n-n ext=i;temp=i-n ext;i-n ext=j-n ext;j-n ext=temp;i=head;system(clear);prin tf
23、(nn 輸入學(xué)生信息:nn);i=head-n ext;printf(學(xué)號 姓名 性別 專業(yè) 樓號*/冒泡排序法宿舍號 床號nn);while(i)prin tf(%-8d%-8s%-4c%-8s%-8d%-8d%-5dn,i- num,i- name,i-sex,i-zhua nye,i-l ounu m,i-sushe nu m,i-chua ngnu m);i=i-n ext;printf(n按任意鍵返回!);getchar();getchar();void tongji( )/*統(tǒng)計學(xué)生信息*/Stu *head,*p;int Cou nt1,Cou nt2;In itStu(&head);Read_from_File(head);system(clear);p=head-n ext;Cou nt1=O;Cou nt2=0;while(p!=NULL)if(p-sex=w | p_sex=W)Cou nt1+;elseC
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 飲品與物業(yè)合作合同協(xié)議
- 永州市老舊小區(qū)管理辦法
- 江橋鎮(zhèn)道路封閉管理辦法
- 新加坡海關(guān)賬戶管理辦法
- 銀行職稱評聘管理辦法
- 洋縣農(nóng)村宅基地管理辦法
- 柯橋博物館景區(qū)管理辦法
- 混凝土澆筑考核管理辦法
- 江蘇中小學(xué)校舍管理辦法
- 個人出租車運營管理辦法
- 醫(yī)院關(guān)于開展整治重復(fù)醫(yī)療檢查檢驗、違規(guī)收費問題工作實施方案的通知
- 孕婦營養(yǎng)管理課件大全
- 2024年湖北省普通高中學(xué)業(yè)水平合格性考試數(shù)學(xué)試題(原卷版)
- 常州市鐘樓區(qū)社區(qū)專職工作者招聘筆試真題2024
- 2024年安徽中醫(yī)藥高等??茖W(xué)校招聘考試真題
- 2025年變電站春季安全生產(chǎn)自查報告
- 充電樁充電服務(wù)與充電站安全保障合同
- 個人信息保護合規(guī)審計師CCRC-PIPCA含答案
- 2025鄂爾多斯達(dá)拉特旗智杰教育投資有限責(zé)任公司面向社會招聘10名工作人員筆試參考題庫附帶答案詳解析集合
- 小型引調(diào)水工程可行性研究報告
- GB 9706.283-2022醫(yī)用電氣設(shè)備第2-83部分:家用光治療設(shè)備的基本安全和基本性能專用要求
評論
0/150
提交評論