C語言學(xué)生成績查詢系統(tǒng)_第1頁
C語言學(xué)生成績查詢系統(tǒng)_第2頁
C語言學(xué)生成績查詢系統(tǒng)_第3頁
C語言學(xué)生成績查詢系統(tǒng)_第4頁
C語言學(xué)生成績查詢系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、學(xué)生成績查詢系統(tǒng)1、基本思路:以數(shù)組為基礎(chǔ),加以函數(shù)和結(jié)構(gòu)體。然后程序分由“輸入學(xué)生成績”,“輸出學(xué)生成績”,“查查看成績統(tǒng)計保存數(shù)據(jù)詢學(xué)生成績”,“修改學(xué)生成績”,“查看成績排序”,取數(shù)據(jù)”等等這幾大部分組成。這五部分各自用一個程序列出,然后在用其他函數(shù)將他們連接起來。2、程序:#include<stdafx.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10/*定義結(jié)構(gòu)體*/typedefstructstudents/

3、*標(biāo)記為students*/charnum10;/*學(xué)生學(xué)號*/charname10;/*學(xué)生姓名*/intage;/*年齡*/charsex10;/*性別*/floatcyy;/*C語言成績*/floatcomputer;/*計算機(jī)成績*/floatenglish;/*英語成績*/floatpj;/*平均成績*/STU;STUtemp;voidsort(STUstudents,intn);/排序voidsave(STUstudents,intn);/導(dǎo)出intLocate(STUstudents,intn);/查詢/*顯示菜單*/chardisplaymenu()char k;system(

4、"cls");printf( "n" );printf( "n"printf( "printf( "printf( "printf( "printf( "printf( "學(xué)生成績管理應(yīng)用菜單);1 輸入學(xué)生成績nn");2 輸出學(xué)生成績nn");3 查詢學(xué)生成績nn");4 修改學(xué)生成績nn");5 查看成績排序nn");6 查看成績統(tǒng)計nn");printf(printf( "printf(printf

5、( "k=getchar();7 保存數(shù)據(jù)nn" );8 讀取數(shù)據(jù) nn" );9 退出系統(tǒng)nn" );請選擇你想進(jìn)行的操作 :");return k;/* 定義輸出函數(shù) */void printheader() /* 格式化輸出表頭*/printf("nn*學(xué)生成績管理系統(tǒng)*nnn");printf("|學(xué)號|姓名|年齡|性別|C語言成績|計算機(jī)成績|英語成績|平均成績|n");voidprintdata(STUpp)/*格式化輸出表中數(shù)據(jù)*/STU*p;p=&pp;printf("|

6、%-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é)生信息*/intadd(STUstudents,int*n)inti=0;system("cls");printf("n");printf("請輸入學(xué)生信息n");printf("退出請在學(xué)生號處輸入:0n");pri

