最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現ATM系統(tǒng)程序的完整代碼

 更新時間:2021年05月02日 08:48:49   作者:weixin_53391957  
這篇文章主要介紹了C語言實現ATM系統(tǒng)程序的完整代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

實現效果如圖:

在這里插入圖片描述

代碼如下:

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
//開戶信息
typedef struct _Person
{
	char name[20];
	char account[20];
	char password[7];
	float money;
}Person;
//結點
typedef struct _Node
{
	Person P;	//客戶
	struct _Node* next;
}Node;
Node* HeadNode = NULL;//鏈表頭

/*----------------函數--------------------*/
void Login();
void Menu();
void Register();
void LoginMenu(Node* pNode);
void FindAccount(Node* pNode);
void DrawMoney(Node* pNode);
void Deposit(Node* pNode);
void Transfer(Node* pNode);
void LoginMenu(Node* pNode);

//主菜單
void Menu()
{
	printf("\n\t\t\t歡迎進入ATM銀行管理系統(tǒng)\n");
	printf("\t\t 1. 注冊\n");
	printf("\t\t 2. 登錄\n");
	printf("\t\t 3. 系統(tǒng)幫助\n");
	printf("\t\t 4. 查詢賬號\n");
	printf("\t\t 5. 退出\n");
}
//注冊
void Register()
{
	Node* NewNode = (Node*)malloc(sizeof(Node));
	NewNode->next = NULL;
	NewNode->P.money = 0;

	printf("請輸入您的名字:");
	scanf("%s", NewNode->P.name);
	printf("請輸入您的密碼:");
	scanf("%s", NewNode->P.password);

	char Password[7];
	printf("請再次輸入您的密碼:");
	scanf("%s", Password);

	for (int i = 1; i < 4; i++)
	{
		if (strcmp(NewNode->P.password, Password) != 0)
		{
			printf("您輸入的密碼有誤,還有%d次機會.\n", 3 - i);
			printf("請再次輸入您的密碼:");
			scanf("%s", Password);
		}
		else
		{
			srand((unsigned int)time(NULL));
			sprintf(NewNode->P.account, "%d%d%d%d%d", rand() % 9000 + 1000, rand() % 9000 + 1000,
				rand() % 9000 + 1000, rand() % 9000 + 1000, rand() % 900 + 100);
			//頭插法
			if (HeadNode == NULL)
			{
				HeadNode = NewNode;
			}
			else
			{
				NewNode->next = HeadNode;
				HeadNode = NewNode;
			}
			printf("\n\n\n\n\t\t\t\t恭喜你已經成功注冊賬戶,以下是您的賬戶信息.\n");
			printf("\t\t\t\t姓名:%s\n", NewNode->P.name);
			printf("\t\t\t\t賬戶:%s\n", NewNode->P.account);
			printf("\t\t\t\t余額:%.2f\n", NewNode->P.money);
			getch();
			return 1;
		}

	}
	printf("您的賬號已被鎖定,請稍后再試.");
	return 1;
}
//取款
void DrawMoney(Node* pNode)
{
	Node* mNode = pNode;
	float Money = 0;
	printf("歡迎進入ATM銀行管理系統(tǒng)\n");
	printf("請選擇你取款金額\n");
	printf("100\t\t2000\n");
	printf("500\t\t5000\n");
	printf("10000\t\t其他金額\n");
	scanf("%f", &Money);
	mNode->P.money = mNode->P.money - Money;
	return mNode;	
}
//存款
void Deposit(Node* pNode)
{
	Node* mNode = pNode;
	float Money = 0;
	printf("請存取您的金額:");
	scanf("%f", &Money);
	mNode->P.money = mNode->P.money + Money;
	return mNode;
}
//轉賬
void Transfer(Node* pNode)
{
	Node* TNode = HeadNode;
	char Account[20];
	printf("請輸入轉賬的號碼:");
	scanf("%s", Account);
	while (TNode != NULL)
	{
		if (strcmp(TNode->P.account, Account) != 0)
		{
			TNode = TNode->next;
			continue;
		}
		else
		{
			float Money = 0;
			printf("請輸入您要轉賬的金額:");
			printf("100\t\t2000\n");
			printf("500\t\t5000\n");
			printf("10000\t\t其他金額\n");
			scanf("%f", &Money);
			TNode->P.money = TNode->P.money + Money;
			pNode->P.money = pNode->P.money - Money;
			return 1;
		}
	}
	return 1;
}
//登錄菜單
void LoginMenu(Node * pNode)
{

	while (1)
	{
		printf("歡迎進入ATM銀行管理系統(tǒng)\n");
		printf("請選擇以下服務:\n");
		printf("1.取款\t\t2.查詢\n");
		printf("3.存款\t\t4.轉賬\n");
		printf("5.修改密碼\t6.退出\n");

		char ch = getch();
		switch (ch)
		{
		case '1':
			DrawMoney(pNode);
			break;
		case '2':
			printf("您的賬戶余額為:%.2f", pNode->P.money);
			getch();
			break;
		case '3':
			Deposit(pNode);
			break;
		case '4':
			Transfer(pNode);
			break;
		case '5':
			break;
		case '6':
			return 0;
			break;
		default:
			break;
		}
		system("cls");
	}
	

}
//登錄
void Login()
{
	system("cls");
	Node* pNode = HeadNode;

	char P_account[20];
	char P_password[7];
	printf("請輸入您的卡號:");
	scanf("%s", P_account);

	while (pNode != NULL)
	{
		if (strcmp(P_account,pNode->P.account) != 0)
		{
			pNode = pNode->next;
			continue;
		}
		else
		{
			for (int i = 1; i < 4; i++)
			{
				printf("請輸入您的密碼:");
				scanf("%s", P_password);
				if (strcmp(P_password, pNode->P.password) != 0)
				{
					printf("您輸入的密碼有誤,還有%d次機會.\n", 3 - i);
				}
				else
				{
					system("cls");
					LoginMenu(pNode);
					return 1;
				}
			}
			printf("\n對不起,您輸入的密碼有誤,請重新登錄.\n");
			system("pause");
			return 1;

		}
		
	}
	return 1;
}
//系統(tǒng)幫助信息
void Help()
{
	system("cls");
	printf( "\n\n\n\n\t——————————-----—---——ATM系統(tǒng)幫助----------------------------------------\n"
			"\t1、初始界面:客戶插卡前或者退卡后ATM顯示的界面,提示客戶插卡操作及銀行廣告.\n"

			"\t2、身份認證:需要客戶插入銀行卡后輸入密碼來驗證所有權.\n"

			"\t3、吞卡:客服若連續(xù)輸入密碼3次錯誤后,則將卡吞入ATM內.\n"

			"\t4、賬戶:賬戶由銀行卡的卡號、密碼、銀行系統(tǒng)用戶信息組成.\n"

			"\t5、業(yè)務操作:由查詢余額、取款、存款、轉賬、取卡等事項組成.\n"

			"\t6、查詢余額:顯示該賬戶中剩余金額.\n"

			"\t7、取款:根據客戶輸入的金額從賬戶中扣除相應的金額,客戶可以提取相應數額的現金.\n"

			"\t8、存款:客戶存入現金,賬戶根據現金數額增加剩余金額.\n"

			"\t9、轉賬:客戶輸入另外一個賬戶號碼和金額,從本賬戶的余額中減去該金額,增加到那個賬號中.\n"

			"\t10、打印憑條:憑條由日期,銀行卡的卡號,交易流水號組成.\n"

			"\t11、取卡:客戶取回銀行卡.\n"
			"\t————————————————-------------------------------------------------------\n"
	);
	getch();
	return 1;
}
//查詢賬號
void FindAccount(Node* pNode)
{
	Node* FNode = pNode;
	char AccountName[7];
	printf("請輸入賬號姓名:");
	scanf("%s", AccountName);

	while (FNode != NULL)
	{
		if (strcmp(AccountName, FNode->P.name) != 0)
		{
			FNode = FNode->next;
			continue;
		}
		else
		{
			printf("該姓名的賬戶為:%s", FNode->P.account);
			return 1;
		}
	}
	printf("抱歉!該姓名未注冊賬號.");
	return 1;
}
int main()
{
	system("color b0");
		
	while (1)
	{
		system("cls");
		Menu();
		char ch = _getch();
		switch (ch)
		{
		case '1':
			Register();
			break;
		case '2':
			Login();
			break;
		case '3':
			Help();
			break;
		case '4':
			FindAccount(HeadNode);
			getch();
			break;
		case '5':
			exit(0);
		default:
			break;
		}
	}
	return 0;
}

