《程序設(shè)計語言》課程設(shè)計-學(xué)生信息管理系統(tǒng).doc
《《程序設(shè)計語言》課程設(shè)計-學(xué)生信息管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《《程序設(shè)計語言》課程設(shè)計-學(xué)生信息管理系統(tǒng).doc(18頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 程序設(shè)計語言課程設(shè)計 學(xué)生信息管理系統(tǒng) 系 、 部: 計算機與信息科學(xué)系 專 業(yè): 信息與計算科學(xué) 班 級: 信本1003班 姓 名: 學(xué) 號: 學(xué)生信息管理系統(tǒng)1、設(shè)計目的本課程設(shè)計為學(xué)生提供了一個既動手又動腦,自學(xué),查資料,獨立實踐的機會。將本學(xué)期課本上的理論知識和實際有機的結(jié)合起來,鍛煉學(xué)生實際分析問題和解決問題的能力,提高學(xué)生適應(yīng)實際、實踐編程的能力,使對C+系統(tǒng)編程有一個大致的了解2、 總體設(shè)計(程序設(shè)計組成框圖、流程圖)a、學(xué)生成績的錄入、統(tǒng)計、查詢(可根據(jù)名字首字母查詢)、修改、刪除、輸出。 畫出功能結(jié)構(gòu)圖。3、 詳細(xì)設(shè)計(模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用
2、關(guān)系描述等)函數(shù)、部分程序及其說明:int id;/學(xué)號char name20;/姓名int age;/年齡char sex;/姓別int score3;/成績(t語文t數(shù)學(xué)t英語)char address50;/地址char birthday20; /出生年月char telephone15;/電話char email50;/E-mailint avg;/平均成績char name120;/登錄用戶名char mima17;/登錄密碼struct student stus50;/全局學(xué)生結(jié)構(gòu)體數(shù)組int count = 0;/統(tǒng)計學(xué)生個數(shù) name=yinzhaoxia;/登錄名char m
3、ima=123456 ;/密碼Main():此函數(shù)主要是調(diào)用錄入、統(tǒng)計等函數(shù)對成績表進行處理;通過使用switch函數(shù)判斷用戶所選擇的序號,再進入相應(yīng)的函數(shù)。insertStudent();/添加學(xué)生信息selectAllStudent():查詢所有學(xué)生信息AaXingMingChaXunStudent();/姓名首字母查詢AaXueHaoChaUunStudent();/根據(jù)學(xué)號查找AaXingMingChaUunStudent();/根據(jù)姓名查找XiuGaiStudent();/修改學(xué)生信息AnXueHaoPaiXuStudent();/根據(jù)按學(xué)號排序AnXingMingShoZiMuPa
4、iXunStudent();/按姓名首字母排序AnChengjPaiXuStudent();/按成績排序XunZePaiXu(); /選擇排序方式ShanChuStudent();/刪除學(xué)生信息ShanChuStudent1(int len,int index);/根據(jù)學(xué)號刪除學(xué)生信息AnXingMingShoZiMuChaXunStudent();/按姓名首字母查詢4、 調(diào)試與測試:調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措 測試主要的問題: 是“排序”解決方案: 上網(wǎng)查資料和請教老師和同學(xué)5、 源程序如下 /* *內(nèi)容:學(xué)生信息管理系統(tǒng) *作者:尹朝霞 *時間:
5、2011年6月2日 */#include #include #include #include struct student int id;/學(xué)號char name20;/姓名int age;/年齡char sex;/姓別int score3;/成績(t語文t數(shù)學(xué)t英語)char address50;/地址char birthday20; /出生年月char telephone15;/電話char email50;/E-mailint avg;/平均成績;struct denglu char name120;/登錄用戶名char mima17;/登錄密碼;/全局學(xué)生結(jié)構(gòu)體數(shù)組struct st
6、udent stus100;/統(tǒng)計學(xué)生個數(shù)int count = 0;char mima=123456 ;/密碼void insertStudent();/添加void printStudent(struct student s);/輸出信息格式void selectAllStudent();/查詢void AaXingMingChaXunStudent();/姓名首字母查詢void AaXueHaoChaUunStudent();/學(xué)號查找void AaXingMingChaUunStudent();/姓名查找void XiuGaiStudent();/修改void AnXueHaoPaiX
7、uStudent();/按學(xué)號排序void AnXingMingShoZiMuPaiXunStudent();/按姓名首字母排序void AnChengjPaiXuStudent();/按成績排序void XunZePaiXu(); /排序void ShangChuStudent();/刪除void ShanChuStudent1(int len,int index);/根據(jù)學(xué)號刪除學(xué)生void AnXingMingShoZiMuChaXunStudent();/按姓名首字母查詢void main() struct denglu denlu;char name=yinzhaoxia;/姓名 c
8、har mima220;int i;printf(tt歡迎進入登陸界面n);printf(tt(*_*) 嘻嘻請輸入您的名字:);gets(denlu.name1);printf(tt(*_*) 嘻嘻請輸入您的密碼:);for(i=0;i6;i+) mima2i=getch(); printf(*);mima2i=0;if(strcmp(denlu.name1,name)=0)&(strcmp(mima2,mima)=0)printf(nttt 【.恭喜您登陸成功.】nnn);doint selected;printf(t *歡迎使用學(xué)生管理系統(tǒng)*n);printf(1.添加學(xué)生 2.刪除學(xué)生
9、 3.修改學(xué)生 4.按學(xué)號查找學(xué)生n); printf(5.查詢所有學(xué)生 6.按姓名查詢學(xué)生 7.排序 8按姓名首字母查詢n);printf(9.退出程序n);printf(請選擇以上列表中的功能:);scanf(%d,&selected);switch(selected)case 1:insertStudent();/添加break;case 2:ShangChuStudent();/刪除break;case 3:XiuGaiStudent();/修改break;case 4:AaXueHaoChaUunStudent();/學(xué)號查找break;case 5:selectAllStudent
10、();/查詢break;case 6:AaXingMingChaXunStudent();/姓名查找break;case 7: XunZePaiXu(); /排序break;case 8: AnXingMingShoZiMuChaXunStudent();/姓名首字母查詢 break;default:printf(t *謝謝使用學(xué)生管理系統(tǒng)* n);printf(t *版權(quán)所有 * 違者必究* n);exit(0);while(1);elseprintf(nttt 對不起您的輸入有誤,不能進入n);void insertStudent()char result;int i,sum=0;dopr
11、intf(請輸入第%d個學(xué)生信息:n,count + 1);printf(t學(xué)號:); scanf(%d,&stuscount.id);printf(t姓名:);fflush(stdin);gets(stuscount.name);printf(t年齡:);scanf(%d,&stuscount.age);printf(t性別:);fflush(stdin);stuscount.sex = getchar();printf(t成績:n);sum=0;for(i = 0;i 3;i+)printf(tt第%d門成績:,i + 1);scanf(%d,&stuscount.scorei); sum
12、+=stuscount.scorei;stuscount.avg=sum/3;fflush(stdin);printf(t家庭地址:);gets(stuscount.address);printf(t出生年月:);gets(stuscount.birthday);printf(t電話:);gets(stuscount.telephone);printf(tE-mail:);gets(stuscount.email); count+; printf(是否還要繼續(xù)輸入學(xué)生信息?(y/n));fflush(stdin);result = getchar();while(result != n & r
13、esult != N);selectAllStudent();void selectAllStudent()int i;printf(所有信息如下:n);printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn);for(i = 0;i count | a 1) printf(對不起沒有這個學(xué)號,請您認(rèn)真查詢后再輸入); else printf(您要查詢的學(xué)生信息如下:n); printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn); for(i=0;icount;i+) if(a=stusi.id) printStud
14、ent(stusi); printf(是否還要繼續(xù)查詢學(xué)生信息?(y/n));fflush(stdin);result = getchar(); while(result != n & result != N);void AaXingMingChaXunStudent() char result; int i,g=0; struct student stu1; do g=0; printf(請輸入您要查詢學(xué)生姓名:); fflush(stdin); gets(stu1.name); for(i=0;icount;i+) if(strcmp(stu1.name,stusi.name)!=0) g
15、+; continue; if(g=count) printf(對不起沒有這個姓名,請您認(rèn)真查詢后再輸入); else printf(您要查詢的學(xué)生信息如下:n); printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn); for(i=0;i count | b 1) printf(對不起沒有這個學(xué)號,請您認(rèn)真查詢后再輸入);elsefor(i=0;icount;i+) if(b=stusi.id) printf(請重新輸入要修改的學(xué)生信息:n);printf(請輸入學(xué)號);scanf(%d,&stusi.id);printf(t姓名:);fflush(
16、stdin);gets(stusi.name);printf(t年齡:);scanf(%d,&stusi.age);printf(t性別:);fflush(stdin);stusi.sex = getchar();printf(t成績:n);for(j = 0;j 3;j+)printf(tt第%d門成績:,j + 1);scanf(%d,&stusi.scorej);fflush(stdin);printf(t家庭地址:);gets(stusi.address);printf(t出生年月:);gets(stusi.birthday);printf(t電話:);gets(stusi.telep
17、hone);printf(tE-mail:);gets(stusi.email);printf(修改后的學(xué)生信息如下:n);printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn);printStudent(stusi); printf(修改后的所有學(xué)生信息如下:n);printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn);selectAllStudent();printf(是否還要繼續(xù)修改學(xué)生信息?(y/n));fflush(stdin);result = getchar(); while(result != n
18、& result != N);void AnXueHaoPaiXuStudent() struct student temp; int i,j,k=0; printf(請問您是想按降序還是按升序排序(1/2)); scanf(%d,&k); if(k=1) for(i=0;icount;i+) for(j=0;jcount-i-1;j+) if(stusj.idstusj+1.id) temp=stusj; stusj=stusj+1; stusj+1=temp; printf(排序后的學(xué)生信息如下:); selectAllStudent(); else if(k=2) for(i=0;ico
19、unt;i+) for(j=0;jstusj+1.id) temp=stusj; stusj=stusj+1; stusj+1=temp; printf(排序后的學(xué)生信息如下:); selectAllStudent(); void AnXingMingShoZiMuPaiXuStudent() struct student temp; int i,j,e; printf(請問您是想按降序還是按升序排序(1/2)); scanf(%d,&e); if(e=1) for(i=0;icount;i+) for(j=0;jcount-i-1;j+) if(stusj.name0-stusj+1.nam
20、e00) temp=stusj; stusj=stusj+1; stusj+1=temp; printf(排序后的學(xué)生信息如下:); selectAllStudent(); if(e=2) for(i=0;icount;i+) for(j=0;j0) temp=stusj; stusj=stusj+1; stusj+1=temp; printf(排序后的學(xué)生信息如下:); selectAllStudent(); void AnChengjPaiXuStudent() struct student temp; int i,j,f; printf(請問您是想按降序還是按升序排序(1/2)); sc
21、anf(%d,&f); if(f=1) for(i=0;icount;i+) for(j=0;jcount-i-1;j+) if(stusj.avgstusj+1.avg) temp=stusj; stusj=stusj+1; stusj+1=temp; printf(排序后的學(xué)生信息如下:); selectAllStudent(); if(f=2) for(i=0;icount;i+) for(j=0;jstusj+1.avg) temp=stusj; stusj=stusj+1; stusj+1=temp; printf(排序后的學(xué)生信息如下:); selectAllStudent();
22、void XunZePaiXu() int c; printf(請選擇是按學(xué)號排序/按姓名的首字母排序/按平均成績排序(1/2/3)n); scanf(%d,&c); if(c=1) AnXueHaoPaiXuStudent(); else if(c=2) AnXingMingShoZiMuPaiXuStudent(); else if(c=3) AnChengjPaiXuStudent(); void ShangChuStudent()char result;int s;doprintf(請輸入你要刪除的學(xué)生學(xué)號n);scanf(%d,&s);if(s count | s 1)printf(
23、對不起,沒有這個學(xué)號,請您認(rèn)真查詢后再輸入n);elseif(count=1) printf(信息已經(jīng)刪完。n); break;elseShanChuStudent1(count,s-1);count-;selectAllStudent();printf(是否還要繼續(xù)刪除學(xué)生信息?(y/n));fflush(stdin);result = getchar();while(result != n & result != N);void ShanChuStudent1(int len,int index)int i;for(i = index;i = len;i+)stusi+1.id -=1;
24、stus i = stus i + 1; len-;void AnXingMingShoZiMuChaXunStudent() char result; int i,p=0; char e; do p=0; printf(請輸入您要查詢學(xué)生的姓名首字母); fflush(stdin); e = getchar(); for(i=0;icount;i+) if(e-stusi.name0)!=0) p+;continue; if(p=count) printf(對不起沒有這個姓名,請您認(rèn)真查詢后再輸入); else printf(您要查詢的學(xué)生信息如下:n); printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn); for(i=0;icount;i+) if(e-stusi.name0)=0) printf(您要查詢的學(xué)生信息如下n:);printf(學(xué)號t姓名t年齡t性別t語文t數(shù)學(xué)t英語t住址t出生年月t電話tE-mailn);printStudent(stusi); printf(是否還要繼續(xù)查詢學(xué)生信息?(y/n));fflush(stdin);result = getchar(); while(result != n) & (result != N) );
- 溫馨提示:
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)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。