C語(yǔ)言課程設(shè)計(jì)報(bào)告-學(xué)生宿舍管理系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告-學(xué)生宿舍管理系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告-學(xué)生宿舍管理系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告-學(xué)生宿舍管理系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告-學(xué)生宿舍管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-z.****大學(xué)C語(yǔ)言課程設(shè)計(jì)報(bào)告題目:學(xué)生宿舍管理系統(tǒng)系部名稱:專業(yè)名稱:班級(jí):學(xué)號(hào):學(xué)生姓名:指導(dǎo)教師:時(shí)間:課程設(shè)計(jì)目的1.設(shè)計(jì)一個(gè)ubuntu下的學(xué)生宿舍管理系統(tǒng)2.掌握用C語(yǔ)言定義單鏈表構(gòu)造,并實(shí)現(xiàn)其創(chuàng)立、插入、刪除等根本操作。二、課程設(shè)計(jì)容用C語(yǔ)言編寫“學(xué)生宿舍管理系統(tǒng)〞,要求如下:創(chuàng)立鏈表,錄入數(shù)據(jù)。數(shù)據(jù)的讀寫操作。數(shù)據(jù)的更新操作。數(shù)據(jù)的刪除和插入。請(qǐng)你要求對(duì)數(shù)據(jù)進(jìn)展查找。按要求排序。設(shè)計(jì)總體菜單界面。三、實(shí)驗(yàn)要求1、錄入數(shù)據(jù)學(xué)生的根本信息,包括**、姓名、性別、年齡、專業(yè)、班級(jí)等。宿舍樓的根本信息,包括宿舍樓號(hào)、學(xué)生所住的房間號(hào)和宿舍床位號(hào)等。2、數(shù)據(jù)存儲(chǔ)信息的錄入要求用鏈表,把輸入的信息要求存儲(chǔ)到指定文件夾中,以便隨時(shí)查看,也可供程序調(diào)用,便操作人員不用重復(fù)輸入數(shù)據(jù)。3、數(shù)據(jù)的更新更新包括插入、刪除、修改。刪除分根據(jù)**刪除和根據(jù)學(xué)生的樓層信息刪除。5、數(shù)據(jù)的查詢查詢可以根據(jù)**和宿舍信息不同面進(jìn)展查詢,便操作者使用。6、數(shù)據(jù)的排序操作者可以使所輸入的信息按**排序。7、數(shù)據(jù)的統(tǒng)計(jì)按整體統(tǒng)計(jì),統(tǒng)計(jì)所有學(xué)生人數(shù),男生人數(shù)和女生人數(shù)。四、概要設(shè)計(jì)1.系統(tǒng)構(gòu)造圖〔功能模塊圖〕主函數(shù)主函數(shù)錄入存儲(chǔ)數(shù)據(jù)操作輸出信息輸入統(tǒng)計(jì)查找修改刪除插入顯示排序2.功能模塊說明:(1).數(shù)據(jù)錄入:創(chuàng)立單鏈表,調(diào)用Initnode()函數(shù)申請(qǐng)頭結(jié)點(diǎn),在調(diào)用append(),在調(diào)用Write_to_File()函數(shù)將信息寫入文件中,(2)插入模塊:先將文件信息讀出,再調(diào)用insert()函數(shù),可以向文件中插入信息。插入模塊:先將文件信息讀出,再調(diào)用del()函數(shù),可以將輸入錯(cuò)誤或者需要的信息刪除。(4)修改模塊:先將文件信息讀出,再調(diào)用modify()函數(shù),將輸入錯(cuò)誤的信息修改。(5)查詢模塊:先將文件信息讀出,再調(diào)用search(),在search()中有調(diào)用兩個(gè)數(shù),一個(gè)按照宿舍信息查詢sushe_search(),需要樓號(hào)和宿舍號(hào),一個(gè)按照生信息查詢*uehao_search()需要學(xué)生**或者姓名。(6)排序模塊:先將文件信息讀出,再調(diào)用sort(),按照學(xué)生**排序,拍完續(xù)沒有直接寫入文件,如果要直接寫入調(diào)用文件讀入函數(shù)Write_to_File().(7)統(tǒng)計(jì)模塊:先將文件信息讀出,再調(diào)用tongji()函數(shù),統(tǒng)計(jì)了女生人數(shù)和男生人數(shù),還統(tǒng)計(jì)了總?cè)藬?shù).五.詳細(xì)過程和運(yùn)行結(jié)果:刪除模塊開場(chǎng)開場(chǎng)輸入要?jiǎng)h除學(xué)生的**輸入要?jiǎng)h除學(xué)生的**num組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表p->num:nump->num:num!===刪除該學(xué)生信息刪除該學(xué)生信息完畢完畢開場(chǎng)插入模塊開場(chǎng)頭插入學(xué)生信息頭插入學(xué)生信息輸入插入的學(xué)生信息輸入插入的學(xué)生信息將其入棧,即將插入的學(xué)生信息插到了最前面將其入棧,即將插入的學(xué)生信息插到了最前面完畢完畢查找模塊開場(chǎng)開場(chǎng)選擇查找方式選擇查找方式按宿舍信息查找按學(xué)生**查找按宿舍信息查找按學(xué)生**查找組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表輸入要查找的學(xué)生組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表輸入要查找的學(xué)生lounum,sushenum,chuangnum輸入要查找的學(xué)生**輸入要查找的學(xué)生**nump->lounum:sushenup->sushenum:sushenup->lounum:sushenup->sushenum:sushenup->chuangnum:chuangnump->num:num!=!=輸出該學(xué)生的信息輸出該學(xué)生的信息輸出該學(xué)生信息輸出該學(xué)生信息完畢完畢開場(chǎng)開場(chǎng)輸入要修改的學(xué)生**輸入要修改的學(xué)生**num組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表p->num:nump->num:num==修改學(xué)生信息修改學(xué)生信息完畢完畢開場(chǎng)開場(chǎng)組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表選出**最小的學(xué)生,與第一選出**最小的學(xué)生,與第一學(xué)生交換存儲(chǔ)位置在余下的學(xué)生中選出**最小的學(xué)生與第二個(gè)學(xué)生交換存儲(chǔ)位置在余下的學(xué)生中選出**最小的學(xué)生與第二個(gè)學(xué)生交換存儲(chǔ)位置以此類推,直至排序完成以此類推,直至排序完成完畢完畢開場(chǎng)統(tǒng)計(jì)模塊開場(chǎng)組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表組織循環(huán),掃描存儲(chǔ)學(xué)生信息的鏈表表p->se*=mp->se*=wp->se*=mp->se*=wCount2++Count1++Count2++Count1++完畢完畢六.參考文獻(xiàn):?C語(yǔ)言程序設(shè)計(jì)?:曙燕七.源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>//#include<conio.h>typedefstructStudent{int num;/****/char name[15];/*姓名*/char se*;/*性別*/char zhuanye[20];/*專業(yè)*/int lounum;/*樓號(hào)*/int sushenum;/*宿舍號(hào)*/int chuangnum;/*床號(hào)*/structStudent*ne*t;}Stu;voidWrite_to_File(Stu*L)/*將信息寫入文件*/{FILE*fp;Stu*p;fp=fopen("sushe.t*t","w");if(fp==NULL){printf("翻開失敗!");getchar(); getchar();e*it(0);}p=L->ne*t;while(p){fprintf(fp,"%d%s%c%s%d%d%d\n",p->num,p->name,p->se*,p->zhuanye,p->lounum,p->sushenum,p->chuangnum);p=p->ne*t;}fclose(fp);}voidInitStu(Stu**h)/*創(chuàng)立頭結(jié)點(diǎn)*/{(*h)=(Stu*)malloc(sizeof(Stu));if(h==NULL){printf("創(chuàng)立失敗!!");getchar(); getchar();e*it(0);} (*h)->ne*t=NULL;}voidappend()/*錄入學(xué)生信息*/{Stu*head;Stu*p,*q;charch;InitStu(&head);q=head;while(1){ system("clear"); printf("請(qǐng)錄入學(xué)生信息\n"); p=(Stu*)malloc(sizeof(Stu));printf("\n**:");scanf("%d",&p->num);printf("\n姓名:");scanf("%s",p->name);printf("\n性別:");scanf("%c",&p->se*);printf("\n專業(yè):");scanf("%s",p->zhuanye);printf("\n樓號(hào):");scanf("%d",&p->lounum);printf("\n宿舍號(hào):");scanf("%d",&p->sushenum);printf("\n床號(hào):");scanf("%d",&p->chuangnum);p->ne*t=q->ne*t;q->ne*t=p;q=p;printf("按任意鍵繼續(xù)錄入,按0完畢錄入"); getchar();ch=getchar();if(ch=='0')break;}Write_to_File(head);}voidRead_from_File(Stu*h)/*讀出文件信息*/{FILE*fp;Stu*p,*q;inti;fp=fopen("sushe.t*t","r");if(fp==NULL){printf("翻開失敗");e*it(0);}q=h;while(!feof(fp)){p=(Stu*)malloc(sizeof(Stu));i=fscanf(fp,"%d%s%c%s%d%d%d\n",&p->num,p->name,&p->se*, p->zhuanye,&p->lounum,&p->sushenum,&p->chuangnum); if(i==EOF) break;q->ne*t=p;q=p;} q->ne*t=NULL;fclose(fp);}intdisplay()/*顯示文件信息*/{Stu*head=NULL;Stu*p;InitStu(&head);Read_from_File(head); //printf("ok!\n");p=head->ne*t;system("clear");if(!p){printf("無(wú)容!");printf("\n按任意鍵鍵返回\n");getchar(); getchar();return0;}printf("**姓名性別專業(yè)樓號(hào)宿舍號(hào)床號(hào)\n\n");while(p){printf("%-8d%-10s%-6c%-14s%-8d%-8d%-5d\n",p->num,p->name,p->se*,p->zhuanye, p->lounum,p->sushenum,p->chuangnum);p=p->ne*t;}printf("\n按任意鍵返回\n");getchar(); getchar();return1;}voiddel()/*刪除學(xué)生信息*/{Stu*head;Stu*p,*q;charch,h;intN;intlounum,sushenum,chuangnum;InitStu(&head);Read_from_File(head);q=head;p=head->ne*t; do { system("clear"); printf("\n1.根據(jù)學(xué)生**刪除\n"); printf("\n2.根據(jù)宿舍信息刪除\n"); printf("\n請(qǐng)選擇刪除式:"); scanf("%c",&ch); while(1) { if(ch=='1') { printf("\n請(qǐng)輸入學(xué)生**:"); scanf("%d",&N); while(p) { if(p->num==N) { q->ne*t=p->ne*t; printf("刪除成功!"); break; } q=p; p=p->ne*t; } if(p==NULL) { printf("\n未找到此學(xué)生"); break; }else { free(p); } } elseif(ch=='2') { printf("\n請(qǐng)輸入宿舍信息(樓號(hào)宿舍床號(hào)):"); scanf("%d%d%d",&lounum,&sushenum,&chuangnum); while(p!=NULL) { if(p->lounum==lounum&&p->sushenum==sushenum&&p->chuangnum) { q->ne*t=p->ne*t; printf("刪除成功!"); break; } q=p; p=p->ne*t; } if(p==NULL) { printf("未找到此學(xué)生"); break; }else { free(p); } } break; } printf("\n\n是否繼續(xù):Y/N?"); scanf("%c",&h); }while(h=='Y'||h=='y'); Write_to_File(head);}voidinsert() /*用頭插法插入學(xué)生信息*/{ Stu*p,*head; charch; InitStu(&head); Read_from_File(head); system("clear"); do { p=(Stu*)malloc(sizeof(Stu)); p->ne*t=NULL; printf("\t\t請(qǐng)輸入插入的學(xué)生信息:\n"); printf("\t**:"); scanf("%d",&p->num); printf("\n\t姓名:"); scanf("%s",p->name); printf("\n\t性別:"); scanf("%c",&p->se*); printf("\n\t專業(yè):"); scanf("%s",p->zhuanye); printf("\n\t樓號(hào):"); scanf("%d",&p->lounum); printf("\n\t宿舍號(hào):"); scanf("%d",&p->sushenum); printf("\n\t床號(hào):"); scanf("%d",&p->chuangnum); p->ne*t=head->ne*t; head->ne*t=p; printf("\n\n是否繼續(xù)插入?Y/N"); scanf("%c",&ch); }while(ch=='y'||ch=='Y'); Write_to_File(head);}voidmodify()/*修改學(xué)生信息〔按**修改〕*/{ Stu*head; Stu*p;charch;intN;InitStu(&head);Read_from_File(head); system("clear"); printf("\n\n請(qǐng)輸入修改的學(xué)生**:"); scanf("%d",&N); p=head->ne*t; do { while(p!=NULL) { if(p->num==N) { system("clear"); printf("\n請(qǐng)輸入新的學(xué)生信息:\n"); printf("\n**:"); scanf("%d",&p->num); printf("\n姓名:"); scanf("%s",p->name); printf("\n性別:"); scanf("%c",&p->se*); printf("\n專業(yè):"); scanf("%s",p->zhuanye); printf("\n樓號(hào):"); scanf("%d",&p->lounum); printf("\n宿舍號(hào):"); scanf("%d",&p->sushenum); printf("\n床號(hào):"); scanf("%d",&p->chuangnum); break; } p=p->ne*t; } if(p==NULL) printf("\n未找到此學(xué)生"); else { printf("修改成功\n"); }printf("\n\n繼續(xù)修改?Y/N"); scanf("%c",&ch); }while(ch=='y'||ch=='Y'); Write_to_File(head);}void*uehao_search(Stu*head)/*按照學(xué)生**查找*/{intnum;Stu*p;charch;p=head->ne*t;do{ system("clear");printf("\n請(qǐng)輸入要查找的學(xué)生**:");scanf("%d",&num);while(p!=NULL) {if(p->num==num) { printf("**姓名性別專業(yè)樓號(hào)宿舍號(hào)床號(hào)\n\n");printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",p->num,p->name,p->se*,p->zhuanye, p->lounum,p->sushenum,p->chuangnum); break; } p=p->ne*t; }if(p==NULL) printf("\n未找到此學(xué)生");printf("\n\n繼續(xù)查找?Y/N");scanf("%s",&ch);}while(ch=='Y'||ch=='y');}voidsushe_search(Stu*head)/*按照宿舍信息查找*/{intlounum,sushenum,chuangnum;Stu*p;charch;p=head->ne*t;do{ system("clear");printf("\n請(qǐng)輸入要查找的學(xué)生宿舍信息(樓號(hào)宿舍床號(hào)):");printf("\n樓號(hào):");scanf("%d",&lounum);printf("\n宿舍號(hào):");scanf("%d",&sushenum);printf("\n床號(hào):");scanf("%d",&chuangnum);while(p!=NULL) {if(p->lounum==lounum&&p->sushenum==sushenum &&p->chuangnum==chuangnum) { printf("**姓名性別專業(yè)樓號(hào)宿舍號(hào)床號(hào)\n\n");printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",p->num,p->name,p->se*, p->zhuanye, p->lounum,p->sushenum,p->chuangnum); break; } p=p->ne*t; } if(p==NULL) printf("\n未找到此學(xué)生");printf("\n\n是否繼續(xù)?Y/N"); scanf("%s",&ch);}while(ch=='y'||ch=='Y');}voidSearch()/*查找學(xué)生信息*/{intchoose;Stu*head;InitStu(&head);Read_from_File(head);system("clear");printf("\n1.根據(jù)宿舍信息查找.");printf("\n2.根據(jù)學(xué)生**查找.");printf("\n3.退出.\n\n");printf("\n請(qǐng)選擇查找式:");scanf("%d",&choose);switch(choose){case1:sushe_search(head);break; case2: *uehao_search(head); break;case3:break;}}voidsort()/*將學(xué)生信息按**排序*/{Stu*head;Stu*i,*j,*k;Stu*m,*n;Stu*temp;intl=0;InitStu(&head);Read_from_File(head);//冒泡排序法for(m=head,i=head->ne*t;i;m=i,i=i->ne*t){k=i;for(n=i,j=i->ne*t;j;n=j,j=j->ne*t) {if(j->num<k->num) { k=j; break; } }if(i!=k) { m->ne*t=j; n->ne*t=i; temp=i->ne*t; i->ne*t=j->ne*t; j->ne*t=temp; i=head; }} system("clear"); printf("\n\n輸入學(xué)生信息:\n\n");i=head->ne*t;printf("**姓名性別專業(yè)樓號(hào)宿舍號(hào)床號(hào)\n\n");while(i){printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",i->num,i->name,i->se*, i->zhuanye, i->lounum,i->sushenum,i->chuangnum);i=i->ne*t;}printf("\n按任意鍵返回!");getchar(); getchar();}voidtongji()/*統(tǒng)計(jì)學(xué)生信息*/{ Stu*head,*p; intCount1,Count2; InitStu(&head);Read_from_File(head); system("clear"); p=head->ne*t; Count1=0; Count2=0; while(p!=NULL) { if(p->se*=='w'||p->se*=='W') { Count1++; } else { Count2++; } p=p->ne*t; } printf("\t女生總數(shù):%d\n",Count1); printf("\t男生總數(shù):%d\n",Count2); printf("\t學(xué)生總數(shù):%d\n",Count1+Count2); printf("\t按任意鍵返回!"); getchar(); getchar();}voidmain(){in

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論