到此這篇關于C語言實現ATM系統(tǒng)程序的完整代碼的文章就介紹到這了,更多相關c語言ATM系統(tǒng)程序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++實現教工考勤信息管理系統(tǒng)

    C++實現教工考勤信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現教工考勤信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++  數據結構鏈表的實現代碼

    C++ 數據結構鏈表的實現代碼

    這篇文章主要介紹了C++ 數據結構鏈表的實現代碼的相關資料,需要的朋友可以參考下
    2017-01-01
  • C++入門基礎之命名空間、輸入輸出和缺省參數

    C++入門基礎之命名空間、輸入輸出和缺省參數

    C++入門基礎篇的內容為C++的基本特性,只有在掌握C++的基本特性后,是進入后面類和對象學習的基礎,下面這篇文章主要給大家介紹了關于C++入門基礎之命名空間、輸入輸出和缺省參數的相關資料,需要的朋友可以參考下
    2023-01-01
  • C++實現掃雷小游戲(控制臺版)

    C++實現掃雷小游戲(控制臺版)

    這篇文章主要為大家詳細介紹了C++實現控制臺版的掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言實現房屋管理系統(tǒng)

    C語言實現房屋管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現房屋管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++11返回類型后置語法的使用示例

    C++11返回類型后置語法的使用示例

    本篇文章主要介紹了C++11返回類型后置語法的使用示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • C語言背包問題求解全過程(貪心方法)

    C語言背包問題求解全過程(貪心方法)

    背包問題是一個經典的動態(tài)規(guī)劃問題,而貪心算法是一種常用的解決背包問題的方法,這篇文章主要給大家介紹了關于C語言背包問題求解(貪心方法)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • 高效實現整型數字轉字符串int2str的方法

    高效實現整型數字轉字符串int2str的方法

    下面小編就為大家?guī)硪黄咝崿F整型數字轉字符串int2str的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C++中using的三種用法舉例詳解

    C++中using的三種用法舉例詳解

    最近在使用中,發(fā)現了一種以前沒學過的using用法,于是在這里,將using的幾種用法總結一下,下面這篇文章主要給大家介紹了關于C++中using的三種用法,需要的朋友可以參考下
    2023-02-02
  • C++的對象特性和友元你真的了解嗎

    C++的對象特性和友元你真的了解嗎

    這篇文章主要為大家詳細介紹了C++的對象特性和友元,使用數據庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

汉源县| 香河县| 富蕴县| 太原市| 武隆县| 苍南县| 沅江市| 余庆县| 临汾市| 乌鲁木齐县| 揭阳市| 靖远县| 温宿县| 师宗县| 乐山市| 全椒县| 延寿县| 康保县| 固始县| 图木舒克市| 喀什市| 磐安县| 惠东县| 沭阳县| 湄潭县| 鸡泽县| 含山县| 中方县| 吉水县| 景洪市| 丰县| 祁东县| 平果县| 浦江县| 合江县| 安多县| 进贤县| 封丘县| 永登县| 玉环县| 乌拉特中旗|