7、ntf("請輸入學(xué)生學(xué)號:n");scanf("%s",studentsi.num);while(strcmp(studentsi.num,"0")/當(dāng)輸入的學(xué)號為時結(jié)束輸入printf("請輸入學(xué)生姓名:n");scanf("%s",);printf(II*nnn);printf("請輸入學(xué)生年齡:n");scanf("%d",&studentsi.age);printf(II*nnn);printf("請輸

8、入學(xué)生性別:n");scanf("%s",studentsi.sex);printf(”*nnn);printf("請輸入C語言成績:n");scanf("%f",&studentsi.cyy);printf(”*nnn);printf("請輸入計算機(jī)成績:n");scanf("%f",&puter);printf(”*nnn);printf("請輸入英語成績:n");scanf("%f",&st

9、udentsi.english);printf(”*nnn);studentsi.pj=(studentsi.cyy+puter+studentsi.english)/3;printf("學(xué)生平均成績:%-8.0fn",studentsi.pj);i+;printf(”*nnn);printf("請輸入學(xué)生學(xué)號:n");scanf("%s",studentsi.num);*n=i;save(students,i);returni;/*查詢學(xué)生信息函數(shù)*/intLocate(STUstudents,intn)i

10、ntk,m=-1;charnum10,name20;inti=0;system("cls");printf("退出請輸入:0n");printf("請選擇以什么方式查詢:1).按學(xué)生學(xué)號查詢2).按學(xué)生姓名查詢n");scanf("%d",&k);if(k=1)printf("請輸入你要查詢的學(xué)生學(xué)號:n");scanf("%s",num);while(i<n)if(strcmp(studentsi.num,num)=0)/*若找到學(xué)號*/printf(&quo

11、t;>>學(xué)生學(xué)號:sn*學(xué)生姓名:%sn學(xué)生年齡:dn*學(xué)生性別:sn>C語言成績:-8.0fn>計算機(jī)成績:%-8.0fn>>英語成績:%-8.0fn>>平均成績:-8.0fn",studentsi.num,,studentsi.age,studentsi.sex,studentsi.cyy,puter,studentsi.english,studentsi.pj);m=i;getchar();break;i+;if(i>=n)printf("沒有所找學(xué)生信息n&q

12、uot;);getchar();elseif(k=2)printf("請輸入你要查詢的學(xué)生姓名:n");scanf("%s",name);while(i<n)if(strcmp(,name)=0)/*若找到姓名*/printf("學(xué)生學(xué)號:s信生女4名:s浮生年齡:dn學(xué)生fiE別:sr#生C語言成績:-8.0fn計算機(jī)成績:-8.0fn英語成績:-8.0fn平均成績:-8.0fn",studentsi.num,,studentsi.age,studentsi.sex,st

13、udentsi.cyy,puter,studentsi.english,studentsi.pj);m=i;getchar();break;i+;if(i>=n)printf("沒有所找學(xué)生信息n");returnm;/*返回一個根m便于修改學(xué)生信息*/getchar();/*顯示函數(shù)*/voidinput(STUstudents,intn)inti;system("cls");/清屏if(n=0)/*表示沒有學(xué)生信息記錄*/printf("n沒有學(xué)生記錄!n");printf("nn&quo

14、t;);printheader();/*輸出表格頭部*/i=0;while(i<n)/*逐條輸出數(shù)組中存儲的學(xué)生信息*/printdata(studentsi);i+;getchar();/*修改子程序*/voidModify(STUstudents,intn)inti;if(n<=0)system("cls");printf("n退出請輸入:0n");printf("nnotfound!n");getchar();return;system("cls");printf("修改學(xué)生信息&quo

15、t;);input(students,n);i=Locate(students,n);/*查詢到該數(shù)組元素,并返回下標(biāo)值*/if(i!=-1)/*若i!=,表明已經(jīng)找到該數(shù)組元素*/printf("請輸入新的學(xué)生信息:n");printf("學(xué)號:");scanf("%s",studentsi.num);printf("姓名:");scanf("%s",);printf("年齡:");scanf("%d",&studen

16、tsi.age);printf("性別:");scanf("%s",studentsi.sex);printf("C語言:");scanf("%f",&studentsi.cyy);printf("英語:");scanf("%f",&studentsi.english);printf("計算機(jī):");scanf("%f",&puter);studentsi.pj=(studentsi.c

17、yy+studentsi.english+puter)/3;printf("平均成績:%-9.0fn",studentsi.pj);save(students,n);printf("n修改成功!n");elseprintf("notfound!n");getchar();/*學(xué)生成績排序子程序*/voidsort(STUstudents,intn)inti,j,a,b,c,d,e,f,k;floatp;printf("n退出請輸入:0n");printf("成績排序方式選擇:1.

18、按C語言2.按英語3.按平均n");scanf("%d",&k);if(k=1)/*用選擇法對C語言排序*/for(i=0;i<n;i+)for(j=0;j<n-1;j+)if(studentsi.english<studentsj+1.english)temp=studentsi;studentsi=studentsj+1;studentsj+1=temp;elseif(k=2)/*英語用冒泡法*/for(a=0;a<n-1;a+)c=a;for(b=a+1;b<n;b+)if(studentsb.cyy>studen

19、tsc.cyy)c=b;if(c!=a)temp=studentsa;studentsa=studentsc;studentsc=temp;if(k=3)/*平均成績用插入法*/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("

20、n排序完成!n");/*統(tǒng)計學(xué)生分?jǐn)?shù)在各等級的人數(shù)子程序*/voidTongji(STUstudents,intn)intcount6085=0,count85=0,count60=0;inti=0;system("cls");printf("n退出請輸入:0n");input(students,n);i=0;while(i<n)count85+;i=i+1; continue ; /*平均成績 =>85*/count6085+;i=i+1; continue ;/*60< 平均成績 <85*/count60+;i=i+

21、1; continue ;/*平均成績 <60*/if(studentsi.pj>85)if(studentsi.pj>=60&&studentsi.pj<=85)if(studentsi.pj<60)nrin+f/"n*統(tǒng)計結(jié)果*nn");printf("printf("printf("printf("printf("printf("平均成績高于分的人數(shù):%dn",count85);平均成績在分和分之間的人數(shù):%dn",count6085);平均成

22、績低于分的人數(shù):%dn",count60);n");n");n");printf( "nn*統(tǒng)計結(jié)束*");getchar();/*導(dǎo)出或保存數(shù)據(jù)*/voidsave(STUstudents,intn)FILE*fp;inti=0;fp=fopen("students","wb+");/*以讀寫方式打開創(chuàng)建一個二進(jìn)制文件*/if(fp=NULL)/*打開文件失敗*/printf("n*打開文件錯誤!*n");return;for(i=0;i<n;i+)*/if(fwri

23、te(&studentsi,sizeof(STU),1,fp)=1)/*每次寫一條記錄或一個結(jié)構(gòu)數(shù)組元素至文件continue;elsebreak;if(i>0)getchar();printf("nn*共導(dǎo)出階學(xué)生信息*n",i);getchar();elsesystem("cls");printf("*沒有信息導(dǎo)出*n");getchar();fclose(fp);/*關(guān)閉此文件*/*導(dǎo)入數(shù)據(jù)*/voidRead(STUstudents,int*n)FILE*fp;inti=0;fp=fopen("stud

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

25、ot;);printf( "* 沒有信息導(dǎo)入!*n" );getchar();getchar();fclose(fp);/*關(guān)閉此文件*/*主函數(shù)*/voidmain()STUstudentsN;intn;chars13,s23="1"inti,k;printf("nn");printf(n*n");printf("人<歡迎使用本軟件>Nn'n");printf("人<版本:修改版>Nnnn");printf("A<姓名:邢曾智<班

26、級:09511002<學(xué)號>:0951100201人坨");Nn");printf("人printf(n*n");printf("nn");for(i=0;i<3;i+)printf("n請輸入密碼:");gets(s1);if(strcmp(s1,s2)=0)break;elseprintf("n>密碼錯誤,請重新輸入");if(i>2)printf("n您已連續(xù)次輸錯,系統(tǒng)將退出!n");exit(0);elsewhile(1)k=displ

27、aymenu();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;case'4':Read(students,&n);Modify(students,n);break;case'5':Read(students,&n);sort(students

28、,n);break;case'6':Read(students,&n);Tongji(students,n);break;case'7':save(students,n);break;case'8':Read(students,&n);break;case'9':system("cls");printf("n*謝謝您的使用*n");exit(0);break;);getchar();getchar();default:printf("nn輸入錯誤,輸入必須是9之間的一個數(shù)字!請重

溫馨提示

  • 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

提交評論