


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、合肥學(xué)院程序設(shè)計(jì)與算法語(yǔ)言課程設(shè)計(jì)報(bào)告書(shū)題目學(xué)生信息管理系統(tǒng)院 系名稱(chēng)合肥學(xué)院數(shù)學(xué)與物理系專(zhuān)業(yè)(班級(jí))14信息與計(jì)算科學(xué)姓 名(學(xué)號(hào))王玉(1407011011)指導(dǎo)教師 錢(qián)澤強(qiáng)完成時(shí)間2016 年12月28日、問(wèn)題描述學(xué)生信息管理工作是每個(gè)學(xué)校必須面對(duì)的,它是一項(xiàng)傳統(tǒng)且繁瑣的教育基礎(chǔ)管理工作。本次課程設(shè)計(jì)的任務(wù)是分別采用順序表和鏈表兩種存儲(chǔ)形式設(shè)計(jì)學(xué)生信息管理系統(tǒng)軟件,基本功能要求包括增刪改查等操作,并采用菜單調(diào)用各項(xiàng)功能。二、基本要求學(xué)生信息管理系統(tǒng)要求由兩人合作完成,分別采用“順序表”和“鏈表”兩種形式實(shí)現(xiàn)。具體要求如下:1、編寫(xiě)增加數(shù)據(jù)模塊,完成信息管理系統(tǒng)中學(xué)生信息數(shù)據(jù)的輸入;2、編
2、寫(xiě)刪除數(shù)據(jù)模塊,完成信息管理系統(tǒng)中學(xué)生信息數(shù)據(jù)的刪除;3、編寫(xiě)數(shù)據(jù)查詢(xún)模塊,完成信息管理系統(tǒng)中學(xué)生信息數(shù)據(jù)的查詢(xún);4、編寫(xiě)數(shù)據(jù)修改模塊,完成信息管理系統(tǒng)中學(xué)生信息數(shù)據(jù)的修改;5、編寫(xiě)數(shù)據(jù)排序模塊,完成信息管理系統(tǒng)中學(xué)生信息數(shù)據(jù)的排序;6、編寫(xiě)菜單模塊,完成對(duì)各功能子模塊的調(diào)用。三、功能結(jié)構(gòu)圖和模塊劃分1、功能結(jié)構(gòu)圖2、存儲(chǔ)結(jié)構(gòu)人員基本信息結(jié)構(gòu)體(鏈表存儲(chǔ)結(jié)構(gòu))typedef struct node struct stude nt char num10; /*學(xué)號(hào)*/char name18; /*姓名*/char sex3; /*性別*/int age; /*年齡 */ data; struct
3、 node *n ext; Node,*Li nk;3、模塊劃分:(1) 主菜單模塊void menu():通過(guò)利用輸出函數(shù)顯示輸出主菜單信息。(2) 提示錯(cuò)誤信息模塊void Wron g():通過(guò)利用輸出函數(shù)輸出提示錯(cuò)誤信息。(3) 提示沒(méi)有找到模塊void Nofin d():通過(guò)利用輸出函數(shù)輸出提示沒(méi)有找到該學(xué)生(4 )輸出中文、英文模塊void prin tchi nese()void prin te nglish(Node *p):通過(guò)利用輸出函數(shù)輸出中文提示及學(xué)生數(shù)據(jù)。(5 )定位模塊 Node* Locate(L ink l,char fin dmess,char n ameo
4、r nu m):定位連表中符要求合的接點(diǎn),并返回該指針。(6) 增加學(xué)生信息模塊void Add(L ink l):通過(guò)指針的不斷后移逐個(gè)接受學(xué)生信息并將學(xué) 生信息付給相應(yīng)變量。(7) 刪除信息模塊void Del(L ink l):根據(jù)用戶(hù)選擇按學(xué)號(hào)或按姓名刪除,分別比對(duì)輸入 數(shù)據(jù)和結(jié)構(gòu)體中的數(shù)據(jù),有匹配的則刪除,沒(méi)有則提示無(wú)信息可刪。(8) 修改信息模塊void Modify(L ink l):通過(guò)用戶(hù)輸入的學(xué)號(hào)找到相應(yīng)學(xué)生,然后逐項(xiàng)修改學(xué)生信息,否則提示無(wú)此學(xué)生。(9) 查詢(xún)學(xué)生信息模塊void Seek(L ink l):根據(jù)用戶(hù)選擇按學(xué)號(hào)或按姓名查詢(xún),分別按學(xué)號(hào)或姓名逐個(gè)比較輸入的數(shù)
5、據(jù)與結(jié)構(gòu)體中的數(shù)據(jù),有匹配的則輸出,沒(méi)有則提示沒(méi)有找至嘰(10) 保存信息模塊void Save(L ink l):將接受的結(jié)構(gòu)體信息利用指針存入文件中。(11 )排序模塊void Scoretow(Link l):按照學(xué)生的學(xué)號(hào)大小排序,輸出。(12)主函數(shù)void main():通過(guò)調(diào)用各模塊來(lái)實(shí)現(xiàn)學(xué)生信息的管理。四、源程序#i nclude "stdio.h"#i nclude "con io.h"#in clude "stdlib.h"#i nclude "stri ng.h"int havesave=0;
6、typedef struct node struct stude nt char num10; /*學(xué)號(hào)*/char name18; /*姓名*/char sex3; /*性別*/int age;/*年齡*/ data; struct node *n ext; Node,*Li nk; printf(" t1 printf(" t3添加學(xué)生信息t2刪除學(xué)生信息n");查詢(xún)學(xué)生信息t4修改學(xué)生信息n");void menu()/*主菜單 */printf(” t5保存學(xué)生信息t6排序?qū)W生信息n");printf(” t0退出系統(tǒng) n")
7、; void print_san() pri ntf(”-n"); void Wrong()/*提示錯(cuò)誤 */ prin tf("n=提示:輸入錯(cuò)誤!n"); void Nofi nd() prin tf("n=提示:沒(méi)有找到該學(xué)生!n"); void prin tchi nese() /*用于輸出中文*/ printf("t 學(xué)號(hào)t 姓名 性別 年齡n"); void prin te nglish(Node *p)/*用于輸出英文 */ prin tf("t%-9s%st%st%dn",p->da
8、ta .nu m,p->data .n ame,p->data.sex,p->data.age該函數(shù)用于定位鏈表中符Node* Locate(L ink l,char fin dmess,char n ameor nu m) /*合要求的結(jié)點(diǎn),并返回該指針*/ Node *r;if(strcmp(nameornum,"num")=0) /*按學(xué)號(hào)查詢(xún) */ r=l->n ext;while(r!=NULL) if(strcmp(r->data .nu m,fi ndmess)=0)return r;r=r->n ext; else if(
9、strcmp(nameornum,"name")=0) /*按姓名查詢(xún) */ r=l->n ext;while(r!=NULL) if(strcmp(r->data .n ame,fi ndmess)=0)return r;r=r->n ext; return 0;增加學(xué)生*/void Add(Li nk l) /* Node *p,*r,*s;char num10;r=l;s=l->n ext;while(r-> next!=NULL)r=r-> next; /*將指針置于最末尾*/while(1) printf(" 請(qǐng)你輸入
10、學(xué)號(hào)(以'O'返回上一級(jí)菜單:)");scan f("%s", nu m);if(strcmp( num,"0")=0)break;while(s) if(strcmp(s->data .num,num)=0) printf("=> 提示:學(xué)號(hào)為'%s'的學(xué)生已經(jīng)存在,若要修改請(qǐng)你選擇'4修改'!n",num);prin t_sa n();prin tch in ese();printen glish(s);prin t_sa n();prin tf("n
11、");return; s=s->n ext; p=(Node *)malloc(sizeof(Node);strcpy(p->data .num,nu m);printf("請(qǐng)你輸入姓名:");sca nf("%s",p->data .n ame);getchar();printf("請(qǐng)你輸入性別:");sca nf("%s",p->data.sex);getchar();printf("請(qǐng)你輸入年齡:");scan f("%d",&
12、p->data.age);getchar(); /*信息輸入已經(jīng)完成*/p-> next=NULL;r->n ext=p;r=p;havesave=1; void Del(Link l) /*刪除學(xué)生 */ int sel;Node *p,*r;char fin dmess20;if(!l-> next) printf("n=>提示:沒(méi)有信息可以刪除!n");return; printf("n=>1 按學(xué)號(hào)刪除 n=>2 按姓名刪除 n");printf("n請(qǐng)您選擇操作:");scan f(
13、"%d", &sel);if(sel=1) pri ntf("請(qǐng)您輸入要?jiǎng)h除的學(xué)號(hào):”);sca nf("%s",fi ndmess);p=Locate(l,fi ndmess," nu m");if(p) r=l;while(r- >n ext!=p)r=r->n ext;r->n ext=p->n ext;free(p);printf("n=> 提示:該學(xué)生已經(jīng)成功刪除!n"); havesave=1; elseNofin d(); else if(sel=2)
14、pri ntf("請(qǐng)你輸入要?jiǎng)h除的姓名:”);sca nf("%s",fi ndmess);p=Locate(l,fi ndmess," name");if(p) r=l;while(r- >n ext!=p)r=r->n ext;r->n ext=p->n ext;free(p);printf("n=> 提示:該學(xué)生已經(jīng)成功刪除!n"); havesave=1; elseNofin d(); elseWron g(); void Modify(L ink l)/*修改學(xué)生信息 */ Node
15、*p;char fin dmess20;if(!l-> next) printf("n=>提示:沒(méi)有信息可以修改!n");return; printf("請(qǐng)您輸入要修改的學(xué)生學(xué)號(hào):”);sca nf("%s",fi ndmess);p=Locate(l,fi ndmess," nu m");if(p) printf("請(qǐng)你輸入新學(xué)號(hào)(原來(lái)是%s):",p->data.num);sca nf("%s",p->data .nu m);printf(”請(qǐng)你輸入新姓名(
16、原來(lái)是s):",p->);sea nf("%s",p->data .n ame);getchar();printf(”請(qǐng)你輸入新性別(原來(lái)是%s):",p->data.sex);sca nf("%s",p->data.sex);printf("請(qǐng)你輸入新的年齡(原來(lái)是%d):",p->data.age);scan f("%d",&p->data.age);getchar();printf("n=>提示:信息修改成功!n
17、");havesave=1; elseNofin d(); void Seek(Li nk l) /*查詢(xún)學(xué)生信息 */ int sel;char fin dmess20;Node *p;if(!l-> next) printf("n=>提示:沒(méi)有信息可以查詢(xún)!n");return; printf("n1按學(xué)號(hào)查找n 2 按姓名查找n”);printf("n請(qǐng)您選擇操作:");scan f("%d", &sel); if(sel=1)/* 學(xué)號(hào) */ pri ntf("請(qǐng)你輸入要查找的
18、學(xué)號(hào):”);sca nf("%s",fi ndmess);p=Locate(l,fi ndmess," nu m");if(p) printf("tttt查找結(jié)果 n");prin t_sa n();prin tf("n");prin tch in ese();printen glish(p);prin tf("n");prin t_sa n();printf(”按任意鍵返回");getch(); elseNofin d(); else if(sel=2) /* 姓名 */ pri n
19、tf("請(qǐng)您輸入要查找的姓名:”);sca nf("%s",fi ndmess);p=Locate(l,fi ndmess," name");if(p) printf("tttt查找結(jié)果 n");prin t_sa n();prin tf("n");prin tch in ese();printen glish(p);prin tf("n");prin t_sa n();printf("按任意鍵返回");getch();elseNofin d(); elseWron
20、 g(); void Save(Li nk l) FILE* fp;Node *p;int flag=1,co un t=0;學(xué)生管理",”wb");if(fp=NULL) printf("n=>提示:重新打開(kāi)文件時(shí)發(fā)生錯(cuò)誤!n");exit(1); p=l->n ext;while(p) if(fwrite(p,sizeof(Node),1,fp)=1) p=p->n ext;coun t+; else flag=0;break; if(flag).)n" ,cou nt); printf("n=>提示:文件
21、保存成功.(有條記錄已經(jīng)保存havesave=0; fclose(fp); void Scoretow(Link l) /*按學(xué)號(hào)排序 */ Li nk II;Node *p,*rr,*s;ll=(Li nk)malloc(sizeof(Node); /*用于做新的連表 */ll-> next=NULL;if(l-> next=NULL) printf("n=>提示:沒(méi)有信息可以排序!n");return ; p=l->n ext;while(p) s=(Node*)malloc(sizeof(Node); /*新建接點(diǎn)用于保存信息*/s->d
22、ata=p->data;s-> next=NULL;rr=ll;while(rr- >n ext!=NULL && rr->n ext->data .num >=p->data .num)rr=rr- >n ext;if(rr-> next=NULL)rr->n ext=s;else s->n ext=rr- >n ext;rr->n ext=s; p=p->n ext; free(l);l->n ext=ll->n ext;printf("n=>提示:排序已經(jīng)完成!
23、n"); void mai n() Link l; /*鏈表 */FILE *fp; /* 文件指針*/int sel;char c;char chji;int coun t=0;Node *p,*r;printf("tttt學(xué)生信息管理系統(tǒng) nttttn");l=(Node*)malloc(sizeof(Node);l-> next=NULL;r=l;學(xué)生管理","rb");if(fp=NULL) printf("n=>提示:文件還不存在,是否創(chuàng)建?(y/n)n”);scan f("%c",
24、&chji);if(chji='y'|chji='Y')學(xué)生管理","wb");printf("n=>提示:文件已經(jīng)打開(kāi),正在導(dǎo)入記錄 n");fclose(fp); /*關(guān)閉文件 */printf("n=>提示:記錄導(dǎo)入完畢,共導(dǎo)入d條記錄.n",count);elseexit(0);else while(!feof(fp) p=(Node*)malloc(sizeof(Node); if(fread(p,sizeof(Node),1,fp) /* p-> next
25、=NULL;將文件的內(nèi)容放入接點(diǎn)中*/r->n ext=p; r=p; /* coun t+; 將該接點(diǎn)掛入連中*/fclose(fp); /* 關(guān)閉文件 */printf("n=>提示:記錄導(dǎo)入完畢,共導(dǎo)入d條記錄.n",count); while(1) menu();printf("請(qǐng)你選擇操作:");scan f("%d", &sel);if(sel=0) if(havesave=1) getchar();printf("n=> 提示:信息已經(jīng)改動(dòng),是否將改動(dòng)保存到文件中(y/n)?n&quo
26、t;);scan f("%c",&c);if(c='y'|c='Y')Save(l); printf("n=> 提示:您已經(jīng)退出系統(tǒng),再見(jiàn)!n");break; switch(sel) case 1:Add(l);break;/*case 2:Del(l);break;/*case 3:Seek(l);break; /*case 4:Modify(l);break; /*case 5:Save(l);break; /*增加學(xué)生*/ 刪除學(xué)生*/ 查詢(xún)學(xué)生*/ 修改學(xué)生*/ 保存學(xué)生*/case 6:Score
27、tow(l);break; /*按學(xué)號(hào)排序 */default: Wron g();getchar();break;五、測(cè)試情況1、進(jìn)入主菜單2、增加學(xué)生信息 I P'UsersXAdminislyt&fMJesktciFADetJU爭(zhēng)學(xué)生宦息管理鼠施exh學(xué)生信息管理系統(tǒng)提示:記錄導(dǎo)入箝華,共導(dǎo)入2條記錄,1添?yè)韺W(xué)牛信息3査詢(xún)學(xué)主信息5保存學(xué)生信息 。退出系統(tǒng)請(qǐng)你選擇操作門(mén)請(qǐng)你輸入學(xué)號(hào)以返回上一級(jí)菜:)H07ei1G11 請(qǐng)你輸入姓名:王玉請(qǐng)俅輸入性剔:女2刪除學(xué)生信息 期修改學(xué)土佶息 G排序?qū)W生信息謂你輸入作齡:心請(qǐng)你輸入學(xué)號(hào)(厲'釦返回上一級(jí)菜單J140TOH01
28、? 請(qǐng)你鞫入姓名;邱良媛諸你喻入性別:女請(qǐng)你輸入年齡:舊 請(qǐng)你輪入學(xué)號(hào)以'返冋上一級(jí)菜單;).in3、刪除學(xué)生信息(按學(xué)號(hào)刪除為例)4、查詢(xún)學(xué)生信息(按學(xué)號(hào)查找為例)扎Admi nisti日taiWsktopXDebu航學(xué)主信思管理索統(tǒng).exh警呆石學(xué)生信息右禪序?qū)W牛信息 。退出系統(tǒng)請(qǐng)你選擇操作:卻1按孝號(hào)譽(yù)找2按姓名査抿請(qǐng)您選擇操作M請(qǐng)你輸入要査找冊(cè)學(xué)號(hào):叫查找結(jié)果學(xué)號(hào) 雄名世別年齡 GH王武男 19按任意鍵返回5、修改學(xué)生信息 "CUseriArirninistiatorDesktopDetHjgTte-S-S3Si.exe"按任意鍵返回1禰加學(xué)生信息 2刪除學(xué)
29、生信皚3查詢(xún)學(xué)生信息屮隆改學(xué)生信息 5保存學(xué)生信息時(shí)非序?qū)W生信息 白退出系軌請(qǐng)你選擇操柞宀請(qǐng)您輸入蔓謹(jǐn)改附學(xué)生學(xué)號(hào);的請(qǐng)稱(chēng)輸入新學(xué)號(hào)(原來(lái)是GHF9請(qǐng)你輸入新姓名(原來(lái)是王武三弐請(qǐng)你輸入新性別(原來(lái)建男):男 請(qǐng)稱(chēng)輸入新的年齡(原來(lái)杲舊):1 9I 1諄加學(xué)主信息 3杳詢(xún)學(xué)生信息 寧杲存學(xué)生信息 日退出系統(tǒng)請(qǐng)你選擇操作;信信信 生生生 學(xué)學(xué)學(xué) 除改序 2 4 66、排序?qū)W生信息"C:LI s£fsAdnninistr3tcrDesktipDebug 生信.縣國(guó)理索豹 ei(已"請(qǐng)你輪入新姓茗i原來(lái)是王武:王武 請(qǐng)你輸入新性別(原來(lái)是男);男 請(qǐng)你豁入斷的年齡(原來(lái)
30、是:理-= = = >提示:信息修改成功F1添加學(xué)生信息3杏詢(xún)學(xué)生信息 >1修改學(xué)生信息5保存學(xué)生信息點(diǎn)排厚學(xué)主信息 0退出系統(tǒng)請(qǐng)你選擇操作上2刪除學(xué)主信息"澀示:排序己經(jīng)完成!1譙加學(xué)生信息3喪詢(xún)學(xué)生信息5保存學(xué)主信息。退出系統(tǒng) 請(qǐng)你譴擇操作:-2刪除學(xué)生信息 嗎修改學(xué)生信息 E排序?qū)W生信息,7、退出系統(tǒng)1999,清華大學(xué)出版社,19921999六、參考文獻(xiàn)1 錢(qián)能編著.C+程序設(shè)計(jì)教程,清華大學(xué)出版社,2 譚浩強(qiáng)編著.c程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第四版)3 呂鳳煮著.C+語(yǔ)言基礎(chǔ)教程,清華大學(xué)出版社,4 Robert L.Kruse著.C+數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì),清華大學(xué)出版社,2004 寧正元著數(shù)據(jù)結(jié)構(gòu)一C語(yǔ)言版,中國(guó)水利水電出版社,1997小結(jié)經(jīng)過(guò)兩個(gè)多星期的努力,這份課程設(shè)計(jì)論文終于做好了, 看著這份滿(mǎn)含著自己心血論文, 心中百感交集。經(jīng)過(guò)一個(gè)學(xué)期的學(xué)習(xí), 我對(duì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 促進(jìn)自主創(chuàng)新與合作計(jì)劃
- 培養(yǎng)幼兒觀察能力的探索計(jì)劃
- 2025年無(wú)菌包裝用包裝材料項(xiàng)目建議書(shū)
- 制定戰(zhàn)略合作伙伴關(guān)系計(jì)劃
- 可視化工作計(jì)劃的應(yīng)用案例
- 2025年酶法生產(chǎn)海藻糖項(xiàng)目建議書(shū)
- 2025年分級(jí)設(shè)備地礦勘測(cè)設(shè)備:鉆探機(jī)項(xiàng)目建議書(shū)
- 2025年漲緊輪項(xiàng)目合作計(jì)劃書(shū)
- 2025年面板檢測(cè)系統(tǒng)合作協(xié)議書(shū)
- 2025年酶標(biāo)記制劑項(xiàng)目發(fā)展計(jì)劃
- GB/T 45071-2024自然保護(hù)地分類(lèi)分級(jí)
- GB/T 17145-2024廢礦物油回收與再生利用導(dǎo)則
- 人教版小學(xué)英語(yǔ)單詞表(按首字母排列)
- GB/T 45006-2024風(fēng)電葉片用纖維增強(qiáng)復(fù)合材料拉擠板材
- 婦科常見(jiàn)病的護(hù)理常規(guī)
- 《銀行案件防控培訓(xùn)》課件
- 邏輯思維訓(xùn)練500題(帶答案)
- 炎癥性腸病共識(shí)2024
- 《單片機(jī)應(yīng)用技術(shù)》課件第1章
- 幼兒園小班美術(shù)活動(dòng)《飛舞的彩帶》課件
- AR婚禮策劃分析
評(píng)論
0/150
提交評(píng)論