❶ '賬號密碼管理軟體'的開發,用c語言編程,c++,求大神
寫兩個數組存儲賬號跟密碼,判斷輸入的數字是你自己設置的數字嗎,是的話就進入系統,不是就顯示錯誤
❷ 用C語言實現**賬號管理(單向鏈表)
/*頭文件*/#include#include#include/*其它說明*/#include/*字元串函數*/#include/*內存操作函數*/#include/*字元操作函數*/#include/*動態地址分配函數*/#defineLENsizeof(STUDENT)typedefstructstu/*定義結構體數組用於緩存數據*/{charnum[6];charname[5];intscore[3];intsum;floataverage;intorder;structstu*next;}STUDENT;/*函數原型*/STUDENT*init();/*初始化函數*/intmenu_select();/*菜單函數*/STUDENT*create();/*創建鏈表*/voidprint(STUDENT*head);/*顯示全部記錄*/voidsearch(STUDENT*head);/*查找記錄*/STUDENT*delete(STUDENT*head);/*刪除記錄*/STUDENT*sort(STUDENT*head);/*排序*/STUDENT*insert(STUDENT*head,STUDENT*new);/*插入記錄*/voidsave(STUDENT*head);/*保存文件*/STUDENT*load();/*讀文件*//*主函數界面*/main(){STUDENT*head,new;head=init();/*鏈表初始化,使head的值為NULL*/for(;;)/*循環無限次*/{switch(menu_select()){case1:head=create();break;case2:print(head);break;case3:search(head);break;case4:head=delete(head);break;case5:head=sort(head);break;case6:head=insert(head,&new);break;/*&new表示返回地址*/case7:save(head);break;case8:head=load();break;case9:exit(0);/*如菜單返回值為9則程序結束*/}}}/*初始化函數*/STUDENT*init(){returnNULL;/*返回空指針*/}/*菜單選擇函數*/menu_select(){intn;structdated;/*定義時間結構體*/getdate(&d);/*讀取系統日期並把它放到結構體d中*/printf("\n按任一鍵進入主菜單\npressanykeytoenterthemenu");/*按任一鍵進入主菜單*/getch();/*從鍵盤讀取一個字元,但不顯示於屏幕*/clrscr();/*清屏*/printf("********************************************************************************\n");printf("\t\t歡迎Welcometo\n");printf("\n\t\t\t使用學生管理系統1.0\n\n\t\t\t\t\t-----------景炎中學計算機組WJQ\n");printf("*************************************MENU***************************************\n");printf("\t\t\t1.輸入學生成績記錄Entertherecord\n");/*輸入學生成績記錄*/printf("\t\t\t2.顯示Printtherecord\n");/*顯示*/printf("\t\t\t3.尋找Searchrecordonname\n");/*尋找*/printf("\t\t\t4.刪除Deletearecord\n");/*刪除*/printf("\t\t\t5.排序Sorttomakenewafile\n");/*排序*/printf("\t\t\t6.插入Insertrecordtolist\n");/*插入*/printf("\t\t\t7.保存Savethefile\n");/*保存*/printf("\t\t\t8.讀取Loadthefile\n");/*讀取*/printf("\t\t\t9.退出Quit\n");/*退出*/printf("\n\t\t製作吳俊遒WJQMadebyWuJunqiu.\n");printf("********************************************************************************\n");printf("\t\t\t\t當前系統日期:%d\\%d\\%d\n",d.da_year,d.da_mon,d.da_day);/*顯示當前系統日期*/do{printf("\n\t\t\t輸入你的選擇Enteryourchoice(1~9):");scanf("%d",&n);}while(n9);/*如果選擇項不在1~9之間則重輸*/return(n);/*返回選擇項,主函數根據該數調用相應的函數*/}/*輸入函數*/STUDENT*create(){inti,s;STUDENT*head=NULL,*p;/*定義函數.此函數帶回一個指向鏈表頭的指針*/clrscr();for(;;){p=(STUDENT*)malloc(LEN);/*開辟一個新的單元*/if(!p)/*如果指針p為空*/{printf("\n輸出內存溢出.Outofmemory.");/*輸出內存溢出*/return(head);/*返回頭指針,下同*/}printf("輸入學號Enterthenum(0:listend):");scanf("%s",p->num);if(p->num[0]=='0')break;/*如果學號首字元為0則結束輸入*/printf("輸入名字Enterthename:");scanf("%s",p->name);printf("請輸入3門成績Pleaseenterthe%dscores\n",3);/*提示開始輸入成績*/s=0;/*計算每個學生的總分,初值為0*/for(i=0;iscore[i]);if(p->score[i]score[i]>100)/*確保成績在0~100之間*/printf("數據錯誤,請重新輸入Dataerror,pleaseenteragain.\n");}while(p->score[i]score[i]>100);s=s+p->score[i];/*累加各門成績*/}p->sum=s;/*將總分保存*/p->average=(float)s/3;/*先用強制類型轉換將s轉換成float型,再求平均值*/p->order=0;/*未排序前此值為0*/p->next=head;/*將頭結點做為新輸入結點的後繼結點*/head=p;/*新輸入結點為新的頭結點*/}return(head);}/*顯示全部記錄函數*/voidprint(STUDENT*head){inti=0;/*統計記錄條數*/STUDENT*p;/*移動指針*/clrscr();p=head;/*初值為頭指針*/printf("\n************************************STUDENT************************************\n");printf("-------------------------------------------------------------------------------\n");printf("|Rec|Num|Name|Sc1|Sc2|Sc3|Sum|Ave|Order|\n");printf("-------------------------------------------------------------------------------\n");while(p!=NULL){i++;printf("|%3d|%4s|%-4s|%3d|%3d|%3d|%3d|%4.2f|%-5d|\n",i,p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);p=p->next;}printf("-------------------------------------------------------------------------------\n");printf("**************************************END**************************************\n");}/*查找記錄函數*/voidsearch(STUDENT*head){STUDENT*p;/*移動指針*/chars[5];/*存放姓名用的字元數組*/clrscr();printf("請輸入個姓名來查找.Pleaseenternameforsearching.\n");scanf("%s",s);p=head;/*將頭指針賦給p*/while(strcmp(p->name,s)&&p!=NULL)/*當記錄的姓名不是要找的,或指針不為空時*/p=p->next;/*移動指針,指向下一結點*/if(p!=NULL)/*如果指針不為空*/{printf("\n*************************************FOUND************************************\n");printf("-------------------------------------------------------------------------------\n");printf("|Num|Name|sc1|sc2|sc3|Sum|Ave|Order|\n");printf("-------------------------------------------------------------------------------\n");printf("|%4s|%4s|%3d|%3d|%3d|%3d|%4.2f|%-5d|\n",p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);printf("-------------------------------------------------------------------------------\n");printf("***************************************END**************************************\n");}elseprintf("\n沒有該學生Thereisnonum%sstudentonthelist.\n",s);/*顯示沒有該學生*/}/*刪除記錄函數*/STUDENT*delete(STUDENT*head){intn;STUDENT*p1,*p2;/*p1為查找到要刪除的結點指針,p2為其前驅指針*/charc,s[6];/*s[6]用來存放學號,c用來輸入字母*/clrscr();printf("請輸入要刪除的學號Pleaseenterthedeletednum:");scanf("%s",s);p1=p2=head;/*給p1和p2賦初值頭指針*/while(strcmp(p1->num,s)&&p1!=NULL)/*當記錄的學號不是要找的,或指針不為空時*/{p2=p1;/*將p1指針值賦給p2作為p1的前驅指針*/p1=p1->next;/*將p1指針指向下一條記錄*/}if(strcmp(p1->num,s)==0)/*學號找到了*/{printf("**************************************FOUND************************************\n");printf("-------------------------------------------------------------------------------\n");printf("|Num|Name|sc1|sc2|sc3|Sum|Ave|Order|\n");printf("-------------------------------------------------------------------------------\n");printf("|%4s|%4s|%3d|%3d|%3d|%3d|%4.2f|%-5d|\n",p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->sum,p1->average,p1->order);printf("-------------------------------------------------------------------------------\n");printf("***************************************END**************************************\n");printf("\n是否要刪除,輸入Y刪除,N則退出\/N?");/*提示是否要刪除,輸入Y刪除,N則退出*/for(;;){scanf("%c",&c);if(c=='n'||c=='N')break;/*如果不刪除,則跳出本循環*/if(c=='y'||c=='Y'){if(p1==head)/*若p1==head,說明被刪結點是首結點*/head=p1->next;/*把第二個結點地址賦予head*/elsep2->next=p1->next;/*否則將一下結點地址賦給前一結點地址*/n=n-1;printf("\n學號為(Num):%s學生以被刪除(studenthavebeendeleted.)\n",s);printf("別忘了保存.Don'tforgettosave.\n");break;/*刪除後就跳出循環*/}}}elseprintf("\n沒有這個學生在表上\nThereisnonum%sstudentonthelist.\n",s);/*找不到該結點*/return(head);}/*排序函數*/STUDENT*sort(STUDENT*head){inti=0;/*保存名次*/STUDENT*p1,*p2,*t,*temp;/*定義臨時指針*/temp=head->next;/*將原表的頭指針所指的下一個結點作頭指針*/head->next=NULL;/*第一個結點為新表的頭結點*/while(temp!=NULL)/*當原表不為空時,進行排序*/{t=temp;/*取原表的頭結點*/temp=temp->next;/*原表頭結點指針後移*/p1=head;/*設定移動指針p1,從頭指針開始*/p2=head;/*設定移動指針p2做為p1的前驅,初值為頭指針*/while(t->averageaverage&&p1!=NULL)/*作成績平均分比較*/{p2=p1;/*待排序點值小,則新表指針後移*/p1=p1->next;}if(p1==p2)/*p1==p2,說明待排序點值大,應排在首位*/{t->next=p1;/*待排序點的後繼為p*/head=t;/*新頭結點為待排序點*/}else/*待排序點應插入在中間某個位置p2和p1之間,如p為空則是尾部*/{t->next=p1;/*t的後繼是p1*/p2->next=t;/*p2的後繼是t*/}}p1=head;/*已排好序的頭指針賦給p1,准備填寫名次*/while(p1!=NULL)/*當p1不為空時,進行下列操作*/{i++;/*結點序號*/p1->order=i;/*將結點序號賦值給名次*/p1=p1->next;/*指針後移*/}printf("排序成功Sortingissucessful.\n");/*排序成功*/return(head);}/*插入記錄函數*/STUDENT*insert(STUDENT*head,STUDENT*new){STUDENT*p0,*p1,*p2;intn,sum1,i;p1=head;/*使p1指向第一個結點*/p0=new;/*p0指向要插入的結點*/printf("\nPleaseenteranewrecord.\n");/*提示輸入記錄信息*/printf("輸入學號Enterthenum:");scanf("%s",new->num);printf("輸入名字Enterthename:");scanf("%s",new->name);printf("Pleaseenterthe%dscores.\n",3);sum1=0;/*保存新記錄的總分,初值為0*/for(i=0;iscore[i]);if(new->score[i]>100||new->score[i]score[i]>100||new->score[i]score[i];/*累加各門成績*/}new->sum=sum1;/*將總分存入新記錄中*/new->average=(float)sum1/3;new->order=0;if(head==NULL)/*原來的鏈表是空表*/{head=p0;p0->next=NULL;}/*使p0指向的結點作為頭結點*/else{while((p0->averageaverage)&&(p1->next!=NULL)){p2=p1;/*使p2指向剛才p1指向的結點*/p1=p1->next;/*p1後移一個結點*/}if(p0->average>=p1->average){if(head==p1)head=p0;/*插到原來第一個結點之前*/elsep2->next=p0;/*插到p2指向的結點之後*/p0->next=p1;}else{p1->next=p0;p0->next=NULL;}/*插到最後的結點之後*/}n=n+1;/*結點數加1*/head=sort(head);/*調用排序的函數,將學生成績重新排序*/printf("\n學生Student%s已被更新havebeeninserted.\n",new->name);printf("不要忘了保存Don'tforgettosavethenewfile.\n");return(head);}/*保存數據到文件函數*/voidsave(STUDENT*head){FILE*fp;/*定義指向文件的指針*/STUDENT*p;/*定義移動指針*/charoutfile[10];printf("輸出文件例如:c:\\scoreEnteroutfilename,forexamplec:\\score\n");scanf("%s",outfile);if((fp=fopen(outfile,"w"))==NULL)/*為輸出打開一個二進制文件,為只寫方式*/{printf("打不開文件Cannotopenthefile\n");return;/*若打不開則返回菜單*/}printf("\n保存中Savingthefile\n");p=head;/*移動指針從頭指針開始*/while(p!=NULL)/*如p不為空*/{fwrite(p,LEN,1,fp);/*寫入一條記錄*/p=p->next;/*指針後移*/}fclose(fp);/*關閉文件*/printf("保存成功.Savethefilesuccessfully!\n");}/*從文件讀數據函數*/STUDENT*load(){STUDENT*p1,*p2,*head=NULL;/*定義記錄指針變數*/FILE*fp;/*定義指向文件的指針*/charinfile[10];printf("倒入文件例如:c:\\scoreEnterinfilename,forexamplec:\\score\n");scanf("%s",infile);if((fp=fopen(infile,"r"))==NULL)/*打開一個二進制文件,為只讀方式*/{printf("打不開文件Cannotopenthefile.\n");return(head);}printf("\n尋找文件Loadingthefile!\n");p1=(STUDENT*)malloc(LEN);/*開辟一個新單元*/if(!p1){printf("內存溢出!Outofmemory!\n");return(head);}head=p1;/*申請到空間,將其作為頭指針*/while(!feof(fp))/*循環讀數據直到文件尾結束*/{if(fread(p1,LEN,1,fp)!=1)break;/*如果沒讀到數據,跳出循環*/p1->next=(STUDENT*)malloc(LEN);/*為下一個結點開辟空間*/if(!p1->next){printf("Outofmemory!\n");return(head);}p2=p1;/*使p2指向剛才p1指向的結點*/p1=p1->next;/*指針後移,新讀入數據鏈到當前表尾*/}p2->next=NULL;/*最後一個結點的後繼指針為空*/fclose(fp);printf("\n你成功的從文件中讀取了數據!\!\n");return(head);}
❸ 用C語言編寫銀行帳戶賬戶管理系統
使用 C 語言編寫一個銀行帳戶管理系統?你的這個編程要求實在是太高了,肯定是不會有人滿足你的要求的。
因為這個要求已經不是簡單地答疑 C 語言的語法錯誤之類的問題了,而是需要從頭設計整個該帳戶管理系統的各種數據存儲結構、以及各種演算法(在編寫此軟體的過程中,肯定需要涉及:到底採用哪一種排序演算法效率最高、以及採取哪一種查找演算法對人員進行查詢效率最高),並且要想徹底從編寫一個源程序,到編譯、鏈接、直到該應用軟體能夠運行出用戶所要求的最終正確結果,那是需要花費很多的時間和精力去調試的,而不是只要寫出程序代碼,即使程序的編程思路是正確的,也不一定能夠保證程序的運行結果是正確的。
❹ C語言編寫賬號,密碼登錄怎麼寫
同意其他樓的說法,別以為這工作很簡單,或者按鍵精靈簡單。
建議你用循序漸進的思路
先實現在windows記事本里輸入任意文字---這就是你說的類似按鍵精靈的操作,涉及到尋找窗口句柄、發送消息等windows api。
再實現在最基本的網站上的文本框里輸入內容---也是類似找句柄,不過網頁的結構層次很復雜,難以定位
最後再說登陸126這種,因為它可能有各種驗證碼等阻止自動化登陸的方法,別說c語言了,就是其他像python這種,也不是輕而易舉就能繞過的
不排除126這種大型網站已經公開了郵箱api,不通過界面也可以訪問你的郵件,這需要看官方文檔
❺ C語言怎樣設置特定的密碼帳號登錄系統
首先需要確定使用的是那種編譯環境,如turbo C,Unix C還是VC,然後在選用編譯器提供的合適的API函數,這樣才能達到事半功倍的效果,寫出高效率的代碼。不過,不管是基於那種編程環境,基本思路是一樣的,就是通過字元串讀取函數gets()從客戶端(命令窗口或對話框)讀取用戶輸入的用戶名和密碼,然後與設置好的用戶名和密碼分別進行比較(可以採用字元串比較函數strcmp()),比較結果為真,則用戶名和密碼匹配,從登陸界面切換到執行界面,否則,提示錯誤。
❻ 銀行賬戶管理系統 c語言
如果你用VC編譯,有幾處警告,你可以把下面有雙斜杠那一行去掉就行
通過VC++6.0編譯
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define BUFFERSIZE 1024
#define MAXACCOUNT 1000
typedef struct BankAccount
{
int account;
int key;
char name[32];
float balance;
}BANKACCOUNT;
BANKACCOUNT accountCollection[MAXACCOUNT];
int curAccount = 0;
void InsertAccount(FILE *fp)
{
BANKACCOUNT newaccount;
printf("please input the account information\n");
printf(">>account num:");
scanf("%d",&(newaccount.account));
printf(">>key:");
scanf("%d",&(newaccount.key));
printf(">>name:");
scanf("%s",newaccount.name);
printf(">>balance:");
scanf("%f",&(newaccount.balance));
fseek(fp,0L,SEEK_END);
fprintf(fp,"%d %d %s %.2f\n",newaccount.account,newaccount.key,newaccount.name,newaccount.balance);
}
void GetAccount(FILE *fp)
{
int accountnum;
int key;
char name[32];
float balance;
int i =0;
//char buffer[BUFFERSIZE];
//int len;
curAccount = 0;
fseek(fp,0,SEEK_SET);
while(!feof(fp)) /* 因為feof()最後會讀2遍,所以最後curAccount多加了1 */
{
fscanf(fp,"%d %d %s %f",&accountnum,&key,name,&balance);
accountCollection[curAccount].account = accountnum;
accountCollection[curAccount].key = key;
strcpy(accountCollection[curAccount].name ,name);
accountCollection[curAccount].balance = balance;
curAccount++;
}
}
void ListAccount(FILE *fp)
{
int i =0;
printf("There is %d accounts at all:\n",curAccount-1);/* curAccount減去多加的1 */
for(i = 0;i< curAccount-1;i++)
{
printf("ACCOUNT[%d]:\n",i+1);
printf(">>accountnum:%d\n",accountCollection[i].account);
printf(">>accountnum:%s\n",accountCollection[i].name);
printf(">>accountnum:%.2f\n",accountCollection[i].balance);
}
}
int SearchAccount(FILE *fp,int accountnum)
{
int i =0;
for(i = 0;i< curAccount-1;i++)
{
if(accountCollection[i].account == accountnum)
{
printf("ACCOUNT[%d]:\n",i+1);
printf(">>accountnum:%d\n",accountCollection[i].account);
printf(">>accountnum:%s\n",accountCollection[i].name);
printf(">>accountnum:%.2f\n",accountCollection[i].balance);
return 1;
}
}
return 0;
}
void DelAccount(FILE *fp,int accountnum)
{
int i;
if(SearchAccount(fp,accountnum)==0)
printf("Can't find the account\n");
else
{
for(i = 0;i<curAccount-1;i++)
{
if(accountCollection[i].account != accountnum)
fprintf(fp,"%d %d %s %.2f\n",accountCollection[i].account,accountCollection[i].key,accountCollection[i].name,accountCollection[i].balance);
}
printf("delete successfully!\n");
}
}
int main()
{
FILE *fp;
int accountnum;
int i;
do{
// clrscr();
puts("********************************************");
puts("* You can choose : *");
puts("* 1 : Insert a new Account *");
puts("* 2 : List all Accounts *");
puts("* 3 : Find a Account *");
puts("* 4 : Delete a Account *");
puts("* 5 : quit *");
puts("********************************************");
puts("Please input your choice:");
scanf("%d",&i);
//clrscr();
switch(i)
{
case 1:
if(!(fp = fopen("account.txt","a+")))
{
printf("can't open the file account.txt\n");
exit(0);
}
InsertAccount( fp);
printf("press any key to continue.....\n");
//getch();
fclose(fp);
break;
case 2:
if(!(fp = fopen("account.txt","r")))
{
printf("can't open the file account.txt\n");
exit(0);
}
GetAccount(fp);
ListAccount(fp);
fclose(fp);
printf("press any key to continue.....\n");
//getch();
break;
case 3:
printf("please input the account num:\n");
scanf("%d",&accountnum);
if(!(fp = fopen("account.txt","r")))
{
printf("can't open the file account.txt\n");
exit(0);
}
GetAccount(fp);
if(!SearchAccount(fp,accountnum))
printf("There is not the account:%d\n",accountnum);
fclose(fp);
printf("press any key to continue.....\n");
//getch();
break;
case 4:
printf("please input the account num:\n");
scanf("%d",&accountnum);
if(!(fp = fopen("account.txt","r")))
{
printf("can't open the file account.txt\n");
exit(0);
}
GetAccount(fp);
fclose(fp);
if(!(fp = fopen("account.txt","w+")))
{
printf("can't open the file account.txt\n");
exit(0);
}
DelAccount(fp,accountnum);
fclose(fp);
printf("press any key to continue.....\n");
// getch();
break;
default:
break;
}
}while(i != 5);
// getch();
return 0;
}
❼ 編寫 c語言 銀行賬戶信息管理系統
請將我採納為最佳答案後聯系我,謝謝!
❽ 用c語言寫個帳號管理系統(帶注冊的)分普通用戶和管理員。。
用c語言實現不了,c語言是一種對數值操作的編程語言。
你要實現這個功能可以用c++builder,很好用。
看一看關於資料庫方面,很簡單。
❾ 求簡單的C語言編程,銀行賬戶管理系統
簡單的管理系統代碼(按照你的要求:輸入輸出加查找)
優化如下:
#include<stdio.h>
#include<string.h>
structbank{
charname[20];
charnum[20];
doublemoney;
};
intinput(structbankgusts[],intn);
voidoutput(structbankgusts[],intn);
voidfind(structbankgusts[],intn);
intmain()
{
structbankgusts[100];
intn,choose;
printf("請輸入要錄入數據條數:");
scanf("%d",&n);
input(gusts,n);
printf("按照提示選擇相應的操作! ");
while(1)
{
printf("1:查找2輸出0結束 ");
scanf("%d",&choose);
if(choose==0)
break;
switch(choose){
case1:find(gusts,n);break;
case2:output(gusts,n);break;
default:printf("無此操作! ");break;
}
}
return0;
}
intinput(structbankgusts[],intn)
{
inti;
if(n>100)
{
printf("數據過多! ");
return0;
}
printf("按以下格式輸入%d條數據! ",n);//加了一條提示
printf("姓名賬號金額 ");
for(i=0;i<n;i++)
{
scanf("%s%s%lf",gusts[i].name,gusts[i].num,&gusts[i].money);//賬號不要帶空格
}
printf("成功錄入%d條賬戶數據! ",n);
return0;
}
voidoutput(structbankgusts[],intn)
{
inti;
printf("姓名賬號金額 ");
for(i=0;i<n;i++)
{
printf("%d:%s%s%0.3lf ",i+1,gusts[i].name,gusts[i].num,gusts[i].money);
}
printf("成功輸出所有賬戶數據! ");
}
voidfind(structbankgusts[],intn)
{
inti,choose;
intcount;
charname[20],num[20];
printf("請輸入查找類型對應的數字編號[1-3]:1姓名查找2賬戶查找3編號查找4結束查找: ");
while(1){
scanf("%d",&choose);
if(choose==4)
break;
elseif(choose<1||choose>3)
{
printf("無此種查找!請重新選擇! ");
continue;
}
count=0;
switch(choose){
case1:
printf("請輸入查找的客戶姓名:");
scanf("%s",name);
printf("查詢結果如下: 姓名賬戶編號 ");
for(i=0;i<n;i++)
{
if(strcmp(gusts[i].name,name)==0)
{
printf("%d:%s%s%0.3lf ",i+1,gusts[i].name,gusts[i].num,gusts[i].money);
count++;
}
}
printf("共查詢到%d條結果! ",count);//加入結果統計
break;
case2:
printf("請輸入查找的客戶賬戶:");
scanf("%s",num);
printf("查詢結果如下: 姓名賬戶編號 ");
for(i=0;i<n;i++)
{
if(strcmp(gusts[i].num,num)==0)
{
count++;
printf("%d:%s%s%0.3lf ",i+1,gusts[i].name,gusts[i].num,gusts[i].money);
}
}
printf("共查詢到%d條結果! ",count);//加入結果統計
break;
case3:
printf("請輸入查找的客戶編號:");
scanf("%d",&i);
printf("查詢結果如下: 姓名賬戶編號 ");
printf("%d:%s%s%0.3lf ",i+1,gusts[i].name,gusts[i].num,gusts[i].money);
break;
}
}
}
運行截圖:
❿ 求c語言,銀行賬戶管理系統
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
char cFile[] = "date.txt";
struct bank
{
char id[10+1];
char psw[6+1];
double money;
};
welcome1()
{
printf("\n\n\t\t歡迎使用虛擬銀行自動取款機服務!\t\t\n\n");
printf("請選擇功能:\n");
printf("\n=================================================\n");
printf(" || 請輸入序號 ||\n");
printf(" || 1.新用戶開戶。 ||\n");
printf(" || 2.老用戶登陸。 ||\n");
printf(" || 3.退出系統。 ||\n");
printf("=================================================\n");
}
welcome2()
{
printf("\n\n\t\t注冊須知\n\n");
printf("**************************************************\n");
printf("* 1.請填寫您的真實資料! *\n");
printf("* 2.開戶首期必須存入100元以上 *\n");
printf("**************************************************\n");
}
welcome3()
{
printf("\n\n\t\t\3 歡迎進入虛擬銀行系統 \3\n\n");
printf("\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n");
printf("\1\1\t 請選擇功能:1.取款(最多透資2000); \1\1\n");
printf("\1\1\t 2.存款; \1\1\n");
printf("\1\1\t 3.查詢余額; \1\1\n");
printf("\1\1\t 4.修改密碼; \1\1\n");
printf("\1\1\t 5.返回主頁面; \1\1\n");
printf("\1\1\t 任意鍵退出. \1\1\n");
printf("\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n");
}
int search(char* user, char* pwd, char* real_pwd)/*判斷帳號是否相同,不相同返回1*/
{
FILE* file;
char user_buff[256], pwd_buff[256];
file = fopen(cFile, "r");
if (!file) return 0;
while (!feof(file))
{
if (fscanf(file, "%s%s\n", user_buff, pwd_buff) == EOF) return 0;
if (!strcmp(user_buff, user))
{
if (real_pwd) strcpy(real_pwd, pwd_buff);
return 1;
}
}
fclose(file);
return 0;
}
int add(char* user, char* pwd, double coin_n)
{
FILE* file;
file = fopen(cFile, "a");
if (!file) return 0;
fprintf(file, "%s %s %.2lf\n", user, pwd, coin_n);
fclose(file);
return 0;
}
int wenjian(char* user, char* pwd,double coin)
{
if (search(user, pwd, NULL)) return 0;
else add(user, pwd, coin);
return 1;
}
zhuce()/*注冊*/
{
struct bank *p;
int i=0,k=0,judge1,judge2;
char name[30];
char sex,ch;
char sh[18];
int n;
p=(struct bank*)malloc(sizeof(struct bank));/*給p分配內存*/
welcome2();
printf("請輸入您的名字(純英文):");
gets(name);
printf("請輸入您的性別(男:1 女2):");
fflush(stdin);
scanf("%c",&sex);
fflush(stdin);
printf("請輸入您的身份證號碼:");
gets(sh);
for(n=0;n<strlen(name);n++)/*判斷輸入信息是否正確*/
{
if(name[n]>='0'&&name[n]<='9')
{
printf("您輸入的名字有誤!\n");
printf("\n請選擇:按1返回主頁面. 按任意鍵退出:");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
if(ch=='1'){system("cls");main();}
else exit(0);
}
}