C语言银行管理系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言银行管理系统相关的知识,希望对你有一定的参考价值。

要有开户 销户 查询 转账 存款取款 !!C语言 数组 链表都可以 !急求!!是作业不用太专业!!谢谢谢!!
/* 定义全局结构体变量 */
struct account

int account; /* 账号 */
char name[10]; /* 姓名 */
char ID[20]; /* 身份证号码 */
char phone[20]; /* 电话 */
char password[10]; /* 密码 */
char address[20]; /* 住址 */
double money; /* 余额 */
acnt[1000];

int count=0; /* 保存账户个数 */
这是结构体

int main()

int j,Account,hao2,k,n=1;
char pwd[10];
double add=0,take=0,translate=0;
int server_type;

WelcomeWindow();

do
MenuWindow();
scanf(" %d", &server_type); //读取功能标号,根据标号选择不同的函数
fflush(stdin);

system("cls");
switch (server_type)
case 1:
/* 开户 */
open_account(acnt);
break;
case 2:
/* 存款 */

break;
case 3:
/* 取款 */

break;

break;
case 4:
/* 转账 */
//transfer();
break;
case 5:
/* 查询 */

break;
case 6:
/* 补卡 */
// rpelsh_card();
break;
case 7:
/* 修改密码 */
// change_PIN();
break;
case 8:
/* 注销 */
//logoff();
break;
case 0:
/* 退出 */
exit(1);
default:
printf("对不起,您所选的服务不存在!\n");


getch(); //暂停功能(读取任意键继续)(conio.h)
system("cls"); //清除屏幕显示(stdlib.h)
while(1);

return 0 ;

这是主函数!!

参考技术A #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);


if(sex!='1'&&sex!='2')/*判断输入信息是否正确*/

printf("您输入的性别不对!\n");
printf("\n请选择:按1返回主页面. 按任意键退出:");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
if(ch=='1')system("cls");main();
else exit(0);

if(strlen(sh)!=18)/*判断输入信息是否正确*/

printf("您输入的身份证号码不全!\n");
printf("\n请选择:按1返回主页面. 按任意键退出:");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
if(ch=='1')system("cls");main();
else exit(0);

for(n=0;n<strlen(sh)-1;n++)/*判断输入信息是否正确*/

if(sh[n]<48||sh[n]>57)

printf("您输入的身份证号码非法!\n");
printf("\n请选择:按1返回主页面. 按任意键退出:");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
if(ch=='1')system("cls");main();
else exit(0);

else

if(sh[18]!='x'&&sh[18]<48&&sh[18]>57)

printf("您输入的身份证号码非法!\n");
printf("\n请选择:按1返回主页面. 按任意键退出:");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
if(ch=='1')system("cls");main();
else exit(0);



printf("请输入您的帐号(10位纯数字):\n");
fflush(stdin);
scanf("%s",p->id);
fflush(stdin);
while(i <strlen(p->id))

if((p->id[i] < 48) || (p->id[i] > 57))

judge1=0;

i++;

while(strlen(p->id)!=10 ||judge1==0)/*判断帐号的正确性*/

printf("您输入的帐号不正确,必须为10位纯数字!");
printf("请重新输入(10位纯数字):");
fflush(stdin);
scanf("%s",p->id);
fflush(stdin);

printf("请输入您的密码(6位纯数字):\n");
fflush(stdin);
scanf("%s",p->psw);
fflush(stdin);
while(k <strlen(p->psw))

if((p->psw[k] < 48) || (p->psw[k] > 57))

judge2=0;

k++;

while(strlen(p->psw)!=6 ||judge2==0)/*判断密码形式的正确性*/

printf("您输入不正确!密码必须为6位纯数字!\n");
printf("请重新输入密码(6位纯数字):");
fflush(stdin);
scanf("%s",p->psw);
fflush(stdin);

printf("请输入您的首期存款:");
fflush(stdin);
scanf("%lf",&p->money);
fflush(stdin);
while((p->money)<100)

printf("您必须存入100元以上,请重新输入:");
fflush(stdin);
scanf("%lf",&p->money);
fflush(stdin);

if (wenjian(p->id,p->psw,p->money))/*存入文件并输出基本信息*/

system("cls");
printf("注册成功!");
printf("您的注册信息如下,请牢记:\n");
printf("名字:");
puts(name);
printf("性别代码:%c\n",sex);
printf("身份证号码:");
puts(sh);
printf("帐号:");
puts(p->id);
printf("密码:");
puts(p->psw);
printf("您帐户里的余额为:%.2lf\n",p->money);
printf("请选择:按1返回主页面. 按任意键退出:");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
if(ch=='1')system("cls");main();
else exit(0);

else/*如有相同帐号,注册失败*/

system("cls");
printf("您输入的帐号已经存在!注册失败!\n");
printf("请选择:按1返回主页面. 按任意键退出:");
scanf("%c",&ch);
if(ch=='1')system("cls");main();
else exit(0);


gongneng(char Account[10+1],char Password[6+1],double Money)/*登陆成功后的功能界面*/

FILE *ps;
struct bank xin[1000];
int k=0,b=0;
char mima[6+1],Chiose,x;
char count[10+1],word[6+1];
double inmoney,outmoney,addmoney;
welcome3();
fflush(stdin);
scanf("%c",&Chiose);
fflush(stdin);
ps=fopen(cFile,"r");
if (!ps)

printf("不能打开文件!按任意键退出!");
fflush(stdin);
scanf("%c",&x);
fflush(stdin);
exit(0);

if(Chiose=='1')

printf("输入您的取款金额:");
fflush(stdin);
scanf("%lf",&outmoney);
fflush(stdin);
while(!feof(ps))

fscanf(ps, "%s %s %lf",&xin[k].id,&xin[k].psw,&xin[k].money);
k++;

