ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:1.20MB ,
资源ID:1077706      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1077706.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言期末程序设计报告.doc)为本站会员(星星)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

C语言期末程序设计报告.doc

1、一、实验预习报告内容 预习日期: 2013 年 5 月 27 日实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、实验预习疑问等项目。一、实验目的1掌握一维、二维数组、字符数组的定义、赋值和输入/输出的方法。2掌握数组的特点3熟悉数组有关的常用算法,如查找、排序、删除等4掌握函数的定义、声明和调用5.复习选择、循环结构程序设计二、预习问题1. 字符数组的使用应注意哪些问题?2函数的声明有何作用,如何进行函数的声明?三、实验内容编写程序实现学生成绩管理系统:1首先显示系统登陆提示,要求用户输入登陆密码,密码正确后显示学生成绩管理系统的菜单。用户根据菜单选择相应的功能并执

2、行。2成绩管理系统应实现的主要功能(但不限于以下功能)(1)从键盘输入n个学生(n的值由键盘输入,0n=50)多门(不少于3门)课程的成绩及其学号、姓名。(2)计算各科平均成绩,并输出低于平均分的学生学号、姓名、成绩。(3)能够根据用户选择,对学生总成绩从高到低排名,或从低到高排名,输出其学号、姓名和总成绩。(4)能够根据用户选择,根据学生学号或者姓名查找该生的成绩(5)统计各分数段的学生人数及比例(6)查找并输出某门课程某一分数段的学生学号、姓名及成绩实验预习1、 字符数组使用的时候要先定义,且指定数组长度,在长度定义的时候不能使用变量;若不直接指定字符数组长度,可根据需要直接给出字符的元素

3、。2、 在函数调用前声明,是为了让使用调用函数的位置认识被调用的函数。函数包括函数首部和函数体,函数首部又包括函数类型、函数名、形参、有的还包括存储方式等,函数体是函数实现的具体功能。函数体包括了声明部分和语句部分。声明部分:在这里主要用到数学函数,函数库应为:math.h、stdlib.h、string.h、float.h。3、 C语言中函数的运用,除了main()、scanf()、printf()比较常见简单的函数,制作学生成绩单应包括sort()、average()、search()等等函数,使菜单选择更为多样,简洁。复习循环语句if、do-while的运用,在用户进行选择的时候可使用s

4、witch语句。4、 熟悉构造数组类型,了解所有元素的数据类型都是相同的。定义数组名时应注意数组长度需是确定的。数组名作为函数参数时,实参和形参都应为数组名,应该在主调函数和被调函数中分别定义数组。实验预习评分:二、实验原始(数据)记录 实验时间: 2013 年 6 月 1 日(星期 第 节) 实验同组人:徐雅妤、谢颖婷、黄伟如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张)。#include #include#include#include#include#define e 3#define z 100int menu();void i

5、nput(float a5020,char mz5020,int *n);void output(float a5020,char mz5020,int *n);void sort(float a5020,char mz5020,int *n);void ave(float a5020,char mz5020,int *n);void search(float a5020,char mz5020,int *n);void qsort(float a5020,char mz5020,int *n);void sect(float a5020,char mz5020,int *n);void se

6、archoutput(float a5020,char mz5020,int *n);void wait();void main() /设置输入密码界面char mz5020,cz5020,pass_strz; float a5020,av,sum,l,y; int i,j,n,x,k,d,low,high,mid,m,c,g,h,xh,choose,t=0;printf(*学生成绩管理系统*nn); while(1)printf(tt请用户输入登录密码:);gets(pass_str);if(strcmp(pass_str,password)!=0)printf(ntt密码输入错误,请在输入

7、一遍!n);elsebreak;t+;sum=0.0; dochoose=menu(); if(choose=0) break;switch(choose) case 1: input(a,mz,&n);wait();break;case 2: output(a,mz,&n);wait();break;case 3: sort(a,mz,&n);wait();break;case 4: ave(a,mz,&n);wait();break; case 5: search(a,mz,&n);wait();break;case 6: qsort(a,mz,&n);wait();break;case

