




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、題目2.學生信息管理系統一、課程設計目的1. 數據結構課程設計是綜合運用數據結構課程中學到的幾種典型數據結構, 以及程序設計語言(c語言),自行實現一個較為完整的應用系統的設計與開發2 通過課程設計,自己通過系統分析、系統設計、編程調試,寫實驗報告等 環節,進一步掌握應用系統設計的方法和步驟,靈活運用并深刻理解典型數據結 構在軟件開發中的應用。3.學會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能 力。學生信息管理系統:(1 )熟練掌握鏈表存儲結構及其建立過程和常用操作;(3)學會自己調試程序的方法并掌握一定的技巧二、課程設計內容建立學生信息管理系統,通過鏈表實現對學生信息的輸入
2、,查找,刪除,插 入和排序等操作。三、需求分析1 .每位學生的信息有:學號,姓名,性別,出生日期,E-mile,電話,c成 績,數學成績等,用鏈表對學生的信息進行存儲。2. 全部數據可以只放在內存中;3. 系統能實現的操作和功能如下:a)輸入學生信息:對不同學生分別輸出下列信息:學號,姓名,性別,出生日期,E-mile , 電話,c成績,數學成績等。b)查找學生信息:根據學生的學號或姓名對學生的信息進行查找。c)刪除學生信息:刪除某個學生的所有信息。d)插入學生信息:將某個學生的信息插入到已經輸入的信息中。e)顯示學生信息:將所有學生的信息顯示出來。f)排序:將所有學生按某個學科的成績依次排序
3、。概要設計1系統結構圖(功能模塊圖)2.功能模塊說明 輸入學生信息,creat()S數:建立單向鏈表,組織循環,將學生的信息依次錄入。 :查找學生信息:a按學號查找,findl ()函數;b按姓名查找,find2 ()函數; 刪除學生信息,del ()函數:建立指針,在鏈表中尋找要刪除信息的學生的學號,找到后 p-> next=p-> next- > next,將其刪除。 插入學生信息,insert ()函數;輸入要插入的信息,建立指針,尋找要插入的節點。 顯示學生信息,print ()函數;將以存在的學生信息輸出 按某科成績對學生進行排序” sort ()函數;五、詳細設計
4、及運行結果輸入: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成績數學成績1nan1989- 3-21.xxxxxxxxxxxx9999學號姓名性別岀生日期E-nail電話c成績數學成績2nannan1999- 9- 9aaaaaG
5、163-conaaaaaa9898982. creat ()函數.*D: 文檔VC6lyPro jectseeqDebugeeq. exe*請輸入學號2姓名nan性別nan岀生日期1999-09-09E-nail電話aaaaaac成績98數學成績按回車鍵返回3. find ()函數.find2():3. del ()函數.2d序FF 白心息白心自心白舗 fIB信居言信用 搟竺一一r工雰刪=$XXHHX絮CU要 紀入找除入示C1-岀烽人 學Q:p:t3:l4:5fe:le:請請 1319>:除4. insert ()函數.5. print ()函數.序Lkr 息息息息息前 信信信信始 &g
6、t; 墾生生生生霧先名q名n wzHHHaww姓yw姓na 結入找除入示奇岀擇 生聾刪播顯餐選號1號2 學bL:!2:l3:l4:5:l6:l0:注舉學岀生日期E-nail19893-岀生日期E-nail1999- 9- 9aaaaa(?163 .con電話 C成績數學成績xxxxxxxx 9999電話 C成績數學成績aaaaaa 9898按回車鍵返回6. sort ()函數. X:息息息息息護信信信信賭>: 電話 C成績數學成績xxxxxxxx 9999電話 C成績數學成績aaaaaa 9898操生生生生生聖名q名n >于O糸<0姓yw姓na 紀入找除入示cl岀擇 竝聾刪播
7、顯餐詭號1號2 學1:|2:|3:|4:5:SK1舉學按回車鍵返回六、調試倩況,設計技巧及體會通過這次課程設計,我對這門課又有了一個新的理解,最大的喜悅不是寫出 程序,而是從中學會了怎么去寫,該如何去寫,在老師的嚴格監督下,自己也養 成了獨立思考的習慣,真的從中得到了很多好處,從思想到著手,所有都是程序 化的,必須踏踏實實的來。通過學生信息管理系統的設計,使我對鏈表有了更深的了解,也懂得了如何 用鏈表進行輸入,插入,排序等操作,兩個禮拜的實習很快就過去了,這一次真 的學到了很多東西,我也將會將自己所學到的東西用到自己以后的學習中去。七、參考文獻C語言程序設計科學出版社數據結構(C語言描述)一清
8、華大學出版社數據結構(使用C語言)電子科技大學出版社八. 附錄:源代碼# include<stdio.h># include<string.h>#in clude<stdlib.h>#define N sizeof(struct stu) void clearscreen()廠清屏函數/ getchar();system("cls");struct date廠定義出生年月日的結構體*/int year;int mouth;int day;struct stu/*定義學生信息的結構體*/int number;char name30;char
9、 sex5;struct date birthday;char mail30;char phone30;int cscore.mscore;struct stu *next;廠輸出函數/int print(struct stu *p)while(p!二NULL)廠如果P所指的結點不為空執行循壞*/printf("學號姓名性別 出生日期 E-mail電話C成績數學成績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;廠創建鏈表*/struct stu *creat() struct stu *p,*head;int i,k;printf("請輸入學生的數: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("數學成績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("數學成績 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數學成績 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)/*當節點不存在或者只有一個節點時*/return p0;t 二 p0;p=t->n ext;t- > next二NULL;廠將頭節點孤立出來*/while(p)/牡始終指向頭節點*/q = p- >n ext;if(p->cscore>t->
22、; cscore)廠用頭節點的后一個節點與頭節點進行比較*/p-> next二t;廠將分數大的放在前面六/t二p;小始終指向當前第一個節點*/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、字統*pri ntf (”要進入系統請按任意鍵n");getchar();printf("*歡迎您!您已進入管理系統*printf("*卄學生成績管理系統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:退出系統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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版五年級下冊數學期末專題訓練:計算題(含解析)
- 2025年新高二數學(人教A版暑假銜接)高二上數學暑假綜合檢測卷(培優B卷)(解析版)
- 2025年新高考語文第二輪專題復習任務群三 任務一 學案9 一文多練解答傳統題目
- 2025年創新藥物研發靶點發現與驗證技術生物信息學在臨床試驗中的數據安全保護報告
- 2025年傳感器網絡自組網技術在智能交通系統的應用報告
- 空氣質量與健康關系的跨學科研究-洞察闡釋
- 2025年產業轉移園區建設社會穩定風險評估與公共服務均等化報告
- 無損檢測練習卷含答案
- 城市空中交通發展趨勢與挑戰
- 查勘定損(17位碼(VIN))復習測試附答案
- (新版)煙草制品購銷員(三級)理論知識考試復習題庫大全-上(單選題匯總)
- 圣經和我國歷史年代對照表
- 村委消防安全網格化管理工作制度范文
- 【二手車買賣合同】二手車交易買賣合同
- 【語文】四川省成都市泡桐樹小學二年級下冊期末復習試卷(含答案)
- arm嵌入式系統試題及標準答案
- 麻醉科PDCA持續改進麻醉術后鎮痛
- 火字旁教學講解課件
- 租車公司疫情防控應急預案
- 2023-2025年初中學業水平考試體育與健康考試體育中考理論考試題庫
- SMT失效模式分析PFMEA
評論
0/150
提交評論