银行存取款系统

这篇具有很好参考价值的文章主要介绍了银行存取款系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

​ 一个简单的存取款系统,用户可以选择存钱、取钱、转账、修改密码和退出系统等业务。程序使用了菜单界面来展示业务选项,并根据用户的选择调用相应的函数进行处理。具体功能如下:

  • 登录:实现登录功能,需要输入正确密码才能进入菜单系统。

  • 菜单:显示菜单界面,列出其他所有业务选项及其选择命令。

  • 存钱:实现存钱功能,根据用户输入的数额更新余额。

  • 取钱:实现取钱功能,根据用户输入的数额更新余额。

  • 转账:实现转账功能。

  • 修改密码:修改登录时的密码。

登录

// 定义一个整型变量password,并赋值为123456,作为用户密码  
int password = 123456;  
  
// 定义一个名为login的函数,该函数没有参数,返回类型为void,即无返回值  
void login(void)  
{  
    // 定义一个整型变量input,用于接收用户输入的密码  
    int input;  
    // 定义一个整型变量i,初值为0,用于记录用户输入密码错误的次数  
    int i = 0;  
  
    // 打印欢迎信息,欢迎用户来到银行存取款系统  
    printf("------------欢迎来到银行存取款系统------------\n");  
    // 打印一条信息,表示用户插卡成功  
    printf("尊敬的用户,插卡成功\n");  
  
    // 开始一个无限循环,只要用户没有输入正确的密码,就会一直循环下去  
    while (1)  
    {  
        // 提示用户输入6位数字密码  
        printf("请输入 6 为数字密码:");  
        // 使用gets函数从标准输入读取用户输入的密码,并存储在input变量中  
        gets(input);  
  
        // 检查用户输入的密码是否和预设的密码相同  
        if (input== password)  
            // 如果相同,则结束循环,进入下一步操作(在这个程序中没有下步操作,所以会直接退出程序)  
            return;  
        else  
        {  
            // 如果不相同,打印错误信息"error"  
            printf("error\n");  
            // 将用户输入密码错误的次数加1  
            i++;  
            // 如果用户输入密码错误的次数大于或等于3次  
            if (i >= 3)  
            {  
                // 打印错误信息,告诉用户错误次数太多,需要退出系统  
                printf("错误次数太多,退出系统");  
                // 使用exit函数退出程序,参数0表示程序正常退出  
                exit(0);  
            }  
            else  
            {  
                // 如果用户输入密码错误的次数小于3次,打印剩余尝试次数信息  
                printf("密码错误,还剩余%d 次机会\n", 3 - i);  
            }  
        }  
    }  
}

​ 用户需要输入预设的密码(这里是123456),如果输入正确,则登录成功;如果输入错误,系统会提示用户还剩余几次尝试的机会,最多尝试3次,如果3次都错误,则系统会提示用户错误次数太多,需要退出系统。

菜单

// 定义一个名为 menu 的函数,没有参数,返回类型为 void,即无返回值  
void menu(void)  
{  
    // 调用系统函数,清空屏幕,用于显示新的菜单  
    system("cls");  
      
    // 打印一个新行,使接下来的输出在屏幕的下一行开始  
    printf("\n");  
      
    // 打印一个包含多个“#”符号的行,用于生成一个分割线  
    printf("\n#######################################################################\n");  
      
    // 打印一个包含“***”和“银行存取款系统”的行,表示这是银行存取款系统的菜单  
    printf("\n***-------------------------银行存取款系统----------------------------***\n");  
      
    // 再次打印一个包含多个“#”符号的行,用于生成一个分割线  
    printf("\n#######################################################################\n");  
      
    // 打印一个用“||”和“\n”生成的文本行,表示这是菜单的选项部分  
    printf("\n        ||                                               || \n");  
      
    // 打印一个包含“存钱业务”和对应的数字“1”的文本行,表示用户可以选择存钱业务  
    printf("\n     ||             *存钱业务            请按 1              || \n");  
      
    // 打印一个包含“取钱业务”和对应的数字“2”的文本行,表示用户可以选择取钱业务  
    printf("\n     ||             *取钱业务            请按 2              || \n");  
      
    // 打印一个包含“转账业务”和对应的数字“3”的文本行,表示用户可以选择转账业务  
    printf("\n     ||             *转账业务            请按 3              || \n");  
      
    // 打印一个包含“修改密码”和对应的数字“4”的文本行,表示用户可以选择修改密码  
    printf("\n     ||             *修改密码            请按 4              || \n");  
      
    // 打印一个包含“退出系统”和对应的数字“0”的文本行,表示用户可以选择退出系统  
    printf("\n     ||             *退出系统            请按 0              || \n");  
      
    // 再次打印一个用“||”和“\n”生成的文本行,表示这是菜单选项的结尾部分  
    printf("\n        ||                                               || \n");  
      
    // 打印一个包含多个“#”符号的行,用于生成一个分割线  
    printf("\n#######################################################################\n");  
      
    // 打印一行提示用户输入选择的文本  
    printf("请输入您的选择\n");  
}