8、7: sect(a,mz,&n);wait();break;case 8:searchoutput(a,mz,&n);wait();break;while(1);/=menu=int menu() int ch;system(cls);printf(n);printf(-学生成绩管理系统v3.0-n);printf(n);printf(1.成绩输入n); printf(2.成绩输出n);printf(3.成绩排序n); printf(4.平均分n);printf(5.查找n);printf(6.各科目成绩排序n);printf(7.各分数段的学生人数及比例n);printf(8.查找并输出某课

9、程某分数段的学生成绩n);printf(0.退出n); printf(n); printf(-学生成绩管理系统v3.0-n); printf(请输入你的选择,选择0则退出);scanf(%d,&ch);return ch;/=input=/输入学生的成绩void input(float a5020,char mz5020,int *n) int j,i;printf(请输入班级人数:);scanf(%d,n);getchar();printf(n);for(i=0;i(*n);i+) printf(请输入第%d位学生的姓名:,i+1); gets(mzi);printf(请输入第%d位学生的学

10、号:,i+1); scanf(%f,&ai0); getchar();printf(请分别输入第%d位学生语文、数学、英语的成绩:,i+1);for(j=1;j=e;j+)scanf(%f,&aij);getchar();printf(n);/=output=/输出学生的成绩void output(float a5020,char mz5020,int *n) int i,j;int m; for(i=0;i(*n);i+) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 语文、数学、英语成绩分别是:);aie+1=0;for

11、 (j=1;j=e;j+)printf(%0.1f ,aij);aie+1=aie+1+aij; printf(%总分数是:%0.1fn,aie+1);/=sort=/对学生成绩大小进行排序void sort(float a5020,char mz5020,int *n)int i,j,m,k,d,l,x,g,b,c;printf(由小到大排列,输入1,由大到小排列,输入2:);scanf(%d,&x); if(x=1) for(k=0;k(*n)-1;k+)for(i=0;iai+1e+1)l=aie+1;aie+1=ai+1e+1;ai+1e+1=l;d=ai0;ai0=ai+10;ai+

12、10=d;g=ai1;ai1=ai+11;ai+11=g;b=ai2;ai2=ai+12;ai+12=b;c=ai3;ai3=ai+13;ai+13=c;printf(由低到高排列分数:n);for(i=0;i(*n);i+)m=ai0;printf(名次 %d ,i+1); printf(姓名:%s ,mz(m-1); printf( 学号:%0.0f ,ai0);printf(语文、数学、英语成绩分别是:);for (j=1;j=e;j+)printf( 成绩:%0.1f,aij);printf( 总成绩是:%0.1fn,aie+1);else if(x=2)for(k=0;k(*n)-1

13、);k+)for(i=0;i(*n)-1);i+)if(aie+1ai+1e+1)l=aie+1;aie+1=ai+1e+1;ai+1e+1=l;d=ai0;ai0=ai+10;ai+10=d;g=ai1;ai1=ai+11;ai+11=g;b=ai2;ai2=ai+12;ai+12=b;c=ai3;ai3=ai+13;ai+13=c;printf(由高到低排列分数:n);for(i=0;i(*n);i+)m=ai0;printf( 名次 %d,i+1);printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf(语文、数学、英语成绩分别是:);for

14、 (j=1;j=e;j+)printf( %0.1f ,aij);printf(总成绩是:%0.1fn,aie+1);else printf(输入有误!);printf(n);/=ave=/算出学生成绩总分的平均分void ave(float a5020,char mz5020,int *n)int i,j,m,cho;float av,sum;printf(求总分数的平均分,输入1;求语文平均分,输入2;n 求数学平均分,输入3;求英语平均分,输入4:n);scanf(%d,&cho);if(cho=1)sum=0;for(i=0;i(*n);i+)sum=sum+aie+1;av=sum/

