Day3 循环结构及函数调用的延伸#函数:
1.函数的好处:
1.代码结构太复杂,不利于阅读 不利于移植
2.代码块 一个代码块解决一个问题
3.代码块就是{ }{ }
4.可以模板化
2.怎么用
返回值 函数名称(参数,参数){
}
例1: int add(int a,int b){
int result=a+b;
return result;
}
例2:void test(void){
}
注意:return作用:1.返回值2.提前终止函数(在void函数里也可以使用)
先在主函数前面声明
实现的话在主函数后面
3.银行取款的demo(把函数放在头文件里面 然后主函数调用 会十分简洁)
主函数
#include"atm.h"
int main()
{
printf("**************\n");
printf("欢迎使用\n");
printf("**************\n");
printf("请输入密码\n");
mimayanzheng();
while (1) {
menu();
caozuoxuanxiang();
switch (choice) {
case 1:
quqian();
break;
case 2:
cunkuan();
break;
case 3:
printf("请输入密码:");
mimayanzheng();
mimagenggai();
break;
default:
exit(EXIT_FAILURE);
}
}
}
自己设置的函数放进头文件中:
#include <iostream>
#include <stdlib.h>
int choice, choice1;
int password = 123;
int money = 1000;
int putmoney = 0;
int money1 = 1000;
void mimayanzheng(void) {
int totalTime = 4;
int inputPwd = 0;
int password = 123;
while (1) {
scanf_s("%d", &inputPwd);
if (inputPwd == password) {
break;
}
else {
totalTime--;
if (totalTime == 0) {
printf("此卡已冻结 请联系客服!\n");
exit(EXIT_FAILURE);
}
else {
printf("密码不正确 请重新输入:");
}
}
}
}
void mimagenggai(void) {
int newpassword1 = 0;
int newpassword2 = 0;
while (1) {
printf("请更正密码\n");
scanf_s("%d", &newpassword1);
printf("请确认密码\n");
scanf_s("%d", &newpassword2);
if (newpassword1 == newpassword2)
{
printf("密码修改成功\n");
break;
}
else
{
printf("两次密码不同,请重新操作\n");
}
}
}
void menu(void)
{
printf("**************\n");
printf("1.取款");
printf("2.存款");
printf("3.修改密码");
printf("4.退出\n");
printf("**************\n");
}
void caozuoxuanxiang(void) {
while (1) {
printf("请进行选择\n");
scanf_s("%d", &choice);
if (choice >= 1 && choice <= 4)
{
break;
}
else {
printf("输入不合法");
}
}
}
void quqian(void)//实现取钱
{
while (1) {
printf("请输入取款金额\n");
scanf_s("%d", &putmoney);
{if (putmoney <= money1)
{
money1 -= putmoney;
printf("取款成功,剩下余额为:%d", money1);
}
else {
printf("取款失败");
}
}
printf("是否继续 n/y\n");
getchar();
choice1 = getchar();
if (choice1 == 'n')
{
break;
}
}
}
void cunkuan(void) {
while (1) {
printf("请输入存款金额\n");
scanf_s("%d", &putmoney);
money1 += putmoney;
printf("取款成功,剩下余额为:%d\n", money1);
printf("是否继续 n/y:");
getchar();
choice1 = getchar();
if (choice1 == 'n')
{
break;
}
}
}
心得体会:
更加熟练地掌握了银行取款这个很有意义的demo,知道了函数调用的实用性以及优越性,并且开始在这个demo中尝试使用函数调用的方式让整个程序更加模板化 增加的可读性 同时让自己的逻辑思维得到加强