​ 其目的是在终端显示一个模拟的菜单界面,让用户可以通过输入数字选择不同的功能。

存钱

// 定义一个浮点数变量 money 并初始化为 10000  
float money = 10000;

// 定义一个名为 Saving 的函数,该函数没有参数并返回 void  
void Save_money(void)
{
	// 定义一个整型变量 a 并初始化为 0  
	int a = 0;

	// 打印提示用户输入存款金额的选项  
	printf("请输入您存钱的数额:1、100 2、500\n");
	printf(" 3、1000 4、2000\n");

	// 使用 scanf_s 函数读取用户输入的数字并存储到变量 a 中  
	scanf_s("%d", &a);

	// 使用 if-else if-else 语句根据用户输入的数字增加相应的存款金额  
	// 如果 a 等于 1,则将 money 增加 100,并打印“存钱成功”  
	if (a == 1)
	{
		money += 100;
		printf("存钱成功\n");
	}
	// 如果 a 等于 2,则将 money 增加 500,并打印“存钱成功”  
	else if (a == 2)
	{
		money += 500;
		printf("存钱成功\n");
	}
	// 如果 a 等于 3,则将 money 增加 1000,并打印“存钱成功”  
	else if (a == 3)
	{
		money += 1000;
		printf("存钱成功\n");
	}
	// 如果 a 等于 4,则将 money 增加 2000,并打印“存钱成功”  
	else if (a == 4)
	{
		money = money + 2000;
		printf("存钱成功\n");
	}
	// 如果 a 不在 1 到 4 的范围内,则打印“3”,等待一秒钟后删除该字符,再打印“2”,再等待一秒钟后删除该字符,再打印“1”,最后打印“输入错误,存钱失败”  
	else
	{
		printf("3");
		Sleep(1000);  // 在此处等待一秒钟,对应于每秒刷新一次屏幕显示。Windows 系统特有的函数。  
		printf("\b2");// \b 表示删除前面一个显示的数字“3”  
		Sleep(1000);  // 再等待一秒钟。  
		printf("\b1");// 再删除前面的“2”。  
		Sleep(1000);  // 再等待一秒钟。  
		printf("输入错误,存钱失败\n");  // 最后打印出错误信息。  
	}
}

​ 存钱功能的实现首先定义一个全局变量来作为钱的保存地址,在通过固定存取输入命令来改变该变量的值以此达到存钱的目的。

取钱


// 定义一个函数 quqian,该函数没有参数并返回 void  
void Withdraw_money(void)
{
	// 定义一个整型变量 m,用于存储用户输入的存款金额  
	int m;

	// 打印提示用户输入取款金额的选项  
	printf("请输入您取款的数额:1、100 2、500\n");
	printf(" 3、1000 4、2000\n");

	// 使用 scanf_s 函数读取用户输入的数字并存储到变量 m 中  
	scanf_s("%d", &m);

	// 使用 switch 语句根据用户输入的数字减取相应的金额  
	// 如果 m 等于 1,则从 money 中减去 100,并打印“取款成功”  
	switch (m)
	{
	case 1:money -= 100;
		printf("取款成功\n"); break;
		// 如果 m 等于 2,则从 money 中减去 500,并打印“取款成功”  
	case 2:money -= 500;
		printf("取款成功\n"); break;
		// 如果 m 等于 3,则从 money 中减去 1000,并打印“取款成功”  
	case 3:money -= 1000;
		printf("取款成功\n"); break;
		// 如果 m 等于 4,则从 money 中减去 2000,并打印“取款成功”  
	case 4:money -= 2000;
		printf("取款成功\n"); break;
		// 如果 m 不在 1 到 4 的范围内,则打印“输入错误,取款失败”  
	default: printf("输入错误,取款失败\n"); break;
	}
}

