C語(yǔ)言學(xué)生成績(jī)查詢系統(tǒng)方案_第1頁(yè)
C語(yǔ)言學(xué)生成績(jī)查詢系統(tǒng)方案_第2頁(yè)
C語(yǔ)言學(xué)生成績(jī)查詢系統(tǒng)方案_第3頁(yè)
C語(yǔ)言學(xué)生成績(jī)查詢系統(tǒng)方案_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余15頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、.實(shí)訓(xùn)目的能力目標(biāo)全面熟悉、掌握 C 語(yǔ)言基本知識(shí),掌握 C 程序設(shè)計(jì)中數(shù)組、函數(shù)、指針的操作,把編程和實(shí)際結(jié)合起來,增強(qiáng)對(duì)不同的問題運(yùn)用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問題的能力,規(guī)范編程思想,為以后在專業(yè)課程中應(yīng)用計(jì)算機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。實(shí)訓(xùn)要求:(1) 掌握 C 語(yǔ)言中的基本數(shù)據(jù)輸入、輸出;(2) 熟練使用 C 語(yǔ)言中的數(shù)組;(3) 熟練使用 C 語(yǔ)言中的函數(shù);(4) 熟練使用 C 語(yǔ)言中的指針;(5) 熟練使用 C 語(yǔ)言中的結(jié)構(gòu)體。實(shí)訓(xùn)

2、內(nèi)容(過程及步驟)設(shè)計(jì)題目:學(xué)生成績(jī)查詢系統(tǒng)1、基本思路:.專業(yè)專注.以數(shù)組為基礎(chǔ) ,加以函數(shù)和結(jié)構(gòu)體。然后程序分由 “輸入學(xué)生成績(jī) ”,輸“出學(xué)生成績(jī) ”,查詢學(xué)生成績(jī)修改學(xué)生成績(jī)查看成績(jī)排序查看成績(jī)統(tǒng)計(jì)保存數(shù)據(jù)”,“”,“”, “”,“讀取數(shù)據(jù) ”等等 這幾大部分組成。這五部分各自用一個(gè)程序列出,然后在用其他函數(shù)將他們連接起來 。2、程序:#include <stdafx.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <conio.h>#def

3、ineN 10/* 定義結(jié)構(gòu)體 */typedefstruct students/* 標(biāo)記為 students*/char num10;/* 學(xué)生學(xué)號(hào) */char name10;/* 學(xué)生姓名 */int age;/* 年齡 */charsex10;/* 性別 */float cyy;/*C 語(yǔ)言成績(jī) */float computer;/* 計(jì)算機(jī)成績(jī) */float english;/* 英語(yǔ)成績(jī) */float pj;/* 平均成績(jī) */STU;STU temp;void sort(STU students,int n); / 排序void save(STU students,int n

4、); / 導(dǎo)出int Locate(STU students,int n);/ 查詢/*-顯示菜單 -*/char displaymenu()chark;system( "cls" );printf( "學(xué)生成績(jī)管理n" );printf( "-應(yīng)用菜單 -n");printf( "1 輸入學(xué)生成績(jī)nn");printf( "2 輸出學(xué)生成績(jī) nn");.專業(yè)專注.printf( "3查詢學(xué)生成績(jī) nn");printf( "4修改學(xué)生成績(jī) nn");pr

