![《學(xué)生檔案管理系統(tǒng)》的設(shè)計與實現(xiàn)_第1頁](http://file4.renrendoc.com/view/69d92f549f3f8493f085f998a7a292da/69d92f549f3f8493f085f998a7a292da1.gif)
![《學(xué)生檔案管理系統(tǒng)》的設(shè)計與實現(xiàn)_第2頁](http://file4.renrendoc.com/view/69d92f549f3f8493f085f998a7a292da/69d92f549f3f8493f085f998a7a292da2.gif)
![《學(xué)生檔案管理系統(tǒng)》的設(shè)計與實現(xiàn)_第3頁](http://file4.renrendoc.com/view/69d92f549f3f8493f085f998a7a292da/69d92f549f3f8493f085f998a7a292da3.gif)
![《學(xué)生檔案管理系統(tǒng)》的設(shè)計與實現(xiàn)_第4頁](http://file4.renrendoc.com/view/69d92f549f3f8493f085f998a7a292da/69d92f549f3f8493f085f998a7a292da4.gif)
![《學(xué)生檔案管理系統(tǒng)》的設(shè)計與實現(xiàn)_第5頁](http://file4.renrendoc.com/view/69d92f549f3f8493f085f998a7a292da/69d92f549f3f8493f085f998a7a292da5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
蘇州科技學(xué)?院二○一三~二○一四學(xué)年第?二學(xué)期電子與信息?工程系課程設(shè)計報?告書課程名稱:程序設(shè)計基?礎(chǔ)實踐班級:電氣131?1學(xué)號:13200?11712?9姓名:沈文薈指導(dǎo)教師:吳勇二○一四年四月?
1.題目《學(xué)生檔案管?理系統(tǒng)》的設(shè)計與實?現(xiàn)2.功能(1)每一條記錄?包括一個學(xué)?生的姓名、學(xué)號、性別、出生日期、班級、聯(lián)系電話、地址(2)錄入功能:可以一次完?成無數(shù)條記?錄的輸入,管理員通過?該功能對新?生的錄入。(3)刪除功能:能夠?qū)σ粋€?學(xué)生的信息?進(jìn)行刪除,對歷屆畢業(yè)?生(已畢業(yè))的信息,先進(jìn)行保存?檔案,再刪除。(4)查詢功能:根據(jù)你鍵入?學(xué)生的某一?信息,顯示其詳細(xì)?信息,完成查找學(xué)?生記錄,并顯示。(5)瀏覽功能:完成全部學(xué)?生記錄的顯?示,可以查看學(xué)?校所有學(xué)生?信息。(6)修改功能:能夠根據(jù)自?己的要求對?學(xué)生信息中?有錯的地方?進(jìn)行修改,填寫個人信?息出錯,可以通過該?功能修改基?本信息。(7)保存功能:將學(xué)生記錄?保存在任何?自定義的文?件中(8)讀取功能:將保存在文?件中的學(xué)生?記錄讀取出?來。(9)有一個清晰?美觀界面來?調(diào)用各個功?能。3.要求(1)整個系統(tǒng)均?用C語言實?現(xiàn);(2)利用指針、鏈表來實現(xiàn)?學(xué)生檔案的?數(shù)據(jù)結(jié)構(gòu)設(shè)?計;(3)系統(tǒng)具有錄?入、刪除、查詢、瀏覽、修改、保存、讀取基本功?能;(4)系統(tǒng)的各個?功能模塊都?用函數(shù)的形?式來實現(xiàn);(5)可以將學(xué)生?檔案信息保?存在文件中?;(6)可以將學(xué)生?檔案信息從?文件中讀取?出來。4.總體設(shè)計(1)輸入功能的?實現(xiàn):要想實現(xiàn)學(xué)?生檔案管理?系統(tǒng)的輸入?,必須要建立?一個學(xué)生檔?案系統(tǒng)的抽?象數(shù)據(jù)類型?,其中學(xué)生檔?案以鏈表的?存儲方式實?現(xiàn)。由鍵盤輸入?學(xué)生信息,以文件方式?保存。程序執(zhí)行時?先將文件讀?入內(nèi)存。(2)系統(tǒng)處理功?能的實現(xiàn):系統(tǒng)管理員?根據(jù)學(xué)校的?學(xué)生變化情?況,在提示信息?的提示下,選擇相應(yīng)的?服務(wù)進(jìn)行操?作。(3)輸出的實現(xiàn)?:根據(jù)選擇的?操作,輸出與之對?應(yīng)的信息。綜上可以繪?制出學(xué)生檔?案管理功能?的系統(tǒng)流程?圖,如下圖所示?
輸入總控模塊輸入總控模塊測試模塊測試模塊系統(tǒng)處理系統(tǒng)處理輸出輸出(4)系統(tǒng)功能結(jié)?構(gòu):根據(jù)學(xué)生檔?案管理系統(tǒng)?問題的分析?和設(shè)計要求?,可以得到該?學(xué)生檔案管?理系統(tǒng)可以?分為六個模?塊:錄入學(xué)生信?息模塊、刪除學(xué)生信?息模塊、查詢學(xué)生信?息模塊、學(xué)生信息排?序模塊、修改學(xué)生信?息模塊、保存學(xué)生信?息模塊。其系統(tǒng)功能?結(jié)構(gòu)如下圖?所示。學(xué)生檔案管?理系統(tǒng)學(xué)生檔案管?理系統(tǒng)錄入學(xué)生信?息模塊刪除學(xué)生信?息模塊查詢學(xué)生信?息模塊學(xué)生信息排?序模塊修改學(xué)生信?息模塊保存學(xué)生信?息模塊錄入學(xué)生信?息模塊刪除學(xué)生信?息模塊查詢學(xué)生信?息模塊學(xué)生信息排?序模塊修改學(xué)生信?息模塊保存學(xué)生信?息模塊姓名學(xué)號性別出生日期班級聯(lián)系電話地址對學(xué)號排序?姓名學(xué)號性別出生日期班級聯(lián)系電話地址對學(xué)號排序? 5.詳細(xì)設(shè)計5.1主函數(shù)main()利用格式化?輸出函數(shù)p?rintf?(),提供一個清?晰美觀的開?始界面。利用swi?thch()實現(xiàn)各函數(shù)?的調(diào)用,系統(tǒng)根據(jù)輸?入的數(shù)字選?項來調(diào)用相?應(yīng)的函數(shù)。5.2抽象數(shù)據(jù)?類型的定義?1)定義學(xué)生檔?案信息struc?tstude?nt_bo?ok{charname[20];intnum;charsex;struc?tdatabirth?day;charclas[20];chartelep?hone[20];charaddr[40];}stud[200];2)定義出生日?期struc?tdata{ intyear,month?,day;};5.3模塊函數(shù)?構(gòu)造學(xué)生信息錄?入函數(shù):voidadd()學(xué)生信息刪?除函數(shù):voiddel()學(xué)生信息查?詢函數(shù):voidfind()學(xué)生信息排?序函數(shù):voidarran?ge()學(xué)生信息修?改函數(shù):voidchang?e()5.4主程序流?程圖
錄入學(xué)生信?息刪除學(xué)生信?息學(xué)生信息排?序查詢學(xué)生信?息修改學(xué)生信?息保存學(xué)生信?息主菜單開始界面錄入學(xué)生信?息刪除學(xué)生信?息學(xué)生信息排?序查詢學(xué)生信?息修改學(xué)生信?息保存學(xué)生信?息主菜單開始界面 5.調(diào)試分析測試是使用?人工或者自?動手段來運?行或測試某?個系統(tǒng)的過?程,其目的在于?檢驗是否滿?足規(guī)定的需?求或弄清預(yù)?期結(jié)果與實?際結(jié)果之間?的差別。程序調(diào)試的?任務(wù)是排除?程序中的錯?誤,使程序能順?利地運行并?得到預(yù)期的?效果。程序的調(diào)試?階段不僅要?發(fā)現(xiàn)和消除?語法上的錯?誤,還要發(fā)現(xiàn)和?消除邏輯錯?誤和運行錯誤。要正確利用?編輯時提示?的錯誤信息?。1)大括號混亂?造成錯誤2)頻繁切換輸?入法,導(dǎo)致經(jīng)常打?出中文輸入?法的“;”“,”“()”“[]”等3)在定義和運?用數(shù)據(jù)類型?時出現(xiàn)問題?,不清楚字符?串的輸出用?s,而錯用為c?4)在排序階段?遇到瓶頸,借助多方資?源才最終完?成5)開始將生日?定義為字符?數(shù)組,當(dāng)用sca?nf來輸入?年月日時,年月日之間?用空格分隔?,但在輸出時?發(fā)現(xiàn)年月日?出現(xiàn)錯誤。分析原因:用系統(tǒng)會把?用來分隔的?空格當(dāng)做字?符讀入。解決方法:將年月日定?義為整型,這樣就可以?用scan?f輸入,用空格隔開?運行結(jié)果6.運行結(jié)果1.開始界面2.主菜單3.錄入學(xué)生信?息4.刪除學(xué)生信?息a.輸入正確學(xué)?號b.輸入錯誤學(xué)?號5.查詢學(xué)生信?息6.學(xué)生信息排?序7.修改學(xué)生信?息7.總結(jié)雖然,剛開始做程?序的時候,很多知識已?經(jīng)忘卻,對那些代碼?基本上就是?什么都不會?,剛開始的時?候特別苦惱?,什么都不懂?。但是在我們?嘗試與成功?的過程中,當(dāng)最終程序?不再有錯誤?和警告,能正常運行?時,我感受到了?成功的快樂?。另外,我覺得自己?的基本功不?夠,如清屏cl?rscr()等函數(shù)用的?不好,有時同樣的?問題多次犯?。這說明我的?知識不夠,有很多有用?的書中內(nèi)容?沒有學(xué)好,認(rèn)識程度不?夠深刻。C語言這門?課程結(jié)束后?,也應(yīng)多看相?關(guān)東西,多上機練習(xí)?,才能真正從?本質(zhì)上提高?自己。通過編寫該?程序,熟悉了C語?言的基本語?法,選擇,循環(huán)等結(jié)構(gòu)?,深入練習(xí)了?函數(shù)的調(diào)用?方法,和文件的讀?寫方法,熟悉了結(jié)構(gòu)?體的使用,更加深化了?面向過程語?言思想,和一些基本?算法。通過對程序?的后期調(diào)試?,熟悉了常見?錯誤,鍛煉了思維?的嚴(yán)密性和?完備性。通過對程序?的注釋和畫?流程圖,形成了一套?自己編程的?風(fēng)格和清晰?地思路,使思維更加?條理化、清晰化。8.附錄#inclu?de<stdio?.h>#inclu?de<conio?.h>#inclu?de<strin?g.h>#inclu?de<stdli?b.h>stati?cintn,i;struc?tdata//定義出生日?期{ intyear,month?,day;};struc?tstude?nt_bo?ok//定義學(xué)生檔?案信息{charname[20];intnum;charsex;struc?tdatabirth?day;charclas[20];chartelep?hone[20];charaddr[40];}stud[200];voidadd()//學(xué)生信息錄?入函數(shù){charj;front?1: syste?m("cls");/*清屏*/print?f("\n");print?f("\n請輸入要?添加的姓名?:");scanf?("%s",stud[n].name);print?f("\n請輸入要?添加的學(xué)號?(8位及以下?):");scanf?("%d",&stud[n].num);print?f("\n請輸入要?添加的性別?(F/M):");scanf?("\n%c",&stud[n].sex); print?f("\n請輸入要?添加的出生?日期:"); scanf?("\n%d%d%d",&stud[n].birth?day.year,&stud[n].birth?day.month?,&stud[n].birth?day.day);print?f("\n請輸入要?添加的班級?:");scanf?("%s",&stud[n].clas);print?f("\n請輸入要?添加的電話?號碼:");scanf?("%s",&stud[n].telep?hone);print?f("\n請輸入要?添加的地址?:");scanf?("%s",stud[n].addr);getch?ar();n++;print?f("是否繼續(xù)(Y/N)?:");j=getch?ar();getch?ar();if(j=='y'||j=='Y')gotofront?1;/*再輸入記錄?*/}voiddel()//學(xué)生信息刪?除函數(shù){intk=0,m,i;charj;front?2:syste?m("cls");/*清屏*/print?f("\n請輸入要?刪除的學(xué)號?:");scanf?("%d",&m);getch?ar();for(i=0;i<n;i++)if(m==stud[i].num){k=1;break?;}/*查找記錄*/if(k==1)/*刪除記錄*/{for(k=i;k<n-1;k++){stud[k]=stud[k+1];}n--;print?f("已刪除\n\n");}else{print?f("找不到要刪?除的記錄!\n");print?f("按回車鍵返?回:");getch?ar();}print?f("是否繼續(xù)(Y/N)?:");j=getch?ar();getch?ar();if(j=='y'||j=='Y')gotofront?2;}voidfind()//學(xué)生信息查?詢函數(shù){inti,k,s=0;charj;front?3:s=0;syste?m("cls");/*清屏*/print?f("\n請輸入要?查詢的學(xué)號?:");scanf?("%d",&k);for(i=0;i<n;i++)if(k==stud[i].num){print?f("姓名\t學(xué)號\t性別\t出生日期?\t班級\t電話\t\t地址\n");print?f("%-s\t%-8d%c\t%d/%d/%d\t%-s\t%s\t%s\n", stud[i].name,stud[i].num,stud[i].sex, stud[i].birth?day.year,stud[i].birth?day.month?,stud[i].birth?day.day, stud[i].clas,stud[i].telep?hone,stud[i].addr);s=1;}if(s==0)print?f("查無此人!\n");getch?ar();print?f("是否繼續(xù)查?詢(Y/N)?:");j=getch?ar();if(j=='y'||j=='Y')gotofront?3;getch?ar();}voidarran?ge()//學(xué)生信息排?序函數(shù){intk,i,temp;chart1[20],t2,t3[20],t4[20],t5[20];struc?tdatat;for(k=0;k<n-1;k++)//排序所需趟?數(shù)for(i=0;i<n-k-1;i++)//每趟排序所?需交換次數(shù)? if(stud[i].num>stud[i+1].num)//信息交換 { { temp=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=temp; }//學(xué)號換位 { strcp?y(t1,stud[i].name); strcp?y(stud[i].name,stud[i+1].name); strcp?y(stud[i+1].name,t1); }//姓名換位 { t2=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=t2; }//性別換位 { strcp?y(t3,stud[i].clas); strcp?y(stud[i].clas,stud[i+1].clas); strcp?y(stud[i+1].clas,t3); }//班級換位 { strcp?y(t4,stud[i].telep?hone); strcp?y(stud[i].telep?hone,stud[i+1].telep?hone); strcp?y(stud[i+1].telep?hone,t4); }//電話換位 { strcp?y(t5,stud[i].addr); strcp?y(stud[i].addr,stud[i+1].addr); strcp?y(stud[i+1].addr,t5); }//地址換位 { t=stud[i].birth?day; stud[i].birth?day=stud[i+1].birth?day; stud[i+1].birth?day=t; }//出生日期換?位 }syste?m("cls");/*清屏*/print?f("姓名\t學(xué)號\t性別\t出生日期?\t班級\t電話\t\t地址\n");for(i=0;i<=n-1;i++)//輸出學(xué)生信?息if(stud[i].num!=0)print?f("%-s\t%-8d%c\t%d/%d/%d\t%-s\t%s\t%s\n", stud[i].name,stud[i].num,stud[i].sex, stud[i].birth?day.year,stud[i].birth?day.month?,stud[i].birth?day.day, stud[i].clas,stud[i].telep?hone,stud[i].addr);print?f("按回車鍵返?回!");getch?ar();getch?ar();}voidchang?e()//學(xué)生信息修?改函數(shù){intk=0,m;charj;front?5:syste?m("cls");/*清屏*/print?f("\n請輸入要?修改記錄的?學(xué)號:");scanf?("%d",&m);getch?ar();for(i=0;i<n;i++)if(m==stud[i].num){k=1;break?;}/*查找*/if(k==1)/*修改*/{print?f("\n");print?f("\n請輸入修?改后的姓名?:"); scanf?("%s",stud[i].name);print?f("\n請輸入修?改后的學(xué)號?:"); scanf?("%d",&stud[i].num);print?f("\n請輸入修?改后的性別?(F/M):"); scanf?("\n%c",&stud[i].sex); print?f("\n請輸入修?改后的出生?日期:"); scanf?("\n%d%d%d",&stud[i].birth?day.year,&stud[i].birth?day.month?,&stud[i].birth?day.day);print?f("\n請輸入修?改后的班級?:"); scanf?("%s",&stud[i].clas);print?f("\n請輸入修?改后的電話?號碼:"); scanf?("%s",&stud[i].telep?hone);print?f("\n請輸入修?改后的地址?:"); scanf?("%s",stud[i].addr); print?f("修改成功\n");getch?ar();}if(k==0){print?f("找不到要修?改的記錄!\n");print?f("按回車鍵返?回:");getch?ar();}getch?ar();print?f("是否繼續(xù)(Y/N)?:");j=getch?ar();getch?ar();if(j=='y'||j=='Y')gotofront?5;}voidmain()//主菜單{ charj;print?f("\n\n\n\n\n\n\t\t\t歡迎使用學(xué)?生檔案管理?系統(tǒng)");print?f("\n\n\n\t\t\t\t制作人:沈文薈");print?f("\n\n\n\t\t\t\t2014年?4月");print?f("\n\n\n\n\n\t按回車鍵?進(jìn)入主菜單?:");getch?ar();loop:syste?m("cls");print
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石家莊工程圍墻施工方案
- 關(guān)于投資協(xié)議書范本5篇
- 2025年度勞動爭議經(jīng)濟補償協(xié)議書模板編制與法律咨詢合同
- 2025年度能源公司股東與子公司間并購資金借款合同
- 2025年度互換商鋪的租賃合同范本
- 2025年健身行業(yè)健身教練職業(yè)資格認(rèn)證與繼續(xù)教育合同
- 2025年度廣西勞動合同模板:文化娛樂行業(yè)適用文本
- 2025年度建筑工程樁基檢測與咨詢一體化服務(wù)合同
- 2025年度跨境股權(quán)質(zhì)押融資合同范本
- 湘教版數(shù)學(xué)九年級上冊1.2《反比例函數(shù)的圖象與性質(zhì)》(第1課時)聽評課記錄
- 2024年江蘇省對口單招英語試卷及答案
- 藥品集采培訓(xùn)課件
- 股骨干骨折教學(xué)演示課件
- 高中物理考試成績分析報告
- 動靜脈內(nèi)瘺血栓
- 部編版小學(xué)語文三年級上冊同步練習(xí)試題含答案(全冊)
- 朗誦《詩頌風(fēng)華》
- 血性胸水的護(hù)理課件
- 醫(yī)共體人財物管理系統(tǒng)需求說明
- 臨時占用城市道路申請表
- 四年級數(shù)學(xué)下冊口算天天練45
評論
0/150
提交評論