​ 取钱主要原理改变存钱定义的全局变量的修改来到达取钱的实现。

转账

// 定义一个名为 Transfer 的函数,该函数没有参数并返回 void  
void Transfer(void)
{
	// 定义两个整型变量 a 和 b,分别用于存储需要转账的号码和金额  
	int a, b;

	// 打印提示用户输入需要转账的号码的消息  
	printf("请输入需要转账的号码:");

	// 使用 scanf_s 函数读取用户输入的号码并存储到变量 a 中  
	scanf_s("%d", &a);

	// 打印提示用户输入需要转账的金额的消息  
	printf("请输入需要转账的金额:");

	// 使用 scanf_s 函数读取用户输入的金额并存储到变量 b 中  
	scanf_s("%d", &b);

	// 判断账户余额是否足够支付 b 元,以及 b 是否大于0(不能转账负数金额)  
	if (money >= b && b > 0)
	{
		// 睡眠1秒钟(等待处理用户请求)  
		Sleep(1000);

		// 打印“2”字符(可能作为转账过程中的某种标记或效果)  
		printf("2");

		// 再睡眠1秒钟  
		Sleep(1000);

		// 打印退格字符,删除前面的“2”字符(创建动画效果或者为了清空屏幕)  
		printf("\b1");

		// 从账户余额中减去 b 元,更新 money 的值  
		money = money - b;

		// 打印“转账成功”的消息  
		printf("转账成功\n");
	}
	else
	{
		// 睡眠1秒钟(等待处理用户请求)  
		Sleep(1000);

		// 打印“2”字符(可能作为转账过程中的某种标记或效果)  
		printf("2");

		// 再睡眠1秒钟  
		Sleep(1000);

		// 打印退格字符,删除前面的“2”字符(创建动画效果或者为了清空屏幕)  
		printf("\b1");

		// 打印“转账失败,退出程序”的消息,结束程序运行  
		printf("转账失败,退出程序\n");
	}
}

​ 再转账是需要判断是不是钱足够,钱不够的话会转账失败。

修改密码


// 定义一个函数 Change the password,该函数没有参数并返回 void  
void Change_the_password(void)
{
	// 定义两个整型变量,password1 用于存储用户输入的原始密码,u 用于记录密码输入错误的次数  
	int password1, u = 0;

	// 创建一个无限循环,用于反复询问用户输入密码,直到用户成功输入正确的新密码  
	while (1)
	{
		// 打印提示信息,要求用户输入原始密码  
		printf("请输入原始密码:");

		// 使用 scanf_s 函数读取用户输入的密码并存储到 password1 变量中  
		scanf_s("%d", &password1);

		// 判断用户输入的密码是否与数据库中的密码相同  
		// 如果相同,进入下一步修改密码的流程  
		if (password == password1)
		{
			// 定义两个整型变量,password1 和 password2,分别用于存储用户输入的新密码和确认的新密码  
			int password1, password2;

			// 打印提示信息,要求用户输入新密码  
			printf("请输入新的密码:");

			// 使用 scanf_s 函数读取用户输入的新密码并存储到 password1 变量中  
			scanf_s("%d", &password1);

			// 打印提示信息,要求用户确认新密码  
			printf("请确认新的密码:");

			// 使用 scanf_s 函数读取用户确认的新密码并存储到 password2 变量中  
			scanf_s("%d", &password2);

			// 判断用户输入的新密码和确认的新密码是否相同,如果相同,则修改密码成功,退出程序;否则输出错误信息,继续下一次循环  
			if (password1 == password2)
			{
				printf("密码修改成功!");
				exit(0);  // 退出程序  
			}
			else
			{
				printf("两次密码不同,修改密码失败\n");  // 输出错误信息  
				exit(0);  // 退出程序  
			}
		}
		else  // 如果用户输入的原始密码错误,则进行相应的处理  
		{
			printf("原密码输入错误\n");  // 输出错误信息  
			u++;  // 增加密码输入错误的次数计数器  
			if (u >= 3)  // 如果错误次数超过3次,则进行相应的处理  
			{
				printf("错误次数太多,退出系统");  // 输出错误信息,提示用户因错误次数过多而退出系统  
				exit(0);  // 退出程序  
			}
			else  // 如果错误次数少于3次,则进行相应的处理  
			{
				printf("密码错误,还剩余%d 次机会\n", 3 - u);  // 输出剩余尝试次数信息  
			}
		}
	}  // 结束 while 循环,开始下一次循环询问用户输入密码,直到用户成功输入正确的新密码为止。如果用户已经连续3次输入错误,则退出程序。否则继续询问。  
}  
  • 定义一个无限循环,不断地询问用户输入原始密码。

  • 如果用户输入的原始密码正确,则进入下一步修改密码的流程。

  • 定义两个整型变量,password1 和 password2,分别用于存储用户输入的新密码和确认的新密码。

  • 分别提示用户输入新密码和确认新密码,并使用 scanf_s 函数读取用户输入。

  • 判断用户输入的新密码和确认的新密码是否相同,如果相同,则修改密码成功,退出程序;否则输出错误信息,继续下一次循环。

  • 如果用户输入的原始密码错误,则进行相应的处理:输出错误信息、增加密码输入错误的次数计数器、判断错误次数是否超过3次。如果错误次数超过3次,则输出错误信息并退出程序;否则输出剩余尝试次数信息。

  • 回到第一步,继续询问用户输入原始密码。

