函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识。C语言本身带了很多库函数,并分门别类地放在了不同的头文件中,使用时只要引入对应的头文件即可。除了C语言自带的函数,我们也可以编写自己的函数,称为自定义函数(User-Defined Function)。自定义函数和库函数没有本质的区别,表现形式和使用方法一样,只是开发者不同而已。今天我们就来学习如何编写和使用自己的函数。
一.以一个小程序来实现 ATM函数实现 功能如下
输入密码功能 存款 取款 退出 修改密码二、定义函数
定义一个函数我们需要确定三部分内容:
1.函数的返回值类型
2.函数的名称
3.函数的参数
确定了以上内容后就可以定义一个特有功能的函数了:
例如上面代码中就定义了一个返回值为int类型的函数,其函数名为add,一对小括号中的内容为这个函数的参数,也就是说这个函数有两个传入参数int a和int b。在函数体内,分别让a在原来的基础上加1,让b在原来的基础上加1,然后使用return关键字返回a + b的和。如果a的值是2,而b的值是3,那么这个函数的返回值则是7。相同,如果我们想定义一个没有返回值类型的函数则需要设计其返回值类型为void,同样,如果我们想定义一个没有参数的函数可以将其参数定义为void,通常如果一个函数没有参数可以在函数名后的小括号里什么都不写:
三、函数声明与调用
我们定义了这样一个add()的函数,那么如何来让其它功能使用它呢?我们看下面程序:
我们在调用一个函数时,需要向这个函数传其需要的参数,例如a和b这两个变量,并可以指定另一个变量用于接收这个函数执行后的返回值,比如变量c就接收了函数add()的返回值,结果为7。但是我们看到程序的运行结果是 2 + 3 = 7,也就是说,执行了函数add()后,我们虽然对函数内的参数变量分别加1,但主函数main中的a和b的值并没有发生变化。
四、参数与返回值
1.参数的一个明显特征就是使用时带括号,必要的话,括号中还要包含数据或变量,称为参数(Parameter)。
2.既然函数可以处理数据,那就有必要将处理结果告诉我们,所以很多函数都有返回值(Return Value)。所谓返回值,就是函数的执行结果。
3.函数的返回值是返回给调用者,告诉调用者结果。
4.返回值值和返回值类型有关系,和return后面的类型无关,并且只可以返回一个返回值,不可以返回多个。
5.如果没有返回值,必须写void返回值类型,函数遇到return就结束。
五.ATM项目
ATM函数实现这个项目中,采用了函数先声明再实现的方法,主要是为了使程序阅读者能够一目了然的清楚到底是使用了什么函数,方便阅读。
在程序的开始将用到的函数进行声明,后面在实现,这是一种常用的方法。
函数声明部六.ATM项目中实现每个功能的函数
1.欢迎界面:欢迎界面是在登录进去时最先出现的部分
欢迎界面函数2.输入密码界面:这个函数主要具有以下功能,提示用户输入密码,在用户输入密码后程序要从键盘获取用户的输入,并且在这个过程判断密码是否正确,如果正确跳转出菜单,如果密码错误则提醒用户重新输入密码,但是在这个过程中,为了避免输入错误密码次数过多,还要限制密码错误次数,故使用嵌套if循环。
密码函数3菜单函数:主要功能是在用户输入正确密码后提醒用户要进行的下一步操作。
菜单4.用户选择函数:在菜单出现时,要提示用户进行的操作,并且接受用户的输入,在这个过程中,需要程序判断用户输入的是否合法(就是只能在用户输入菜单中相应的序号时)程序才会运行,否则会提示输入不合法。
选择5.修改密码函数:当用户进入这个界面是要提醒用户输入初始密码,并且判断初始密码是否正确,如果不正确则不能修改,初始密码正确后要求用户输入两次新密码并且并判断两次新密码是否一致,如果一直则提醒用户密码修改成功,不一致则请用户再次输入。
修改密码6.取款函数:当用户进入时提醒用户“取款金额”,并且获取用户输入的金额,同时比较用户输入的金额与账户原有的金额是否,如果小于账户内的金额则可以继续取款,并且提示用户取款成功和取款后账户余额,如果账户金额不够则显示余额不足。并且询问用户是否继续。
7.存款函数:当用户进入时提醒用户“输入存款金额”,并且获取用户输入的金额,提示用户存款成功和存款后账户余额。并且询问用户是否继续。
存款8.主函数部分
七.难熬的一天,看着错综复杂的功能要求,很多时候自己一直在if else中无法自拔,不过看着自己写的小程序能运行起来还是有点小激动,在实战中学会知识点很有用,相信直接能坚持下去!
网友评论