最佳答案
引言
跟著科技的壹直開展,ATM(主動取款機)已成為人們壹般生活中弗成或缺的一部分。而C言語作為一種高效、機動的編程言語,常被用於體系級編程跟嵌入式體系的開辟。本文將帶妳輕鬆入門ATM淺易C言語編程,經由過程實戰案例剖析,讓妳疾速控制ATM編程技能。
第一章:C言語基本
1.1 C言語概述
C言語是一種廣泛利用的打算機編程言語,存在高效、機動、可移植性強等特點。在ATM編程中,C言語可能用來實現用戶登錄、賬戶查詢、取款、存款、轉賬等功能。
1.2 C言語基本語法
- 數據範例:整型、浮點型、字元型等。
- 變數申明與初始化。
- 運算符:算術運算符、關係運算符、邏輯運算符等。
- 把持語句:if語句、for輪回、while輪回等。
第二章:ATM體系計劃
2.1 體系功能模塊
ATM體系重要包含以下功能模塊:
- 用戶登錄模塊:驗證用戶身份。
- 賬戶查詢模塊:查詢用戶賬戶餘額。
- 取款模塊:用戶取款操縱。
- 存款模塊:用戶存款操縱。
- 轉賬模塊:用戶之間轉賬操縱。
2.2 數據構造計劃
- 用戶信息構造體:存儲用戶ID、姓名、密碼等信息。
- 賬戶信息構造體:存儲賬戶ID、用戶ID、餘額等信息。
第三章:ATM淺易C言語編程實戰
3.1 用戶登錄模塊
#include <stdio.h>
#include <string.h>
// 用戶信息構造體
typedef struct {
int id;
char name[20];
char pwd[20];
} userinfo;
// 用戶列表
userinfo userlist[100];
int usernum = 0;
// 函數申明
int login(int id, char *pwd);
int main() {
int id;
char pwd[20];
printf("請輸入用戶ID:");
scanf("%d", &id);
printf("請輸入密碼:");
scanf("%s", pwd);
if (login(id, pwd)) {
printf("登錄成功!\n");
} else {
printf("用戶名或密碼錯誤!\n");
}
return 0;
}
// 用戶登錄函數
int login(int id, char *pwd) {
for (int i = 0; i < usernum; i++) {
if (userlist[i].id == id && strcmp(userlist[i].pwd, pwd) == 0) {
return 1;
}
}
return 0;
}
3.2 賬戶查詢模塊
// 函數申明
void query_balance(int id);
int main() {
int id;
printf("請輸入用戶ID:");
scanf("%d", &id);
query_balance(id);
return 0;
}
// 查詢餘額函數
void query_balance(int id) {
for (int i = 0; i < usernum; i++) {
if (userlist[i].id == id) {
printf("賬戶餘額:%d\n", userlist[i].id);
return;
}
}
printf("用戶不存在!\n");
}
3.3 取款模塊
// 函數申明
void withdraw(int id, int amount);
int main() {
int id, amount;
printf("請輸入用戶ID:");
scanf("%d", &id);
printf("請輸入取款金額:");
scanf("%d", &amount);
withdraw(id, amount);
return 0;
}
// 取款函數
void withdraw(int id, int amount) {
for (int i = 0; i < usernum; i++) {
if (userlist[i].id == id) {
if (userlist[i].balance >= amount) {
userlist[i].balance -= amount;
printf("取款成功!以後餘額:%d\n", userlist[i].balance);
} else {
printf("餘額缺乏!\n");
}
return;
}
}
printf("用戶不存在!\n");
}
3.4 存款模塊
// 函數申明
void deposit(int id, int amount);
int main() {
int id, amount;
printf("請輸入用戶ID:");
scanf("%d", &id);
printf("請輸入存款金額:");
scanf("%d", &amount);
deposit(id, amount);
return 0;
}
// 存款函數
void deposit(int id, int amount) {
for (int i = 0; i < usernum; i++) {
if (userlist[i].id == id) {
userlist[i].balance += amount;
printf("存款成功!以後餘額:%d\n", userlist[i].balance);
return;
}
}
printf("用戶不存在!\n");
}
3.5 轉賬模塊
// 函數申明
void transfer(int from_id, int to_id, int amount);
int main() {
int from_id, to_id, amount;
printf("請輸入轉出用戶ID:");
scanf("%d", &from_id);
printf("請輸入轉入用戶ID:");
scanf("%d", &to_id);
printf("請輸入轉賬金額:");
scanf("%d", &amount);
transfer(from_id, to_id, amount);
return 0;
}
// 轉賬函數
void transfer(int from_id, int to_id, int amount) {
for (int i = 0; i < usernum; i++) {
if (userlist[i].id == from_id) {
if (userlist[i].balance >= amount) {
userlist[i].balance -= amount;
for (int j = 0; j < usernum; j++) {
if (userlist[j].id == to_id) {
userlist[j].balance += amount;
printf("轉賬成功!轉出賬戶餘額:%d,轉入賬戶餘額:%d\n", userlist[i].balance, userlist[j].balance);
return;
}
}
} else {
printf("轉出賬戶餘額缺乏!\n");
}
return;
}
}
printf("轉出用戶不存在!\n");
}
總結
本文經由過程實戰案例剖析,介紹了ATM淺易C言語編程。從C言語基本到ATM體系計劃,再到各個功能模塊的實現,讀者可能逐步控制ATM編程技能。在現實利用中,妳可能根據須要對代碼停止修改跟優化,以順應差其余場景。盼望本文能對妳有所幫助!