C++程序设计课程设计银行账户管理系统源程序.docx
- 文档编号:6194874
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:24
- 大小:18.88KB
C++程序设计课程设计银行账户管理系统源程序.docx
《C++程序设计课程设计银行账户管理系统源程序.docx》由会员分享,可在线阅读,更多相关《C++程序设计课程设计银行账户管理系统源程序.docx(24页珍藏版)》请在冰豆网上搜索。
C++程序设计课程设计银行账户管理系统源程序
#include
#include
#include
#include
#include
#include
usingnamespacestd;
enumStatus{UNHOOKED,HOOKED};
enumMenuType{MAINMENU,ADM_SUBMENU,USER_SUBMENU};
enumFuncType{NONE,ADM_MOD,USER_MOD,OPEN_ACCOUNT,REPORT_LOSS,UNHOOKING,CLOSE_ACCOUNT,
SAVING,DRAWING,INQUIRING,TRANSFERING,MODIFY_PASSWORD,EXIT};
structDate
{
intmonth;
intday;
intyear;
};
structUserInfo
{
charuserNum[14];
charuserName[15];
charuserID[19];
charpassword[7];
DateopenDate;
Statusstatus;
intmoney;
};
structUserNode
{
UserInfouserinfo;
UserNode*next;
};
UserNode*head=NULL,*p=NULL;
voidWait();
voidSave(charfilename[]);
voidRemoveUserList();
voidGenCardNum(charcardnum[],UserNode*&head);
FuncTypeShowMenu(MenuTypewhich);
UserInfo&GetUserInfo(UserInfo&userinfo);
UserNode*CreateUserList(charfilename[]);
UserNode*OpenAccount(UserInfo&userinfo);
UserNode*Entry(UserNode*&head);
boolCloseAccount(UserNode*&head);
boolHookAccount(UserNode*&head);
boolUnhookAccount(UserNode*&head);
voidSaving(UserNode*&);
voidDrawing(UserNode*&);
voidInquiring(UserNode*&);
voidTransfering(UserNode*&);
voidModifyPassword(UserNode*&);
intcount;
intmain()
{
UserInfouserinfo;
intcont=1;
intcont1=1;
intcont2=1;
head=CreateUserList("userinfo.txt");
while(cont)
{
switch(ShowMenu(MAINMENU))
{
caseADM_MOD:
cont1=1;
while(cont1)
{
FuncTypefunc;
func=ShowMenu(ADM_SUBMENU);
switch(func)
{
caseOPEN_ACCOUNT:
GetUserInfo(userinfo);
head=OpenAccount(userinfo);
break;
caseREPORT_LOSS:
HookAccount(head);
break;
caseUNHOOKING:
UnhookAccount(head);
break;
caseCLOSE_ACCOUNT:
CloseAccount(head);
break;
caseEXIT:
cont1=0;
break;
default:
break;
}
}
break;
caseUSER_MOD:
if(p=Entry(head))
{
cont2=1;
while(cont2)
{
FuncTypefunc;
func=ShowMenu(USER_SUBMENU);
switch(func)
{
caseSAVING:
Saving(p);
break;
caseDRAWING:
Drawing(p);
break;
caseINQUIRING:
Inquiring(p);
break;
caseTRANSFERING:
Transfering(p);
break;
caseMODIFY_PASSWORD:
ModifyPassword(p);
break;
caseEXIT:
cont2=0;
break;
default:
break;
}
}
}
break;
caseEXIT:
RemoveUserList();
cont=0;
break;
default:
break;
}
}
return0;
}
voidWait()
{
longj=0;
for(doublei=1000000;i>0;)
{
i=i-0.002;
j++;
j--;
}
}
FuncTypeShowMenu(MenuTypewhich)
{
FuncTypefunc=NONE;
intchoice=0;
switch(which)
{
caseMAINMENU:
cout<<"************************************************\n";
cout<<"*银行账户管理系统*\n";
cout<<"**\n";
cout<<"*选择一个功能:
*\n";
cout<<"*
(1)管理员模式(AdministratorModule)*\n";
cout<<"*
(2)用户模式(UserModule)*\n";
cout<<"*(3)退出系统*\n";
cout<<"************************************************\n";
cout<<"*YourChoice(1-3):
";
cin>>choice;
cout<<"************************************************\n";
switch(choice)
{
case1:
func=ADM_MOD;break;
case2:
func=USER_MOD;break;
case3:
func=EXIT;break;
default:
func=NONE;break;
}
break;
caseADM_SUBMENU:
cout<<"***********************************************\n";
cout<<"*银行账户管理系统(管理员)*\n";
cout<<"**\n";
cout<<"*选择一个功能:
*\n";
cout<<"*
(1)开户*\n";
cout<<"*
(2)挂失*\n";
cout<<"*(3)解除挂失*\n";
cout<<"*(4)消户*\n";
cout<<"*(5)返回主菜单*\n";
cout<<"***********************************************\n";
cout<<"*YourChoice(1-5):
";
cin>>choice;
cout<<"***********************************************\n";
switch(choice)
{
case1:
func=OPEN_ACCOUNT;break;
case2:
func=REPORT_LOSS;break;
case3:
func=UNHOOKING;break;
case4:
func=CLOSE_ACCOUNT;break;
case5:
func=EXIT;break;
default:
func=NONE;break;
}
break;
caseUSER_SUBMENU:
cout<<"***********************************************\n";
cout<<"*银行账户管理系统(用户)*\n";
cout<<"**\n";
cout<<"*功能选择:
*\n";
cout<<"*
(1)存款*\n";
cout<<"*
(2)取款*\n";
cout<<"*(3)查询*\n";
cout<<"*(4)转账*\n";
cout<<"*(5)更改密码*\n";
cout<<"*(6)取卡*\n";
cout<<"***********************************************\n";
cout<<"*YourChoice(1-6):
";
cin>>choice;
cout<<"***********************************************\n";
switch(choice)
{
case1:
func=SAVING;break;
case2:
func=DRAWING;break;
case3:
func=INQUIRING;break;
case4:
func=TRANSFERING;break;
case5:
func=MODIFY_PASSWORD;break;
case6:
func=EXIT;break;
default:
func=NONE;break;
}
break;
default:
cout<<"NOSUCHAMENU!
!
\n";
break;
}
returnfunc;
}
UserNode*CreateUserList(charfilename[])
{
UserNode*p;
intstatus=0;
ifstreamuserdata(filename);
if(!
userdata)
{
cout<<"文件不存在!
"< returnNULL; } while(! userdata.eof()) { if(p=newUserNode) { userdata>>p->userinfo.userNum; userdata>>p->userinfo.userName; userdata>>p->userinfo.userID; userdata>>p->userinfo.password; userdata>>p->userinfo.money; userdata>>p->userinfo.openDate.year>>p->userinfo.openDate.month>>p->userinfo.openDate.day; userdata>>status;p->userinfo.status=(Status)status; p->next=head; head=p; } } userdata.close(); returnhead; } voidRemoveUserList() { for(UserNode*p2,*p1=head;p1;p1=p2) { p2=p1->next; deletep1; } head=NULL; } UserNode*OpenAccount(UserInfo&userinfo) { UserNode*p; charc; if(p=newUserNode) { strcpy(p->userinfo.userNum,userinfo.userNum); strcpy(p->userinfo.userName,userinfo.userName); strcpy(p->userinfo.userID,userinfo.userID); strcpy(p->userinfo.password,userinfo.password); p->userinfo.openDate.year=userinfo.openDate.year; p->userinfo.openDate.month=userinfo.openDate.month; p->userinfo.openDate.day=userinfo.openDate.day; p->userinfo.money=userinfo.money; p->userinfo.status=userinfo.status; p->next=head; head=p; } cout<<"确认-Y/否-N: "; cin>>c; cout<<"您的卡号为: "< if(c=='y') { Save("userinfo.txt"); returnp; } else { p=head; head=head->next; deletep; returnhead; } } boolHookAccount(UserNode*&head) { charcardnum[14],c; intstatus=1; cout<<"请输入用户卡号: "; cin>>cardnum; UserNode*p1=head,*p2=head->next; if(! strcmp(head->userinfo.userNum,cardnum)) { if(head->userinfo.status==1){cout<<"此卡已经挂失! "< cout<<"确认-Y/取消-N: "; cin>>c; if(c=='y') { head->userinfo.status=(Status)status; Save("userinfo.txt"); returntrue; } elsereturnfalse; } while(p2! =NULL) { if(! strcmp(p2->userinfo.userNum,cardnum))break; else{p1=p2;p2=p2->next;} } if(p2==NULL){cout<<"此卡号不存在,无法挂失! "< if(p2->userinfo.status==1){cout<<"此卡已经挂失! "< cout<<"确认-Y/取消-N: "; cin>>c; if(c=='y') { p2->userinfo.status=(Status)status; Save("userinfo.txt"); returntrue; } elsereturnfalse; } boolUnhookAccount(UserNode*&head) { charcardnum[14],c; intstatus=0; cout<<"请输入用户卡号: "; cin>>cardnum; UserNode*p1=head,*p2=head->next; if(! strcmp(head->userinfo.userNum,cardnum)) { if(head->userinfo.status==0){cout<<"此卡没有挂失,无需解挂! "< head->userinfo.status=(Status)status; cout<<"确认-Y/取消-N: "; cin>>c; if(c=='y') { Save("userinfo.txt"); returntrue; } elsereturnfalse; } while(p2! =NULL) { if(! strcmp(p2->userinfo.userNum,cardnum))break; else{p1=p2;p2=p2->next;} } if(p2==NULL){cout<<"此卡号不存在,无法解挂! "< if(p2->userinfo.status==0){cout<<"此卡没有挂失,无需解挂! "< p2->userinfo.status=(Status)status; cout<<"确认-Y/取消-N: "; cin>>c; if(c=='y') { Save("userinfo.txt"); returntrue; } elsereturnfalse; } boolCloseAccount(UserNode*&head) { intcount=0; charcardnum[14],code[7],c; cout<<"请输入用户卡号: "; cin>>cardnum; UserNode*p1=head,*p2=head->next; if(p1==NULL) { cout<<"用户记录为空,无法销户! "< returnfalse; } if(! strcmp(head->userinfo.userNum,cardnum)) { cout<<"请输入密码: "; cin>>code; count++; while(strcmp(head->userinfo.password,code)! =0&&count<=3) { cout<<"密码错误,请重新输入: "; cin>>code; count++; } if(count>3)returnfalse; cout<<"用户卡号: "< cout<<"用户姓名: "< cout<<"用户身份证号: "< cout<<"用户密码: "< cout<<"用户储蓄额: "< cout<<"开户日期: "< cout<<"确认-Y/取消-N: "; cin>>c; if(c=='y') { head=p2; deletep1; Save("userinfo.txt"); returntrue; } elsereturnfalse; } while(p2! =NULL) { if(! strcmp(p2->userinfo.userNum,cardnum))break; else{p1=p2;p2=p2->next;} } if(p2==NULL){cout<<"此卡号不存在,无法销户! "< cout<<"请输入密码: "; cin>>code; count++; while(strcmp(p2->userinfo.password,code)! =0&&count<3) { cout<<"密码错误,请重新输入: "; cin>>code; count++; } if(count>=3)returnfalse; cout<<"用户卡号: "< cout<<"用户姓名: "< cout<<"用户身份证号: "< cout<<"用户密码: "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 课程设计 银行 账户 管理 系统 源程序