版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗報告一、 問題陳述及其需求分析(一) 問題陳述學生信息管理系統(tǒng)是對學生信息的基本管理,其中包括以下及模塊:(1)增加一個學生的信息(需輸入要增加學生的所有信息);(2)統(tǒng)計本班學生總人數及男女生人數。(3)分別按照學號查找學生的信息;若找到則輸出該學生全部信息,否則輸出查找不到的提示信息。(4)按學號對所有學生信息排序,并輸出結果;(5)刪除一個學生的信息(需指定要刪除學生的學號);同時顯示刪除后的結果。( 二 ) 功能需求分析 學生信息管理系統(tǒng)設計學生信息包括:學號,姓名,性別,出生年月,電話使之提供以下功能:1、 系統(tǒng)以菜單方式工作2、建立鏈表并顯示3、插入新的學生信息4、刪除某學號的
2、學生信息5、查找某學號的學生信息6、對學生信息排序7、統(tǒng)計學生人數8、輸出學生信息二 總體設計(一)模塊 依據程序的數據結構,描述該程序的層次結構,如下圖:1建立鏈表并顯示2添加學生信息3刪除學生信息息4按學號查找學生信息5對學生信息排序6統(tǒng)計學生人數7輸出學員信息8學生信息寫入文件0退出main()菜單函數1、建立鏈表并顯示void createlist(struct stucode *r);2、插入新的學生信息void insert(struct stucode *r);3、刪除某學號的學生信息void del(struct stucode *r); 4、查找某學號的學生信息void se
3、arch1(struct stucode *r); 5、對學生信息排序void sort(struct stucode *r); 6、統(tǒng)計學生人數void search2(struct stucode *r); 7、輸出學生信息void out(struct stucode *r); (二)程序總體框架模塊層次結構,只確定了模塊之間的關系和函數原型,不是程序的執(zhí)行步驟。程序總體框架是該程序的總體流程圖。改程序不是順序連續(xù)地執(zhí)行全部功能,而是在某一時刻有選擇地執(zhí)行一種或多種功能。因此選用菜單方式是較佳的方案,程序總體框架如下圖: main() 菜單1 輸入 2 輸出3 排序 4 添加5 刪除 6
4、、統(tǒng)計7 查詢 8 退出 菜單代碼1建立鏈表并顯示2添加學生信息3刪除學生信息息4按學號查找學生信5對學生信息排序6統(tǒng)計學生人數7輸出學員信息息8學生信息寫入文件0退出(三) 運行環(huán)境(軟,硬件環(huán)境) 硬件:CPU, 內存, 主板, 硬盤, 顯卡, 鍵盤, 顯示器等等。 軟件:Windows XP trubo c應用軟件。(四) 開發(fā)工具和編程語言 開發(fā)工具:trubo c 編程語言:C 語言三、 詳細設計(一)數據結構依據給定學生信息和數據格式,數組用結構體實現(xiàn),結構體層次結構:struct stud 學號 整型 long int num; 姓名 字符串 name20; 性別 字符串 sex
5、2; 出生日期 字符串 birthday12;聯(lián)系方式 字符串 tel12; 頭文件#include #include #include /*定義數據結構和鏈表*/struct stud long num; char name20; char sex2;char birthday12;char tel12; typedef struct stucode struct stud student ; struct stucode *next; L;(二)、算法說明1、主函數的算法設計: 清屏、顯示子菜單及運用選擇操作(運用swith語句),調用各個子函數,最后退出程序,主要代碼:while(fla
6、g) system(cls); menu(); choose=getchar(); switch(choose)2、各個子函數的算法設計 1、一些顯示操作,輸入相應的內容即可 代碼: 2、創(chuàng)建鏈表并顯示學生信息 申請空間p=(L *)malloc(sizeof(L); 學生信息的輸入及顯示:p-student.num=n; strcpy(,a); p-next=NULL; 3、學生信息的刪除首先查詢要刪除的學生信息的學號,如果存在刪除該學生,如果不存在給予相應的提示。t=p-next; p-next=p-next-next; free(t);/釋放空間4、學生信息的
7、排序 新建鏈接,然后按要求對學生信息進行排序while(z-next&z-next-student.num=p-student.num) z=z-next; p-next=z-next; z-next=p;5、學生人數的統(tǒng)計:6、學生信息的顯示:直接發(fā)調用函數即可。四、運行結果五、總結1、調試分析 (1)剛編譯完后有好多錯誤和警告,運行失敗,然后經過修改錯誤警告慢慢減少,最終可以運行。 (2)該程序中可能還存在一些小問題,比如有的時候它會主動清屏,有的時候不會。并且我在編譯的過程中發(fā)現(xiàn)自己存在好多毛病,有粗心了等,不注意細節(jié),其實自己也知道細節(jié)決定成敗,以后我會注意。 2、設計總結經過一周的課
8、程設計,我學到了很多東西:鞏固和加深了對數據結構的理解,提高綜合運用本課程所學知識的能力。培養(yǎng)了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。過實際編譯系統(tǒng)的分析設計、編程調試,掌握應用軟件的分析方法和工程設計方法。夠按要求編寫課程設計報告書,能正確闡述設計和實驗結果,正確繪制系統(tǒng)和程序框圖。通過課程設計,培養(yǎng)了我嚴肅認真的工作作風,逐步建立正確的生產觀念、經濟觀念和全局觀念。課程設計是把我們所學的理論知識進行系統(tǒng)的總結并應用于實踐的良好機會,有利于加強我們用知識理論來分析實際問題的能力,進而加強了我們對知識認識的實踐度,鞏固了我們的理論知識,深化了
9、對知識的認識,并為走向社會打下一個良好的基礎。在這次課程設計中我遇到許多問題和麻煩,得到了老師的幫助和指導,才能夠使得這次課程設計順利的進行下去,另外,在程序調試過程中,也得到很多同學的幫助,給我及時指出錯誤,提出許多寶貴意見。在此對老師和同學們表示感謝!六、 參考文獻 書籍: 譚浩強 C程序設計(第三版) 北京 清華大學出版社譚浩強 C程序設計題解與上機指導(第三版) 北京 清華大學出版社 王為青 劉變紅 C語言高級編程及實例剖析 人民郵電出版社張建勛 C語言程序設計教程 清華大學出版社李玲 桂瑋珍 劉蓮英 C語言程序設計教程習題解答與實驗指導 人民郵電出版社源程序:#include #in
10、clude #include struct stud long num; char name20; char sex2;char birthday12;char tel12; typedef struct stucode struct stud student ; struct stucode *next; L; void menu(); void createlist(struct stucode *r); void out(struct stucode *r); void search1(struct stucode *r); void search2(struct stucode *r)
11、; void del(struct stucode *r); void insert(struct stucode *r); void sort(struct stucode *r); void main() char choose; int flag=1; struct stucode *r=NULL; while(flag) system(cls); menu(); choose=getchar(); switch(choose) case 1: createlist(&r); out(r); printf(Testing function 1nPress any key to conti
12、nuen);getchar();getchar();break; case 2: search1(r); printf(Testing function 1nPress any key to continuen); getchar();getchar();break; case 3: search2(r); printf(Testing function 1nPress any key to continuen); getchar();getchar();break; case 4: del(&r); out(r); printf(Testing function 1nPress any ke
13、y to continuen); getchar();getchar();break; case 5: insert(&r); out(r); printf(Testing function 1nPress any key to continuen); getchar();getchar();break; case 6: sort(&r); out(r); printf(Testing function 1nPress any key to continuen); getchar();getchar();break; case 7: out(r); printf(Testing functio
14、n 7nPress any key to continuen); getchar();getchar();break; case 0: flag=0; printf(The end.n); getchar();getchar();break; default: printf(nWrong Selection!(選擇錯誤,請重選!)n);getchar();getchar(); void createlist(struct stucode *r) struct stucode *p,*t; long n; char a20;char s4;char b12;char m12;if(*r) *r=
15、NULL; printf( n請輸入:n 學號(請按學號升序排列) 姓名 性別 出生日期 電話 (若要結束請輸入五個為零) n); scanf(%ld%s%s%s%s,&n,a,s,b,m); if(n=0) return; p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(,a); strcpy(p-student.sex,s); strcpy(p-student.birthday,b); strcpy(p-student.tel,m); p-next=NULL; *r=p; scanf(%ld%s%s%s%s,&n
16、,a,s,b,m); while(n) t=p; p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(,a); strcpy(p-student.sex,s); strcpy(p-student.birthday,b); strcpy(p-student.tel,m); p-next=NULL; t-next=p; scanf(%ld%s%s%s%s,&n,a,s,b,m); void search1(struct stucode *r) long x; if(!r) printf(沒有學生信息可查詢!n); retur
17、n ; printf( 請輸入要查詢的學生信息的學生學號:n); scanf(%ld,&x); while(r&r-student.num!=x) r=r-next; if(r=NULL) printf(Error! No such student !n); else printf(%ld %s %s %s %sn,r-student.num,,r-student.sex,r-student.birthday,r-student.tel); void search2(struct stucode *r) int a=0,b=0,c=0;if(!r) printf(沒
18、有學生信息可統(tǒng)計!n); return ; else while(r)a+;if(strcmp(r-student.sex,男)=0)b+;if(strcmp(r-student.sex,女)=0)c+; r=r-next; printf(共有學生%d人,其中男生%d人,女生%d人,a,b,c);void del(struct stucode *r) long k; struct stucode *p=*r,*t; if(!(*r) printf(沒有學生信息可刪除 !n); return ; printf( 請輸入要刪除的學生信息的學生學號:n); scanf(%ld,&k); if(p-s
19、tudent.num=k) *r=(*r)-next,free(p); else while(p-next&p-next-student.num!=k) p=p-next; if(p-next=NULL) printf(Error! No such student !n); else t=p-next; p-next=p-next-next; free(t); void insert(struct stucode *r) long n; char a20;char s4;char b12;char m12;L *p,*t,*k; printf( n請輸入:n 學號(請按學號升序排列) 姓名 性
20、別 出生日期 電話 (若要結束請輸入三個為零) n); scanf(%ld%s%s%s%s,&n,a,s,b,m); p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(,a); strcpy(p-student.sex,s); strcpy(p-student.birthday,b); strcpy(p-student.tel,m); if(!(*r) *r=p; (*r)-next=NULL; return ; if(p-student.numstudent.num) p-next=(*r),(*r)=p; else t=*r; k=t; while(t-next&t-next-student.numstudent.num) t=t-next; p-next=t-next; t-next=p; *r=k; void sort(struct stucode *r) struct stucode *t,*p,*q,*z; if(!r) printf(沒有學生信息可排序!n); r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文言文雙文本閱讀:顏蠋與齊王游(附答案解析與譯文)
- 小學一年級10到20加減法練習題,口算
- 小學數學五年級小數加減乘除法口算練習題
- 學度第一學期末高三級地理科期末考試試卷
- 高考語文試題分類匯編標點符號
- 廣東省深圳市羅湖區(qū)高三2023-2024學年上學期1月期末英語試題
- 服飾設計師工作總結設計時尚服裝引領潮流
- 文化藝術話務員工作總結
- 醫(yī)療器械銷售人員工作總結
- 證券投資行業(yè)市場總結
- 七年級上英語知識梳理(牛津上海版)U1-U4
- 人力資源典型案例匯編
- 回族做禮拜的念詞集合6篇
- 設計服務實施方案模板
- 辯論賽醫(yī)術更重要
- 基于PLC的兩臺電動機順序啟動順序停止控制設計
- 張哲華鑫仔小品《警察和我》臺詞劇本手稿
- 籍貫對照表完整版
- 藥理學實驗方案
- 傳染病學 日本血吸蟲病
- GB/T 3098.2-2015緊固件機械性能螺母
評論
0/150
提交評論