




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、題目2.學生信息管理系統(tǒng)一、課程設(shè)計目的1. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計是綜合運用數(shù)據(jù)結(jié)構(gòu)課程中學到的幾種典型數(shù)據(jù)結(jié)構(gòu), 以及程序設(shè)計語言(c語言),自行實現(xiàn)一個較為完整的應用系統(tǒng)的設(shè)計與開發(fā)2 通過課程設(shè)計,自己通過系統(tǒng)分析、系統(tǒng)設(shè)計、編程調(diào)試,寫實驗報告等 環(huán)節(jié),進一步掌握應用系統(tǒng)設(shè)計的方法和步驟,靈活運用并深刻理解典型數(shù)據(jù)結(jié) 構(gòu)在軟件開發(fā)中的應用。3.學會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能 力。學生信息管理系統(tǒng):(1 )熟練掌握鏈表存儲結(jié)構(gòu)及其建立過程和常用操作;(3)學會自己調(diào)試程序的方法并掌握一定的技巧二、課程設(shè)計內(nèi)容建立學生信息管理系統(tǒng),通過鏈表實現(xiàn)對學生信息的輸入
2、,查找,刪除,插 入和排序等操作。三、需求分析1 .每位學生的信息有:學號,姓名,性別,出生日期,E-mile,電話,c成 績,數(shù)學成績等,用鏈表對學生的信息進行存儲。2. 全部數(shù)據(jù)可以只放在內(nèi)存中;3. 系統(tǒng)能實現(xiàn)的操作和功能如下:a)輸入學生信息:對不同學生分別輸出下列信息:學號,姓名,性別,出生日期,E-mile , 電話,c成績,數(shù)學成績等。b)查找學生信息:根據(jù)學生的學號或姓名對學生的信息進行查找。c)刪除學生信息:刪除某個學生的所有信息。d)插入學生信息:將某個學生的信息插入到已經(jīng)輸入的信息中。e)顯示學生信息:將所有學生的信息顯示出來。f)排序:將所有學生按某個學科的成績依次排序
3、。概要設(shè)計1系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)2.功能模塊說明 輸入學生信息,creat()S數(shù):建立單向鏈表,組織循環(huán),將學生的信息依次錄入。 :查找學生信息:a按學號查找,findl ()函數(shù);b按姓名查找,find2 ()函數(shù); 刪除學生信息,del ()函數(shù):建立指針,在鏈表中尋找要刪除信息的學生的學號,找到后 p-> next=p-> next- > next,將其刪除。 插入學生信息,insert ()函數(shù);輸入要插入的信息,建立指針,尋找要插入的節(jié)點。 顯示學生信息,print ()函數(shù);將以存在的學生信息輸出 按某科成績對學生進行排序” sort ()函數(shù);五、詳細設(shè)計
4、及運行結(jié)果輸入:creat ()輸入:開始main ()輸入:32.fhid2()1.find 1()del ()輸入:4insert ()輸入:print ()輸入:sort ()輸入:0退出exit ()1.菜單:序Lkr:息息息息息尅 隹隹隹隹嫦>: 操生生生生生霧W WHAW<0 繪入找除入示宙岀擇 淫迤:®瀝遢灌選1 2 3 4 5 6 0說Wp!=null學號姓名性別岀生日期E-nail電話c成績數(shù)學成績1nan1989- 3-21.xxxxxxxxxxxx9999學號姓名性別岀生日期E-nail電話c成績數(shù)學成績2nannan1999- 9- 9aaaaaG
5、163-conaaaaaa9898982. creat ()函數(shù).*D: 文檔VC6lyPro jectseeqDebugeeq. exe*請輸入學號2姓名nan性別nan岀生日期1999-09-09E-nail電話aaaaaac成績98數(shù)學成績按回車鍵返回3. find ()函數(shù).find2():3. del ()函數(shù).2d序FF 白心息白心自心白舗 fIB信居言信用 搟竺一一r工雰刪=$XXHHX絮CU要 紀入找除入示C1-岀烽人 學Q:p:t3:l4:5fe:le:請請 1319>:除4. insert ()函數(shù).5. print ()函數(shù).序Lkr 息息息息息前 信信信信始 &g
6、t; 墾生生生生霧先名q名n wzHHHaww姓yw姓na 結(jié)入找除入示奇岀擇 生聾刪播顯餐選號1號2 學bL:!2:l3:l4:5:l6:l0:注舉學岀生日期E-nail19893-岀生日期E-nail1999- 9- 9aaaaa(?163 .con電話 C成績數(shù)學成績xxxxxxxx 9999電話 C成績數(shù)學成績aaaaaa 9898按回車鍵返回6. sort ()函數(shù). X:息息息息息護信信信信賭>: 電話 C成績數(shù)學成績xxxxxxxx 9999電話 C成績數(shù)學成績aaaaaa 9898操生生生生生聖名q名n >于O糸<0姓yw姓na 紀入找除入示cl岀擇 竝聾刪播
7、顯餐詭號1號2 學1:|2:|3:|4:5:SK1舉學按回車鍵返回六、調(diào)試倩況,設(shè)計技巧及體會通過這次課程設(shè)計,我對這門課又有了一個新的理解,最大的喜悅不是寫出 程序,而是從中學會了怎么去寫,該如何去寫,在老師的嚴格監(jiān)督下,自己也養(yǎng) 成了獨立思考的習慣,真的從中得到了很多好處,從思想到著手,所有都是程序 化的,必須踏踏實實的來。通過學生信息管理系統(tǒng)的設(shè)計,使我對鏈表有了更深的了解,也懂得了如何 用鏈表進行輸入,插入,排序等操作,兩個禮拜的實習很快就過去了,這一次真 的學到了很多東西,我也將會將自己所學到的東西用到自己以后的學習中去。七、參考文獻C語言程序設(shè)計科學出版社數(shù)據(jù)結(jié)構(gòu)(C語言描述)一清
8、華大學出版社數(shù)據(jù)結(jié)構(gòu)(使用C語言)電子科技大學出版社八. 附錄:源代碼# include<stdio.h># include<string.h>#in clude<stdlib.h>#define N sizeof(struct stu) void clearscreen()廠清屏函數(shù)/ getchar();system("cls");struct date廠定義出生年月日的結(jié)構(gòu)體*/int year;int mouth;int day;struct stu/*定義學生信息的結(jié)構(gòu)體*/int number;char name30;char
9、 sex5;struct date birthday;char mail30;char phone30;int cscore.mscore;struct stu *next;廠輸出函數(shù)/int print(struct stu *p)while(p!二NULL)廠如果P所指的結(jié)點不為空執(zhí)行循壞*/printf("學號姓名性別 出生日期 E-mail電話C成績數(shù)學成績W);printf(" %2d%6s%6s%8d-%2d-%2d%lls%lls%6d%8dn",p->number,p->name,p-> sex,p-> birthday .
10、year,p->birthday.mouth,p->birthday.day,p->mail,p-> ph on e,p-> cscore,p->mscore);p=p->n ext;printf ("nn 按回車鍵返回nn");getchar();return 0;廠創(chuàng)建鏈表*/struct stu *creat() struct stu *p,*head;int i,k;printf("請輸入學生的數(shù):n");scanf("%d&k);p二head二(struct stu *)malloc(
11、N);printfC請輸入學號F);scanf(,%d"/&p-> number);printf("姓名n");scanf("%s&p->name);printf("惕 in");scanf("%s&p->sex);printf("岀生日期 n");scanf(,%d-%d-%d,/&p-> birthday .year,&p->birthday.mouth,&p-> birthday, day); printf(&quo
12、t;E-mailn");scanf("%s&p->mail);printf("電話n");scanf("%s&p- > phone);printf("c 成績n");scanf("%d &p- > cscore);printf("數(shù)學成績n");scanf("%d &p- > mscore);if(k>l)for(i=l;i<k;i+) p->next= (struct stu *)malloc(N);p=p &
13、gt; next;printf("請輸入學號n");scanf("%d&p-> number);printf("姓名n);scanfC%s;&p->name);printf("ft§On');scan f("%s&p->sex);printf(出生日期n");scanfC%cb%d-%d;&p-> birthday .year,&p->birthdaymouth&p> birthday, day);printf("
14、E-mailn");scanf("%s&p->mail);print"*電話rT);scanf("%s&p- > phone);printfCcMn");scanf("%d&p->cscore);printf("數(shù)學成績 n");scanf("%d&p-> mscore);p->next=NULL;return head;/喳找鏈表*/struct stu *findl(struct stu *p) int number;if (p二二 NUL
15、L)printf("n提示:沒有資料可以查詢!n");return 0;printf("請輸入要查找的學生學號:");scanf("%d",&number);while(p!二 NULL)if(p->nu mber=二 nu mber)return(p);break;elsep 二 p->n ext;return NULL;struct stu *find2(struct stu *p)char name30;if (p二二 NULL)printf("n提示:沒有資料可以查詢!n");retur
16、n 0;printf("請輸入要查找的學生姓名:");scanf("%sname);while(p!二 NULL)if(strcmp(p->nam 巳 n ame)=0) return(p);elsep=p->next;return NULL;廠刪除鏈表/int del(struct stu *h)int number;struct stu *p/pO;if(*h 二二 NULL)retun 0;printf("請輸入要刪除的學號n");scanf("%d&number);p0=*h;if(p0->nu mb
17、er= = number)*h=p0->next;free(pO);return 1;p=pO->next;while(p!二 NULL)if(p-> number 二二 number)pO->n ext=p->n ext;free(p);return 1;pO 二 p;p=p->next;printf("n按回車鍵返回n");getchar();return 0;廠插入鏈表*/int insert (struct stu *h)struct stu *p/pO;p=(struct stu *)malloc(N); printf(&quo
18、t;請輸入要插入的學號n"); scanf(,%ld,/&p-> number); pO=*h;if(pO ->n umber= = p-> number)return 0;printf(姓名n);scanf("%s&p->name);printf("tt§ 叭nJ;scanfC%s;&p->sex);printf ("Hi 生日期n");scanf("%d%d%d"/&p->birthday.year/&p- > birthday.
19、mouthr&p- > birthday.day);printf("E-mailn");scanf("%s&p->mail);printf ("電話 n");scanf("%s&p-> phone);printfCc 成績n");scanf("%d &p- > cscore);printfC數(shù)學成績 n");scanf("%d :&p > mscore);p-> next=NULL;if(*h 二二 NULL)*h =
20、p;return 1;pO=*h;if(pO->n umber>p-> number)p->next=*h;*h = p;return 1;while(pO-> next! = NULL&&pO-> next->number<p-> nu mber) pO=pO->next;if(pO-> next 二二 N ULL)pO->n ext=p;return 1;p->next=pO->next;pO->next=p;pri ntf("nn 按回車鍵返回nn"); getc
21、har();return 1;廠排序*/struct stu* sort(struct stu *pO)struct stu *t,*p,*q,*乙if(pO 二二 NULL)printf("沒有學生信息可排序!n");return 0;if(p0二二NULL)|(pO->next二二NULL)/*當節(jié)點不存在或者只有一個節(jié)點時*/return p0;t 二 p0;p=t->n ext;t- > next二NULL;廠將頭節(jié)點孤立出來*/while(p)/牡始終指向頭節(jié)點*/q = p- >n ext;if(p->cscore>t->
22、; cscore)廠用頭節(jié)點的后一個節(jié)點與頭節(jié)點進行比較*/p-> next二t;廠將分數(shù)大的放在前面六/t二p;小始終指向當前第一個節(jié)點*/elseZ=t;wh ile(z-> next&&z- > next- > cscore > = p-> cscore) z=z->next;p->next=z->next;z->n ext=p;p 二 q;pO 二 t;return pO;void main()struct stu *head/p;int a;int b;printf("*g 由 g 電學院學生管理
23、字統(tǒng)*pri ntf (”要進入系統(tǒng)請按任意鍵n");getchar();printf("*歡迎您!您已進入管理系統(tǒng)*printf("*卄學生成績管理系統(tǒng)W);it*doclearscreen();printf("學生紀錄操作:n"); printfC'l輸入學生信息n"); printf("2:查找學生信息n"); printf("3:刪除學生信息n"); printf("4:插入學生信息n"); printf("5:顯示學生信息n"); printf("6按C語言成績排序 n"); printfCO:退出系統(tǒng)W);printf("請選擇(06):");scanf("%d",&b);switch(b)case l:head=creat();prin t(head);break;case
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2017課題申報書范文
- 氣象課題申報書范例范文
- 動物醫(yī)學課題申報書
- 員工超額激勵獎金合同范本
- 交通課題申報書怎么寫
- 產(chǎn)品預訂合同范本
- 雙師課堂課題申報書
- 護理專業(yè)勞動課題申報書
- 課題查申報書查重嗎
- 低價出售磚機合同范本
- 設(shè)備學習電子圍欄g5tk400說明書
- 《英語閱讀4》課程教案(下)
- 大班數(shù)學活動有趣的鐘表
- 剪映入門教程PPT
- 外研版一起五年級英語下冊全冊教案教學設(shè)計版
- 回字格+米字格練字模版(A4最大利用率)
- 幼小銜接--相鄰數(shù)PPT課件
- 三八婦女節(jié)主題班會PPT課件
- 員工考勤與請休假管理制度
- 橡膠履帶力學分析及優(yōu)化設(shè)計
- CFM56-7發(fā)動機滑油系統(tǒng)及其常見故障分析(共41頁)
評論
0/150
提交評論