15、(*n);printf(n班级平均分为:%0.1fn,av);printf(n低于平均分的学生有:n);for(i=0;i*n;i+)if(aie+1av) m=ai0; printf(姓名:%s ,mz(m-1);printf( 学号:%0.0f ,ai0);printf(语文、数学、英语成绩分别是:);for(j=1;j=e;j+)printf(%0.1f ,aij);printf(总分是:%0.1fn,aie+1);else if(cho=2)sum=0;for(i=0;i(*n);i+)sum=sum+ai1;av=sum/(*n);printf(n班级语文平均分为:%0.1fn,av

16、);printf(n低于平均分的学生有:n);for(i=0;i*n;i+)if(ai1av) m=ai0; printf(姓名:%s ,mz(m-1);printf( 学号:%0.0f ,ai0);printf(语文、数学、英语成绩分别是:);for(j=1;j=e;j+)printf(%0.1f ,aij);printf(总分是:%0.1fn,aie+1);else if(cho=3)sum=0;for(i=0;i(*n);i+)sum=sum+ai2;av=sum/(*n);printf(n班级平均分为:%0.1fn,av);printf(n低于平均分的学生有:n);for(i=0;i*

17、n;i+)if(ai2av) m=ai0; printf(姓名:%s ,mz(m-1);printf( 学号:%0.0f ,ai0);printf(语文、数学、英语成绩分别是:);for(j=1;j=e;j+)printf(%0.1f ,aij);printf(总分是:%0.1fn,aie+1);else if(cho=4)sum=0;for(i=0;i(*n);i+)sum=sum+ai3;av=sum/(*n);printf(n班级平均分为:%0.1fn,av);printf(n低于平均分的学生有:n);for(i=0;i*n;i+)if(ai3av) m=ai0; printf(姓名:%

18、s ,mz(m-1);printf( 学号:%0.0f ,ai0);printf(语文、数学、英语成绩分别是:);for(j=1;j=e;j+)printf(%0.1f ,aij);printf(总分是:%0.1fn,aie+1);/=seareh=/根据学生的部分信息查询成绩void search(float a5020,char mz5020,int *n)int i,j,c,m,g,xh;float y;char cz20;printf(按总分数查找,请输入1;按学号查找,请输入2;按姓名查找,请输入3:) ;scanf(%d,&c);if(c=1) printf(请输入要查找的分数:)

19、; scanf(%f,&y); for(i=0;i(*n);i+) if(y=aie+1) m=ai0; printf(姓名:%s ,mz(m-1); printf( 学号:%0.0f ,ai0); printf(语文、数学、英语成绩分别是:); for(j=1;j=e;j+) printf(%0.1f ,aij); printf( 总成绩是:%0.1fn,aie+1); break; printf(n);else if(c=2) printf(请输入要查找的学号:); scanf(%d,&xh); for(i=0;i*n;i+) if(xh=ai0) m=ai0; printf(姓名:%s

20、,mz(m-1); printf( 学号:%0.0f ,ai0); printf( 语文、数学、英语成绩分别是:); for(j=1;j=e;j+) printf(%0.1f ,aij); printf(总分数是:%0.1f,aie+1); break; printf(n);else if(c=3) printf(请输入要查找的姓名:); scanf(%s,cz ); for(i=0;i*n;i+) if(strcmp(cz,mzi)=0)printf(姓名:%s,mzi);for(g=0;g(*n);g+) if(ag0=i+1) printf( 学号:%0.0f ,ag0); printf

21、( 语文、数学、英语成绩分别是:); for(j=1;j=e;j+) printf(%0.1f ,agj); printf(总分数是:%0.1f n,age+1); break; /=qsort=/各科的成绩排序void qsort(float a5020,char mz5020,int *n)int i,j,m,k,d,l,x;printf(语文成绩按大到小排序,输入1,数学成绩按大到小排序,输入2:,英语成绩按大到小排序,输入3:);scanf(%d,&x); if(x=1) for(k=0;k(*n)-1);k+)for(i=0;i(*n)-1);i+)if(ai1ai+11)l=ai1

22、;ai1=ai+11;ai+11=l;d=ai0;ai0=ai+10;ai+10=d;printf(由高到低排列分数:n);for(i=0;i(*n);i+)m=ai0;printf( 名次 %d,i+1);printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf(语文成绩是:%0.1f ,ai1);printf(n);else if(x=2)for(k=0;k(*n)-1);k+)for(i=0;i(*n)-1);i+)if(ai2ai+12)l=ai2;ai2=ai+12;ai+12=l;d=ai0;ai0=ai+10;ai+10=d;print

23、f(由高到低排列分数:n);for(i=0;i(*n);i+)m=ai0;printf( 名次 %d,i+1);printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf(数学成绩是:%0.1f ,ai2);printf(n);else if(x=3)for(k=0;k(*n)-1);k+)for(i=0;i(*n)-1);i+)if(ai3ai+13)l=ai3;ai3=ai+13;ai+13=l;d=ai0;ai0=ai+10;ai+10=d;printf(由高到低排列分数:n);for(i=0;i(*n);i+)m=ai0;printf( 名次

24、%d,i+1);printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf(英语成绩是: %0.1f ,ai3);printf(n);else printf(输入有误!);printf(n);/=section(分段)=void sect(float a5020,char mz5020,int *n)int i,j,a1,a2,a3,a4,a5; for(j=1;j=e;j+)if(j=1)printf(语文科目各个分数段分布如下:n);else if(j=2) printf(数学科目各个分数段分布如下:n);else printf(英语科目各个分数段

25、分布如下:n);a1=a2=a3=a4=a5=0;for(i=0;ie;i+)if(aij=59)a1+=1;else if(60=aij&aij=69)a2+=1;else if(70=aij&aij=79)a3+=1;else if(80=aij&aij=89)a4+=1;else a5+=1;printf(60分以下的有%d人 占比例是%.1fn60分到69分有%d人 占比例是%.1fn70分到79分有%d人 占比例是%.1fn80分到89分有%d人 占比例是%.1fn90分以上的有%d人 占比例是%.1fnn,a1,a1/3.0,a2,a2/3.0,a3,a3/3.0,a4,a4/3.

26、0,a5,a5/3.0);/=searchoutput=void searchoutput(float a5020,char mz5020,int *n)int k,g,m,i;printf(查询语文科目分数段,输入1 查询数学分数段,输入2 查询英语分数段,输入3 n);scanf(%d,&k);if(k=1)/第一门语文科目分段学生成绩输出printf(查询分数段60分以下的,输入1n查询分数段60到69分,输入2n查询分数段70到79分,输入3n查询分数段80到89分,输入4n查询分数段90到100分,输入5n); scanf(%d,&g);switch(g)case 1:printf(

27、n分数段60分以下的:n);for(i=0;i(*n);i+) if(ai160) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai1); ;break;case 2:printf(n分数段60到69分的:n);for(i=0;i(*n);i+) if(60=ai1&ai169) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai1); ;break;case 3:printf(n分数段70到79分的:n);for(i

28、=0;i(*n);i+) if(70=ai1&ai179) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai1); ;break;case 4:printf(n分数段80到89分的:n);for(i=0;i(*n);i+) if(80=ai1&ai189) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai1); ;break;case 5:printf(n分数段90到100分的:n);for(i=0;i(*n);i+

29、) if(90=ai1&ai1=100) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai1); ;break;default: printf(您输入有误。n);break;else if(k=2)/第二门数学科目分段学生成绩输出printf(查询分数段60分以下的,输入1n查询分数段60到69分,输入2n查询分数段70到79分,输入3n查询分数段80到89分,输入4n查询分数段90到100分,输入5n); scanf(%d,&g);switch(g)case 1:printf(n分数段60分以下的:n)

30、;for(i=0;i(*n);i+) if(ai260) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai2); ;break;case 2:printf(n分数段60到69分的:n);for(i=0;i(*n);i+) if(60=ai2&ai269) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai2); ;break;case 3:printf(n分数段70到79分的:n);for(i=0;i(*n);i+)

31、if(70=ai2&ai279) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai2); ;break;case 4:printf(n分数段80到89分的:n);for(i=0;i(*n);i+) if(80=ai2&ai289) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai2); ;break;case 5:printf(n分数段90到100分的:n);for(i=0;i(*n);i+) if(90=ai2&ai2=100) m=ai0;printf(姓名:%s,mz(m-1);printf( 学号:%0.0f ,ai0);printf( 成绩:%.1fn,ai2); ;break;default: printf(您输入有误。n);break;else if(k=3)/第三门英语科目分段学生成绩输出printf(查询分数段60分以下的,输入1n查询分数段60到69分,输入2n查询分数段70到79分,输入3n查询分数段80到89分,输入4n查询分数段90到100分,输入5n); s

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922