版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计项目六模块化设计C语言程序设计项目六
模块化设计C语言程序设计理解函数的定义理解主调函数和被调函数、实参和形参、函数的返回值、函数的声明熟悉函数的嵌套调用熟悉函数的递归调用了解数组名作为函数的参数知识目标会函数的定义和说明格式。能通过进行函数的调用,学会函数的参数传递,得到正确的函数返回值。会利用函数的嵌套和递归调用强化模块化程序设计思路。能力目标项目八项目六01
显示车辆数据(无参数无返回值类型)02根据车辆品牌,显示车辆数据(有参数无返回值类型)
03根据车辆品牌,显示销售额(有返回值类型)04根据驾驶员的工作年限,求工资的数额(嵌套和递归)
引入:01前面我们完成了输入年月日求天数的练习,在软件开发中,要实现的功能很多,如果都放到主函数中完成,代码太多,不方便运行和调试,如果有的功能需要多次执行,还需要写多遍,这时我们需要一种新的功能。项目六任务一C语言程序设计
(2)行进中的分叉路口问题的提出
对于一个完整的监控系统,除了数据的采集、发送和接收,还需要在接收端显示电动汽车的运行状态,观察数据特点,并加以应对,本节通过一个显示函数实现车辆数据的显示功能。知识储备C语言程序设计
(2)行进中的分叉路口任务目标
创建一个C语言程序,输出某集团新能源M型大客车6-12月新增明线表。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉一、有关函数的说明:(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉二、无参无返回函数的定义形式void函数名(){
声明部分
语句}主函数中的调用的写法函数名();项目六任务一C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例1下表为某集团新能源某不同类型客车在不同时段的耗油量,编写程序,要求自定义两个函数,分别输出表头和内容。主函数流程图表头流程图内容流程图项目六任务一C语言程序设计
(1)树生长程中的分叉典型案例1#include"stdio.h"voidprint_head(){inti;printf("集团新能源某不同类型客车在不同时段的耗油量\n");for(i=1;i<=8;i++)printf("时段%d\t",i);printf("\n");}voidprint_details({floatoilconsumption[2][8]={{8.5,8.8,9.2,10.1,7.8,8.6,8.7,8.7},{10.2,11,13,14.5,8.9,9.7,9.7,9.8}};下表为某集团新能源某不同类型客车在不同时段的耗油量,编写程序,要求自定义两个函数,分别输出表头和内容。inti,j;for(i=0;i<2;i++) { for(j=0;j<8;j++){ printf("%.2f\t",oilconsumption[i][j]); } printf("\n"); }}main(){
print_head(); print_details();}项目六任务一C语言程序设计
典型案例2从键盘输入某品牌新能源客车5名驾驶员12个月的工资,并输出。项目六任务一C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2从键盘输入某品牌新能源客车5名驾驶员12个月的工资,并输出。#include"stdio.h"floatsalary[3][6];voidinput_salary(){inti,j;for(i=0;i<3;i++){printf("驾驶员%d六个月工资:",i+1);for(j=0;j<6;j++){scanf("%f",&salary[i][j]);} }}voidoutput_salary(){
inti,j;printf("驾驶员6个月的工资明线表\n");for(i=0;i<3;i++){printf("驾驶员%d",i+1);for(j=0;j<6;j++)printf("%d月份",j+1);printf("\n");for(j=0;j<6;j++) printf("%10.2f",salary[i][j]); printf("\n");}
}main(){input_salary(); output_salary();}任务分析与实践C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉程序代码#include"stdio.h"voidprint_head(){printf("海格新能源M型大客车6-12月新增明线表\n");printf("-----------------------------------\n"); printf("苏州
无锡
常州
南京\n"); }voidprint_body(){intV_number[6][4]={{24,14,13,16},{20,16,16,25}, {18,30,20,43},{24,10,8,12},{10,5,6,8},{8,5,5,7}};inti,j; for(i=0;i<6;i++){printf("%d月",i+1);for(j=0;j<4;j++){printf("%6d",V_number[i][j]);}printf("\n");}}voidprint_foot(){printf("制表日期:2019年1月2日");}main(){print_head(); print_body(); print_foot();}项目六任务一C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉巩固练习1.需要把p1,p2各个函数输出,请填空#include<stdio.h>voidp1(){printf("*\n");printf("***\n");printf("*****\n");printf("*******\n");}voidp2(){printf("*\n");printf("*\n");printf("*\n");}voidmain(){__________;__________:}2.运用函数将“爱家才会有温馨,爱国才能得安宁。家庭是温暖得巢,国家是安稳得营。”的显示10遍。3.画出任务分析的流程图C语言程序设计项目六模块化设计C语言程序设计项目八项目六01
显示车辆数据(无参数无返回值类型)02根据车辆品牌,显示车辆数据(有参数无返回值类型)
03根据车辆品牌,显示销售额(有返回值类型)04根据驾驶员的工作年限,求工资的数额(嵌套和递归)
引入:在使用函数时,有时我们需要传递一些数据。这时,子函数和主函数就会有参数使用。有参无返回函数的定义形式.02项目六任务二C语言程序设计
(2)行进中的分叉路口任务目标
从键盘输入车辆品牌,如果是比亚迪输出国产新能源车,否则输出不能辨别。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉一、有参无返回函数的定义形式void函数名(参数){
声明部分语句}主函数中调用的写法函数名(实际参数)项目六任务二C语言程序设计
(1)树生长程中的分叉典型案例1从键盘输入一个车牌,要求长度等于5,如果长度不等于5输出不合格,如果等于5输出长度合格。项目六任务二C语言程序设计
(1)树生长程中的分叉典型案例1#include"stdio.h"#include"string.h"voidplatenumber_len(charplatenumber[]){ if(strlen(platenumber)==5) printf("车牌长度正确!"); else printf("车牌长度有误!");}从键盘输入一个车牌,要求长度等于5,如果长度不等于5输出不合格,如果等于5输出长度合格。main(){ charplatenumber[20]; printf("请输入车牌号:"); gets(platenumber); platenumber_len(platenumber);}项目六任务二C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2从键盘输入一个数值,如果输入1显示比亚迪,如果输入2显示东风,如果输入3显示吉利,其它输入显示不确定。项目六任务二C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2#include"stdio.h"voidbrand_info(intn){ switch(n) { case1:printf("比亚迪");break; case2:printf("东风");break; case3:printf("吉利");break; default:printf("不确定"); }}从键盘输入一个数值,如果输入1显示比亚迪,如果输入2显示东风,如果输入3显示吉利,其它输入显示不确定。main(){ intbrand_number; printf("请输入品牌号(1位整数):"); scanf("%d",&brand_number); brand_info(brand_number);}项目六任务二C语言程序设计
(1)树生长程中的分叉典型案例3从键盘输入某品牌新能源客车1名驾驶员12个月的工资,并输出。项目六任务二C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例3#include"stdio.h"voidinput_salary(floatsalary[]){ inti; printf("请输入6个月的工资:"); for(i=0;i<6;i++) scanf("%f",&salary[i]);}voidoutput_salary(floatsalary[]){ inti; printf("该驾驶员6个月的工资:");从键盘输入某品牌新能源客车1名驾驶员12个月的工资,并输出。for(i=0;i<6;i++) printf("%.2f\t",salary[i]);}main(){ floatsalary[6]; input_salary(salary); output_salary(salary);}任务分析与实践C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉程序代码
#include"stdio.h"#include"string.h"voidbrand_identify(charbrand[]){ if(strcmp(brand,"BYD")==0) printf("国产新能源车"); else printf("不能辨别");}main(){ charbrand[20]; printf("请输入车辆品牌:"); gets(brand); brand_identify(brand);}项目六任务二C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉巩固练习1.从键盘输入两名车辆得载重量,运用有参无返回值方式求出最重得载重量。2.已知某辆车一个星期得载重量为{20,15,32,21,24,33,15},使用有参无返回值的方法计算这星期的总共载重量。C语言程序设计项目六模块化设计C语言程序设计项目八项目六01
显示车辆数据(无参数无返回值类型)02根据车辆品牌,显示车辆数据(有参数无返回值类型)
03
根据车辆品牌,显示销售额(有返回值类型)04根据驾驶员的工作年限,求工资的数额(嵌套和递归)
引入:我们如果想在百度搜索一些内容,那么会输入需要搜索的内容,结果就会在页面上显示我们需要的页面。程序中也有很多这种情况,需要将子函数的数据返回,这就是有返回值函数。一般有以下两种情况,第一种无参数有返回值,第二种有参数有返回值。03项目六任务三C语言程序设计
(2)行进中的分叉路口任务目标
下图是几种车辆的近半年的销量数,从键盘输入车辆品牌,输出销售数
汽车品牌数量
吉利汽车1500838
东风日产1300592
长城汽车915039
北京现代790177知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉一、无参数有返回值的定义形式返回值类型函数名(){
语句;return返回值;
}主函数调用格式变量名=函数名();(变量名的数据类型和返回值类型一致)知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉二、有参数有返回值的定义形式返回值类型函数名(参数1,参数2,。。。){
语句;return返回值;}主函数调用格式变量名=函数名(实参);(变量名的数据类型和返回值类型一致)项目六任务三C语言程序设计
(1)树生长程中的分叉典型案例1某集团驾驶员工资根据驾驶员的安全驾驶年限规定,安全驾驶0年3000元,1-3年4000元,4-7年6000元,8-10年8000元,10年以上1万元,从键盘输入安全驾驶年数,输出工资。项目六任务三C语言程序设计
(1)树生长程中的分叉典型案例1#include"stdio.h"floatsalary_onfixed(intfixed){floatsalary; if(fixed==0) salary=3000; else if(fixed<=3) salary=4000; else if(fixed<=7) salary=6000; else if(fixed<=10)某集团驾驶员工资根据驾驶员的安全驾驶年限规定,安全驾驶0年3000元,1-3年4000元,4-7年6000元,8-10年8000元,10年以上1万元,从键盘输入安全驾驶年数,输出工资。salary=8000; else salary=10000; returnsalary;}main(){ intyear; printf("请输入安全驾驶年数"); scanf("%d",&year); printf("工资为:%.2f",salary_onfixed(year));}项目六任务三C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2算法过程:定义变量输入变量值使用switch进行选择判断输出从键盘输入一个车牌,如果第一个字符是3,输出是自选号,否则输出不是自选号。项目六任务三C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2#include"stdio.h"#include"string.h"#include"stdlib.h"intPlatenumberisfree(charbrand[]){intresult=0; if(brand[0]=='3') result=1; returnresult;}从键盘输入一个车牌,如果第一个字符是3,输出是自选号,否则输出不是自选号。main(){ charbrand[10]; printf("请输入车牌号:"); gets(brand);if(Platenumberisfree(brand)==1)printf("是自选号");elseprintf("不是自选号");}项目六任务三C语言程序设计
(1)树生长程中的分叉典型案例3算法过程:定义变量输入变量值使用switch进行选择判断输出从键盘输入一个车牌,要求只包含数字和大写字母,判断是否合格项目六任务三C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例3#include"stdio.h"#include"string.h"#include"ctype.h"intlen_islegal(charp_n[]){ if(strlen(p_n)==5) return1; return0;}intdigit_upper_islegal(charp_n[]){ intcount=0,i=0; while(p_n[i]!='\0')从键盘输入一个车牌,要求只包含数字和大写字母,判断是否合格{if(isdigit(p_n[i])||isupper(p_n[i]))count++;i++;}if(count==5)return1;
return0;}main(){charPlate_number[10]; printf("请输入车牌号:");gets(Plate_number); if(len_islegal(Plate_number)&&digit_upper_islegal(Plate_number)) printf("车牌号合法!"); else printf("车牌号不合法!");
}项目六任务三C语言程序设计
(1)树生长程中的分叉典型案例4已知四种汽车品牌的近半年的销量数,输出最大销售数量。任务分析与实践C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉程序代码#include"stdio.h"intsales[4]={1500838,1300592,915039,790177};intmax_sales(){ inti,max=sales[0]; for(i=1;i<4;i++) { if(max<sales[i]) max=sales[i]; } returnmax;}voidmain(){ printf("最大销售数量是:%d",max_sales()); }项目六任务三C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉巩固练习1.从键盘输入两名车辆得载重量,运用有参有返回值方法求出最重得载重量。2.已知某辆车一个星期得载重量为{20,15,32,21,24,33,15},使用有参有返回值的方法计算这星期的总共载重量。3.画出任务分析的流程图THANKS!C语言程序设计项目六模块化设计C语言程序设计项目八项目六01
显示车辆数据(无参数无返回值类型)02根据车辆品牌,显示车辆数据(有参数无返回值类型)
03根据车辆品牌,显示销售额(有返回值类型)04
根据驾驶员的工作年限,求工资的数额(嵌套和递归)
引入:
在函数调用过程中,会出现一个子函数调用另外一个子函数,或者自己调用自己的函数类型,本次课程我们就来研究这种情况04项目六任务四C语言程序设计
(2)行进中的分叉路口任务目标
已知驾驶员的工资和工作年限相关,第一年的工资为5000,以后每年增长10%,求第12年的工资。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉一、函数的嵌套在调用一个函数的过程中,又调用另一个函数。
下面是函数嵌套调用的大致模型:#include<stdio.h>voidf1();voidf2(intn);voidmain(){f1();}f1(){f2(5);}voidf2(intn){inti;for(inti;i<=n;i++)rintf(“*”);}知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉二、函数的递归在调用一个函数的过程中,又出现直接或间接地调用该函数本身3.示例2#include<stdio.h>voidf(intn){if(n==0)return;printf("%d\n",n);
f(--n);//直接递归}voidmain(){intnum=5;f(num);}项目六任务四C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例1某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则本年一共领取了多少工资?(备注一个函数求和,一个函数求每个月的工资)项目六任务四C语言程序设计
(1)树生长程中的分叉典型案例1#include"stdio.h"doublesalaryincrease(intmonth){doublesalary=3000;inti;for(i=2;i<=month;i++)salary=salary*1.1;returnsalary;}doublesum_salary(intmonth){ doublesum=0; for(i=1;i<=12;i++)sum=sum+salaryincrease(i);某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则本年一共领取了多少工资?(备注一个函数求和,一个函数求每个月的工资)returnsum;}voidmain(){ intmonth=12; printf("本年一共领取了%.2f工资",sum_salary(12));}项目六任务四C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2有5名驾驶员坐在一起,问第5个人的年龄,他说比第4个人大2岁,问第4个人的年龄,他说比第3个人大2岁,问第3个人的年龄,他说比第2个人大2岁,问第2个人的年龄,他说比第1个人大3岁,第一个人的年龄是25岁,问第5个人多少岁。if(n==1)age2=25;elseage2=age1(n-1)+1;项目六任务四C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉典型案例2有5名驾驶员坐在一起,问第5个人的年龄,他说比第4个人大3岁,问第4个人的年龄,他说比第3个人大3岁,问第3个人的年龄,他说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB65-T8008-2024改性水泥固化土地基处理技术标准
- 数控车床考试题及答案(二)
- 公共广播系统清洗消毒和维修保养制度
- 污水处理厂的公共基础知识考试试卷及答案
- 新生儿溶血病患儿的个案护理
- 住宅建筑设计标准(2025版)
- 化妆品包装验收制度
- 公交智能调度安全优化方案
- 2026年跨境电商平台卖家协议
- 科技创新成果转化制度
- 2026四川德阳市什邡市教育和体育局选调高(职)中教师13人备考题库附答案详解
- 2026江西赣州市安远县东江水务集团有限公司第一批人员招聘10人备考题库含答案详解(b卷)
- 2026年花样滑冰赛事品牌建设与营销创新案例研究
- 《建筑施工安全检查标准》JGJ59-20248
- 学生床上用品采购投标方案
- GLP认证申报资料
- 大桥结构健康监测系统项目监理规划
- 血液透析之透析器预冲
- 医学微生物学习题集
- 电梯井整体提升搭设安全专项施工方案(完整版)
- 《2020室性心律失常中国专家共识(2016共识升级版)》要点
评论
0/150
提交评论