學生成績記錄簿簿設計_第1頁
學生成績記錄簿簿設計_第2頁
學生成績記錄簿簿設計_第3頁
學生成績記錄簿簿設計_第4頁
學生成績記錄簿簿設計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實用文檔課程設計(大作業(yè))報告課程名稱:程序設計基礎設計題目:學生成績記錄簿設計院 系:信息技術學院班 級: xx設計者:xx學 號: xx指導教師:xx設計時間:xx信息技術學院文案大全實用文檔昆明學院課程設計(大作業(yè))任務書姓 名:xx院(系):信息技術學院專 業(yè):計算機科學與技術學號:xx任務起止日期:xx 課程設計題目:學生成績記錄簿課程設計要求:編制一個C語言成績記錄簿,每個學生信息包括:學號、姓名、C語言成績。具體功能:1 .系統(tǒng)以菜單方式工作;2 .創(chuàng)建學生成績信息并以磁盤文件保存;3 .讀取磁盤文件并顯示輸出所有學生的成績;4 .查詢學生成績;(1)按學號查詢成績;(2)學號姓

2、名查詢成績;5 .修改指定姓名或學號的學生的成績并可存盤;6 .顯示輸出60分以下、607a 8089、90分以上各分數段的學生信息。工作計劃及安排:星期一:老師的大概講解及主函數、目錄函數的編寫和調試;星期二:創(chuàng)建學生信息、輸出學生信息和修改學生信息的函數編寫及調試; 星期三:學生信息查詢、學生成績分段和學生成績排序的函數編寫及調試; 星期四:整個函數的最終調試,課程設計(大作業(yè))報告的書寫; 星期五:答辯。指導教師簽字年 月 日文案大全實用文檔課程設計(大作業(yè))成績學號:xx姓名:xx指導教師:xx課程設計題目:學生成績記錄簿設計總結:通過這次的課程設計,增加了我對學習 C語言學習的興趣,

3、雖然還不是真 正的明白所有的C語言的子函數和里面的一些邏輯順序,但我從 C語言這門課 程開始,已經發(fā)現程序設計的樂趣,在學習 C語言的過程中也學到了許多計算 機應用基礎知識,對計算機的運行也有一個大體的了解。 這次課程設計經過老師 的講解,自己的查找,在網上的搜索,實現題目上的要求,先做出一些簡單的函 數和程序,一步步的在做出其它的內容,不過在實際操作過程中犯得一些錯誤也 還是會得到一些意外的收獲。在具體的操作中,對這學期的C語言的理論知識得到鞏固,在設計的過程中也發(fā)現自己的不足之處, 在以后的學習和上機的操作 中會更加注意,同時體會到 C語言的簡潔和靈活。在上機操作中我們的任何不 懂的問題都

4、會暴露出來,對于我們來說是是件好事,在課程設計的過程中特別是 對數組和循環(huán)有了深刻的理解。通過實際的操作,學會 C語言程序編程的基本 步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題,解決問題的能 力。指導教師評語:成績:填表時間:指導教師簽名:文案大全實用文檔目錄一問題的定義 5二、需求分析 5三、總體設計 5四、詳細設計 6五、調試與測試 30六、結語 31文案大全實用文檔.問題的定義編制一個C語言成績記錄簿,每個學生信息包括:學號、姓名、C語言成績。要求:1 .數據存儲采用文件形式。2 .標準的C語言輸入輸出3 .功能完善,適當注釋4 .模塊化設計、結構化編程、需求分析系統(tǒng)能實現

5、以下主要功能:1 .系統(tǒng)以菜單方式工作2 .創(chuàng)建學生成績信息并以磁盤文件保存;3 .讀取磁盤文件并顯示輸出所有學生的成績;4 .查詢學生成績(1)按學號查詢成績(2)學號姓名查詢成績4 .添加成績記錄;5 .修改指定姓名或學號的學生的成績并可存盤;6 .顯示輸出60分以下、6079、808a 90分以上各分數段的學生信息三、總體設計根據系統(tǒng)的要求,系統(tǒng)總體設計如圖1所示。圖1系統(tǒng)總體結構文案大全實用文檔四、詳細設計該部分主要包括:數據結構設計、函數設計(包括函數原型、算法思想、流程描述)代碼設計及程序運行結果顯示。(一 ) 學生成績數據結構設計#include<stdio.h>#i

6、nclude<stdlib.h>#include<string.h>int i,j,k,y;FILE *fp;Struct stuint no;char name30;float cscore;long a;struct stu s100;(二 ) 函數設計1. 主函數main()允許用戶通過菜單進行功能選擇,使用相應的功能代碼來調用對應的函數功能。2. 其他各功能函數(1) 學生成績信息錄入函數void input()算法思想:依次錄入結構體數組中所包含的各個成員;直到輸入的結構體成員中信息全部為0,數據輸入結束;返回實際錄入的學生成績信息數。(2) 將學生成績信息輸