5、intf( "5查看成績(jī)排序 nn");printf( "6查看成績(jī)統(tǒng)計(jì) nn");printf( "7保存數(shù)據(jù) nn");printf( "8讀取數(shù)據(jù) nn" );printf( "9退出系統(tǒng) nn");printf( "請(qǐng)選擇你想進(jìn)行的操作:");k=getchar();return k;/* 定義輸出函數(shù) */void printheader()/* 格式化輸出表頭*/printf( "nn*學(xué)生成績(jī)管理系統(tǒng)*nnn");printf( "

6、| 學(xué)號(hào) |姓名| 年齡 | 性別 | C語(yǔ)言成績(jī) | 計(jì)算機(jī)成績(jī) | 英語(yǔ)成績(jī) | 平均成績(jī) | n");void printdata(STU pp)/* 格式化輸出表中數(shù)據(jù)*/STU* p;p=&pp;printf( "| %-5s|%-5s|%-4d|%-4s|%-6.0f|%-6.0f|%-5.0f|%-6.0f|n",p->num,p->name,p->age,p->sex,p->cyy,p->computer,p->english,p->pj);/* 添加學(xué)生信息 */int add(STU st

7、udents ,int*n)int i=0;system( "cls" );printf( " n");printf( "請(qǐng)輸入學(xué)生信息n");printf( " 退出請(qǐng)?jiān)趯W(xué)生號(hào)處輸入:0 n");printf( " 請(qǐng)輸入學(xué)生學(xué)號(hào):n ");scanf( "%s" ,studentsi.num);while (strcmp(studentsi.num,"0" ) ) / 當(dāng)輸入的學(xué)號(hào)為時(shí)結(jié)束輸入printf( " 請(qǐng)輸入學(xué)生姓名:n "

8、;);scanf( "%s" ,);.專業(yè)專注.printf("*nnn");printf( " 請(qǐng)輸入學(xué)生年齡 :n " );scanf( "%d" ,&studentsi.age);printf("*nnn");printf( " 請(qǐng)輸入學(xué)生性別 :n" );scanf( "%s" ,studentsi.sex);printf("*nnn");printf( " 請(qǐng)輸入 C語(yǔ)言成績(jī) :n

9、 ");scanf( "%f" ,&studentsi.cyy);printf("*nnn");printf( " 請(qǐng)輸入計(jì)算機(jī)成績(jī):n ");scanf( "%f" ,&puter);printf( "*nnn");printf( " 請(qǐng)輸入英語(yǔ)成績(jī):n ");scanf( "%f" ,&studentsi.english);printf( "*nnn");studentsi

10、.pj=(studentsi.cyy+puter+studentsi.english)/3;printf( " 學(xué)生平均成績(jī) : %-8.0fn",studentsi.pj);i+;printf( "*nnn");printf( " 請(qǐng)輸入學(xué)生學(xué)號(hào):n ");scanf( "%s" ,studentsi.num);*n=i;save(students ,i);return i;/* 查詢學(xué)生信息函數(shù)*/int Locate(STU students,int n)int k,m=-1;cha

11、r num10,name20;int i=0;system( "cls" );printf( " 退出請(qǐng)輸入 :0 n");printf( " 請(qǐng)選擇以什么方式查詢:1).按學(xué)生學(xué)號(hào)查詢2).按學(xué)生姓名查詢n" );scanf( "%d" ,&k);if(k=1)printf( "請(qǐng)輸入你要查詢的學(xué)生學(xué)號(hào):n" );scanf( "%s" ,num);while (i<n)if(strcmp(studentsi.num,num)=0)/* 若找到學(xué)號(hào) */.專業(yè)

12、專注.printf( ">> 學(xué)生學(xué)號(hào) :%sn* 學(xué)生姓名 :%sn* 學(xué)生年齡 :%dn* 學(xué)生性別 :%sn>C 語(yǔ)言成績(jī) :%-8.0fn> 計(jì)算機(jī)成績(jī) :%-8.0fn>> 英語(yǔ)成績(jī) :%-8.0fn>> 平均成績(jī):%-8.0fn" ,studentsi.num,,studentsi.age,studentsi.sex,studentsi.cyy,puter,studentsi.english,studentsi.pj);m=i;getchar();break ;

13、i+;if(i>=n)printf( " 沒有所找學(xué)生信息n" );getchar();else if(k=2)printf( "請(qǐng)輸入你要查詢的學(xué)生姓名:n" );scanf( "%s" ,name);while (i<n)if(strcmp(,name)=0)/* 若找到姓名 */ printf( "學(xué)生學(xué)號(hào) :%sn 學(xué)生姓名 :%sn 學(xué)生年齡 :%dn 學(xué)生性別 :%sn 學(xué)生 C語(yǔ)言成績(jī) :%-8.0fn 計(jì)算機(jī)成績(jī) :%-8.0fn 英語(yǔ)成績(jī) :%-8.0fn 平均成績(jī):

14、%-8.0fn" ,studentsi.num,,studentsi.age,studentsi.sex,studentsi.cyy,studentsi. computer,studentsi.english,studentsi.pj);m=i;getchar();break ;i+;if(i>=n)printf( " 沒有所找學(xué)生信息n" );return m; /* 返回一個(gè)根 m便于修改學(xué)生信息*/getchar();/* 顯示函數(shù) */void input(STU students,int n)int i;system(

15、"cls" ); / 清屏if(n=0)/* 表示沒有學(xué)生信息記錄*/.專業(yè)專注.printf( "n 沒有學(xué)生記錄 !n");printf( "nn");printheader();/* 輸出表格頭部 */i=0;while (i<n)/* 逐條輸出數(shù)組中存儲(chǔ)的學(xué)生信息*/printdata(studentsi);i+;getchar();/* 修改子程序 */void Modify(STU students,int n)int i;if(n<=0)system( "cls" );printf( &q

16、uot; n退出請(qǐng)輸入 :0 n");printf( "n-not found!-n");getchar();return ;system( "cls" );printf( " 修改學(xué)生信息 ");input(students,n);i=Locate(students,n);/* 查詢到該數(shù)組元素,并返回下標(biāo)值 */if(i!=-1)/* 若i!= ,表明已經(jīng)找到該數(shù)組元素*/printf( "請(qǐng)輸入新的學(xué)生信息: n");printf( "學(xué)號(hào) : " );scanf( "

17、%s" ,studentsi.num);printf( "姓名 : " );scanf( "%s" ,);printf( "年齡 : " );scanf( "%d" ,&studentsi.age);printf( "性別 : " );scanf( "%s" ,studentsi.sex);printf( "C語(yǔ)言 : " );scanf( "%f" ,&studentsi.cyy)

18、;printf( "英語(yǔ) : " );scanf( "%f" ,&studentsi.english);.專業(yè)專注.printf( "計(jì)算機(jī) : " );scanf( "%f" ,&puter);studentsi.pj=(studentsi.cyy+studentsi.english+puter)/3;printf( "平均成績(jī) : %-9.0fn",studentsi.pj);save(students ,n);printf

19、( "n-修改成功 !-n");elseprintf( "not found!n");getchar();/* 學(xué)生成績(jī)排序子程序*/void sort(STU students,int n)int i,j,a,b,c,d,e,f,k;float p;printf( " n退出請(qǐng)輸入 :0 n");printf( " 成績(jī)排序方式選擇: 1.按C語(yǔ)言2.按英語(yǔ)3.按平均n ");scanf( "%d" ,&k);if (k=1)/* 用選擇法對(duì) C語(yǔ)言排序 */for (i=0; i&l

20、t;n; i+)for (j=0;j<n-1;j+)if (studentsi.english<studentsj+1.english)temp=studentsi;studentsi=studentsj+1;studentsj+1=temp;else if(k=2) /* 英語(yǔ)用冒泡法 */for (a=0; a<n-1; a+).專業(yè)專注.c=a;for (b=a+1; b<n; b+)if (studentsb.cyy>studentsc.cyy)c=b;if (c!=a)temp=studentsa;studentsa=studentsc;students

21、c=temp;if(k=3)/* 平均成績(jī)用插入法*/for (d=1;d<n;d+)p=studentsd.pj;for (e=0;e<d;e+)if(studentse.pj<p)break ;if(e=d)continue ;for (f=d;f>e;f-)studentsf=studentsf-1;studentse=temp;input(students,n);/* 顯示排序后的所有記錄*/save(students ,n);printf( "n排序完成 !n");/* 統(tǒng)計(jì)學(xué)生分?jǐn)?shù)在各等級(jí)的人數(shù)子程序*/void Tongji(STU s

22、tudents,int n)int count6085=0,count85=0,count60=0;int i=0;system( "cls" );printf( " n退出請(qǐng)輸入 :0 n");input(students,n);i=0;while (i<n)if(studentsi.pj>85)count85+;i=i+1;continue ;/* 平均成績(jī) =>85*/.專業(yè)專注.if(studentsi.pj>=60&&studentsi.pj<=85)count6085+;i=i+1;continu

23、e ;/*60< 平均成績(jī) <85*/if(studentsi.pj<60)count60+;i=i+1;continue ;/* 平均成績(jī) <60*/printf( "n*統(tǒng)計(jì)結(jié)果 *nn");printf( "平均成績(jī)高于分的人數(shù):%d n",count85);printf( "n" );printf( "平均成績(jī)?cè)诜趾头种g的人數(shù):%d n",count6085);printf( "n");printf( "平均成績(jī)低于分的人數(shù):%d n",co

24、unt60);printf( "n" );printf( "nn*統(tǒng)計(jì)結(jié)束 *");getchar();/* 導(dǎo)出或保存數(shù)據(jù)*/void save(STU students,int n)FILE* fp;int i=0;fp=fopen("students" ,"wb+" );/* 以讀寫方式打開創(chuàng)建一個(gè)二進(jìn)制文件*/if(fp=NULL)/* 打開文件失敗 */printf( "n*打開文件錯(cuò)誤 !*n");return ;for (i=0;i<n;i+)if(fwrite(&s

25、tudentsi,sizeof (STU),1,fp)=1) /* 每次寫一條記錄或一個(gè)結(jié)構(gòu)數(shù)組元素至文件*/continue ;elsebreak ;if(i>0)getchar();printf( "nn*共導(dǎo)出 %d 個(gè)學(xué)生信息 *n",i);getchar();elsesystem( "cls" );.專業(yè)專注.printf( "* 沒有信息導(dǎo)出 *n");getchar();fclose(fp);/* 關(guān)閉此文件 */* 導(dǎo)入數(shù)據(jù) */void Read(STU students,int* n)FILE* fp;int

26、 i=0;fp=fopen( "students" ,"rb" );/* 以只讀方式打開一個(gè)已有的二進(jìn)制文件 */ if(fp=NULL) /* 打開文件失敗 */printf( "n*打開文件錯(cuò)誤 !*n");exit(0);for (i=0;i<N;i+)if(fread(&studentsi, sizeof (STU),1,fp)=1) /* 每次讀一條記錄或一個(gè)結(jié)構(gòu)數(shù)組元素至文件 */ continue ;elsebreak ;*n=i;if(i>0)printf( "nn* 共導(dǎo)入 :%d 個(gè)學(xué)

27、生信息 *n" ,i); getchar();else system( "cls" );printf( "*沒有信息導(dǎo)入 !*n");getchar();getchar();fclose(fp);/* 關(guān)閉此文件 */* 主函數(shù) */void main().專業(yè)專注.STUstudentsN;int n;char s13,s23= "1" ;int i,k;printf("nn");printf("*n");printf("<歡迎使用本軟件 >nn" )

28、;printf("<版本: 修改版 >nnn");printf( " <姓名 >: 邢曾智< 班級(jí) >: 09511002< 學(xué)號(hào) >:0951100201n");printf("n" );printf("*n");printf("nn");for (i=0;i<3;i+)printf( "n請(qǐng)輸入密碼 :");gets(s1);if(strcmp(s1,s2)=0)break ;elseprintf( "n&g

29、t;密碼錯(cuò)誤 ,請(qǐng)重新輸入 ");if(i>2)printf( "n 您已連續(xù)次輸錯(cuò),系統(tǒng)將退出 !n");exit(0);elsewhile (1)k=displaymenu();switch (k)case '1' : add(students,&n);break ;case '2' : Read(students,&n);input(students,n) ;break ;case '3' : Read(students,&n);Locate(students,n);break ;

30、case '4' : Read(students,&n);Modify(students,n);break ;case '5' : Read(students,&n);sort(students,n);break ;case '6' : Read(students,&n);Tongji(students,n);break ;case '7' : save(students,n) ;break ;case '8' : Read(students,&n);break ;.專業(yè)專注.case '9' : syste

溫馨提示

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

評(píng)論

0/150

提交評(píng)論