04任务四用数组实现学生成绩管理系统

上传人:ldj****22 文档编号:48423737 上传时间:2018-07-15 格式:PPT 页数:83 大小:306KB
返回 下载 相关 举报
04任务四用数组实现学生成绩管理系统_第1页
第1页 / 共83页
04任务四用数组实现学生成绩管理系统_第2页
第2页 / 共83页
04任务四用数组实现学生成绩管理系统_第3页
第3页 / 共83页
04任务四用数组实现学生成绩管理系统_第4页
第4页 / 共83页
04任务四用数组实现学生成绩管理系统_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《04任务四用数组实现学生成绩管理系统》由会员分享,可在线阅读,更多相关《04任务四用数组实现学生成绩管理系统(83页珍藏版)》请在金锄头文库上搜索。

1、04任务四 用数组实现学生成绩 管理系统 l学习情境前面部分中用do-while循环结构搭建了学生成绩 管理系统的整个框架,但由于所学知识点有限, 在执行菜单选项功能时,只能输出对应菜单项的 编号,不能实现各菜单项的具体功能。本部分的 任务就是利用数组类型实现录入学生成绩、显示 学生成绩、查询学生成绩、修改学生成绩、添加 学生记录、删除学生记录、排序学生成绩的功能 。 03任务三 学生成绩管理系统主菜单 重复选择的实现 l第一部分 任务学习引导 n4.1 一维数组n4.2 二维数组n4.3 字符串与字符数组 l第二部分 模块实现:用数组实现学生成绩 管理系统4.1 一维数组l1一维数组的定义、

2、存储和引用 (1)一维数组的定义 在语言中,数组与变量相同,必须先定义后使用。 一维数组的定义形式为:类型说明符 数组名常量表达 式; 其中: 类型说明符指的是数组的数据类型,实际上也是数 组元素的数据类型,可以是任一种基本数据类型或构 造数据类型。 数组名是用户定义的标识符,因此数组名的命名要 符合标识符的命名规则,建议要做到见名知意。 方括号中的常量表达式表示数据元素的个数,也称 为数组的长度。 4.1 一维数组l1一维数组的定义、存储和引用(1)一维数组的定义 例如: int a10;定义了一个长度为10的整型数组a。即定义的数组a 中有10 个数组元素,最多存储10个数据,这10个元素

3、分别表 示为a0、a1、a2、a9,每个元素都是int类型。 float b10;定义了一个长度为10的实型数组b。即定义的数组 b中有10 个数组元素,最多存储10个数据,这10个元素分别 表示为b0、b1、b2、b9,每个元素都是float类型 。char ch20;定义了一个长度为20的字符数组ch。即定义的数 组ch中有20个数组元素,最多存储20个数据,这20个元素分 别表示为ch0、ch1、ch2、ch19,每个元素都是 char类型。 4.1 一维数组l1一维数组的定义、存储和引用 (1)一维数组的定义 对于一维数组的定义应注意以下几点: 数组的数据类型实际上是指数组元素取值的数

4、据类型。对于 同一个数组,其所有元素的数据类型都是相同的。 数组名的书写规则应符合标识符的命名规则。 在一个程序中数组名不能与其他变量名、数组名同名。 方括号中常量表达式表示数组的长度,如a5表示数组a有5 个元素。 不能在方括号中用变量来表示元素的个数,但是可以是符号 常数或常量表达式。 允许在同一个类型说明中,定义多个数组和多个变量。 例如:int a,b,c,d,k110,k220;4.1 一维数组l1一维数组的定义、存储和引用 (2)一维数组的存储数组元素代表内存中的一个存储单元。编译或运行时 ,系统在内存中为数组分配连续的存储单元存储数组 元素。例如,int a3; 定义了一个长度为

5、3的整型数组a。即 定义的数组a中有3个元素,这3个元素分别表示为 a0、a1、a2,每个元素都是int类型。在程序运 行时,系统在内存中为数组a分配3个连续的存储单 元,2B3=6B,即用6B存储数组a。4.1 一维数组l1一维数组的定义、存储和引用 (3)一维数组的引用 数组元素本质上是一种变量,其引用方法是数组名后跟一个下 标。 在程序代码中表示数组元素的一般形式为:数组名下标 如,int a3; 那么a0表示数组a中下标为0的元素,a1表示数组a中下标为1 的元素,a2表示数组a中下标为2的元素。 其中: 下标表示元素在数组中的偏移量。注意数组元素的下标都是 从0开始的。 C语言中,由

6、于系统不做下标越界检查,越界也不会报错, 因此程序中引用数组元素要注意不要越界。4.1 一维数组l1一维数组的定义、存储和引用(3)一维数组的引用 下标可以是常量、变量或表达式,但其值必须是整型类型。 例如,下述数组元素都是合法的。 a5 ai+j ai+ 在语言中对于数值数组,只能逐个地使用数组元素,而不 能一次引用整个数组。 对于被引用的数组元素,可以像普通变量一样进行其类型所 允许的所有运算。4.1 一维数组l1一维数组的定义、存储和引用 【例4-1】 存放字符的数组示例。 程序代码如下: #include main() char ch5;int i;ch0=H;ch1=e;ch2=l;

