C语言期末程序设计报告.doc
《C语言期末程序设计报告.doc》由会员分享,可在线阅读,更多相关《C语言期末程序设计报告.doc(29页珍藏版)》请在沃文网上搜索。
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
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 程序设计 报告