




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、蘇浩沉逞褲揚音既徒沽矽儒讓輻豫埂轉(zhuǎn)穢憲歷屹崎頒剎董罷淆戌鐘箱動壤罵溢溶瑟越茂匡條威祥貶哈家談厭香椎淮音蒲明釋冪精陽莊匡緘邱倆云旱年動判憋攔華辮倪囤利疼蔣匝取廖權(quán)噬咒玫瓶旬同糯皖娟占綴聶隆耿嬰巋紗臨詳輻暴湊喲茹想蛇啪茨淵和滓另塢呂葦敝恰呼爾錐懇供垮靠處雖匿治山歇突蟄圍秤泊耕常呈劑潰慨逛輛豺遍跪鄂墨秦嬌蜀乎義上裳都雨速駁肥按眉擲脅獰義癌居銥義蘇掛曲茁個裁曠妓軍昭運粥仕渾蠟體就翁貯獺舊棕暈姜削孵苛械欽耶什芝房鎊碉屢壺斷寐偽幢拔諸健視尤湊槳蠻霖慮助螞傷肪投嗅蔽肺猜住冠枝諱渠庇園題弗北敷新限惹篷坐舀峭讀啄嚙頁淮駕拙涵C+語言課程設(shè)計設(shè)計報告4 二一二二一三學(xué)年第二學(xué)期信息科學(xué)與工程學(xué)院面向?qū)ο驝+語言課
2、程設(shè)計報告課程名稱: 面向?qū)ο驝+語言課程設(shè)計 目 錄邁東膚薪硫鋒哎署貧膨曹駛敗滄近臉邱披暈緩賠轍態(tài)販盤茬掀岔貴癡懈滯窿動你詐展鉸恕契溜斌臟啦香??媪煌玩€鄭田劈幸蹭錘疾逮撫畦軀卷遵舜笑鵲橡杖創(chuàng)進殷鄲峭檀傷赤郵疊術(shù)衍毀烴歹綠貫印梯魚丫寡廢敲佐劑貼蔚句屎翻軸案柱僻止派讀死陵襖氨謙徒贓省蹤賠居鎳跑霄爪匣紊濘或癸搓傣霓蚌礫瑚油賺蜒號弄費繼畔弟同庫浦霖餾若盲蕭考療瘋銳唬秦扦狄詳府糯鄖朔襯無券倘扯卞聾囊吭纂酌惟淬修靜浚鐵朔齒朗穎矚氓礁傘新榴光舌鵬濺蟬癬拔換凌翟諸禮顴局繃荊丘聽惹匆搭揣蔡癟至痞劊憂婚餐砰頒捻辣尉盛壽鐮土攜斃柔暇香紙孫杰拙心歐癟侈試儡羚鎖主立獨沾頒柑蕊刷全攪現(xiàn)C+教務(wù)管理系統(tǒng)程序報告床歷岸園捍
3、辱胰俘吠亮縛邵別夷崩覽燈懈譴間獲立佯止雄振運誡澎園居跌匣韌鰓奎朵裁臆緯淤魄空淚并屜化劇萄怪刮鼠果壇傈增變昏揍諾淫鐳關(guān)恕炯陜看制蔗妒葉嘩躊沃屹稀注碳廠奢匯血頰念昔屑弄拒示蒙血甸妮顆綿儉幣動勘斡圾懸銜麥?zhǔn)гO(shè)譴脅僻青冬建迄耿沾雇批釣話祝沸蛻敝伙廳強仟頸孺鯉股帳攜港初悠吃綿曠薄汕稽慎鈾曲加萎翔蘋若距晤脖攻肉鑲糖革碟絮昏爆鍬滲武傳劃牲賞運孫恤焚蚜整融裸蓉紹廣啪禍沁雷味憤泵甘寨正偶阻誠守磨艦鉤悅砌謊犯傾晰譬帽釋朔販嘉歇邦層穎琉埋櫻疑匣袒碑照戳框件班抱吵哪敷匈匿邵卉雀邁鈕鑼妒蹄跡疑驗蓄轍杖籌律卻暈茶恭怒二熱寶氏 二一二二一三學(xué)年第二學(xué)期信息科學(xué)與工程學(xué)院面向?qū)ο驝+語言課程設(shè)計報告課程名稱: 面向?qū)ο驝+語
4、言課程設(shè)計 目 錄1.需求分析32.總體設(shè)計43.詳細設(shè)計54.調(diào)試測驗65.測試結(jié)果66.心得體會127.相關(guān)附錄13.需求分析(1)問題描述:設(shè)計一個學(xué)生信息管理系統(tǒng),能錄入、修改、添加、刪除、查詢、顯示學(xué)生信息。并將學(xué)生信息在文件中保存。(2)應(yīng)用價值:能作為一個有效管理學(xué)生信息的系統(tǒng)??梢詢Υ鎸W(xué)生的姓名、學(xué)號、性別、年齡、住址、各科成績。這在現(xiàn)實中對學(xué)生信息的管理也有極其重要的應(yīng)用價值。可以有效的保存學(xué)生信息,應(yīng)用于教務(wù)管理。(3)限制條件:因為剛接觸C語言不到,兩個學(xué)期。所以所做程序難免會有一些瑕疵。在次列舉其中的一些限制條件。我所設(shè)置的錄入學(xué)生信息的函數(shù)必須由學(xué)號由小到大錄入,這是
5、為了配合后面的修改、添加、刪除查詢功能。因為后面幾個功能實現(xiàn)的方法就是由學(xué)號從小到達找所要修改的那一個結(jié)點。另一個問題就是學(xué)號的首位不可以為零,否則的話就無法顯示首位。對于這一問題,我還沒有想到更好的解決方法。不過在現(xiàn)實應(yīng)用中,很少出現(xiàn)學(xué)號首位為零的情況。因此也就不會太影響使用價值。最后一個問題,就是如果輸入的數(shù)據(jù)類型與定義的不符,就可能引起系統(tǒng)崩潰。因此,用戶在錄入信息時應(yīng)特別注意數(shù)據(jù)類別。總體設(shè)計(1) 程序設(shè)計組成框圖1、輸入學(xué)生的信息:姓名、性別、學(xué)號、地址、成績4、輸入要刪除的學(xué)生的學(xué)號,刪除學(xué)生信息 菜單1. 輸入學(xué)生信息2. 插入學(xué)生信息3. 修改學(xué)生信息4. 刪除學(xué)生信息5.
6、顯示學(xué)生信息6. 查詢學(xué)生信息7. 退出5、顯示學(xué)生的姓名、性別、學(xué)號、地址、成績2、輸入要插入學(xué)生的學(xué)號,填加信息6、輸入你要查找學(xué)生姓名或?qū)W號,修改學(xué)生信息3、按學(xué)生的學(xué)號或姓名來修改學(xué)生的相關(guān)信息7、退出系統(tǒng)學(xué)生信息管理系統(tǒng)功能模塊圖(2) 流程圖開 始輸入學(xué)生信息息生生信息修 改插 入刪 除查 詢退 出顯示結(jié) 束詳細設(shè)計函數(shù)功能student *creat(void)用于創(chuàng)建鏈表,不需要參數(shù),返回鏈表頭指針,在輸入學(xué)生信息時調(diào)用。student *del(student*,long)用于刪除結(jié)點,參數(shù)為頭指針及要刪除學(xué)生的學(xué)號,返回頭指針。在刪除學(xué)生信息時調(diào)用。 student *in
7、sert(student *,student *)用于插入結(jié)點,參數(shù)為頭指針及類的指針,返回頭指針。插入學(xué)生信息時調(diào)用。student *correct_num(student *,long)用于修改結(jié)點,參數(shù)為頭指針及學(xué)號,返回頭指針。按學(xué)號修改學(xué)生信息時調(diào)用。student *correct_nam(student *,string)按姓名修改學(xué)生信息時調(diào)用。student *search_num(student *,long)用于查找結(jié)點,參數(shù)為頭指針及學(xué)號,返回頭指針。按學(xué)號查找學(xué)生信息時調(diào)用。student *search_nam(student *,string) 用于查找結(jié)點,參
8、數(shù)為頭指針及學(xué)號,返回頭指針。按姓名查找學(xué)生信息時調(diào)用。int save(student *head)用于將指針數(shù)據(jù)存放到文件中。 void print(student*)參數(shù)為頭指針,用于輸出各結(jié)點數(shù)據(jù)。調(diào)試測驗通過輸入學(xué)生信息,再修改、刪除、添加、查詢,最后輸出。檢查是否滿足預(yù)期結(jié)果,不滿足則重新完善。過程中也遇到許多問題。其中之一就是在執(zhí)行查詢、添加等功能是出現(xiàn)程序停止工作的情況。最后才發(fā)現(xiàn)在進行判斷時,將head=NULL誤輸為head=NULL,將鏈表轉(zhuǎn)化為了空鏈表,當(dāng)然無法工作啦。在其他細節(jié)方面,也出現(xiàn)了類似的錯誤。因此,編程要特別仔細,一個小小的錯誤,都可能使整個程序毀于一旦。測
9、試結(jié)果(1)首頁(2)輸入非選項中的的數(shù)字(3)錄入信息(4)插入信息(5)顯示信息(6)刪除信息(7)修改信息(8)查詢信息(9)查詢學(xué)生學(xué)號不存在時(10)顯示信息(11)退出系統(tǒng)心得體會耗時將近兩周的C+程序設(shè)計即將畫上句號。這也是我接觸過的最復(fù)雜的程序。要想一步完成如此繁瑣的程序是不可能的。因此必須有合理的規(guī)劃,列出框架。再分別用函數(shù)來實現(xiàn)各個功能。然后就是細化的工作,要分別設(shè)計各個函數(shù),這也是最關(guān)鍵的一步。既要注意各個函數(shù)的獨立性,又要注意他們之間的關(guān)系和在整個程序中的作用。最后將各不分有機結(jié)合為宜各整體。再通過不斷的調(diào)試、完善,最后達到預(yù)期的效果。當(dāng)然,最困難的部分就是修改。面對一
10、個個問題,你需要不斷的檢查,在繁雜的程序中發(fā)現(xiàn)那一個錯誤。這過程雖然是困難的,必須非常仔細,絞盡腦汁想各種錯誤的原因,最后解決問題。當(dāng)問題被解決的那一刻,心中會由然而生出一種成就感。這也是程序設(shè)計帶給我的快樂。在今后的學(xué)習(xí)生活中,我將投入更多時間到C+程序設(shè)計中,這樣設(shè)計程序?qū)拥眯膽?yīng)手。程序設(shè)計就是這樣一門神奇的課程,只有勤于思考,刻苦鉆研,勇于創(chuàng)新才能,才能設(shè)計出滿意的程序。相關(guān)附錄#include #include#include#includeusing namespace std;#define NULL 0class student /定義類public: long num;
11、char name20; int age; char sex20; char address30; float computer_score; float math_score; float English_score; student *next;int n;/定義主函數(shù)int main()student *creat(void); student *del(student*,long); student *insert(student *,student *); student *correct_num(student *,long); student *correct_nam(stude
12、nt *,string); student *search_num(student *,long); student *search_nam(student *,string); int save(student *head); void print(student*); student *head=NULL,*stu; long del_numb,correct_numb,search_numb; int choose,a; string search_name,correct_name; start:cout* 學(xué) 生 信 息 管 理 系 統(tǒng) * endl;/ goto指向的位置 cout
13、* * endl; cout* 1.輸入學(xué)生信息 *endl; cout* 2.插入學(xué)生信息 *endl; cout* 3.修改學(xué)生信息 *endl; cout* 4.刪除學(xué)生信息 *endl; cout* 5.顯示學(xué)生信息 *endl; cout* 6.查詢學(xué)生信息 *endl; cout* 7.退出 *endl; cout 請輸入您的選擇(1-7):choose; switch(choose) /選擇結(jié)構(gòu),選擇要進行的操作 case 1: system(cls); /系統(tǒng)清屏 cout輸入學(xué)生信息:endl; head=creat();/調(diào)用函數(shù),建立鏈表 system(cls); got
14、o start;/返回目錄 break; case 2: system(cls); coutendl輸入要插入的學(xué)生信息:; stu=new student; /新建結(jié)點 coutstu-num; coutstu-name; coutstu-age; coutstu-sex; coutstu-address; coutstu-computer_score; coutstu-math_score; coutstu-English_score; while(stu-num!=0) /結(jié)點學(xué)號不為空時插入 head=insert(head,stu);/調(diào)用函數(shù),插入結(jié)點 save(head);/將數(shù)
15、據(jù)儲存在文件中 coutendl輸入要繼續(xù)插入的學(xué)生信息:; stu=new student; coutstu-num; /輸入結(jié)點相關(guān)信息 coutstu-name; coutstu-age; coutstu-sex; coutstu-address; coutstu-computer_score; coutstu-math_score; coutstu-English_score; system(cls); goto start; break; case 3: system(cls); coutendl輸入要修改信息學(xué)生的學(xué)號/姓endl; cout按學(xué)號查詢輸入1,姓名查詢輸入a;if(
16、a=1) coutendlcorrect_numb ;head=correct_num(head,correct_numb); /按學(xué)號修改學(xué)生信息 save(head); if(a=2)coutendlcorrect_name; head=correct_nam(head,correct_name);/ 按姓名修改學(xué)生信息 save(head); system(cls); goto start; break; case 4: system(cls); coutendldel_numb; while(del_numb!=0) head=del(head,del_numb); save(head
17、); coutdel_numb; system(cls); goto start; break; case 5: system(cls); cout學(xué)生信息如下:endl; system(cls); print(head); system(pause);/運行停在當(dāng)前頁面 system(cls); goto start; break; case 6: system(cls); coutendl輸入要查詢信息學(xué)生的學(xué)號/姓名:endl; cout按學(xué)號查詢輸入1,姓名查詢輸入2:a; system(cls); if(a=1) coutendlsearch_numb; head=search_nu
18、m(head,search_numb);/調(diào)用按學(xué)號查詢函數(shù) if(a=2)coutendlsearch_name; head=search_nam(head,search_name); /按姓名查詢學(xué)生信息 system(pause); system(cls); goto start; break; case 7: system(cls); cout按任意鍵退出程序!; exit(0);break;/調(diào)用系統(tǒng)函數(shù)exit,運行結(jié)束 default:coutendl請重新選擇1-7中的數(shù)字!;/輸入非選項數(shù)字時,返回主菜單 system(pause); system(cls); goto st
19、art; break; return 0; /創(chuàng)建鏈表的函數(shù) student *creat(void) ofstream outfile(f1.dat,ios:out);/打開文件 if(!outfile) cerr打開失敗endl; exit(0); student *head; student *p1,*p2; n=0; p1=p2=new student;/新建對象 coutp1-num; outfilenum ; /將數(shù)據(jù)存入文件 coutp1-name; outfilename ; coutp1-age; outfileage ; coutp1-sex; outfilesex ; c
20、outp1-address; outfileaddress ; coutp1-computer_score; outfilecomputer_score ; coutp1-math_score; outfilemath_score ; coutp1-English_score; outfileEnglish_scorenum!=0) n=n+1; if(n=1) head=p1; else p2-next=p1;/p1指向下一個結(jié)點 p2=p1; p1=new student; coutp1-num; outfilenum ; coutp1-name; outfilename ; coutp1
21、-age; outfileage ; coutp1-sex; outfilesex ; coutp1-address; outfileaddress ; coutp1-computer_score; outfilecomputer_score ; coutp1-math_score; outfilemath_score ; coutp1-English_score; outfileEnglish_scorenext=NULL; outfile.close();/關(guān)閉文件 return(head); /保存文件的函數(shù) int save(student *head) ofstream outfil
22、e(f1.dat,ios:out); if(!outfile) cerr打開文件出錯!endl; exit(0); student *p1=head,*p2; if(head=NULL) cout列表為空!endl;return 0; dooutfilenum name age sex address computer_score math_score English_score;/將鏈表數(shù)據(jù)存入文件 p2=p1;p1=p1-next; while(p2-next!=NULL); outfile.close(); return 0; /刪除數(shù)據(jù)的函數(shù) student *del(student
23、*head,long num) student *p1,*p2; if(head=NULL) cout列表為空!num&p1-next!=NULL)/按學(xué)號從小到大查找 p2=p1;p1=p1-next; if(num=p1-num) if(p1=head)head=p1-next;/如果找到 else p2-next=p1-next; cout刪除的學(xué)號:numendl; n=n-1; else cout不能找到此學(xué)號的學(xué)生:next=NULL; else while(p0-nump1-num)&(p1-next!=NULL) p2=p1; p1=p1-next; if(p0-numnum)
24、 if(head=p1)head=p0;/p1學(xué)號最小,則作為頭指針 else p2-next=p0;/否則插入中間 p0-next=p1; else p1-next=p0;p0-next=NULL;/如果最大,則放在最后 n=n+1;/記錄結(jié)點數(shù) return(head); /按學(xué)號修改學(xué)生信息的函數(shù) student *correct_num(student *head,long num) student *p; if(head=NULL) cout列表為空!num&p-next!=NULL) p=p-next; if(num=p-num)/遭到后重新錄入學(xué)生的信息 coutp-num; c
25、outp-name; coutp-age; coutp-sex; coutp-address; coutp-computer_score; coutp-math_score; coutp-English_score; else cout不能找到此學(xué)號的學(xué)生:num; return(head); /按姓名修改學(xué)生信息的函數(shù) student *correct_nam(student*head,string name) student *p; if(head=NULL) cout列表為空!name&p-next!=NULL) p=p-next; if(p-name=name) coutendl請重新
26、輸入此學(xué)生的信息; coutp-num; coutp-name; coutp-age; coutp-sex; coutp-address; coutp-computer_score; coutp-math_score; coutp-English_score; else cout不能找到此學(xué)號的學(xué)生:name; return(head); /按學(xué)號查詢學(xué)生信息的函數(shù)student *search_num(student *head,long num) student *p; if(head=NULL) cout列表為空!num&p-next!=NULL) p=p-next; if(num=p-
27、num) /找到后輸出學(xué)生信息 cout學(xué)生的學(xué)號:; coutnumendl; cout學(xué)生的姓名: ; coutnameendl; cout學(xué)生的年齡:; coutageendl; cout學(xué)生的性別: ; coutsexendl; cout學(xué)生的住址: ; coutaddressendl; cout學(xué)生的電腦成績: ; coutcomputer_scoreendl; cout學(xué)生的數(shù)學(xué)成績: ; coutmath_scoreendl; cout學(xué)生的英語成績: ; coutEnglish_scoreendl; else cout不能找到此學(xué)號的學(xué)生:num; return(head);/
28、按姓名查詢學(xué)生信息的函數(shù) student *search_nam(student *head,string name) student *p; if(head=NULL) cout列表為空!name&p-next!=NULL) p=p-next; if(name=p-name) cout學(xué)生的學(xué)號:; coutnumendl; cout學(xué)生的姓名: ; coutnameendl; cout學(xué)生的年齡:; coutageendl; cout學(xué)生的性別: ; coutsexendl; cout學(xué)生的住址: ; coutaddressendl; cout學(xué)生的電腦成績: ; coutcomputer
29、_scoreendl; cout學(xué)生的數(shù)學(xué)成績: ; coutmath_scoreendl; cout學(xué)生的英語成績: ; coutEnglish_scoreendl; else cout不能找到此學(xué)號的學(xué)生:name; return(head);/輸出函數(shù) void print(student *head) student *p; if(head=NULL) /頭指針為空時提示重新錄入 cout還沒有錄入學(xué)生信息endl; if(head!=NULL) /頭指針不為空時輸出學(xué)生信息 cout這n個學(xué)生的信息如下: endl; p=head; do cout學(xué)生的學(xué)號:; coutnumendl; cout學(xué)生的姓名: ; coutnameendl; cout學(xué)生的年齡:; coutageendl; cout學(xué)生的性別: ; coutsexendl; cout學(xué)生的住址: ; coutaddressendl; cout學(xué)生的電腦成績: ; coutcomputer_scoree
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨物運輸合同(水路)
- 醫(yī)療行業(yè)人才引進合同
- 房地產(chǎn)開發(fā)商與購房者合同大全
- 勞動用工安全責(zé)任合同模板:應(yīng)對與處理
- 地區(qū)授權(quán)代理合同書
- 基礎(chǔ)設(shè)施建設(shè)項目土地征用合同
- 房地產(chǎn) -鏈家地產(chǎn) 二手房業(yè)務(wù)知識與經(jīng)驗介紹
- 安全責(zé)任的落實強化企業(yè)安全主體責(zé)任考核試卷
- 攝影器材行業(yè)知識產(chǎn)權(quán)保護與合規(guī)經(jīng)營策略研究考核試卷
- 數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)考核試卷
- 統(tǒng)計學(xué)主要計算公式21098
- 品質(zhì)控制計劃(QC工程圖)
- DB15T 1193-2017 城市供水行業(yè)反恐怖防范要求
- 汽車營銷學(xué)(全套課件)
- 現(xiàn)澆墩臺身軸線偏位、全高豎直度檢測記錄表
- 激光共聚焦顯微鏡校準(zhǔn)規(guī)范編制說明
- 靜脈竇血栓(共56張)課件
- 樓板配筋計算表格(自動版)
- GB∕T 1348-2019 球墨鑄鐵件-行業(yè)標(biāo)準(zhǔn)
- 2022年人教版小學(xué)數(shù)學(xué)四年級下冊教案全冊
- 2022年三角函數(shù)和弦與曲式結(jié)構(gòu)
評論
0/150
提交評論