7、ch3=l;ch4=o;for(i=0;i0,那么就把tempscore赋值给score0, sum=sum+ score0,num+,再输入一个成绩赋值给tempscore,否 则输入结束。 第2次:如果tempscore0,那么就把tempscore赋值给score1, sum=sum+ score1,num+,再输入一个成绩赋值给tempscore,否 则输入结束。 第3次:如果tempscore0,那么就把tempscore赋值给score2, sum=sum+ score2,num+,再输入一个成绩赋值给tempscore,否 则输入结束。 直到输入的成绩为负。 4.1 一维数组l1

8、一维数组的定义、存储和引用由分析可知,属于重复运算,用循环结构实现。但 循环次数随机,因此用while语句实现。其中,把数 组元素的下标i作为循环变量,初值为0。循环条件为 输入的成绩大于0。循环体为tempscore赋值给 scorei,sum=sum+ scorei,num+, scanf(“%f“,i=0; while(tempscore0) scorei= tempscore;sum=sum + scorei;num+; i+;scanf(“%f“, 4.1 一维数组l1一维数组的定义、存储和引用在实现第步的过程中,定义整型变量count,初值为0,用来存放不低于 平均分的学生个数。

9、第1次:score0和平均分aver比较,如果score0大于平均分aver, count+。 第2次:score1和平均分aver比较,如果score1不小于平均分aver, count+。 第3次:score2和平均分aver比较,如果score2 不小于平均分aver, count+。 第i次:scorei-1和平均分aver比较,如果scorei-1不小于平均分aver, count+。 最后一次:scorenum -1和平均分aver比较,如果scorenum -1 不小于 平均分aver,count+。4.1 一维数组l1一维数组的定义、存储和引用由分析可知,属于重复运算,用循环结

10、构实现。以数 组元素的下标作为循环变量,初值为0,终止值为 num -1,循环变量增量为1。对应的循环体是 scorei和平均分aver比较,如果scorei大于平均 分aver,count+次数随机,因此用for语句实现。for(i=0;i=aver) count+4.1 一维数组l2一维数组的初始化给数组赋值的方法除了用赋值语句给数组元素逐个赋 值外,还可采用初始化方法赋值。 数组初始化是指 在数组定义的同时给数组元素赋初值。数组初始化的一般形式为:类型说明符 数组名常量 表达式=值,值,值; 其中,在 中的各数据值即为各数组元素的初值,各 值之间用逗号间隔。 例如,int a10= 0,

11、1,2,3,4,5,6,7,8,9 ; 等价于int a10;a0=0;a1=1;a9=9; 4.1 一维数组l 2一维数组的初始化 语言中数组初始化的说明: 可以只给部分元素赋初值。 当 中值的个数少于元素个数时,只给前面部分元素赋值。 例如,int a10=0,1,2,3,4; 等价于int a10;a0=0;a1=1;a4=4; 而未初始化的部分元 素自动赋0。即 a5=0; a6=0; a9=0; 如果只定义,而不初始化,则数组元素的值是随机的。 例如,int a10;printf(“%d,%d“,a0,a1) ; 输出的结果可能是-90 1386。 只能给元素逐个赋值,不能给数组整体

12、初始化。 例如,给十个元素全部赋1值,只能写为int a10=1,1,1,1,1,1,1,1,1,1; 而不能写为int a10=1; 4.1 一维数组l2一维数组的初始化语言中数组初始化的说明: 如给全部元素初始化,则在数组说明中,可以不给 出数组元素的个数。 例如,int a5=1,2,3,4,5; 可写为int a=1,2,3,4,5;4.1 一维数组l3一维数组的应用与冒泡排序法 【例4-4】 一维数组的输入输出。输入一个一维数组, 正序、逆序方式输出。 算法分析: 定义一个长度为5的float类型的一维数组a5。 输入一维数组a5。 正序方式输出一维数组。 逆序方式输出一维数组。 4

13、.1 一维数组l3一维数组的应用与冒泡排序法 在实现第步的过程中,数组不能作为整体进行赋值 ,只能逐个给数组元素赋值。 第1次:输入实数赋值给a0。 第2次:输入实数赋值给a1。 第3次:输入实数赋值给a2。 第i次:输入实数赋值给ai-1。 第5次:输入实数赋值给a4。4.1 一维数组l3一维数组的应用与冒泡排序法以上过程属于重复运算,用循环结构实现。把数组元 素下标作为循环变量i,初值为0,终止值为4,i的增 量为1,每次对应的循环体为输入实数赋值给ai。因 此,可以用for语句实现。for(i=0;i main() int i,j,score35;score00=87;score01=7

14、7;score02=90;score03=68;score0 4=89;score10=88;score11=99;score12=91;score13=86;score1 4=94;score20=76;score21=87;score22=77;score23=89;score2 4=88;for(i=0;i main() int i,j;int a22= 80,75,61,65 ;int b22= 8,7,6,5;int c33=1,2,1;int d33=2,1,5;int e3=1,2,3,4,5,6,7,8,9;int f22;printf(“数组a:n“);4.2 二维数组 l3二维数组的初始化 【例4-8】 初始化二维数组的程序示例。 for(i=0;i main() int i,j;int a22= 80,75,61,65 ;int b22= 8,7,6,5;int c33=1,2,1;int d33=2,1,5;int e3=1,2,3,4,5,6,7,8,9;int f22;printf(“数组a:n“);4.2 二维数组 l3二维数组的初始化 【例4-8】 初始化二维数组的程序示例。 #include main() int i,j;int a22= 80,75,61,65 ;int b2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号