![C語言學(xué)生成績查詢系統(tǒng)2_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/b64d7e47-3b00-4ce0-b75e-eb64becfba88/b64d7e47-3b00-4ce0-b75e-eb64becfba881.gif)
![C語言學(xué)生成績查詢系統(tǒng)2_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/b64d7e47-3b00-4ce0-b75e-eb64becfba88/b64d7e47-3b00-4ce0-b75e-eb64becfba882.gif)
![C語言學(xué)生成績查詢系統(tǒng)2_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/b64d7e47-3b00-4ce0-b75e-eb64becfba88/b64d7e47-3b00-4ce0-b75e-eb64becfba883.gif)
![C語言學(xué)生成績查詢系統(tǒng)2_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/b64d7e47-3b00-4ce0-b75e-eb64becfba88/b64d7e47-3b00-4ce0-b75e-eb64becfba884.gif)
![C語言學(xué)生成績查詢系統(tǒng)2_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/b64d7e47-3b00-4ce0-b75e-eb64becfba88/b64d7e47-3b00-4ce0-b75e-eb64becfba885.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)訓(xùn)目的能力目標(biāo)全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計(jì)中數(shù)組、函數(shù)、指針的操作,把編程和實(shí)際結(jié)合起來,增強(qiáng)對不同的問題運(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語言中的基本數(shù)據(jù)輸入、輸出;(2) 熟練使用C語言中的數(shù)組;(3) 熟練使用C語言中的函數(shù);(4) 熟練使用C語言中的指針;(5) 熟練使用C語言中的結(jié)構(gòu)體。實(shí)訓(xùn)內(nèi)容(過程及步驟)設(shè)計(jì)題目:學(xué)
2、生成績查詢系統(tǒng)1、基本思路:以數(shù)組為基礎(chǔ),加以函數(shù)和結(jié)構(gòu)體。然后程序分由“輸入學(xué)生成績”,“輸出學(xué)生成績”,“查詢學(xué)生成績”,“修改學(xué)生成績”, “查看成績排序”,“查看成績統(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>#define N 10/*定義結(jié)構(gòu)體*/typedef struct
3、 students /*標(biāo)記為students*/ char num10; /*學(xué)生學(xué)號*/ char name10; /*學(xué)生姓名*/ int age; /*年齡*/ char sex10; /*性別*/ float cyy; /*C語言成績*/ float computer; /*計(jì)算機(jī)成績*/ float english; /*英語成績*/ float pj; /*平均成績*/STU;STU temp;void sort(STU students,int n); /排序void save(STU students,int n);/導(dǎo)出int Locate(STU students,int
4、 n);/查詢/*-顯示菜單-*/char displaymenu() char k; system("cls"); printf(" 學(xué)生成績管理 n"); printf("-應(yīng)用菜單-n"); printf(" 1 輸入學(xué)生成績nn"); printf(" 2 輸出學(xué)生成績nn"); printf(" 3 查詢學(xué)生成績nn"); printf(" 4 修改學(xué)生成績nn"); printf(" 5 查看成績排序nn"); printf
5、(" 6 查看成績統(tǒng)計(jì)nn"); printf(" 7 保存數(shù)據(jù)nn"); printf(" 8 讀取數(shù)據(jù)nn"); printf(" 9 退出系統(tǒng)nn"); printf(" 請選擇你想進(jìn)行的操作:"); k=getchar(); return k;/*定義輸出函數(shù)*/void printheader() /*格式化輸出表頭*/ printf("nn*學(xué)生成績管理系統(tǒng)*nnn"); printf("| 學(xué)號| 姓名 | 年齡| 性別| C語言成績|計(jì)算機(jī)成績| 英
6、語成績| 平均成績| 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 students ,int *n) int i=0; syste
7、m("cls"); printf(" n"); printf(" 請輸入學(xué)生信息 n"); printf(" 退出請?jiān)趯W(xué)生號處輸入:0 n"); printf("請輸入學(xué)生學(xué)號:n "); scanf("%s",studentsi.num); while(strcmp(studentsi.num,"0") )/當(dāng)輸入的學(xué)號為時(shí)結(jié)束輸入 printf("請輸入學(xué)生姓名:n "); scanf("%s",students
8、); printf("*nnn"); printf("請輸入學(xué)生年齡:n "); scanf("%d",&studentsi.age); printf("*nnn"); printf("請輸入學(xué)生性別:n"); scanf("%s",studentsi.sex); printf("*nnn"); printf("請輸入C語言成績:n "); scanf("%f",&studentsi.cy
9、y); printf("*nnn"); printf("請輸入計(jì)算機(jī)成績:n "); scanf("%f",&puter); printf("*nnn"); printf("請輸入英語成績:n "); scanf("%f",&studentsi.english); printf("*nnn"); studentsi.pj=(studentsi.cyy+puter+studentsi.eng
10、lish)/3; printf("學(xué)生平均成績: %-8.0fn",studentsi.pj); i+; printf("*nnn"); printf("請輸入學(xué)生學(xué)號:n "); scanf("%s",studentsi.num); *n=i; save(students ,i); return i; /*查詢學(xué)生信息函數(shù)*/int Locate(STU students,int n) int k,m=-1; char num10,name20; int i=0; system("cls");
11、 printf(" 退出請輸入:0 n"); 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(">>學(xué)生學(xué)號:%sn*學(xué)生姓名:%sn*學(xué)生年齡:%dn*學(xué)生性別:%
12、sn>C語言成績:%-8.0fn>計(jì)算機(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"); getchar(); else if(k=2)
13、printf("請輸入你要查詢的學(xué)生姓名:n"); scanf("%s",name); while(i<n) if(strcmp(,name)=0) /*若找到姓名*/ printf("學(xué)生學(xué)號:%sn學(xué)生姓名:%sn學(xué)生年齡:%dn學(xué)生性別:%sn學(xué)生C語言成績:%-8.0fn計(jì)算機(jī)成績:%-8.0fn英語成績:%-8.0fn平均成績:%-8.0fn",studentsi.num,,studentsi.age,studentsi.sex,studentsi.cyy,stu
14、puter,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("cls"); /清屏 if(n=0) /*表示沒有學(xué)生信息記錄*/ printf("n沒有學(xué)生記錄!n"); printf("
15、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(" n退出請輸入:0 n"); printf("n-not found!-n"); getchar(); return ; system("c
16、ls"); printf("修改學(xué)生信息"); 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
17、(" 年齡: "); scanf("%d",&studentsi.age); printf(" 性別: "); scanf("%s",studentsi.sex); printf(" C語言: "); scanf("%f",&studentsi.cyy); printf(" 英語: "); scanf("%f",&studentsi.english); printf(" 計(jì)算機(jī): "); sc
18、anf("%f",&puter); studentsi.pj=(studentsi.cyy+studentsi.english+puter)/3; printf("平均成績: %-9.0fn",studentsi.pj); save(students ,n); printf("n-修改成功!-n"); else printf("not found!n"); getchar();/*學(xué)生成績排序子程序*/ void sort(STU students,int
19、 n) int i,j,a,b,c,d,e,f,k; float p; printf(" n退出請輸入:0 n"); printf("成績排序方式選擇: 1.按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;
20、 studentsj+1=temp; else if(k=2)/*英語用冒泡法*/ for(a=0; a<n-1; a+) c=a; for(b=a+1; b<n; b+) if(studentsb.cyy>studentsc.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;
21、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ù)在各等級的人數(shù)子程序*/void Tongji(STU students,int n) int count6085=0,count85=0,count60=0; int i=0; system("cls"); printf(" n退出請
22、輸入:0 n"); input(students,n);i=0;while(i<n) if(studentsi.pj>85) count85+;i=i+1;continue; /*平均成績=>85*/ if(studentsi.pj>=60&&studentsi.pj<=85) count6085+;i=i+1;continue; /*60<平均成績<85*/ if(studentsi.pj<60) count60+;i=i+1;continue; /*平均成績<60*/printf("n*統(tǒng)計(jì)結(jié)果*nn
23、");printf("平均成績高于分的人數(shù):%d n",count85);printf(" n");printf("平均成績在分和分之間的人數(shù):%d n",count6085);printf(" n");printf("平均成績低于分的人數(shù):%d n",count60);printf(" n");printf("nn*統(tǒng)計(jì)結(jié)束*");getchar();/*導(dǎo)出或保存數(shù)據(jù)*/void save(STU students,int n) FILE*
24、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(&studentsi,sizeof(STU),1,fp)=1)/*每次寫一條記錄或一個(gè)結(jié)構(gòu)數(shù)組元素至文件*/ continue; else break; if(i>0) getchar(); printf("nn*共導(dǎo)出%d個(gè)
25、學(xué)生信息*n",i); getchar(); else system("cls"); printf("*沒有信息導(dǎo)出*n"); getchar(); fclose(fp); /*關(guān)閉此文件*/*導(dǎo)入數(shù)據(jù)*/void Read(STU students,int * n) FILE* fp; int i=0; fp=fopen("students","rb");/*以只讀方式打開一個(gè)已有的二進(jìn)制文件*/ if(fp=NULL) /*打開文件失敗*/ printf("n*打開文件錯(cuò)誤!*n"
26、); exit(0); for(i=0;i<N;i+) if(fread(&studentsi,sizeof(STU),1,fp)=1)/*每次讀一條記錄或一個(gè)結(jié)構(gòu)數(shù)組元素至文件*/ continue; else break; *n=i; if(i>0) printf("nn*共導(dǎo)入:%d 個(gè)學(xué)生信息*n",i); getchar(); else system("cls"); printf("*沒有信息導(dǎo)入!*n"); getchar(); getchar(); fclose(fp); /*關(guān)閉此文件*/*主函數(shù)*
27、/void main() STU studentsN; int n; char s13,s23="1" int i,k; printf("nn"); printf("*n"); printf(" < 歡迎使用本軟件> nn"); printf(" <版本: 修改版> nnn"); printf(" <姓名>:邢曾智 <班級>: 09511002 <學(xué)號>:0951100201n"); printf(" n&
28、quot;); printf("*n"); printf("nn"); for(i=0;i<3;i+) printf("n請輸入密碼:"); gets(s1); if(strcmp(s1,s2)=0) break; else printf("n>密碼錯(cuò)誤,請重新輸入"); if(i>2) printf("n您已連續(xù)次輸錯(cuò),系統(tǒng)將退出!n"); exit(0); else while(1) k=displaymenu(); switch(k) case '1' :
29、 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,n);break; case '6' : Read(students,&n);Tongji(students,n); break; case '7' : save(students,n) ;break; case '8' : Read(studen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借錢補(bǔ)充合同范本寫
- 倉儲(chǔ)送貨批發(fā)合同范例
- 一次合同范本
- 關(guān)于轉(zhuǎn)讓車輛合同范本
- 勞務(wù)派遣保潔合同范本
- 產(chǎn)權(quán)經(jīng)紀(jì)合同范本
- 出租兒童書架合同范例
- 2025年度化工產(chǎn)品綠色包裝設(shè)計(jì)與采購合同
- 修車搬運(yùn)服務(wù)合同范本
- 2025年精煉銅線項(xiàng)目投資可行性研究分析報(bào)告
- 2025年熱管換熱氣行業(yè)深度研究分析報(bào)告
- 華為采購質(zhì)量優(yōu)先及三化一穩(wěn)定推進(jìn)
- 職業(yè)學(xué)院學(xué)生晚出、晚歸、不歸管理辦法
- 2025年高三歷史高考第二輪復(fù)習(xí)知識梳理中國史部分復(fù)習(xí)提綱
- 2025山東能源集團(tuán)中級人才庫選拔高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《安利蛋白質(zhì)粉》課件
- 護(hù)理三基三嚴(yán)習(xí)題+參考答案
- 新員工入職登記表模板表格(標(biāo)準(zhǔn)版)
- 劉潤年度演講2024
- 燃?xì)饨?jīng)營安全重大隱患判定標(biāo)準(zhǔn)課件
- 統(tǒng)編版語文八年級下冊全冊大單元整體教學(xué)設(shè)計(jì)表格式教案
評論
0/150
提交評論