主函数

// 定义一个函数 main(),它是C程序的入口点。这个函数没有返回值,所以它的返回类型是 void。  
void main()
{
	// 定义一个整型变量 input,用于存储用户的输入。  
	int input;

	// 调用 login() 函数,这可能是一个用于验证用户身份的函数。  
	login();

	// 创建一个无限循环,它将反复执行下面的代码块。  
	while (1)
	{
		// 调用 menu() 函数,这可能是一个用于显示菜单的函数。  
		menu();

		// 打印一个提示信息,告诉用户输入他们的选择。  
		printf("请输入您的选择:");

		// 使用 scanf_s() 函数读取用户的输入,并将输入的值存储在 input 变量中。  
		scanf_s("%d", &input);

		// 使用 switch 语句根据用户的输入执行相应的操作。  
		switch (input)
		{
			// 如果用户输入 1,则调用 Save_money() 函数。  
		case 1:Save_money(); break;

			// 如果用户输入 2,则调用 Withdraw_money() 函数。  
		case 2:Withdraw_money(); break;

			// 如果用户输入 3,则调用 Transfer() 函数。  
		case 3:Transfer(); break;

			// 如果用户输入 4,则调用 Change_the_password() 函数。  
		case 4:Change_the_password(); break;

			// 如果用户输入 0,则使用 exit(0) 函数退出程序。  
		case 0:exit(0); break;

			// 如果用户输入其他值,则打印一个错误信息。  
		default:printf("input error\n"); break;
		}

		// 打印一个消息,告诉用户他们的余额。这需要一个名为 money 的全局变量来存储余额。  
		printf("您的余额是:%0.2f\n", money);

		// 使用 system() 函数调用 pause 命令,这将使程序暂停,直到用户按任意键继续。  
		system("pause");
	}
}

​ 主函数其实主要是对各个功能模块的总和,通过我们输入的命令执行每一个函数的入口,统筹其我们整个系统。文章来源地址https://www.toymoban.com/news/detail-743869.html

调试

  • 点击运行调试
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 运行之后登录界面如下
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 输入密码 " 123456",之后显示如下界面
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 输入"1" 之后进入存钱界面,会出现四个存款选项
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 在这里我们大气一点,输入"4"
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 回车后输入" 2"进入取钱界面
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 输入"1",取款100
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 输入"3",进入转账业务。在随便输入我们的号码金额直接填写2000。转完帐,我们的余额就只剩下1900。
    银行存取款系统,零基础完成c语言课程设计,c语言
  • 回车后我们输入"4",执行修改密码功能。在这里我们只是执行了修改功能,并没有做密码保存。
    银行存取款系统,零基础完成c语言课程设计,c语言

完全源码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <time.h>
#include <windows.h> 

// 定义一个整型变量password,并赋值为123456,作为用户密码  
int password = 123456;

