學(xué)生信息管理系統(tǒng)c語言程序設(shè)計報告(完美)_第1頁
學(xué)生信息管理系統(tǒng)c語言程序設(shè)計報告(完美)_第2頁
學(xué)生信息管理系統(tǒng)c語言程序設(shè)計報告(完美)_第3頁
學(xué)生信息管理系統(tǒng)c語言程序設(shè)計報告(完美)_第4頁
學(xué)生信息管理系統(tǒng)c語言程序設(shè)計報告(完美)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

HUNANUNIVERSITY程序設(shè)計訓(xùn)練報告學(xué)生姓名學(xué)生學(xué)號專業(yè)班級指導(dǎo)老師2023年 5月 25日目錄一系統(tǒng)功能簡介......................................3二本人完成的主要工作.................................3三實訓(xùn)分析.................................4四實訓(xùn)設(shè)計...............................5五實訓(xùn)源程序代碼和調(diào)試過程.....................7六實訓(xùn)總結(jié).................................11附錄1................................12附錄2.................................12-22一系統(tǒng)功能簡介.學(xué)生信息管理系統(tǒng)1,進(jìn)入主界面:要求輸入密碼,輸入三次錯誤系統(tǒng)鎖定。2,輸入記錄:將學(xué)生的根本信息包括學(xué)號,姓名,性別,地區(qū),分?jǐn)?shù)等數(shù)據(jù)作為一個記錄寫入文件。3,顯示記錄:顯示學(xué)生的各項信息。4,增加記錄:增加多個學(xué)生的根本信息,位于之前的學(xué)生后面。5,刪除記錄:刪除學(xué)生信息。6,修改記錄:可以修改學(xué)生的任何一項根本信息。7,查找記錄:可以根據(jù)學(xué)生的學(xué)號查找并顯示出學(xué)生的信息。8,統(tǒng)計記錄:統(tǒng)計全班通過情況和不及格情況。9,退出系統(tǒng)經(jīng)過逐層逐塊、不斷細(xì)化、求精過程,編寫程序并進(jìn)行測試、驗證,可以逐個模塊地分開調(diào)試,并通過文件包含或用工程文件的形式進(jìn)行逐步聯(lián)合調(diào)試。二本人完成的主要工作學(xué)生信息管理系統(tǒng)由我和龔晨同學(xué)共同完成。主程序的編寫由我們兩個共同完成。我負(fù)責(zé)的是:1、修改記錄:可以修改學(xué)生的任何一項根本信息。2、查找記錄:可以根據(jù)學(xué)生的學(xué)號查找并顯示出學(xué)生的信息。3、統(tǒng)計記錄:統(tǒng)計全班通過情況和不及格情況。4、退出系統(tǒng)三實訓(xùn)分析1、用結(jié)構(gòu)化程序設(shè)計思想進(jìn)行C環(huán)境下程序設(shè)計。2、設(shè)計一個管理系統(tǒng),上機(jī)編程、調(diào)試并通過該管理系統(tǒng)中的各功能模塊。3、設(shè)計完成后,每人必須提交程序清單及關(guān)于程序設(shè)計、維護(hù)和使用方面的圖文材料即程序設(shè)計說明書各一份。4、基于結(jié)構(gòu)化程序設(shè)計思想和所使用的C語言開發(fā)環(huán)境與開發(fā)工具,并運用“軟件工程〞和“數(shù)據(jù)結(jié)構(gòu)〞中的有關(guān)概念和方法,針對具體設(shè)計題目和要求,分析功能要求,劃分功能模塊,用鏈表結(jié)構(gòu)設(shè)計功能模塊函數(shù),以菜單方式調(diào)用相應(yīng)功能模塊來實現(xiàn)信息和數(shù)據(jù)處理四實訓(xùn)設(shè)計1、系統(tǒng)功能模塊結(jié)構(gòu)圖本圖書管理系統(tǒng)理由輸入記錄,顯示記錄,增加記錄,刪除記錄,修改記錄,統(tǒng)計數(shù)據(jù),查找記錄,七個大模塊組成,其總體結(jié)構(gòu)圖如下:學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)增加記錄模塊增加記錄模塊修改記錄模塊刪除記錄模塊修改記錄模塊統(tǒng)計記錄模塊輸入記錄模塊顯示記錄模塊查找記錄模塊退出系統(tǒng)2.核心數(shù)據(jù)結(jié)構(gòu)設(shè)計:1.頭文件說明如:#include<string.h>#include<stdio.h>#include<stdlib.h>#include<conio.h>2,函數(shù)的編寫定義結(jié)構(gòu)類型;定義全局變量;定義、編寫記錄〔數(shù)據(jù)〕輸入函數(shù);定義、編寫記錄〔數(shù)據(jù)〕顯示函數(shù);定義、編寫記錄〔數(shù)據(jù)〕增加函數(shù);定義、編寫記錄〔數(shù)據(jù)〕刪除函數(shù);定義、編寫記錄〔數(shù)據(jù)〕修改函數(shù);定義、編寫記錄〔數(shù)據(jù)〕統(tǒng)計函數(shù);定義、編寫記錄〔數(shù)據(jù)〕查找函數(shù);函數(shù)名稱函數(shù)功能enter()進(jìn)入函數(shù)input();輸入函數(shù)display()顯示函數(shù)add()增加函數(shù)delet()刪除函數(shù)amend()修改函數(shù)preside();統(tǒng)計函數(shù)fint();查找函數(shù)output();退出函數(shù)3.核心算法描述〔程序流程圖〕主函數(shù)結(jié)構(gòu)流程程序開始程序開始初始化、定義主菜單、分支菜單指針數(shù)組及變量初始化、定義主菜單、分支菜單指針數(shù)組及變量讀鍵盤按鍵的鍵值讀鍵盤按鍵的鍵值判斷鍵值并彈出對應(yīng)菜單判斷鍵值并彈出對應(yīng)菜單N用戶按了1-8鍵嗎?N用戶按了1-8鍵嗎?N根據(jù)按鍵執(zhí)行菜單項選擇項對應(yīng)的函數(shù)Y根據(jù)按鍵執(zhí)行菜單項選擇項對應(yīng)的函數(shù)從被調(diào)用函數(shù)中返回并轉(zhuǎn)移從被調(diào)用函數(shù)中返回并轉(zhuǎn)移退出管理系統(tǒng)退出管理系統(tǒng)五實訓(xùn)源程序代碼和調(diào)試過程〔包括截圖〕1.1進(jìn)入界面圖一輸入密碼進(jìn)行身份驗證,輸入三次那么系統(tǒng)鎖定。1.2選擇菜單圖二主菜單接界面,選擇數(shù)字執(zhí)行相應(yīng)功能。1.3輸入信息圖三依次輸入學(xué)生的各項根本信息。1.4顯示信息圖四可以顯示錄入及增加的各項信息。1.5增加信息圖五根據(jù)需要添加新的學(xué)生信息。1.6刪除記錄圖六刪除信息。1.7修改記錄圖七可修改任何學(xué)生的任何一項紀(jì)錄。1.8統(tǒng)計信息圖八對所有的信息進(jìn)行統(tǒng)計顯示不及格人數(shù)。1.9查找信息圖九根據(jù)學(xué)號查找出需要的學(xué)生信息。六實訓(xùn)結(jié)論通過C語言實訓(xùn),讓我加深了對C語言的了解,而不只是單單的在課本中學(xué)到的那些理論,平時乏味的課程,通過自己動手親自編寫,變的生動有趣,而在自己動手的過程中,出現(xiàn)的問題很多,比理論要難的多,當(dāng)一個程序?qū)懲暌院?,?jīng)常會有很多錯誤而沒法解決。不過,通過幾天的實訓(xùn),逐漸積攢了一些經(jīng)驗,有些錯誤可以較快看出來。這次實訓(xùn)有很大的收獲,讓我對C語言有了更深的認(rèn)識,平時在課堂上學(xué)到的東西可以自己動手編寫,將其轉(zhuǎn)化成一些實用的技能。如果是一個程序?qū)懲暌惶庡e誤也沒有,會有種成就感,于是興趣就來了,興趣來了,自然學(xué)的東西也就多了,能把理論變成實際的技能,讓我對C語言有了濃厚的興趣和更深層的認(rèn)識。C語言是一個有序的學(xué)習(xí),條理很清楚,不是一個零散的知識,實際上所有的課程都如此,要從整體上把握。不過通過實訓(xùn)我也知道了自己的缺乏,存在的很多問題。希望能在以后的學(xué)習(xí)中,不斷提高自己的能力,讓問題越來越少。附錄1參考文獻(xiàn)[1]劉振安等.C程序設(shè)計課程設(shè)計.北京:機(jī)械工業(yè)出版社,2004.9[2]譚浩強等.c語言程序設(shè)計.〔第二版〕.清華大學(xué)出版社,2002,.8[3]張引等著《C程序設(shè)計設(shè)計根底課程設(shè)計》浙江大學(xué)出版社2007[5]曹哲等《C程序設(shè)計課程設(shè)計》機(jī)械工業(yè)出版社2023.7附錄2源程序代碼#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#defineN20structstudent/*定義學(xué)生結(jié)構(gòu)體*/{longnum;charname[20];charsex[2];charaddress[20];intscore[3];intsum;intave;};structstudentstu[N];intt=1,pl=0;voidenter();voidinput();voiddisplay();voidadd();voiddelet();voidamend();voidpreside();voidfint();voidoutput();voidmain(){intpassword; inti; printf("\n\n\n\n\t\t\t歡送進(jìn)入學(xué)生信息管理系統(tǒng)\n");/*初始界面輸入驗證密碼*/ for(i=1;i<=3;i++) { printf("\n\n\t\t\t請輸入密碼:"); scanf("%d",&password); if(password==000000) { enter(); break; } printf("error!pleaseinputagain!"); } printf("密碼輸入三次有誤!系統(tǒng)鎖定!");}voidenter()/*進(jìn)入主菜單函數(shù)*/{ intchoice,w; chark; system("cls"); printf("\t\t\t學(xué)生信息管理系統(tǒng)\n\n"); printf("\t\t1.錄入.\t2.顯示.\t3.增項.\t4.刪項.\n\t\t5.修改.\t6.統(tǒng)計.\t7.查找.\t8.退出.\n"); printf("\n輸入序號執(zhí)行相應(yīng)功能:"); scanf("%d",&choice); switch(choice) { case1:input();break; case2:display();break; case3:add();break; case4:delet();break; case5:amend();break; case6:preside();break; case7:fint();break; case8:output();break; default:w=1; } if(w==1) { printf("輸入有誤,按任意鍵重新選懌.\n"); k=getchar(); getch(); enter(); }}voidinput()/*學(xué)生信息錄入的函數(shù)*/{ intx,count=0,i; charw,r[20],o; structstudent*p; p=stu; system("cls"); printf("\t\t\t學(xué)生信息的錄入.\n"); do { pl++; printf("請輸入第%d個學(xué)生的信息.\n\n",t); printf("學(xué)號:\n"); scanf("%ld",&p->num); printf("姓名:\n"); scanf("%s",&p->name); printf("\n"); printf("性別:\n"); gets(r); gets(&p->sex); printf("\n"); printf("地區(qū):\n"); scanf("%s",&p->address); printf("\n"); printf("三門成績:1.語文.2.數(shù)學(xué).3.英語.\n"); for(i=0;i<3;i++) scanf("%d",&p->score[i]); p->sum=p->score[0]+p->score[1]+p->score[2]; p->ave=p->sum/3; printf("\n\n是否要繼續(xù)輸入學(xué)生信息,如果是請按y;不是請按n.\n"); o=getchar(); w=getchar(); if(w=='y'||w=='Y') { t++; x=1; p++; } else x=0; } while(x==1); if(w=='n'||w=='N') printf("按任意鍵返回.\n"); getch(); enter();}voiddisplay()/*顯示學(xué)生信息*/{ inti,j; system("cls"); printf("\t\t\t學(xué)生信息顯示.\n\n"); for(j=0;j<t;j++) { printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n","學(xué)號","姓名","性別","地區(qū)","語文","數(shù)學(xué)","英語","平均分","總分"); printf("%ld\t%s\t%s\t%s\t",stu[j].num,stu[j].name,stu[j].sex,stu[j].address); for(i=0;i<3;i++) printf("%d\t",stu[j].score[i]); printf("%d\t",stu[j].ave); printf("%d\t",stu[j].sum); printf("\n\n"); } printf("\n按任意鍵返回.\n"); getch(); enter();}voidadd()/*學(xué)生信息的增加*/{ inti,x; chara,w; structstudent*p; p=stu+t;system("cls"); printf("\n\t\t\t增加學(xué)生信息.\n");do { printf("請輸入第%d個學(xué)生的信息.\n\n",t+1); printf("學(xué)號:\n"); scanf("%ld",&p->num); printf("\n"); printf("姓名:\n"); scanf("%s",p->name); printf("\n"); printf("性別:\n"); scanf("%s",p->sex); printf("\n"); printf("地區(qū):\n"); scanf("%s",p->address); printf("\n"); printf("三門成績:1.語文.2.數(shù)學(xué).3.英語.\n"); for(i=0;i<3;i++) scanf("%d",&p->score[i]); for(i=0;i<3;i++) p->sum=p->score[0]+p->score[1]+p->score[2]; p->ave=p->sum/3; a=getchar(); printf("\n是否要繼續(xù)輸入學(xué)生信息,如果是請按y;不是請按n.\n\n");w=getchar(); p++; t++; if(w=='y'||w=='Y') { x=1; } if(w=='n'||w=='N') { x=0; break; } }while(x==1); if(x==0) { printf("\n"); printf("按任意鍵返回.\n"); getch(); enter(); }}voiddelet()/*學(xué)生信息的刪除*/{ longb; intz,j; intr=t; charc,x; structstudent*p;system("cls"); printf("\n\t\t\t刪除學(xué)生信息\n"); printf("請輸入要刪除學(xué)生的學(xué)號:\n\n"); scanf("%ld",&b); for(p=stu;p<stu+t;p++) if(p->num==b) break; else r--; if(r==0) { printf("你要刪除的學(xué)生不存在,請按任意鍵返回.\n"); getch(); enter(); } printf("\n你要刪除的學(xué)生為:\n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","學(xué)號","姓名","性別","地區(qū)","語文","數(shù)學(xué)","英語","平均分","總分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++) printf("%-8d",p->score[j]); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("\n你確定要刪除嗎?如是請輸入y;不是請輸入n.\n"); x=getchar(); c=getchar(); if(c=='y'||c=='Y') { for(p=stu;p<stu+t;p++) *p=*(p+1); t--; printf("系統(tǒng)已為你刪除信息,請按任意鍵返回.\n"); getch(); enter(); } if(c=='n'||c=='N') { printf("刪除信息取消!按任意鍵返回.\n"); getch(); enter(); }}voidamend()/*學(xué)生信息的修改*/{ longj; inti,z,r=t; charc,d,e,f,q,u,l,v,m,k,h1,h2,h3,h4; structstudent*p; system("cls"); printf("\n\t\t\t修改學(xué)生信息\n"); printf("請輸入要修改學(xué)生的學(xué)號:\n\n"); scanf("%ld",&j); for(p=stu;p<stu+t;p++) if(p->num==j) break; else r--; if(r==0) { printf("你輸入的學(xué)生不存在,請按任意鍵返回.\n"); getch(); enter(); } printf("\n你要修改的學(xué)生為:\n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","學(xué)號","姓名","性別","地區(qū)","語文","數(shù)學(xué)","英語","平均分","總分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++) printf("%-8d",p->score[j]); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("\n\n是否要修改學(xué)號:是請按y;不是請按n.\n\n"); l=getchar(); c=getchar(); if(c=='y'||c=='Y') { printf("請輸入正確的學(xué)號:\n\n"); scanf("%ld",&p->num); } if(c=='n'||c=='N') z=1; printf("是否要修改姓名:是請按y;不是請按n.\n\n"); q=getchar(); d=getchar(); m=getchar(); if(d=='y'||d=='Y') { printf("請輸入正確的姓名:\n"); scanf("%s",p->name); u=getchar(); } if(d=='n'||c=='N') z++; printf("\n是否要修改性別:是請按y;不是請按n.\n\n"); e=getchar(); k=getchar(); if(e=='y'||e=='Y') { printf("請輸入正確的性別:\n"); scanf("%s",p->sex); } if(e=='N'||e=='n') z++; printf("\n是否要修改地區(qū):是請按y;不是請按n.\n\n"); h3=getchar(); h4=getchar(); if(h3=='y'||h3=='Y') { printf("請輸入正確的地區(qū):\n"); scanf("%s",p->address); } if(h3=='N'||h3=='n') z++; printf("\n是否要修改三門成績:是請按y;不是請按n.\n\n"); f=getchar(); if(f=='y'||f=='Y') { printf("請輸入正確的三門成績:"); for(i=0;i<3;i++) scanf("%d",&p->score[i]); p->sum=p->score[0]+p->score[1]+p->score[2]; p->ave=p->sum/3; } v=getchar(); if(f=='n'||f=='N') { printf("請按任意鍵返回.\n"); getch(); enter(); }}voidpreside()/*學(xué)生信息的統(tǒng)計*/{ inti,j,o=0,b=10,r=60; structstudent*p; system("cls"); printf("\n\t\t\t學(xué)生信息統(tǒng)計.\n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","學(xué)號","姓名","性別","地區(qū)","語文","數(shù)學(xué)","英語","平均分","總分"); for(p=stu;p<stu+t;p++) { printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++) printf("%-8d",p->score[j]); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("\n\n"); } printf("\n\n\n"); for(p=stu;p<stu+t;p++) { for(i=0;i<3;i++) if(p->score[i]<r) { b=b-1;o=o+1; printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","學(xué)號","姓名","性別","地區(qū)","語文","數(shù)學(xué)","英語","平均分","總分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address);

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論