C语言程序设计高级篇.ppt

上传人:xin****828 文档编号:19957005 上传时间:2021-01-18 格式:PPT 页数:19 大小:387.37KB
返回 下载 相关 举报
C语言程序设计高级篇.ppt_第1页
第1页 / 共19页
C语言程序设计高级篇.ppt_第2页
第2页 / 共19页
C语言程序设计高级篇.ppt_第3页
第3页 / 共19页
点击查看更多>>
资源描述
C语言程序设计高级篇 第三讲 二维数组的回顾及应用、一维数组与指针的 关系、数组与指针及函数的综合应用、结构体引入 (全局变量与局部变量回顾) 主要内容 1.针对上机出现的一些问题进行分析讲解 引入:局部变量与全局变量,函数的返回值; 2.电子成绩单部分功能:二维数组、一维数组与指针与 函数的综合应用 3.数字时钟系统程序设计 :结构体数据定义及使用, 时间函数的调用 1.实验八上机出现的问题 1.上交的作业: ( 1)只有三四个同学看清楚了题意,是要写函数 ; ( 2) 16进制,与 10进制的概念不清楚。 2.实验八出现的问题: ( 1)二维数组的存放; ( 2)函数的返回值 ; ( 3)单步调试,只要这几个热键 F9(设置断点); F10(不进入函数内部的单步运行); F11(进入函数内部的单步运行)。 2.电子成绩单部分功能:二维数组 例:输入 10个学生 5门课的成绩,分别用函数实现下 列功能:计算每个学生平均分。 ( 1)问题分析 分析所需要的数据类型;(二维数组,双重循环) 函数如何定义、传递什么样的参数等。( 一般的参数传 递,还是数组的参数传递等等) ( 2)算法流程图 ( 3)源代码 #include #define NUM_STUDENT 2 #define NUM_COURSE 2 void main() /计算每个学生的平均分函数 void averageGrade(float gradeStudentNUM_STUDENTNUM_COURSE); float gradeStudentNUM_STUDENTNUM_COURSE; int i,j; printf(please input the 10 students grade :); /输入 10个学生的 5门课成绩 for(i=0;iNUM_STUDENT;i+) for(j=0;jNUM_COURSE;j+) scanf(%f, averageGrade(gradeStudent); /调用函数 宏定义:定义符号常量 没有返回参数的函数 调用的一般方式 。 /计算每个学生的平均分函数 void averageGrade(float gradeStudentNUM_STUDENTNUM_COURSE ) float sum=0,averNUM_STUDENT=0; int i,j; for(i=0;iNUM_STUDENT;i+) for(j=0;jNUM_COURSE;j+) sum=gradeStudentij+sum; averi=sum/NUM_COURSE; printf(the %d students average grade is the %5.2f .n,i,averi); 动手:计算每门课 的平均分。 2.一维数组与指针 例 :输入信息 0902班,学号为 110的这些学生的 C语 言程序设计期末成绩; 在显示器上输出这 10个学生的成绩; 找出其中的最高分及其对应学生的学号。 ( 1)问题分析 怎么去放这些成绩?如何查找最高分? ( 2)绘制流程图 用一维数组存放 ,用数组名 和下标去查 找。 ( 3)源代码 #include #define NUM_STUDENT 3 void main() void maxGradeandStudent(float gradeStudentNUM_STUDENT);/找出最高的分数及对应学号 float gradeCProgramStudentNUM_STUDENT; int i; printf(please input the 10 students C program grade .n); /输入 10个学生的 C语言程序 for(i=0;iNUM_STUDENT;i+) printf(the %d student :,i+1); scanf(%f, printf(n); /在显示器上打印出 10个学生的 C语言成绩 for(i=0;iNUM_STUDENT;i+) printf(the %d students grade is %5.2f;,i+1,gradeCProgramStudenti); printf(n); printf(n); maxGradeandStudent(gradeCProgramStudent);/调用函数 调用函数的定义(数组作为传递的参数) void maxGradeandStudent(float gradeStudentNUM_STUDENT)/找出最高的分数对应的学生 int i; float max=gradeStudent0; int maxGradeStudent=0; for(i=1;imax) max=gradeStudenti; maxGradeStudent=i; printf(maxgrade=%5.2f, the students number is %d .n,max,maxGradeStudent+1); 引入另一种方法:指针操作打印输出部分。 #include #define NUM_STUDENT 3 void main() float gradeCProgramStudentNUM_STUDENT; int i; float *p; p=gradeCProgramStudent; printf(please input the 10 students C program grade .n); /输入 10个学生的 C语言程序 for(i=0;iNUM_STUDENT;i+) printf(the %d student :,i+1); scanf(%f, printf(n); /在显示器上打印出 10个学生的 C语言成绩 for(p=gradeCProgramStudent;p(gradeCProgramStudent+NUM_STUDENT);p+) printf(the %d students grade is %5.2f;,i+1,*p); printf(n); printf(n); 有没有其他办法来实现打印输出和查找 呢? 参数传递:指针作为函数参数 (数组名与指针的关系) #include #define NUM_STUDENT 3 void main() void maxGradeandStudent(float *);/找出最高的分数及对应学号 float gradeCProgramStudentNUM_STUDENT; int i; float *p; p=gradeCProgramStudent; printf(please input the 10 students C program grade .n); /add code 输入 10个学生的 C语言程序 /add code 在显示器上打印出 10个学生的 C语言成绩 maxGradeandStudent(p);/调用函数 void maxGradeandStudent(float *pgradeStudent)/找出最高的分数对应学号 int maxGradeStudent=0; float max,*p_i; max=*pgradeStudent; for(p_i=pgradeStudent+1;p_imax) max=*p_i; maxGradeStudent=p_i-pgradeStudent; printf(maxgrade=%5.2f, the students number is %d .n,max,maxGradeStudent+1); 3.数字时钟系统 ( 1)系统分析 时间显示: 显示当前的时间年、月、日 时间调节: 可以根据不同的时区,来调节当前的时间。 闹钟提醒: 可以设置提醒时间:如一个小时提醒一下 选择不同的时区 北京时间 东京时间 巴西时间 美国时间 显示时间 设置闹钟 调整时区 输入命令 判断闹钟时间是否到了 提醒 ( 2)绘制基本流程图 struct date int year; int month; int day; ; struct 结构体名 成员列表 变量名列表 ; struct date int year; int month; int day; date1; struct date date1; ( 3)时间结构体 ( 4)结构体应用:实现电子时钟部分功能 #include #include void main() date date1; date1.year=2010; date1.month=05; date1.day=28; printf(%4d-%02d-%02dn,date1.year,date1.month,date1.day); time_t todaySystem; time( struct tm *p; todaySystem -= 24 * 60 * 60; p = localtime( printf( %4d-%02d-%02dn , p- tm_year + 1900, p- tm_mon + 1, p- tm_mday); struct date int year; int month; int day; ; /显示日期 实验九 1.用指针方法处理:输入 10个整数,将其中最小的数与 第一个数对换,把最大的数与最后一个数对换。写 3个 函数:输入 10个数; 查找及对换处理 输出 10个 数。(书 278页 10.3题) 2.用结构体实现电子时钟部分功能:显示时间; - 3.学生成绩管理系统的部分功能实现:书中 202页 8.14题 ( 1),( 3); 4.用递归法将一个整数 n转换成字符串。例如:输入 483 ,应输出字符串“ 483”。 N的位数不确定,可以是任意 位数的整数。书 203页 8.17题。 二维数组的存放 例 float gradeStudent32=80,87,90,91,76,78; 80 87 90 91 76 78 gradeStudent0 gradeStudent1 gradeStudent2 gradeStudent表示该二维数组的首地址; gradeStudenti,表示为第 i行的首地址。 gradeStudent 以变量名和数组名作为函数参数的比较 实参类型 一般变量名 数组名 要求形参的类型 变量名 数组名或指针变量 传递的信息 变量的值 实参数组首元素的地址 通过函数 能否 改变实参的值 不能 能
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!