1. 程式人生 > 實用技巧 >4、nodejs爬蟲JSDOM(一)

4、nodejs爬蟲JSDOM(一)

ATM管理系統
軟體工程 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/
作業要求 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477
作業目標 設計ATM管理系統
學號 3190704125
題目要求

編寫一個ATM管理系統,語言不限,要求應包括以下主要功能:

(1)開戶,銷戶

(2)查詢賬戶餘額

(3)存款

(4)取款

(5)轉賬(一個賬戶轉到另一個賬戶)等...

ATM原始碼:

include<stdio.h>

include<stdlib.h>

include<string.h>

include<conio.h>

//定義函式
struct users
{
char name[20];//使用者名稱
char pass[7];//密碼
int account;//賬號
float money;//餘額
}user[100];
int count=0;
int account=2017062000;
int find;
int dFind;
int isLogout=0;
//載入介面
void loading(){
int t=1;//小數點的個數
for(int i=1;i<=100;i++)
{
printf("\n\n\t\t\t\t\t\t歡迎進入ATM銀行管理系統");
printf("\n\n\t\t\t\t\t\t請稍等");
for(int j=1;j<=t;j++){
printf(".");
}
t++;
if(t10)t=1;
printf("\n\n\t\t\t\t\t\t%d%%",i);
for(int k=0;k<=5000000;k++);//延遲
system("cls");//清屏
}
}
//查詢餘額功能
void selectMoney(){
system("cls");//清屏
printf("\n\n\n\n\t\t\t\t您正在使用查詢餘額功能");
printf("\n\n\t\t\t\t您的賬戶餘額為:%lf",user[find].money);
}
//存入現金功能
void saveMoney(){
system("cls");//清屏
printf("\n\n\n\n\t\t\t\t您正在使用存款功能");
int RMB;
printf("\n\n\t\t\t\t請輸入存款金額:");
scanf("%d",&RMB);
user[find].money=user[find].money+RMB;
printf("\n\n\t\t\t\t存款成功");
}
//取出存款功能
void getMoney(){
system("cls");//清屏
printf("\n\n\n\n\t\t您正在使用取款功能");
int RMB;
printf("\n\n\t\t請輸入取款金額:");
scanf("%d",&RMB);
if(user[find].money>=RMB){
user[find].money=user[find].money-RMB;
printf("\n\n\t\t取款成功");
}else{
printf("\n\n\t\t餘額不足");
}
}
//金額轉賬功能
void transferMoney(){
system("cls");//清屏
int username;//賬號
int isFind=0;
int RMB;//轉賬金額
printf("\n\n\n\n\t\t您正在使用轉賬功能");
printf("\n\n\t\t請輸入對方的帳號:");
scanf("%d",&username);
for(int i=0;i<count;i++){
if(username

user[i].account){
dFind=i;
isFind=1;
break;
}
}
if(isFind1){
printf("\n\n\t\t請輸入轉賬金額:");
scanf("%d,",&RMB);
if(user[find].money>=RMB){
user[find].money=user[find].money-RMB;
user[dFind].money=user[dFind].money+RMB;
printf("\n\n\t\t轉賬成功");
}else{
printf("\n\n\t\t餘額不足");
}
}else{
printf("\n\n\t\t目標帳號不存在");
}
}
//登出功能
void logout(){
system("cls");//清屏
char confirm;//confirm 確認
printf("\n\n\n\n\t\t您正在使用登出功能");
printf("\n\n\n\n\t\t%d確認登出?",user[find].account);
fflush(stdin);//清空輸入緩衝區
scanf("%c",&confirm);
if(confirm
'y'||confirm'Y'){
printf("\n\n\n\n\t\t正在登出%d",user[find].account);
isLogout=1;
}else{
printf("\n\n\n\n\t\t取消登出帳號%d,返回服務介面",user[find].account);
isLogout=0;
}
}
//結束退出
void quit(){
system("cls");//清屏
printf("正在退出,請稍後...");
exit(0);//正常退出
}
//功能主介面
void service(){
char choise;
while(1){
system("cls");
printf("\n\n\n\n\t\tA、查詢餘額");
printf("\n\n\t\tB、存款");
printf("\n\n\t\tC、取款");
printf("\n\n\t\tD、轉賬");
printf("\n\n\t\tE、修改密碼");
printf("\n\n\t\tF、登出");
printf("\n\n\t\tG、退出系統");
printf("\n\n\t\t請選擇:");
fflush(stdin);//清屏
scanf("%c",&choise);
switch(choise){
case 'a':
case 'A':
selectMoney();break;//查詢餘額
case 'b':
case 'B':
saveMoney();break;//存款
case 'c':
case 'C':
//printf("\n\n\t\t執行取款功能");break;
getMoney();break;//取款
case 'd':
case 'D':
transferMoney();break;//轉賬
case 'e':
case 'E':
printf("\n\n\t\t執行修改密碼功能");break;
//updatePass();break;//修改密碼
case 'f':
case 'F':
logout();
if(isLogout
1){
return;//直接結束所處函式
}
break;//登出
case 'g':
case 'G':
quit();break;//退出系統
default:
printf("\n\n\t\t您的輸入有誤,請重新輸入!");break;
}
printf("\n\n\t\t按任意鍵繼續");
getch();//不回顯函式,不需按回車
}
}
//隱藏密碼
void inputPass(char pass[]){
int i=0;
char ch;
while(1){
ch=getch();//不回顯函式,不需按回車
if(ch!='\r'){//判斷輸入的是否是回車
if(ch!='\b'){//判斷輸入的是否是退格
pass[i]=ch;//將輸入的字元賦值給密碼的第i位
i++;
printf("*");
}else{
if(i>0){
i--;
printf("\b \b");
}
}
}else{
break;
}
}
pass[i]='\0';
printf("\n");
}
//註冊介面功能
void regist(){
system("cls");//清屏
char rePass[7];
printf("\n\n\n\n\t\t\t\t請輸入使用者名稱:");
//要使用一個字串接收輸入的使用者名稱
fflush(stdin);//重新整理字元緩衝區
gets(user[count].name);//讀取字串,回車結束
while(1){
while(1){
printf("\n\n\t\t\t\t請輸入密碼:");
fflush(stdin);//清空輸入緩衝區
inputPass(user[count].pass);
int length=strlen(user[count].pass);//計算字串長度,其返回值是一個整數
if(length6){
break;
}else{
printf("\n\n\t\t\t\t密碼輸入有誤!請輸入6位密碼");
}
}
printf("\n\n\t\t\t\t請再次輸入密碼:");
fflush(stdin);//清空輸入緩衝區
inputPass(rePass);
if(strcmp(rePass,user[count].pass)
0){
break;
}else{
printf("\n\n\t\t\t\t兩次密碼輸入不一致,請重新輸入");
}
}
account=account+1;
user[count].account=account;
user[count].money=0;
system("cls");//清屏
printf("\n\n\n\n\t\t\t\t註冊成功\n");
printf("\n\n\t\t\t\t您的賬號為:%d\n",user[count].account);
if(count>=1){
printf("\n\n\t\t\t\t前一個註冊的賬號為:%d\n",user[count-1].account);
}
count++;
}
//登陸介面
void login(){
int zhanghao;
int sign=0;
int find;
char loginPassword[7];
//1.清屏
system("cls");
//2.提示 請輸入賬號
printf("\n\n\n\n\t\t\t\t請輸入帳號:");
//3.獲取輸入的賬號
scanf("%d",&zhanghao);
//4.將輸入的賬號與使用者數組裡的每一位使用者的帳號進行對比
for(int i=0;i<count;i++){
if(zhanghaouser[i].account){
sign=1;//將F標記設定為1
find=i;
break;
}
}
//5.如果匹配到了,提示請輸入密碼
if(sign
1){
int j;
for(j=1;j<=3;j++){
printf("\n\n\t\t請輸入密碼:");
inputPass(loginPassword);
if(strcmp(loginPassword,user[find].pass)0){
printf("\n\n\t\t登陸成功");
printf("\n\n\t\t進入服務介面");
service();
break;
}else{
if(j
3){
printf("\n\n\t\t密碼三次輸入錯誤,已鎖定!");
break;
}
printf("\n\n\t\t密碼錯誤,請重新輸入!");
}
}

}else{
	printf("\n\n\t\t賬號錯誤");
}

}
//初始介面
void main(){
loading();
char ch;
while(1){
printf("\n\n\t\t\t\t\t\ta.使用者註冊");
printf("\n\n\t\t\t\t\t\tb.使用者登入");
printf("\n\n\t\t\t\t\t\tc.退出系統");
printf("\n\n\t\t\t\t\t\t請選擇:");
fflush(stdin);//清空字元緩衝區,回車符
scanf("%c",&ch);
//判斷輸入的字元
if(ch'a'||ch'A')
{
//執行註冊函式
regist();
//printf("\n\n\t\t執行註冊");
}
else if(ch'b'||ch'B')
{
//執行登入函式
login();
//printf("\n\n\t\t執行登入");
}
else if(ch'c'||ch'C')
{
//quit();
printf("\n\n\t\t執行退出");
}else
{
printf("\n\n\t\t輸入有誤,請重新輸入!");
}
printf("\n\n\t\t按任意鍵繼續...");
getch();//不回顯函式,不需按回車
system("cls");//清屏
}
}
主介面截圖:




PSP表格