// 定义一个名为login的函数,该函数没有参数,返回类型为void,即无返回值  
void login(void)
{
	// 定义一个整型变量input,用于接收用户输入的密码  
	int input;
	// 定义一个整型变量i,初值为0,用于记录用户输入密码错误的次数  
	int i = 0;

	// 打印欢迎信息,欢迎用户来到银行存取款系统  
	printf("------------欢迎来到银行存取款系统------------\n");
	// 打印一条信息,表示用户插卡成功  
	printf("尊敬的用户,插卡成功\n");

	// 开始一个无限循环,只要用户没有输入正确的密码,就会一直循环下去  
	while (1)
	{
		// 提示用户输入6位数字密码  
		printf("请输入 6 为数字密码:");
		// 使用scanf函数从标准输入读取用户输入的密码,并存储在input变量中  
		scanf("%d",&input);

		// 检查用户输入的密码是否和预设的密码相同  
		if (input == password)
			// 如果相同,则结束循环,进入下一步操作(在这个程序中没有下步操作,所以会直接退出程序)  
			return;
		else
		{
			// 如果不相同,打印错误信息"error"  
			printf("error\n");
			// 将用户输入密码错误的次数加1  
			i++;
			// 如果用户输入密码错误的次数大于或等于3次  
			if (i >= 3)
			{
				// 打印错误信息,告诉用户错误次数太多,需要退出系统  
				printf("错误次数太多,退出系统");
				// 使用exit函数退出程序,参数0表示程序正常退出  
				exit(0);
			}
			else
			{
				// 如果用户输入密码错误的次数小于3次,打印剩余尝试次数信息  
				printf("密码错误,还剩余%d 次机会\n", 3 - i);
			}
		}
	}
}

// 定义一个名为 menu 的函数,没有参数,返回类型为 void,即无返回值  
void menu(void)
{
	// 调用系统函数,清空屏幕,用于显示新的菜单  
	system("cls");

	// 打印一个新行,使接下来的输出在屏幕的下一行开始  
	printf("\n");

	// 打印一个包含多个“#”符号的行,用于生成一个分割线  
	printf("\n#######################################################################\n");

	// 打印一个包含“***”和“银行存取款系统”的行,表示这是银行存取款系统的菜单  
	printf("\n***-------------------------银行存取款系统--------------------------***\n");

	// 再次打印一个包含多个“#”符号的行,用于生成一个分割线  
	printf("\n#######################################################################\n");

	// 打印一个用“||”和“\n”生成的文本行,表示这是菜单的选项部分  
	printf("\n        ||                                               || \n");

	// 打印一个包含“存钱业务”和对应的数字“1”的文本行,表示用户可以选择存钱业务  
	printf("\n     ||             *存钱业务            请按 1              || \n");

	// 打印一个包含“取钱业务”和对应的数字“2”的文本行,表示用户可以选择取钱业务  
	printf("\n     ||             *取钱业务            请按 2              || \n");

	// 打印一个包含“转账业务”和对应的数字“3”的文本行,表示用户可以选择转账业务  
	printf("\n     ||             *转账业务            请按 3              || \n");

	// 打印一个包含“修改密码”和对应的数字“4”的文本行,表示用户可以选择修改密码  
	printf("\n     ||             *修改密码            请按 4              || \n");

	// 打印一个包含“退出系统”和对应的数字“0”的文本行,表示用户可以选择退出系统  
	printf("\n     ||             *退出系统            请按 0              || \n");

	// 再次打印一个用“||”和“\n”生成的文本行,表示这是菜单选项的结尾部分  
	printf("\n        ||                                               || \n");

	// 打印一个包含多个“#”符号的行,用于生成一个分割线  
	printf("\n#######################################################################\n");

	// 打印一行提示用户输入选择的文本  
	printf("请输入您的选择\n");
}

// 定义一个浮点数变量 money 并初始化为 10000  
float money = 10000;