7、出為void output()算法思想:定義結構體變量的指針變量;輸出所輸入的全部信息,若不能輸出信息給出提示信息;將文件中的信息依次讀出,最后結構體的指針為NULL。(3) 從文件中修改學生成績信息void modify()算法思想:定義指向結構體變量的指針和指向文件的指針;修改方式分為兩種(學號和姓名),選擇是給出相應的信息;將修改后的信息保存,并提示。3. 流程描述( 1)菜單函數文案大全實用文檔int fun()int n;system("cls");printf("nntttt 成績記錄薄");printf("nnttt")

8、;for(i=0;i<33;i+)printf("*");printf("n");printf("ttt* 菜單 *n");printf("ttt* 1、創(chuàng)建學生的信息!t*n");printf("ttt* 2、輸出所有學生的信息!t*n");printf("ttt* 3、修改成績!t*n");printf("ttt* 4、查詢!t*n");printf("ttt* 5、顯示成績分段的學生信息!t*n");printf("

9、;ttt* 6、學生成績排名!t*n");printf("ttt* 7 printf("ttt");、退出成績記錄??!t*n");for(i=0;i<33;i+)printf("*");printf("nn");printf("nttt 請輸入選項:");scanf("%d",&n);return n;(2) 學生成績信息錄入函數void input()system("cls");i=0;fp=fopen("out.dat

10、","w");printf(" 請以 0 作為輸入學生學號信息的結束!n");doprintf(" 輸入學生的學號:");scanf("%d",&si.no);printf(" 輸入學生的姓名:");scanf("%s",);printf(" 輸入學生的C 語言成績:");scanf("%f",&si.cscore);printf(" 輸入添加成績的時間:");scanf(&q

11、uot;%ld",&si.a);if(si.no!=0)文案大全實用文檔fprintf(fp,"%d %-4s %.1f %ldn",si.no,,si.cscore,si.a); while(si.no!=0);fclose(fp);void output()/學生全部信息輸出if(fp=fopen("out.dat","r")=NULL)printf("Cannot open the file!n");printf("ttt 全部的學生信息:n");k=0;w

12、hile(fscanf(fp,"%d%s%f%ld",&sk.no,,&sk.cscore,&sk.a)!=EOF) printf("ttt%dt%st%.1ft%ldn",sk.no,,sk.cscore,sk.a);k+;fclose(fp);(3)學生信息輸出函數void output()if(fp=fopen("out.dat","r")=NULL)printf("Cannot open the file!n");printf(&quo

13、t;ttt 全部的學生信息:n");k=0;while(fscanf(fp,"%d%s%f%ld",&sk.no,,&sk.cscore,&sk.a)!=EOF)printf("ttt%dt%st%.1ft%ldn",sk.no,,sk.cscore,sk.a);k+;fclose(fp);(4)修改學生信息函數void modify()char st30;int x,num;文案大全實用文檔float nu;long h;k=0;system("cls");if(fp=f

14、open("out.dat","r")=NULL)printf("Cannot open the file!n");return;while(fscanf(fp,"%d%s%f%ld",&sk.no,,&sk.cscore,&sk.a)!=EOF)k+;fclose(fp);printf(" 輸入 1 表示用學號修改,輸入2 表示用姓名修改!請選擇:n");scanf("%d",&x);if(x=1)printf(" 請

15、輸入修改成績人的學號:");scanf("%d",&num);for(i=0;i<k;i+)if(num=si.no)printf(" 請輸入修改的成績:n");scanf("%f",&nu);si.cscore=nu;printf(" 請輸入修改的時間:n");scanf("%ld",&h);si.a=h;fp=fopen("out.dat","w");for(i=0;i<k;i+)fprintf(fp,&q

16、uot;%d %s %.1f %ldn",si.no,,si.cscore,si.a); fclose(fp);printf(" 修改成功n");return;printf(" 沒有找到該生的信息!n");return;if(x=2)printf(" 請輸入修改成績人的姓名:");scanf("%s",st);for(i=0;i<k;i+)文案大全實用文檔if(strcmp(,st)=0)printf(" 請輸入修改的成績:n");scanf(&quo

17、t;%f",&nu);si.cscore=nu;printf(" 請輸入修改成績的時間:n");scanf("%ld",&h);si.a=h;fp=fopen("out.dat","w");for(i=0;i<k;i+)fprintf(fp,"%d %s %.1f %ldn",si.no,,si.cscore,si.a); fclose(fp);printf(" 修改成功n");return;printf(" 沒有找到該

18、生的信息!n");return;(5) 代碼設計和執(zhí)行結果1 . 頭文件Struct stuint no;/* 學號 */char name30; /*姓名 */float cscore; /*成績*/long a; /*時間 */;struct stu s100;/*/void input() /*輸入記錄*/void output()/* 輸出記錄 */void modify()/* 修改記錄*/2 .源程序代碼與運行結果文案大全實用文檔#include<stdio.h>#include<stdlib.h>#include<string.h>i

19、nt i,j,k,y;FILE *fp;struct stu/結構體函數的定義int no;char name30;float cscore;long a;struct stu s100;int fun()/目錄函數int n;system("cls");printf("nntttt 成績記錄薄");printf("nnttt");文案大全實用文檔for(i=0;i<33;i+)printf("*");printf("n");printf("ttt*菜單*n");pri

20、ntf("ttt* 1、創(chuàng)建學生的信息!t*n");printf("ttt* 2、輸出所有學生的信息!t*n");printf("ttt* 3、修改成績!t*n");printf("ttt* 4、查詢!t*n");printf("ttt* 5、顯示成績分段的學生信息!t*n");printf("ttt* 6、學生成績排名!t*n");printf("ttt* 7、退出成績記錄??!t*n");printf("ttt");for(i=0;i

21、<33;i+)printf("*");printf("nn");printf("nttt 請輸入選項:");scanf("%d",&n);return n;void input()/輸入學生的學號、姓名、 成績信息system("cls");文案大全實用文檔i=0;fp=fopen("out.dat","w");printf(" 請以 0 作為輸入學生學號信息的結束!n");doprintf(" 輸入學生的學號:

22、");scanf("%d",&si.no);printf(" 輸入學生的姓名:");scanf("%s",);printf(" 輸入學生的C 語言成績:");scanf("%f",&si.cscore);printf(" 輸入添加成績的時間:");scanf("%ld",&si.a);if(si.no!=0)fprintf(fp,"%d%-4s%.1f%ldn",si.no,

23、,si.csc ore,si.a);while(si.no!=0);fclose(fp);void output()/ /學生全部信息輸出if(fp=fopen("out.dat","r")=NULL)文案大全實用文檔printf("Cannot open the file!n");printf("ttt 全部的學生信息:n");k=0;while(fscanf(fp,"%d%s%f%ld",&sk.no,,&sk.cscor e,&sk.a)!=EOF)p

24、rintf("ttt%dt%st%.1ft%ldn",sk.no,,sk.cscore ,sk.a);k+;fclose(fp);void modify()/修改學生信息char st30;int x,num;float nu;long h;k=0;文案大全實用文檔system("cls");if(fp=fopen("out.dat","r")=NULL)printf("Cannot open the file!n");return;while(fscanf(fp,"%d

25、%s%f%ld",&sk.no,,&sk.cscor e,&sk.a)!=EOF)k+;fclose(fp);printf(" 輸入 1 表示用學號修改,輸入 2 表示用姓名修改!請選擇:n");scanf("%d",&x);if(x=1)printf(" 請 輸 入 修 改 成 績 人 的 學 號 : ");scanf("%d",&num);for(i=0;i<k;i+)if(num=si.no)文案大全實用文檔printf(" 請輸

26、入修改的成績:n");scanf("%f",&nu);si.cscore=nu;printf(" 請輸入修改的時間:n");scanf("%ld",&h);si.a=h;fp=fopen("out.dat","w");for(i=0;i<k;i+)fprintf(fp,"%d%s%.1f%ldn",si.no,,si.cscor e,si.a);fclose(fp);printf(" 修改成功n");retur

27、n;printf(" 沒有找到該生的信息!n");return;if(x=2)printf(" 請輸入修改成績人的姓名:");scanf("%s",st);文案大全實用文檔for(i=0;i<k;i+)if(strcmp(,st)=0)printf(" 請輸入修改的成績:n");scanf("%f",&nu);si.cscore=nu;printf(" 請輸入修改成績的時間:n");scanf("%ld",&h);si.

28、a=h;fp=fopen("out.dat","w");for(i=0;i<k;i+)fprintf(fp,"%d %s %.1f %ldn",si.no,,si.cscore,si.a);fclose(fp);printf(" 修改成功n");return;printf(" 沒有找到該生的信息!n");return;文案大全實用文檔void lookat()/學生信息查詢char st30;int x,num;k=0;system("cls");if(f

29、p=fopen("out.dat","r")=NULL)printf("Cannot open the file!n");return;while(fscanf(fp,"%d%s%f%ld",&sk.no,,&sk.cscor e,&sk.a)!=EOF)k+;printf(" 輸入 1 表示用學號查詢,輸入 2 表示用姓名查詢!請選擇:n");scanf("%d",&x);if(x=1)printf(" 請輸入查詢的學

30、號:");文案大全實用文檔.a);scanf("%d",&num);for(i=0;i<k;i+)if(num=si.no)printf("%d%s%.1f%ldn",si.no,,si.cscore,sireturn;printf(" 對不起,找不到該生!n");return;if(x=2)printf(" 請輸入查詢的姓名:");scanf("%s",st);for(i=0;i<k;i+)if(strcmp(,st)=0)文案大全實用

31、文檔printf("%d%s%.1f%ldn",si.no,,si.cscore,si .a);return;printf(" 對不起,找不到該生!n");void subsection()/學生成績分段system("cls");k=0;if(fp=fopen("out.dat","r")=NULL)printf("Cannot open the file!n");while(fscanf(fp,"%d%s%f%ld",&sk.no

32、,,&sk.cscor e,&sk.a)!=EOF)k+;printf("ttt 90 分以上學生的信息!n");文案大全實用文檔for(i=0;i<k;i+)if(si.cscore>=90)printf("ttt%d%s%.1f%ldn",si.no,,si.csco re,si.a);printf("nn");printf("ttt 80 到 89 分學生的信息!n");for(i=0;i<k;i+)if(si.cscore<90&&

33、amp;si.cscore>=80)printf("ttt%d%s%.1f%ldn",si.no,,si.csco re,si.a);printf("nn");printf("ttt 60 到 79 分學生的信息!n");for(i=0;i<k;i+)if(si.cscore>=60&&si.cscore<80)printf("ttt%d%s%.1f%ldn",si.no,,si.csco re,si.a);printf("nn"

34、;);printf("ttt 60 分以下學生的信息!n");for(i=0;i<k;i+)文案大全實用文檔if(si.cscore<60)printf("ttt%d%s%.1f%ldn",si.no,,si.csco re,si.a);printf("nn");void rank()/成績的排序struct stu t;k=0;system("cls");if(fp=fopen("out.dat","r")=NULL)printf("Ca

35、nnot open the file!n");while(fscanf(fp,"%d%s%f%ld",&sk.no,,&sk.cscor e,&sk.a)!=EOF)k+;文案大全實用文檔for(i=0;i<k;i+)for(j=i+1;j<k+1;j+)if(si.cscore<sj.cscore)t=si;si=sj;sj=t;for(i=0;i<k;i+) printf("ttt第%d名 %d %-4s %.1f %ldn",i+1,si.no,,si.cscor

36、e,si.a);void choose(int n)/目錄的選項system("cls");switch(n)case 1:input();printf("nnnnttt 是否返回?輸入1 表返回,輸入2表退出!n");scanf("%d",&y);if(y=1)choose(fun();break;case 2:output();printf("nnnnttt 是否返回?輸入1 表返回,輸入2文案大全實用文檔表退出!n");scanf("%d",&y);if(y=1)choos

37、e(fun();break;case 3:modify();printf("nnnnttt 是否返回?輸入1 表返回,輸入2表退出!n");scanf("%d",&y);if(y=1)choose(fun();break;case 4:lookat();printf("nnnnttt 是否返回?輸入1 表返回,輸入2表退出!n");scanf("%d",&y);if(y=1)choose(fun();break;case 5:subsection();printf("nnnnttt 是否返

38、回?輸入1 表返回,輸入2表退出!n");scanf("%d",&y);if(y=1)choose(fun();break;文案大全實用文檔case 6:rank();printf("nnnnttt 是否返回?輸入1 表返回,輸入2表退出!n");scanf("%d",&y);if(y=1)choose(fun();break;輸入沒有的選項,請重新輸/主函數case 7:exit(0);break;default:printf("nnttt入! n");choose(fun();void

39、 main()int n;system("cls");n=fun();choose(n);文案大全實用文檔執(zhí)行結果如圖所示:(1)菜單士r *C:J>OCDIEMTS AND SETTIHGSKI01JfficcDelmgcc. exe成績記錄薄(2)創(chuàng)建學生信息文案大全二M 、,、,、, 1 2 3 4 5 & 7一一建出改詢一霍出一一創(chuàng)視查顯學退的學物息的信生生學! 的.薄 暑錄 分*信二 二 X 二請輸入選項:實用文檔= *C:DDC01EliTS ARD SETTIfiGShKini、桌面ccDebugcc. "e,77_u RUXUJju R3盜?蠲同 七1馥時號名於苗I =暗那&嗣 M學姓娘覃姓rl于姓干顰姓中績 遍的的的成的的的成的的的成的的的成 眨生生生加生生生加生生生加生生生加 夢文率室率董ES于WW添IfBi g 以入入入入入入入入入入入入入入人入(3)退出創(chuàng)建學生信息&qu

溫馨提示

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

評論

0/150

提交評論