欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)自動(dòng)存取款機(jī)模擬系統(tǒng)

 更新時(shí)間:2022年05月30日 09:48:35   作者:Sriven  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)自動(dòng)存取款機(jī)模擬系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)自動(dòng)存取款機(jī)模擬系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

/*
? ? c語(yǔ)言課程設(shè)計(jì)項(xiàng)目名稱:自動(dòng)存取款機(jī)模擬系統(tǒng)
?? ?作者:施瑞文?
?? ?專業(yè):軟件工程(商業(yè)智能)?
?? ?時(shí)間:2018.2.27?
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<time.h>?
#define N sizeof(struct Account)
#define M sizeof(struct Money)
struct Account ? ? ? //賬戶信息?
{
?? ?char name[10]; ? ? ? //賬號(hào)昵稱?
?? ?char password[18]; ? ? ? //密碼?
?? ?struct Account *next; ? //指針域?
};
typedef struct Account Acc;
typedef Acc *Accp;
?
struct Money ? ? //錢(qián)?
{
?? ?float money;
?? ?char time[10];//時(shí)間
?? ?char date[10];//日期?
?? ?struct Money *next;
};
typedef struct Money mon;
typedef mon *monp;
?
//函數(shù)聲明區(qū)?
void HideCursor(); ? ? ? ? ?//隱藏光標(biāo)
void toxy(int x, int y); ? ?//將光標(biāo)移動(dòng)到X,Y坐標(biāo)處
void color(short x); ? ? //設(shè)置顏色
void menu(); ? ? ? ? ? ? ? //菜單?
Accp ff(); ? ? ? ? ? ? ? ? //將文件中的內(nèi)容讀出 ?
void signin(); ? ? ? ? ? ? ? //登陸或注冊(cè)?
void login(); ? ? ? ? ? ? ? ? // 注冊(cè)賬號(hào)?
void logon(); ? ? ? ? ? ? ? ? ?// 賬號(hào)登陸 ??
void amend_password(); ? ? ?//修改密碼
void add_money(); ? ? //存款?
void find_money(); ? //查詢?
void get_money(); ? ?//取款
void transfer_money(); ? //轉(zhuǎn)賬
void save_account(Accp p); ?//將p所指向的內(nèi)容存入文件中
void save_money(monp p); ? ? //將p所指向的內(nèi)容存入文件中?
float Sum(); ? ? ? ? ?//求余額?
void over(); ? ? ? ? ? ? ? ? ?//退出系統(tǒng) ?
void list(); ? //賬單明細(xì)?
monp ss();
?
?
char _name[20],_password[18]; ? ? ? //全局變量記住當(dāng)前登陸賬戶?
?
void color(short x)
{
?? ?if(x>=0&&x<=15)
?? ?{
?? ??? ?SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
?? ?}
?? ?else
?? ?{
?? ??? ?SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
?? ?}
}?
?
void HideCursor() ? ? //隱藏光標(biāo)
{
?CONSOLE_CURSOR_INFO cursor_info = {1, 0};?
?SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
?
void toxy(int x, int y) ? ? ?//將光標(biāo)移動(dòng)到X,Y坐標(biāo)處
{
COORD pos = { x , y };
HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(Out, pos);?
}
?
Accp ff() ? ? ? ? ? ? ? //將存賬號(hào)的文件里的內(nèi)容輸出到鏈表中
{
?? ?FILE *fp; ? ? ? //文件指針?
?? ?int n=0;
?? ?Accp head=NULL;
?? ?Accp p2,p;
?? ?fp=fopen("account","a+"); ? ? //以只讀的方式打開(kāi)文件?
?? ?if(fp==NULL)
?? ?{
?? ??? ?printf("cannot open file\n");
?? ?}
?? ?else
?? ?{
?? ??? ?while(!feof(fp)) ? ? ? ?//判斷文件位置標(biāo)志是否移動(dòng)到文件末尾?
?? ??? ?{
?? ??? ? ? n++;
?? ??? ? ? ?? ?p=(Accp)malloc(N); //向內(nèi)存申請(qǐng)一段空間?
?? ??? ? ? fread(p,N,1,fp); ? ? //將fp所指向的文件中的內(nèi)容賦給p?
?? ??? ? ? if(n==1)
?? ??? ? ? {
?? ??? ? ? ? ?head=p;
?? ??? ? ? ? ?p2=p;
?? ??? ? ? ?}
?? ??? ? ? ?else ? ? ? ? ? ? //創(chuàng)建鏈表?
?? ??? ? ? ?{
?? ??? ? ? ??? ?p2->next=p;
?? ??? ? ? ??? ?p2=p;
?? ??? ??? ?}
?? ? ? ?}
?? ? ? ?p2->next=NULL;
?? ?}
? ? fclose(fp); ? ?//關(guān)閉文件?
? ? return head; ? //返回頭指針?
}
?
void menu() ? ? //菜單?
{
?? ?system("cls"); ? ?//清屏 ?
?? ?do{
?? ??? ?color(14); ? ? //看著舒服的顏色
?? ??? ?char t;
?? ??? ?toxy(50,5);
?? ??? ?printf(" 自動(dòng)存取款機(jī)模擬系統(tǒng)");
?? ??? ?toxy(50,6);
?? ??? ?printf("當(dāng)前賬戶為:%s",_name);
?? ??? ?toxy(48,8);
?? ??? ?printf("| ? ? 1.取款 ? ? ? ? ?|");
?? ??? ?toxy(48,10);
?? ??? ?printf("| ? ? 2.轉(zhuǎn)賬 ? ? ? ? ?|");
?? ??? ?toxy(48,12);
?? ??? ?printf("| ? ? 3.余額 ? ? ? ? ?|");
?? ??? ?toxy(48,14);
?? ??? ?printf("| ? ? 4.明細(xì) ? ? ? ? ?|");
?? ??? ?toxy(48,16);
?? ??? ?printf("| ? ? 5.存款 ? ? ? ? ?|");
?? ??? ?toxy(48,18);
?? ??? ?printf("| ? ? 6.修改密碼 ? ? ?|");?
?? ??? ?toxy(48,20);
?? ??? ?printf("| ? ? 7.退出系統(tǒng) ? ? ?|");
?? ??? ?t=getch(); ? ? ? ? ? ? ? ? ? ?//利用不回顯函數(shù),輸入t,可以不用手動(dòng)按回車(chē)鍵?
?? ??? ?switch(t)
?? ??? ?{
?? ??? ??? ?case '1':get_money();break;?
?? ??? ??? ?case '2':transfer_money();break;
?? ??? ??? ?case '3':find_money();break;
?? ??? ??? ?case '4':list();break;?
?? ??? ??? ?case '5':add_money();break;
?? ??? ??? ?case '6':amend_password();break;
?? ??? ??? ?case '7':over();break;
?? ??? ??? ?default :;break;
?? ??? ?}
? ? }while(1); ? ? ? //永遠(yuǎn)為真?
}
?
void signin() ? ? ? //登陸或注冊(cè)?
{
?? ?system("cls");
?? ?color(12);?
?? ?HideCursor(); ? ?//隱藏光標(biāo)
?? ?char t;
?? ?toxy(50,5);
?? ?printf("自動(dòng)存取款機(jī)模擬系統(tǒng)");
?? ?toxy(44,8);
?? ?printf("----------------------------");
?? ?toxy(45,10);
?? ?printf("請(qǐng)輸入(1:登陸;2:注冊(cè).)");
?? ?toxy(44,12);
?? ?printf("----------------------------");
?? ?while(1)
?? ?{
?? ??? ?t=getch();
?? ??? ?switch(t)
?? ??? ?{
?? ??? ??? ?case '1':logon();break;
?? ??? ??? ?case '2':login();break;
?? ??? ??? ?default :break;
?? ??? ?}
?? ?}
}
?
void logon() ? ? ?// 賬號(hào)登陸?
{?
?? ?system("cls"); ? //清屏?
?? ?color(10); ? ? //設(shè)置顏色?
?? ?Accp p,head; ? ?
?? ?head=ff(); ? ?//調(diào)用函數(shù) ,返回值為頭結(jié)點(diǎn)的指針?
? ? do{
?? ? ? ?p=head;
?? ? ? ?char t,c,k;
?? ? ? ?int i=0;;
?? ??? ?toxy(50,5);
?? ??? ?printf("自動(dòng)存取款機(jī)模擬系統(tǒng)");
?? ??? ?toxy(45,6);
?? ??? ?printf("***************************");
?? ??? ?toxy(45,8);
?? ??? ?printf(" ? ? 登陸狀態(tài) ? ? ? ");
?? ??? ?toxy(45,10);
?? ??? ?printf("* ?請(qǐng)輸入您的賬號(hào):");
?? ??? ?gets(_name);
?? ??? ?toxy(45,12);
?? ??? ?printf("* ?請(qǐng)輸入您的密碼:");
?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作?
?? ??? ?{
?? ??? ??? ?k=getch(); ? ? ? //輸入k?
?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車(chē),則跳出循環(huán)?
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒(méi)完全刪除?
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?printf(" ");
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?i--;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車(chē)鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?_password[i]=k; ? //把k的值賦給_password[i];?
?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號(hào),保護(hù)用戶隱私?
?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?_password[i]='\0';
?? ??? ?while(p!=NULL&&strcmp(p->name,_name)!=0) ? //遍歷鏈表,尋找當(dāng)前輸入的賬戶的賬號(hào)?
?? ??? ?{
?? ??? ??? ?p=p->next;
?? ??? ?}
?? ??? ?if(p!=NULL) ? //如果p不為空?
?? ??? ?{
?? ? ? ??? ?if(strcmp(p->password,_password)==0) ? ? //如果輸入的密碼正確?
?? ??? ??? ?{
?? ??? ??? ??? ?toxy(48,16);
?? ??? ??? ??? ?printf("正在登陸....");
?? ??? ??? ??? ?Sleep(500); ? ? ?//暫停0.5秒
?? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ?color(10);
?? ??? ??? ??? ?toxy(48,10);
?? ??? ??? ??? ?printf("登陸成功!");
?? ??? ??? ??? ?break; ? ?//跳出循環(huán)
?? ??? ??? ?}
?? ??? ??? ?else ? ? ?//如果輸入的密碼錯(cuò)誤
?? ??? ??? ?{?
?? ??? ??? ??? ?toxy(48,16);
?? ??? ??? ??? ?printf("正在登陸....");
?? ??? ??? ??? ?Sleep(500);
?? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ?color(10);
?? ??? ??? ??? ?toxy(46,8);
?? ??? ??? ??? ?printf("-------------------------");
?? ??? ??? ??? ?toxy(46,9);
?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ??? ?toxy(46,10);
?? ??? ??? ??? ?printf("| 密碼錯(cuò)誤!是否繼續(xù)? ?|");
?? ??? ??? ??? ?toxy(46,12);
?? ??? ??? ??? ?printf("| 1.是 ? ? ? ? ? ? 2.否 |");
?? ??? ??? ??? ?toxy(46,13);
?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ??? ?toxy(46,14);
?? ??? ??? ??? ?printf("-------------------------");
?? ??? ??? ??? ?while(1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?t=getch(); ?//輸入t ? ?
?? ??? ??? ??? ??? ?if(t=='1') ? ? ? ? ?
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?system("cls"); ?//清屏?
?? ??? ??? ??? ??? ??? ?color(10);?
?? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?else if(t=='2') ? ? //如果輸入t為n,進(jìn)入開(kāi)始界面?
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?signin();break;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}?
?? ? ? }
?? ? ? else ? ? ? ? ? ? ?//如果p為空,即輸入的賬號(hào)不正確?
?? ? ? {
?? ? ? ?? ? ? ?toxy(48,16);
?? ? ? ?? ? ? ?printf("正在登陸....");
?? ? ? ?? ? ? ?Sleep(500);
?? ? ? ?? ? ? ?system("cls");
?? ? ? ?? ? ? ?color(10);
?? ? ? ?? ? ? ?toxy(46,8);
?? ? ? ?? ? ? ?printf("-------------------------");
?? ? ? ?? ? ? ?toxy(46,9);
?? ? ? ?? ? ? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ? ? ?? ??? ?toxy(46,10);
?? ??? ??? ?printf("| ?賬號(hào)錯(cuò)誤!是否繼續(xù)? |");
?? ??? ??? ?toxy(46,11);
?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ?toxy(46,12);
?? ??? ??? ?printf("| ?1.是 ? ? ? ? ? ?2.否 |");?
?? ??? ??? ?toxy(46,13);
?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ?toxy(46,14);
?? ??? ??? ?printf("-------------------------");
?? ??? ??? ?while(1) ? ? ?//死循環(huán)防止其他按鍵干擾?
?? ??? ??? ?{
?? ??? ??? ??? ?c=getch();
?? ??? ??? ??? ?if(c=='1')
?? ??? ??? ??? ?{ ?
?? ??? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ??? ?color(10);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else if(c=='2')
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?signin();break;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ? ? }
? ? }while(1); ? ? ?//永遠(yuǎn)為真?
? ?Sleep(500); ? ? ?//暫停0.5秒?
? ?menu(); ? ? ? ? //賬號(hào)密碼均正確,進(jìn)入主菜單?
}
?
void login() ? ? ? ?//注冊(cè)賬號(hào)?
{
?? ?
?? ?system("cls");
?? ?color(10);?
?? ?Accp p1;
?? ?p1=(Accp)malloc(N); ? ? //向內(nèi)存申請(qǐng)一段空間?
?? ?do{
?? ??? ?color(10);
?? ??? ?char name[20],password[18],againpassword[18],c,k;
?? ??? ?int i=0;;?
?? ??? ?toxy(50,5);
?? ??? ?printf("自動(dòng)存取款機(jī)模擬系統(tǒng)");
?? ??? ?toxy(45,6);
?? ??? ?printf("**************************");
?? ??? ?toxy(45,8);
?? ??? ?printf(" ? 正在注冊(cè)");
?? ??? ?toxy(45,10);
?? ??? ?printf("* ?請(qǐng)輸入賬號(hào):");
?? ??? ?gets(name);
?? ??? ?toxy(45,12);
?? ??? ?printf("* ?請(qǐng)輸入密碼:");
?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作?
?? ??? ?{
?? ??? ??? ?k=getch(); ? ? ? //輸入k?
?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車(chē),則跳出循環(huán)?
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒(méi)完全刪除?
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?printf(" ");
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?i--;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車(chē)鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?password[i]=k; ? //把k的值賦給_password[i];?
?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號(hào),保護(hù)用戶隱私?
?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?password[i]='\0';
?? ??? ?i=0;
?? ??? ?toxy(45,14);
?? ??? ?printf("* ?請(qǐng)確認(rèn)您的密碼:");
?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作?
?? ??? ?{
?? ??? ??? ?k=getch(); ? ? ? //輸入k?
?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車(chē),則跳出循環(huán)?
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒(méi)完全刪除?
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?printf(" ");
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?i--;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車(chē)鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?againpassword[i]=k; ? //把k的值賦給_password[i];?
?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號(hào),保護(hù)用戶隱私?
?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?againpassword[i]='\0';
?? ??? ?if(strcmp(password,againpassword)==0) ? ? ? ?//如果輸入的兩次密碼均正確?
?? ??? ?{
?? ??? ??? ?strcpy(p1->name,name);
?? ??? ??? ?strcpy(p1->password,password);
?? ??? ??? ?toxy(48,16);
?? ??? ??? ?printf("正在注冊(cè)....");
?? ??? ??? ?Sleep(500);
?? ??? ??? ?system("cls");
?? ??? ??? ?color(12);
?? ??? ??? ?toxy(48,10);
?? ??? ??? ?printf("注冊(cè)成功!");
?? ??? ??? ?Sleep(500); ? ? ? ? //暫停0.5秒?
?? ??? ??? ?break; ? ? ? ? ? ? ?//跳出循環(huán)?
?? ??? ?}
?? ??? ?else ? ?//如果輸入的兩次密碼不同?
?? ??? ?{
?? ??? ??? ?toxy(48,16);
?? ??? ??? ?printf("正在注冊(cè)....");
?? ??? ??? ?Sleep(500);
?? ??? ??? ?system("cls");
?? ??? ??? ?color(12);
?? ??? ??? ?toxy(46,8);
?? ??? ??? ?printf("-----------------------------");
?? ??? ??? ?toxy(46,9);
?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ?toxy(46,10);
?? ??? ??? ?printf("| ?注冊(cè)失??!是否繼續(xù)注冊(cè)? |");
?? ??? ??? ?toxy(46,11);
?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ?toxy(46,12);
?? ??? ??? ?printf("| ?1.是 ? ? ? ? ? ? ? 2.否 ?|");?
?? ??? ??? ?toxy(46,13);
?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ??? ?toxy(46,14);
?? ??? ??? ?printf("-----------------------------");
?? ??? ??? ?while(1)
?? ??? ??? ?{
?? ??? ??? ??? ?c=getch();
?? ??? ??? ??? ?if(c=='1')
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ??? ?color(12);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else if(c=='2')
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?signin();
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ?}while(1); ? ?//永遠(yuǎn)為真?
?? ?save_account(p1); ? ? //調(diào)用函數(shù),將p1所指向的內(nèi)容存儲(chǔ)到文件中?
?? ?toxy(48,12);
?? ?printf("正在自動(dòng)為您登陸....");
?? ?Sleep(500);
?? ?menu(); ? ?//注冊(cè)成功后進(jìn)入主菜單?
}
?
?
/*修改密碼
方法比較笨,這里是先將儲(chǔ)存在文件中的賬戶信息
輸出在一個(gè)鏈表中,遍歷鏈表,尋找當(dāng)前登陸的賬戶賬號(hào),修改該節(jié)點(diǎn)的p->password,
再將修改后的鏈表存到文件中,需要注意的是修改之后再存到文件中需要將該文件中的內(nèi)容
清空*/?
void amend_password() ? ? ? ?//修改密碼?
{?
?? ?system("cls"); ? ? ? ? //清屏?
?? ?color(14); ? ?//看著舒服的顏色?
?? ?HideCursor(); ?
?? ?Accp p,head; ? ? ? //隱藏光標(biāo),看著更舒服?
?? ?head=ff();
?? ?FILE *fp;
? ? do
? ? {
? ? ?? ?color(14);
? ? ?? ?HideCursor(); ? ? ? //隱藏光標(biāo),看著舒服?
? ? ?? ?p=head;
? ? ?? ?char password[18],newpassword[18],t,k;
? ? ?? ?int i=0;
? ? ?? ?toxy(50,5); ? ? ? ? ?//將光標(biāo)移動(dòng)到坐標(biāo)為(50,5)的位置?
?? ??? ?printf("自動(dòng)存取款機(jī)模擬系統(tǒng)");
?? ??? ?toxy(50,8);
?? ??? ?printf("修改密碼");
?? ??? ?toxy(48,10);
?? ??? ?printf("請(qǐng)輸入舊密碼:");
?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作?
?? ??? ?{
?? ??? ??? ?k=getch(); ? ? ? //輸入k?
?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車(chē),則跳出循環(huán)?
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒(méi)完全刪除?
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?printf(" ");
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?i--;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車(chē)鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?password[i]=k; ? //把k的值賦給_password[i];?
?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號(hào),保護(hù)用戶隱私?
?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?password[i]='\0';
?? ??? ?i=0;
?? ??? ?toxy(48,12);
?? ??? ?printf("請(qǐng)輸入新密碼:");
?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作?
?? ??? ?{
?? ??? ??? ?k=getch(); ? ? ? //輸入k?
?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車(chē),則跳出循環(huán)?
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒(méi)完全刪除?
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?printf(" ");
?? ??? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ??? ?i--;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車(chē)鍵?
?? ??? ??? ?{
?? ??? ??? ??? ?newpassword[i]=k; ? //把k的值賦給_password[i];?
?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號(hào),保護(hù)用戶隱私?
?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?newpassword[i]='\0';
?? ??? ?while(p!=NULL&&strcmp(p->name,_name)!=0)//遍歷鏈表,尋找當(dāng)前登陸賬戶的賬號(hào)?
?? ??? ?{
?? ??? ??? ?p=p->next;
?? ??? ?}
?? ??? ?if(p!=NULL) ? ? ? ? ? ? ? ? ? //如果p不為空?
?? ??? ?{
?? ??? ??? ?if(strcmp(p->password,password)==0) ? ? ? ? ?//如果舊密碼輸入正確?
?? ??? ??? ?{
?? ??? ??? ??? ?strcpy(p->password,newpassword); ? ? ? ? //將舊密碼改為新密碼?
?? ??? ??? ??? ?break; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //跳出循環(huán)?
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //如果舊密碼輸入錯(cuò)誤?
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ?color(12);
?? ??? ??? ??? ?toxy(46,8);
?? ??? ??? ??? ?printf("--------------------------");
?? ??? ??? ??? ?toxy(46,9);
?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|");
?? ??? ??? ??? ?toxy(46,10);
?? ??? ??? ??? ?printf("| ?密碼錯(cuò)誤!是否繼續(xù)? ?|");
?? ??? ??? ??? ?toxy(46,11);
?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|");
?? ??? ??? ??? ?toxy(46,12);
?? ??? ??? ??? ?printf("| ?1.是 ? ? ? ? ? 2.否 ? |");
?? ??? ??? ??? ?toxy(46,13);
?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|");
?? ??? ??? ??? ?toxy(46,14);
?? ??? ??? ??? ?printf("--------------------------");
?? ??? ??? ??? ?while(1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?t=getch(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//輸入t?
?? ??? ??? ??? ??? ?if(t=='1')
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ??? ??? ?color(12);
?? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?else if(t=='2')
?? ??? ??? ??? ??? ? ?menu();
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ?}while(1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//永遠(yuǎn)為真?
?? ?p=head->next; ? ? ? ? ? ? ? ? ? ? ? ? ? //使p指向第二個(gè)結(jié)點(diǎn)?
?? ?fp=fopen("account","w"); ? ? ? ? ? ? ? ? ?//先清空原文件內(nèi)容再將修改后的信息寫(xiě)入文件?
?? ?if(fp==NULL)
?? ?{
?? ??? ?printf("cannot open file\n");
?? ?}
?? ?if(fwrite(head,N,1,fp)!=1) ? ? ? ? ? ? ? ? //將head所指向的數(shù)據(jù)寫(xiě)入fp所指向的文件?
?? ?{
?? ??? ?printf("file write error\n");
?? ?}
?? ?fclose(fp); ? ? ? ? ? ? ? ? ? ? ? ? //關(guān)閉文件?
?? ?fp=fopen("account","a"); ? ? ? ? ?// 打開(kāi)account文件,方式為追加?
?? ?while(p!=NULL) ? ? ? ? ? ? ? ? ? ?//p不為空就執(zhí)行循環(huán)體?
?? ?{
?? ??? ?if(fwrite(p,N,1,fp)!=1) ? ? ? ? ? ?//將p所指向的1個(gè)大小為N的數(shù)據(jù)結(jié)構(gòu)寫(xiě)入fp所指向的文件?
?? ? ? ?{
?? ??? ?printf("file write error\n");
?? ? ? ?}
?? ? ? ?p=p->next; ? ? ? ? ? ? ? ? ? ? //使p指向下一個(gè)結(jié)點(diǎn)?
?? ?}
?? ?fclose(fp); ? ? ? ? ? ? ?//關(guān)閉文件?
?? ?toxy(48,14);
?? ?printf("修改成功!正在跳轉(zhuǎn)...");
?? ?Sleep(500); ? ? ? //暫停0.5秒?
}
?
?
void save_account(Accp p1) ? ? //將p1所指向的內(nèi)容存儲(chǔ)到文件中?
{
?? ?FILE *fp; ? ? ? //文件指針?
?? ?fp=fopen("account","a"); ? ?//以追加的方式打開(kāi)文件?
?? ?if(fp==NULL)
?? ?{
?? ??? ?printf("cannot open file\n");
?? ?}
?? ?if(fwrite(p1,N,1,fp)!=1) ? ?//將p1所指向的1個(gè)大小為N的數(shù)據(jù)結(jié)構(gòu)寫(xiě)入fp所指向的文件中?
?? ?{
?? ??? ?printf("file write error\n");
?? ?}
?? ?fclose(fp); ? ? ? ?//關(guān)閉文件?
}
?
void add_money() ? ? ? //存款?
{
?? ?do
?? ?{
?? ??? ?system("cls"); ? //清屏?
?? ??? ?color(11);
?? ??? ?monp p;
?? ??? ?char t;?
?? ??? ?char time[10],date[10];
?? ??? ?p=(monp)malloc(M); ? //向內(nèi)存申請(qǐng)一段空間?
?? ??? ?toxy(48,8);
?? ??? ?printf("請(qǐng)輸入您需要存入的金額:");
?? ??? ?scanf("%f",&p->money);
?? ??? ?getchar(); //吸收回車(chē)鍵?
?? ??? ?_tzset();?
? ? ? ? _strtime(time); ? ? ?
? ? ? ? strcpy(p->time,time);
? ? ? ? _strdate(date);
?? ??? ?strcpy(p->date,date); ??
?? ??? ?toxy(48,10);
?? ??? ?printf("正在操作,請(qǐng)稍后....");
?? ??? ?Sleep(500);
?? ??? ?save_money(p);
?? ??? ?system("cls");
?? ??? ?toxy(46,8);
?? ??? ?printf("-------------------------");
?? ??? ?toxy(46,9);
?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ?toxy(46,10);
?? ??? ?printf("| 存入成功!是否繼續(xù)? ?|");
?? ??? ?toxy(46,12);
?? ??? ?printf("| 1.是 ? ? ? ? ? ? 2.否 |");
?? ??? ?toxy(46,13);
?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ?toxy(46,14);
?? ??? ?printf("-------------------------");
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?t=getch();
?? ??? ??? ?if(t=='1')
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(t=='2')
?? ??? ??? ?{
?? ??? ??? ??? ?menu();
?? ??? ??? ?}
?? ??? ?}
?? ?}while(1);
}
?
void find_money() ? ? //查詢余額?
{
?? ?system("cls");
?? ?color(13);
?? ?float sum=0;
?? ?sum=Sum();
?? ?toxy(46,12);
?? ?printf("余額為:%f",sum);
?? ?toxy(46,16);
?? ?printf("按任意鍵回到主菜單");
?? ?getch();
?? ?menu();?
}
?
void get_money() ? ? ?//取款?
{
?? ?do
?? ?{
?? ??? ?system("cls");
?? ??? ?color(11);
?? ??? ?monp p;
?? ??? ?float money,sum;
?? ??? ?char t;
?? ??? ?char time[10],date[10];
?? ??? ?toxy(46,12);
?? ??? ?printf("請(qǐng)輸入您要取的金額:");
?? ??? ?scanf("%f",&money);?
?? ??? ?getchar();//吸收回車(chē)鍵?
?? ??? ?sum=Sum();
?? ??? ?if(money>sum) ? //如果要取的金額大于余額?
?? ??? ?{
?? ??? ??? ?toxy(46,14);
?? ??? ??? ?printf("余額不足,請(qǐng)重新輸入!");
?? ??? ??? ?Sleep(500);
?? ??? ??? ?continue; ? ?//結(jié)束本次循環(huán)?
?? ??? ?}
?? ??? ?p=(monp)malloc(M); ? ?//向內(nèi)存申請(qǐng)一段空間?
?? ??? ?_tzset();?
? ? ? ? _strtime(time); ? ? ?
? ? ? ? strcpy(p->time,time);
? ? ? ? _strdate(date);
?? ??? ?strcpy(p->date,date); ?
?? ??? ?p->money=-money;
?? ??? ?save_money(p); ? ? ?
?? ??? ?toxy(46,14);
?? ??? ?printf("正在操作,請(qǐng)稍后....");
?? ??? ?Sleep(500);
?? ??? ?system("cls");
?? ??? ?toxy(46,8);
?? ??? ?printf("-------------------------");
?? ??? ?toxy(46,9);
?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ?toxy(46,10);
?? ??? ?printf("| 取款成功!是否繼續(xù)? ?|");
?? ??? ?toxy(46,12);
?? ??? ?printf("| 1.是 ? ? ? ? ? ? 2.否 |");
?? ??? ?toxy(46,13);
?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ?toxy(46,14);
?? ??? ?printf("-------------------------");
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?t=getch();
?? ??? ??? ?if(t=='1')
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(t=='2')
?? ??? ??? ?{
?? ??? ??? ??? ?menu();break;
?? ??? ??? ?}
?? ??? ?}
?? ?}while(1);
?? ?
}
?
void list() ?//明細(xì)?
{
?? ?system("cls");
?? ?color(10);
?? ?monp head,p;
?? ?int i=10;
?? ?head=ss();
?? ?p=head;
?? ?toxy(50,5);
?? ?printf(" 自動(dòng)存取款機(jī)模擬系統(tǒng)");
?? ?toxy(54,6);
?? ?printf("賬單明細(xì)");
?? ?toxy(30,7);
?? ?printf("-------------------------------------------------------------");
?? ?toxy(31,8);
?? ?printf("金 ? ? ? 額 ? ? ? ? ? ? ?時(shí) ? ? ? 間 ? ? ? ? ? ? 日 ? ? ?期");
?? ?toxy(30,9);
?? ?printf("-------------------------------------------------------------");
?? ?while(p!=NULL)
?? ?{
?? ??? ?toxy(30,i);
?? ??? ?if(p->money>=0)
?? ??? ?{
?? ??? ??? ?printf("+%f ? ? ? ? ? ? ? ?%-24s%s",p->money,p->time,p->date);
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("%f ? ? ? ? ? ? ? ?%-24s%s",p->money,p->time,p->date);
?? ??? ?}
?? ??? ?p=p->next;
?? ??? ?i++;
?? ?}
?? ?toxy(50,i);
?? ?printf("請(qǐng)按任意鍵返回主菜單");
?? ?getch();
?? ?menu();
}
?
void transfer_money() ? ? //轉(zhuǎn)賬?
{
?? ?do
?? ?{
?? ??? ?system("cls");
?? ??? ?color(10);
?? ??? ?FILE *fp1;
?? ??? ?monp p,head,p1;
?? ??? ?float money,sum=0;
?? ??? ?char name[20],t;
?? ??? ?char time[10],date[10];
?? ??? ?toxy(46,12);
?? ??? ?printf("請(qǐng)輸入您要轉(zhuǎn)入的賬號(hào):");
?? ??? ?gets(name);
?? ??? ?toxy(46,14);
?? ??? ?printf("請(qǐng)輸入您要轉(zhuǎn)出的金額:");
?? ??? ?scanf("%f",&money);
?? ??? ?getchar(); ? //吸收回車(chē)鍵?
?? ??? ?sum=Sum();
?? ??? ?if(money>sum) ? //如果要轉(zhuǎn)出的金額大于余額?
?? ??? ?{
?? ??? ??? ?toxy(46,16);
?? ??? ??? ?printf("余額不足!");
?? ??? ??? ?Sleep(500);
?? ??? ??? ?continue; ? //結(jié)束本次循環(huán)?
?? ??? ? }?
?? ??? ?fp1=fopen(name,"rb"); ? ?//以只讀的方式打開(kāi)名字為name的二進(jìn)制文件 ?
?? ??? ?if(fp1==NULL) ? ?//如果文件不存在?
?? ??? ?{
?? ??? ??? ?toxy(46,16);
?? ??? ??? ?printf("賬戶不存在!");
?? ??? ??? ?fclose(fp1);
?? ??? ??? ?Sleep(500);
?? ??? ??? ?continue;
?? ??? ?}
?? ??? ?fp1=fopen(name,"ab"); ? ?//以追加的方式打開(kāi)名字為name的二進(jìn)制文件 ?
?? ??? ?p=(monp)malloc(M); ?//向內(nèi)存申請(qǐng)一段空間?
?? ??? ?p->money=-money;
?? ??? ?_tzset();?
? ? ? ? _strtime(time); ? ? ?
? ? ? ? strcpy(p->time,time);
? ? ? ? _strdate(date);
?? ??? ?strcpy(p->date,date); ?
?? ??? ?save_money(p);
?? ??? ?p1=(monp)malloc(M);
?? ??? ?p1->money=money;
?? ??? ?strcpy(p1->time,time);
?? ??? ?strcpy(p1->date,date);
?? ??? ?if(fwrite(p1,M,1,fp1)!=1) ? ?//將p1所指向的一個(gè)大小為M的節(jié)點(diǎn) 存入fp1所指向的文件中?
?? ??? ?{
?? ??? ??? ?printf("轉(zhuǎn)賬失敗,請(qǐng)重試!");
?? ??? ??? ?continue;
?? ??? ?}
?? ??? ?fclose(fp1);
?? ??? ?toxy(46,18);
?? ??? ?printf("正在操作,請(qǐng)稍后....");
?? ??? ?Sleep(500);
?? ??? ?system("cls");
?? ??? ?toxy(46,8);
?? ??? ?printf("-------------------------");
?? ??? ?toxy(46,9);
?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ?toxy(46,10);
?? ??? ?printf("| 轉(zhuǎn)賬成功!是否繼續(xù)? ?|");
?? ??? ?toxy(46,12);
?? ??? ?printf("| 1.是 ? ? ? ? ? ? 2.否 |");
?? ??? ?toxy(46,13);
?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |");
?? ??? ?toxy(46,14);
?? ??? ?printf("-------------------------");
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?t=getch();
?? ??? ??? ?if(t=='1')
?? ??? ??? ?{
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(t=='2')
?? ??? ??? ?{
?? ??? ??? ??? ?menu();?
?? ??? ??? ?}
?? ??? ?}
?
?? ?}while(1);
}
?
float Sum()
{
?? ?monp head=NULL,p;
?? ?float sum=0;
?? ?head=ss();
?? ?p=head;
?? ?while(p!=NULL)
?? ?{
?? ??? ?sum+=p->money; ? ?//求和?
?? ??? ?p=p->next;
?? ?}
?? ?if(head==NULL)
?? ??? ?sum=0;
?? ?return sum;
}
?
monp ss() ? ?//求余額?
{
?? ?FILE *fp; ? //文件指針?
?? ?monp p,head=NULL,p2,pre=NULL;
?? ?int n=0;
?? ?//float sum=0;
?? ?fp=fopen(_name,"ab+"); ? //以只讀的方式打開(kāi)名字為_(kāi)name的二進(jìn)制文件?
?? ?if(fp==NULL)
?? ?{
?? ??? ?printf("cannot open file");
?? ?}
?? ?else
?? ?{
?? ??? ?while(!feof(fp)) ?//判斷標(biāo)記是否移動(dòng)到文件末尾?
?? ??? ?{
?? ??? ??? ?n++;
?? ??? ??? ?p=(monp)malloc(M); ? //向內(nèi)存申請(qǐng)一段空間?
?? ??? ??? ?fread(p,M,1,fp); ? ? //將fp所指向的文件中的一段大小為M的 內(nèi)容賦給p?
?? ??? ??? ?if(n==1)
?? ??? ??? ?{
?? ??? ??? ??? ?head=p;
?? ??? ??? ??? ?p2=p;
?? ??? ??? ?}
?? ??? ??? ?else ? ? ? ? ? ? ? ?//創(chuàng)建鏈表?
?? ??? ??? ?{
?? ??? ??? ??? ?pre=p2;
?? ??? ??? ??? ?p2->next=p;
?? ??? ??? ??? ?p2=p;
?? ??? ??? ?}
?? ??? ??? ?p2->next=NULL;
?? ??? ?}
?? ?}
?? ?fclose(fp); ? ? //關(guān)閉文件?
?? ?if(pre!=NULL)
?? ??? ?pre->next=NULL;
?? ?return(head); ? ?//返回sum值?
}
?
void save_money(monp p) ? ?//將p所指向的內(nèi)容存入文件中?
{
?? ?FILE *fp; ? ?//文件指針?
?? ?fp=fopen(_name,"ab"); ? //以追加的方式打開(kāi)名字為_(kāi)name的二進(jìn)制文件?
?? ?if(fp==NULL)
?? ?{
?? ??? ?printf("cannot open file");
?? ?}
?? ?if(fwrite(p,M,1,fp)!=1) ? //將p所指向的一段大小為M的內(nèi)容存入fp所指向的文件中?
?? ?{
?? ??? ?printf("write error");
?? ?}
?? ?fclose(fp); ? ?//關(guān)閉文件 ?
}
?
void over() ? ? ? //退出軟件?
{
?? ?char t;
?? ?toxy(48,11);
?? ?printf("-----------------------");
?? ?toxy(48,12);
?? ?printf("| ? 您確定要退出嗎? ?|");
?? ?toxy(48,14);
?? ?printf("| 1.確定 ? ? 2.取消 ? |");
?? ?toxy(48,15);
?? ?printf("-----------------------");
?? ?while(1)
?? ?{
?? ??? ?t=getch(); ? ? ? ? //輸入t
?? ??? ?switch(t)
?? ??? ?{
?? ??? ??? ?case '1':
?? ??? ??? ?system("cls");
?? ??? ? ? ?color(6);
?? ??? ??? ?toxy(48,10);
?? ??? ??? ?printf("正在安全退出....");
?? ??? ??? ?Sleep(1000); ? ? //暫停1秒?
?? ??? ??? ?system("cls");
?? ??? ??? ?color(8);
?? ??? ??? ?toxy(48,10);
?? ??? ??? ?printf("已安全退出軟件");
?? ??? ??? ?toxy(48,12);
?? ??? ??? ?printf("謝謝使用!");
?? ??? ??? ?toxy(48,14);
?? ??? ??? ?printf("by-by^_^");
?? ??? ??? ?exit(0); ?break; //終止程序?
?? ??? ??? ?case '2':
?? ??? ??? ?menu(); break; ? //調(diào)用函數(shù),進(jìn)入菜單?
?? ??? ??? ?default :break;
?? ??? ?}
?? ?}
}
?
main() ? ?//簡(jiǎn)潔明了的主函數(shù)~~~?
{
?? ?signin(); ? //調(diào)用函數(shù)?
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中二維map實(shí)現(xiàn)讀和寫(xiě)

    C++中二維map實(shí)現(xiàn)讀和寫(xiě)

    在C++中,可以使用std::map來(lái)實(shí)現(xiàn)二維映射,本文主要介紹了C++中二維map實(shí)現(xiàn)讀和寫(xiě),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 用代碼和UML圖化解設(shè)計(jì)模式之橋接模式的深入分析

    用代碼和UML圖化解設(shè)計(jì)模式之橋接模式的深入分析

    本篇文章是對(duì)橋接模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c++動(dòng)態(tài)內(nèi)存管理與智能指針的相關(guān)知識(shí)點(diǎn)

    c++動(dòng)態(tài)內(nèi)存管理與智能指針的相關(guān)知識(shí)點(diǎn)

    為了更容易同時(shí)也更安全地使用動(dòng)態(tài)內(nèi)存,新的標(biāo)準(zhǔn)庫(kù)提供了兩種智能指針(smart pointer)類型來(lái)管理對(duì)象,下面這篇文章主要給大家介紹了關(guān)于c++動(dòng)態(tài)內(nèi)存管理與智能指針的相關(guān)知識(shí)點(diǎn),需要的朋友可以參考下
    2022-03-03
  • 詳解C++之C++11的牛逼特性

    詳解C++之C++11的牛逼特性

    這篇文章主要介紹了C++之C++11的牛逼特性,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-09-09
  • 深入解析C++編程中范圍解析運(yùn)算符的作用及使用

    深入解析C++編程中范圍解析運(yùn)算符的作用及使用

    這篇文章主要介紹了C++編程中范圍解析運(yùn)算符的使用方法,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • c++關(guān)鍵字const的用法詳解

    c++關(guān)鍵字const的用法詳解

    在類中,如果你不希望某些數(shù)據(jù)被修改,可以使用const關(guān)鍵字加以限定。const 可以用來(lái)修飾成員變量、成員函數(shù)以及對(duì)象,希望能夠給你帶來(lái)幫助
    2021-09-09
  • C語(yǔ)言算法打卡回文串驗(yàn)證算法題解

    C語(yǔ)言算法打卡回文串驗(yàn)證算法題解

    這篇文章主要為大家介紹了C語(yǔ)言算法打卡萬(wàn)人千提的leetcode回文串的驗(yàn)證算法題解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • C++ std::function詳解

    C++ std::function詳解

    類模版std::function是一種通用的多態(tài)函數(shù)包裝器std::function的實(shí)例可以對(duì)任何可以調(diào)用的目標(biāo)實(shí)體進(jìn)行存儲(chǔ)、復(fù)制、和調(diào)用操作,本文詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-10-10
  • 史上最貼心的 VS code C++ 環(huán)境配置超詳細(xì)教程

    史上最貼心的 VS code C++ 環(huán)境配置超詳細(xì)教程

    這篇文章主要介紹了史上最貼心的 VS code C++ 環(huán)境配置超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • C++自動(dòng)析構(gòu)時(shí)的順序問(wèn)題

    C++自動(dòng)析構(gòu)時(shí)的順序問(wèn)題

    這篇文章主要介紹了C++自動(dòng)析構(gòu)時(shí)的順序,通過(guò)實(shí)例代碼給大家講解了C++ 構(gòu)造與析構(gòu)的執(zhí)行順序,代碼簡(jiǎn)單易懂,非常不錯(cuò)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論