// 定义一个名为 Save_money 的函数,该函数没有参数并返回 void  
void Save_money(void)
{
	// 定义一个整型变量 a 并初始化为 0  
	int a = 0;

	// 打印提示用户输入存款金额的选项  
	printf("请输入您存钱的数额:1、100 2、500\n");
	printf(" 3、1000 4、2000\n");

	// 使用 scanf_s 函数读取用户输入的数字并存储到变量 a 中  
	scanf_s("%d", &a);

	// 使用 if-else if-else 语句根据用户输入的数字增加相应的存款金额  
	// 如果 a 等于 1,则将 money 增加 100,并打印“存钱成功”  
	if (a == 1)
	{
		money += 100;
		printf("存钱成功\n");
	}
	// 如果 a 等于 2,则将 money 增加 500,并打印“存钱成功”  
	else if (a == 2)
	{
		money += 500;
		printf("存钱成功\n");
	}
	// 如果 a 等于 3,则将 money 增加 1000,并打印“存钱成功”  
	else if (a == 3)
	{
		money += 1000;
		printf("存钱成功\n");
	}
	// 如果 a 等于 4,则将 money 增加 2000,并打印“存钱成功”  
	else if (a == 4)
	{
		money = money + 2000;
		printf("存钱成功\n");
	}
	// 如果 a 不在 1 到 4 的范围内,则打印“3”,等待一秒钟后删除该字符,再打印“2”,再等待一秒钟后删除该字符,再打印“1”,最后打印“输入错误,存钱失败”  
	else
	{
		printf("3");
		Sleep(1000);  // 在此处等待一秒钟,对应于每秒刷新一次屏幕显示。Windows 系统特有的函数。  
		printf("\b2");// \b 表示删除前面一个显示的数字“3”  
		Sleep(1000);  // 再等待一秒钟。  
		printf("\b1");// 再删除前面的“2”。  
		Sleep(1000);  // 再等待一秒钟。  
		printf("输入错误,存钱失败\n");  // 最后打印出错误信息。  
	}
}


// 定义一个函数 Withdraw_money,该函数没有参数并返回 void  
void Withdraw_money(void)
{
	// 定义一个整型变量 m,用于存储用户输入的存款金额  
	int m;

	// 打印提示用户输入取款金额的选项  
	printf("请输入您取款的数额:1、100 2、500\n");
	printf(" 3、1000 4、2000\n");

	// 使用 scanf_s 函数读取用户输入的数字并存储到变量 m 中  
	scanf_s("%d", &m);

	// 使用 switch 语句根据用户输入的数字减取相应的金额  
	// 如果 m 等于 1,则从 money 中减去 100,并打印“取款成功”  
	switch (m)
	{
	case 1:money -= 100;
		printf("取款成功\n"); break;
		// 如果 m 等于 2,则从 money 中减去 500,并打印“取款成功”  
	case 2:money -= 500;
		printf("取款成功\n"); break;
		// 如果 m 等于 3,则从 money 中减去 1000,并打印“取款成功”  
	case 3:money -= 1000;
		printf("取款成功\n"); break;
		// 如果 m 等于 4,则从 money 中减去 2000,并打印“取款成功”  
	case 4:money -= 2000;
		printf("取款成功\n"); break;
		// 如果 m 不在 1 到 4 的范围内,则打印“输入错误,取款失败”  
	default: printf("输入错误,取款失败\n"); break;
	}
}

// 定义一个名为 Transfer 的函数,该函数没有参数并返回 void  
void Transfer(void)
{
	// 定义两个整型变量 a 和 b,分别用于存储需要转账的号码和金额  
	int a, b;

	// 打印提示用户输入需要转账的号码的消息  
	printf("请输入需要转账的号码:");

	// 使用 scanf_s 函数读取用户输入的号码并存储到变量 a 中  
	scanf_s("%d", &a);

	// 打印提示用户输入需要转账的金额的消息  
	printf("请输入需要转账的金额:");

	// 使用 scanf_s 函数读取用户输入的金额并存储到变量 b 中  
	scanf_s("%d", &b);

	// 判断账户余额是否足够支付 b 元,以及 b 是否大于0(不能转账负数金额)  
	if (money >= b && b > 0)
	{
		// 睡眠1秒钟(等待处理用户请求)  
		Sleep(1000);

		// 打印“2”字符(可能作为转账过程中的某种标记或效果)  
		printf("2");

		// 再睡眠1秒钟  
		Sleep(1000);

		// 打印退格字符,删除前面的“2”字符(创建动画效果或者为了清空屏幕)  
		printf("\b1");

		// 从账户余额中减去 b 元,更新 money 的值  
		money = money - b;

		// 打印“转账成功”的消息  
		printf("转账成功\n");
	}
	else
	{
		// 睡眠1秒钟(等待处理用户请求)  
		Sleep(1000);

		// 打印“2”字符(可能作为转账过程中的某种标记或效果)  
		printf("2");

		// 再睡眠1秒钟  
		Sleep(1000);

		// 打印退格字符,删除前面的“2”字符(创建动画效果或者为了清空屏幕)  
		printf("\b1");

		// 打印“转账失败,退出程序”的消息,结束程序运行  
		printf("转账失败,退出程序\n");
	}
}