fclose(ps);
ps=fopen(cFile,"wb");
if (!ps)

printf("不能打开文件!按任意键退出!");
fflush(stdin);
scanf("%c",&x);
fflush(stdin);
exit(0);


while(!feof(ps))

//printf("%s %s %.2lf\n",xin[b].id,xin[b].psw,xin[b].money);
if ((strcmp(Account, xin[b].id)==0)&&(strcmp(Password, xin[b].psw)==0))

xin[b].money=xin[b].money-outmoney;

printf("%.2lf\n",xin[b].money);
fprintf(ps, "%s %s %.2lf\n", xin[b].id, xin[b].psw, xin[b].money);
b++;



denglu()/*登陆*/

FILE *fp;
char account[10+ 1],password[6 + 1],h;
int m=0;
char real_account[10+ 1]; /* 帐号缓存 */
char real_password[6 + 1]; /* 密码缓存*/
double real_money_o=0.0; /*存款缓存*/
printf("请输入您的帐号(10位纯数字):");
gets(account);
printf("请输入您的密码(6位纯数字):");
gets(password);
fp = fopen(cFile, "r");
if (!fp)

printf("不能打开文件!按任意键退出!");
fflush(stdin);
scanf("%c",&h);
fflush(stdin);
exit(0);

while (m<=2) /*判断是否输入错3次了*/


while(fscanf(fp, "%s %s %lf", &real_account, &real_password,&real_money_o) != EOF) /*循环判断帐号密码*/

if ((strcmp(real_account, account)==0)&&(strcmp(real_password, password)==0))

system("cls");
printf("登陆成功!");
gongneng(real_account,real_password,real_money_o);
fclose(fp);
return 0;



rewind(fp); /*重新打开文件,进行新一轮的密码验证*/
printf("您输入的帐号不存在或密码不正确!\n请重新输入:\n");
m++;
printf("请输入您的帐号(10位纯数字):");
fflush(stdin);
gets(account);
fflush(stdin);
printf("请输入您的密码(6位纯数字):");
fflush(stdin);
gets(password);
fflush(stdin);

fclose(fp);
printf("您输入帐号密码不正确已经3次,您被强制退出系统(按任意键退出)!");
fflush(stdin);
scanf("%c",&h);
fflush(stdin);
exit(0);

int main()

char chiose;
welcome1();
scanf("%c",&chiose);
getchar();
if(chiose <='0' ||chiose>='4')

while(chiose <='0' || chiose>='4')

printf("您的输入有误,请重新输入:");
scanf("%c",&chiose);
getchar();


if(chiose=='1')

system("cls");
zhuce();/*注册*/

if(chiose=='2')

system("cls");
denglu();/*登陆*/

if(chiose=='3')

printf("谢谢您的使用!");
exit(0);


打字不易,如满意,望采纳。追问

哥们 不能编译啊

本回答被提问者采纳

如何以多种语言发送从核心银行系统生成的警报?

【中文标题】如何以多种语言发送从核心银行系统生成的警报?【英文标题】:How to send alerts generated from core banking system in multiple languages? 【发布时间】:2011-11-15 04:34:42 【问题描述】:

我必须实施一种解决方案,将从核心银行系统生成的短信警报翻译成诸如“印地语”和各种印度本土语言之类的语言。

如果我已经拥有目前正在以英语发送的所有类型的警报,应该采用什么方法。

提前致谢。

【问题讨论】:

你的问题有点笼统。所以您需要即时翻译? 如果您通过 .properties 文件检索消息文本,只需在相应的 .properties 文件中创建相应的条目(请注意,语言 iso 代码必须是文件名的一部分)。 您有具体问题吗?你在这里描述的是相当基本的。许多框架都支持这种类型的东西。 Spring 本地化的消息包和一些基本的 String.format() 逻辑应该能让你走得很远。您还可以使用诸如 freemarker 之类的高级模板。当然,您必须事先翻译英文文本。 @Gaurav,关于首选语言的信息是否已经存在(可能是用户注册的一部分)? @gaurav:您想如何截获从银行系统直接发送给用户的 SMS 消息?在我看来,唯一的解决方案是修改银行系统,使其能够理解印地语...... 【参考方案1】:

使用资源文件并将警报文本移动到它们。即使它是动态生成的文本,您也应该能够使用条件逻辑或责任链类型架构提取正确的文本。

这是 .NET 中资源文件的一个很好的介绍:resx on MSDN

【讨论】:

【参考方案2】:

我建议以下方法

    为不同的语言创建不同的属性文件

    针对警报​​类型的键存储各种消息

    使用java.util.Properties 实例加载所有这些不同的文件,并将它们全部存储在地图中,并以语言为键(这一切都在启动时)。

    在发送消息时,我假设您已经有了用户的语言偏好(在用户注册时收到)。

    现在使用语言键从映射中检索 java.util.Properties 对象,并从消息键中检索消息。

    我知道完整的 Web 应用程序的标准资源包类型方法。由于 SMS 驱动的应用程序无法访问用户的区域设置,因此我可以考虑这种方法。 如果有的话,请分享任何其他特殊的标准方法。

编辑:似乎我错过了这个问题。 Gaurav 想要的是即时使用语言翻译。 但我认为正在处理的银行系统不应该用简单的英语发送消息,而是某种类型的状态代码,以后可以使用这些状态代码以适当的语言发送消息。

【讨论】:

以上是关于C语言银行管理系统的主要内容,如果未能解决你的问题,请参考以下文章

C语言设置银行帐户管理系统

菜鸟级C语言银行管理系统

急!银行家算法用C语言编写.全部程序.

C语言实现的操作系统银行家算法

银行家算法-C语言实现

银行ATM存取款系统(C语言实现)