學生成績查詢系統(tǒng).doc_第1頁
學生成績查詢系統(tǒng).doc_第2頁
學生成績查詢系統(tǒng).doc_第3頁
學生成績查詢系統(tǒng).doc_第4頁
學生成績查詢系統(tǒng).doc_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

程序設計基礎課程設計設計題目:學生成績查詢系統(tǒng)專業(yè): 班級: 姓名: 學號: 指導老師: 目 錄一、課程設計目的與要求3二、詳細設計4三、程序清單和執(zhí)行結果9四、調試與測試23五、結語24一、課程設計目的與要求1.課程設計目的(1)綜合運用之前所學知識(選擇控制,循環(huán)控制,數組,函數,指針,結構體和文件等)來完成一個簡單的信息管理程序的設計。(2)充分體現和體會函數在程序設計中的必要性和實用性,并反映主函數main()在程序設計中的實現思路和方法。2. 課程設計要求 設計一個簡易學生成績記錄簿設計,其中包括:姓名,學號,C語言成績; 具體功能: 1系統(tǒng)以菜單方式工作 2. 創(chuàng)建學生成績信息并以磁盤文件保存; 3. 讀取磁盤文件并顯示輸出所有學生的成績; 4. 查詢學生成績 (1)按學號查詢成績 (2)學號姓名查詢成績 5添加成績記錄; 6修改指定姓名或學號的學生的成績并可存盤; 7顯示輸出60分以下、6079、8089、90分以上各分數段的學生信息。二、詳細設計1、數據結構設計#include#include#include#includeint n=4;struct studentint num; /*學號*/char name10; /*姓名*/float score3; /*成績*/2函數說明1.主函數main()允許用戶通過菜單進行功能選擇,使用相應的功能代碼來調用對應的函數功能。2.其他部分功能函數包括(1) 將學生成績信息保存為文件void save(); 算法思想:定義指向文件的指針變量;輸入保存路徑及文件名,打開文件,若不能打開文件給出提示信息;將存有學生成績信息的結構體數組信息依次保存到文件中。 (2) 學生成績信息錄入函數void input()算法思想:依次錄入結構體數組中所包含的各個成員;直到輸入的結構體成員中信息為4,數據輸入結束;返回實際錄入的學生成績信息數。(3)從文件中讀出學生成績信息void output(); 算法思想:定義指向結構體變量的指針和指向文件的指針;輸入文件的路徑,打開文件,若不能打開文件給出提示信息;將文件中的信息依次讀出,最后結構體的指針為NULL。3函數設計(1)主菜單函數main()功能:函數返回值為整數,代表所選的菜單項 int main ()printf( * n);printf( n); printf( n);printf( 歡迎進入學生成績記錄系統(tǒng) n);printf( n);printf(【1】- 創(chuàng)建學生成績信息 n); printf( n);printf(【2】- 顯示所有學生成績信息 n); printf( n);printf(【3】- 添加學生成績信息 n);printf( n);printf(【4】- 查詢學生成績信息 n); printf( n); printf(【5】- 修改學生的信息 n); printf( n);printf(【6】- 按分數段顯示學生的信息 n); printf( n); printf(【0】- 退出 n);printf( n);printf( * n);printf( 請輸入相應菜單編號: );(2) 我負責編寫的程序A.添加學生信息 void Addstudent() FILE *fp;struct student s;fp=fopen(stu.dat,ab); if(fp=fopen(stu.dat,ab)=NULL) printf(File open error!n); else printf(請輸入所增加學生的 學號 姓名 c語言成績:n);scanf(%d,&s.num ); scanf(%s,);scanf(%f,&s.score0);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/*關閉文件*/printf(寫入成功!n); /end function Addstudent;B.修改學生成績void modify() int number,i;printf(請輸入要修改信息的學生學號:); scanf(%d,&number); for(i=0;in;i+)if(number=studi.num) break;/*查找判斷*/ if(in)/*查找判斷*/ printf(請輸入修改后的學生的信息:);printf(n請輸入學生的c語言成績:); scanf(%f,&studi.score0); save(); else printf(沒找到該學生的信息n); system(paues);system(cls);C.查詢學生成績void namecheck(void);void scorecheck(void);void searchmenu()printf( * 歡迎進入學生成績查詢系統(tǒng) * n);printf(* 1-按姓名查詢成績 * n);printf(* 2-按學號查詢成績 * n);printf(* 3-返回上一層 * n);printf(* 4-退出 * n);printf( * n);printf( 請輸入相應菜單編號: );int m;scanf(%d,&m);switch(m)case 1: namecheck(); printf(n); system(PAUSE); system(CLS); break;case 2: scorecheck(); printf(n); system(PAUSE); system(CLS); break;case 3: main();break;case 4: exit(0); break;void namecheck() char name10;printf(按照姓名查詢請按n);printf(n請輸入姓名:);scanf(%s,&name);printf(查詢結果n);printf(學號 姓名 c語言成績n);if(strcpy(,name) printf(%d %s %.2fn,studi.num,,studi.score0);void scorecheck() int b;printf(按照學號查詢請按n);printf(n請輸入學號:);scanf(%d,&b);printf(查詢結果n);printf(學號 姓名 c語言成績n);for(i=0;in;i+)if(studi.num =b) printf(%d %s %.2fn,studi.num,,studi.score0); 三、程序清單和執(zhí)行結果1.頭文件 #include#include#include#includeint n=4;struct studentint num; /*學號*/char name10; /*姓名*/float score3; /*成績*/*以下是函數原型*/ void save(void); void input(void); void output(void); void modify(); /*修改信息*/void searchmenu(void); /*查詢信息*/ void namecheck(void); /*按姓名查詢*/ void scorecheck(void); /*按學號查詢*/ void Addstudent(); /*添加信息*/void sclsearch(); /*成績按分數段顯示*/2. 函數源程序代碼與運行結果1函數源程序代碼#include#include#include#includeint n=4;struct studentint num;char name10;float score3;stud100;int i,choose,a,t=0;long int num;int main () void save(void);void input(void);void output(void); void modify();void searchmenu(void);void Addstudent();void sclsearch();while(1)printf( * n);printf( n);printf( n);printf( 歡迎進入學生成績記錄系統(tǒng) n);printf( n);printf( 【1】- 創(chuàng)建學生成績信息 n); printf( n);printf( 【2】- 顯示所有學生成績信息 n); printf( n);printf( 【3】- 添加學生成績信息 n);printf( n);printf( 【4】- 查詢學生成績信息 n); printf( n); printf( 【5】- 修改學生的信息 n); printf( n);printf( 【6】- 按分數段顯示學生的信息 n); printf( n); printf( 【0】- 退出 n);printf( n);printf( * n);printf( 請輸入相應菜單編號: );scanf(%d,&a);switch(a)case 1:input(); save();break;case 2:output();printf(n);system(PAUSE);system(CLS);break; case 3:Addstudent();printf(n); system(PAUSE);system(CLS); break;case 4:searchmenu();printf(n);system(PAUSE);system(CLS);break;case 5:modify();printf(n);system(PAUSE);system(CLS);break;case 6:sclsearch();printf(n); system(PAUSE);system(CLS); break;case 0:exit(0);default: ;return 0;void save()FILE *fp;if (fp=fopen(stu.dat,wb)=NULL)/*以只寫的方式打開文件*/printf(無法打開文件!n);return ;for(i=0;in;i+)if (fwrite (&studi,sizeof(struct student),1,fp)!=1)/*寫入字節(jié)為1的信息在文件中*/printf(文件寫入錯誤!n);fclose(fp);/*關閉文件*/void input()/錄入學生成績int i;char a;for(i=0;in;i+) printf(n 請輸入學生成績信息:n); printf(n請依次輸入 學號、姓名、c語言成績:n); scanf(%d%s%f,&studi.num,,&studi.score0); printf(輸入:y(繼續(xù)),n(終止)!n);fflush(stdin);scanf(%c,&a);if(a=n | a=N)break;n=i+1;void Addstudent() FILE *fp;struct student s;fp=fopen(stu.dat,ab); if(fp=fopen(stu.dat,ab)=NULL) printf(File open error!n); else printf(請輸入所增加學生的 學號 姓名 c語言成績:n);scanf(%d,&s.num ); scanf(%s,);scanf(%f,&s.score0);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/*關閉文件*/printf(寫入成功!n); /end function Addstudent;void output()int i;/float s;FILE *fp; if(fp=fopen(stu.dat,rb)=NULL)printf(cannot open filen);exit(0);printf(n學號 姓名 c語言成績n);for(i=0;fread(&studi,sizeof(struct student),1,fp)=1;i+)printf(%d %10s % 10.2fn,studi.num,,studi.score0);fclose(fp);n=i;void modify() int number,i;printf(請輸入要修改信息的學生學號:); scanf(%d,&number); for(i=0;in;i+)if(number=studi.num) break;/*查找判斷*/ if(in)/*查找判斷*/ printf(請輸入修改后的學生的信息:);printf(n請輸入學生的c語言成績:); scanf(%f,&studi.score0); save(); else printf(沒找到該學生的信息n); system(paues);system(cls);void namecheck(void);void scorecheck(void);void searchmenu()printf( * 歡迎進入學生成績查詢系統(tǒng) * n);printf(* 1-按姓名查詢成績 * n);printf(* 2-按學號查詢成績 * n);printf(* 3-返回上一層 * n);printf(* 4-退出 * n);printf( * n);printf( 請輸入相應菜單編號: );int m;scanf(%d,&m);switch(m)case 1: namecheck(); printf(n); system(PAUSE); system(CLS); break;case 2: scorecheck(); printf(n); system(PAUSE); system(CLS); break;case 3: main();break;case 4: exit(0); break;void namecheck() char name10;printf(按照姓名查詢請按n);printf(n請輸入姓名:);scanf(%s,&name);printf(查詢結果n);printf(學號 姓名 c語言成績n);if(strcpy(,name) printf(%d %s %.2fn,studi.num,,studi.score0);void scorecheck() int b;printf(按照學號查詢請按n);printf(n請輸入學號:);scanf(%d,&b);printf(查詢結果n);printf(學號 姓名 c語言成績n);for(i=0;in;i+)if(studi.num =b) printf(%d %s %.2fn,studi.num,,studi.score0);void sclsearch()int i;printf(90分以上:n); printf(學號 姓名 c語言成績n);for(i=0;i=90) printf(%d %s %.2fn,studi.num,,studi.score0);printf(8089:n); printf(學號 姓名 c語言成績n);for(i=0;i=80&studi.score090) printf(%d %s %.2fn,studi.num,,studi.score0);printf(7079:n); printf(學號 姓名 c語言成績n);for(i=0;i=70&studi.score080) printf(%d %s %.2fn,studi.num,,studi.score0);printf(6069:n); printf(學號 姓名 c語言成績n);for(i=0;i=60&studi.score070) printf(%d %s %.2fn,studi.num,,studi.score0);printf(60分以下:n); printf(學號 姓名 c語言成績n);for(i=0;in;i+)if(studi.score060) printf(%d %s %.2fn,studi.num,,studi.score0);(1)系統(tǒng)以菜單方式工作(2)學生成績錄入(3)顯示所有學生成績(4)查詢學生成績按姓名查詢按學號查詢(5)修改學生成績(6)按分數段顯示學生成績四、調試與測試我在調試我編寫的程序當中出現了很多問題,比如,按姓名查詢學生成績中if(strcpy(studi.n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論