// 定义一个函数 Change the password,该函数没有参数并返回 void  
void Change_the_password(void)
{
	// 定义两个整型变量,password1 用于存储用户输入的原始密码,u 用于记录密码输入错误的次数  
	int password1, u = 0;

	// 创建一个无限循环,用于反复询问用户输入密码,直到用户成功输入正确的新密码  
	while (1)
	{
		// 打印提示信息,要求用户输入原始密码  
		printf("请输入原始密码:");

		// 使用 scanf_s 函数读取用户输入的密码并存储到 password1 变量中  
		scanf_s("%d", &password1);

		// 判断用户输入的密码是否与数据库中的密码相同  
		// 如果相同,进入下一步修改密码的流程  
		if (password == password1)
		{
			// 定义两个整型变量,password1 和 password2,分别用于存储用户输入的新密码和确认的新密码  
			int password1, password2;

			// 打印提示信息,要求用户输入新密码  
			printf("请输入新的密码:");

			// 使用 scanf_s 函数读取用户输入的新密码并存储到 password1 变量中  
			scanf_s("%d", &password1);

			// 打印提示信息,要求用户确认新密码  
			printf("请确认新的密码:");

			// 使用 scanf_s 函数读取用户确认的新密码并存储到 password2 变量中  
			scanf_s("%d", &password2);

			// 判断用户输入的新密码和确认的新密码是否相同,如果相同,则修改密码成功,退出程序;否则输出错误信息,继续下一次循环  
			if (password1 == password2)
			{
				printf("密码修改成功!");
				exit(0);  // 退出程序  
			}
			else
			{
				printf("两次密码不同,修改密码失败\n");  // 输出错误信息  
				exit(0);  // 退出程序  
			}
		}
		else  // 如果用户输入的原始密码错误,则进行相应的处理  
		{
			printf("原密码输入错误\n");  // 输出错误信息  
			u++;  // 增加密码输入错误的次数计数器  
			if (u >= 3)  // 如果错误次数超过3次,则进行相应的处理  
			{
				printf("错误次数太多,退出系统");  // 输出错误信息,提示用户因错误次数过多而退出系统  
				exit(0);  // 退出程序  
			}
			else  // 如果错误次数少于3次,则进行相应的处理  
			{
				printf("密码错误,还剩余%d 次机会\n", 3 - u);  // 输出剩余尝试次数信息  
			}
		}
	}  // 结束 while 循环,开始下一次循环询问用户输入密码,直到用户成功输入正确的新密码为止。如果用户已经连续3次输入错误,则退出程序。否则继续询问。  
}  

// 定义一个函数 main(),它是C程序的入口点。这个函数没有返回值,所以它的返回类型是 void。  
void main()
{
	// 定义一个整型变量 input,用于存储用户的输入。  
	int input;

	// 调用 login() 函数,这可能是一个用于验证用户身份的函数。  
	login();

	// 创建一个无限循环,它将反复执行下面的代码块。  
	while (1)
	{
		// 调用 menu() 函数,这可能是一个用于显示菜单的函数。  
		menu();

		// 打印一个提示信息,告诉用户输入他们的选择。  
		printf("请输入您的选择:");

		// 使用 scanf_s() 函数读取用户的输入,并将输入的值存储在 input 变量中。  
		scanf_s("%d", &input);

		// 使用 switch 语句根据用户的输入执行相应的操作。  
		switch (input)
		{
			// 如果用户输入 1,则调用 Save_money() 函数。  
		case 1:Save_money(); break;

			// 如果用户输入 2,则调用 Withdraw_money() 函数。  
		case 2:Withdraw_money(); break;

			// 如果用户输入 3,则调用 Transfer() 函数。  
		case 3:Transfer(); break;

			// 如果用户输入 4,则调用 Change_the_password() 函数。  
		case 4:Change_the_password(); break;

			// 如果用户输入 0,则使用 exit(0) 函数退出程序。  
		case 0:exit(0); break;

			// 如果用户输入其他值,则打印一个错误信息。  
		default:printf("input error\n"); break;
		}

		// 打印一个消息,告诉用户他们的余额。这需要一个名为 money 的全局变量来存储余额。  
		printf("您的余额是:%0.2f\n", money);

		// 使用 system() 函数调用 pause 命令,这将使程序暂停,直到用户按任意键继续。  
		system("pause");
	}
}

到了这里,关于银行存取款系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言--课程管理信息系统

    课程管理系统 功能:假定有 n 门课程,每门课程有课程编号,课程名称,总学时,学分,开课学期 等信息。试设计一课程管理系统,使之能提供以下功能: 1 对课程信息的录入、修改、删除功能; 2 按课程名排序后浏览; 3 按课程查询、按学分查询; 代码如下: 这个结构体

    2024年02月12日
    浏览(46)
  • 图书管理系统——C语言课程设计

    新进图书基本信息的输入 图书借本信息的查询 对撤销图书的删除 办理借书手续 办理还书手续 提供使用文件方式存储数据 新进图书的输入,首先要输入要添加的书的基本信息,如:书名、书号、价格、作者,再通过fprintf()函数将输入的信息写入文件中 图书信息的查询可分为

    2024年02月09日
    浏览(41)
  • 【C语言课程设计】图书管理系统

    引言 : 图书管理系统是一个重要的信息管理系统,对于图书馆和书店等机构来说,它能够方便地管理图书的录入、显示、查询、修改和删除等操作。本实验基于C语言开发了一个简单的图书管理系统,通过账户名和密码进行系统访问和权限控制,并实现了上述功能。在本实验

    2024年02月15日
    浏览(37)
  • C语言课程设计-图书管理系统

    需求分析:   为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询

    2024年02月04日
    浏览(42)
  • GO富集绘图绘制方法,零基础教程,替换数据直接作图,完成版R语言脚本

    本期分享一个快速绘制GO富集结果图的方法,主要使用R语言tidyverse包,只需导入数据即可一步出图,可以自定义显示的数目、颜色、筛选参数, 从此以后绘制GO富集图只需1秒 。 下面是一个GO富集分析的结果数据表: ID:表示具体的GO条目 Description:GO条目的描述 RatioF:分子是

    2024年02月12日
    浏览(47)
  • 操作系统课程设计----模拟文件管理系统(c语言)

    1.采用高级语言编写程序模拟文件系统,文件系统采用多级目录结构,实现对文件和目录的创建、删除、重命名、变更权限、显示文件内容、修改文件内容等操作。 2.撰写课程设计报告。 编写程序模拟一个简单的文件系统,具体实验内容如下: (1)实现多级目录结构,而

    2024年01月21日
    浏览(50)
  • C语言课程设计-学生成绩管理系统

    需求分析: 1.设计题目:学生成绩管理系统 2.系统功能需求分析:实现对学生各科成绩总分及平均分的排序,和成绩的查找 概要设计 1. 功能模块图 详细设计 1. 流程图 测试结果 :列出所有功能的运行界面,并作文字说明。 1.录入成绩:录入3个人的学号和各科成绩 2.每门课程

    2024年02月11日
    浏览(51)
  • C语言课程设计-车辆信息管理系统

    这个是我学编程以来写的第一个管理系统,现在回来看,当时写的代码还是很青涩的,写得不好大家轻点喷!!! 题目描述: 建立车辆信息管理系统,实现车辆信息的添加和维护管理。 系统存储数据要求: 每台车辆至少需要包含以下属性,系统中保存多台车辆的信息: 

    2024年02月09日
    浏览(53)
  • C语言课程设计——航班信息管理系统

    实现功能 整体概述 系统结构 主要功能模块实现 身份验证 信息遍历 查找航班信息 编辑航班信息 整理信息顺序 预订航班 小结 通过此系统可以实现如下功能:(1) 录入 :管理员用户可以录入航班情况,数据存储在一个数据文件中;(2) 遍历 :可以查看某一类信息的所有

    2024年02月05日
    浏览(41)
  • C语言期末课程设计—【通讯录管理系统】让课程设计不再是痛苦

    目录 摘要 第一章 绪论 1.1项目意义 1.2通讯录功能 第二章 详细设计与实现  2.1 Contact程序运行流程图 2.2 AddContact(增加)函数流程图 2.3 DelContact(删除)函数流程图 2.4 SearchConact(查找)函数流程图 2.5 ModifyContact(修改)函数流程图 2.6 SortContact(排序)函数流程图 第三章

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包