问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求c语言实验代码和详解,要求是银行储蓄系统,要能提供以下几个基本功能: (1) 工作人员根据口令进

发布网友 发布时间:2022-04-27 02:12

我来回答

2个回答

热心网友 时间:2023-11-17 07:01

/*时间有限bug应该蛮多没改多少,操作不难只是麻烦了点毕竟技术有限,不少要求未完成你可以参考一下
事先在工程目录下创建001.txt作为存单文件
写入的顺序是,存期以月为单位
存单编号 储户姓名 身份证编号 住址 联系电话 存款金额 存期 密码
参考数据如下,直接复制,最后不要加换行
1001 张三 340755199212050866 花园路22号 13955667788 20000 48 123321
1002 李四 340866199305252233 逗比小区2栋11号 13155669988 3000 20 123321
1003 王五 34000000000000000X 沿江路75号 18666667777 200 2 123321
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//以下,利率
#define r1 0.0035//活期,三个月以下默认活期
#define r2 0.0135//三个月
#define r3 0.0155//半年
#define r4 0.0175//一年
#define r5 0.0235//两年
typedef struct Check//账单结构体
{
//存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,密码
char num[10];
char holder[8];
char ID[20];
char address[30];
char tel[15];
float money;
int time;//存期,单位 月
//int rate;//感觉利率没有必要加入
char pass[8];
}check;

check a[20];//存单数组
char command[10]="123654";//登陆口令
int sum;//存单数目

void menu();
void add();
void search();
void alter();
void coalter();
void main_menu();

void init()//初始化,读入txt数据
{
FILE *p;
int i=0;
p=fopen("001.txt","r");
if(!p)
{
return;
}
while(!feof(p))
{
fscanf(p,"%s%s%s%s%s%f%d%s",a[i].num,a[i].holder,a[i].ID,a[i].address,a[i].tel,&a[i].money,&a[i].time,a[i].pass);
/*if(a[i].time<3)a[i].rate=r1;
else if(a[i].time<6)a[i].rate=r2;
else if(a[i].time<12)a[i].rate=r3;
else if(a[i].time<24)a[i].rate=r4;
else a[i].rate=r5;*/
i++;
}
sum=i;//记录账单数目
fclose(p);
}

int main()//main函数
{
init();
main_menu();
}

void main_menu()//登陆界面
{
system("cls");
char password[10];
printf("======欢迎使用银行系统======\n\n\n请输入登陆口令:");
while(1)
{
scanf("%s",password);
if(strcmp(password,command)==0)
{
menu();
}
else
printf("口令错误请重新输入:");
}
}

void menu()//主界面
{
system("cls");
char c;
printf("======****选择操作****======\n\n");
printf("\t1.存单录入\n");
printf("\t2.存单查询\n");
printf("\t3.储户操作\n");
printf("\t4.口令修改\n");
printf("\t5.返回登陆\n");
printf("\t选择:");
scanf("%c",&c);
scanf("%c",&c);
if(c>='1'&&c<='5')
{
switch(c)
{
case '1':add();break;
case '2':search();break;
case '3':alter();break;
case '4':coalter();break;
case '5': main_menu();
}
}
else return;
}

void add()//添加存单
{
system("cls");
char c;
int i;
printf("======****添加操作****======\n");
printf("请输入添加存单编号:");
scanf("%s",a[sum].num);
for(i=0;i<sum;i++)
{
if(strcmp(a[sum].num,a[i].num)==0)
{
printf("该存单号已存在,是否重新输入(y确认,其他键返回):");
scanf("%c",&c);
scanf("%c",&c);
if(c=='y'||c=='Y')add();
else menu();
break;
}
}//确保没有重复单号
printf("请完善存单信息(不同项用空格间隔,请确认信息正确)\n");
printf("储户姓名 身份证编号 住址 联系电话 存款金额 存期 密码\n");
scanf("%s",a[sum].holder);
c=getchar();
scanf("%s",a[sum].ID);
c=getchar();
scanf("%s",a[sum].address);
c=getchar();
scanf("%s",a[sum].tel);
c=getchar();
scanf("%f",&a[sum].money);
c=getchar();
scanf("%d",&a[sum].time);
c=getchar();
scanf("%s",a[sum].pass);
/*if(a[i].time<3)a[sum].rate=r1;
else if(a[i].time<6)a[sum].rate=r2;
else if(a[i].time<12)a[sum].rate=r3;
else if(a[i].time<24)a[sum].rate=r4;
else a[sum].rate=r5;*/
sum++;//以上利率可考虑是否填入
FILE *p;
printf("录入存单信息...\n");
p=fopen("001.txt","w");
fclose(p);
p=fopen("001.txt","a");
for(i=0;i<sum;i++)
fprintf(p,"%s %s %s %s %s %.2f %d %s\n",a[i].num,a[i].holder,a[i].ID,a[i].address,a[i].tel,a[i].money,a[i].time,a[i].pass);
fclose(p);
printf("录入成功...\n");
printf("是否继续添加存单(y确认,其他键返回):");
scanf("%c",&c);
scanf("%c",&c);
if(c=='y'||c=='Y')add();
else menu();
}

void search()//查找
{
system("cls");
char c;
int i;
char nu[10];
printf("======****查询操作****======\n\n");
printf("请输入查询存单号:");
scanf("%s",nu);
for(i=0;i<sum;i++)
if(strcmp(nu,a[i].num)==0)
{
printf("查询存单信息如下\n");
printf("储户姓名:%s\t身份证:%s\n",a[i].holder,a[i].ID);
printf("住址:%s\n电话:%s\t金额:%.2f\n",a[i].address,a[i].tel,a[i].money);
printf("存期:%d\t密码:%s\n",a[i].time,a[i].pass);
printf("\n任意键输入返回:");
scanf("%c",&c);
scanf("%c",&c);
menu();
}
printf("未查找到该账单,是否重新查找(y确认,其他键返回):");
scanf("%c",&c);
scanf("%c",&c);
if(c=='y'||c=='Y')add();
else menu();
}

void alter()//取款
{
system("cls");
char c;
int i;
float rate;
FILE *p;
char nu[10];
printf("======****取款操作****======\n\n");
printf("请输入存单编号:");
scanf("%s",nu);
for(i=0;i<sum;i++)
if(strcmp(nu,a[i].num)==0)
{
printf("请输入密码:");
scanf("%s",nu);
if(strcmp(nu,a[i].pass)==0)
{
printf("取款成功\n");
if(a[i].time<3)rate=r1;
else if(a[i].time<6)rate=r2;
else if(a[i].time<12)rate=r3;
else if(a[i].time<24)rate=r4;
else rate=r5;//得利率
printf("支付:本金%.2f 利率%.2f%% 利息%.2f\n",a[i].money,rate*100,a[i].money*rate);
printf("更新存单数据...\n");
p=fopen("001.txt","w");
fclose(p);
p=fopen("001.txt","a");
//以下,删除该存单(最后一单覆盖本存单)
strcpy(a[i].num,a[sum-1].num);
strcpy(a[i].holder,a[sum-1].holder);
strcpy(a[i].ID,a[sum-1].ID);
strcpy(a[i].address,a[sum-1].address);
strcpy(a[i].tel,a[sum-1].tel);
a[i].money=a[sum-1].money;
a[i].time=a[sum-1].time;
strcpy(a[i].pass,a[sum-1].pass);
sum--;
for(i=0;i<sum;i++)
fprintf(p,"%s %s %s %s %s %.2f %d %s\n",a[i].num,a[i].holder,a[i].ID,a[i].address,a[i].tel,a[i].money,
a[i].time,a[i].pass);
fclose(p);
printf("更新成功...\n");
printf("\n任意键输入返回:");
scanf("%c",&c);
scanf("%c",&c);
menu();
}
printf("密码不正确,请重新执行该操作...\n");
printf("\n任意键输入重新执行该操作:");
scanf("%c",&c);
scanf("%c",&c);
alter();
}
printf("未查找到该账单,是否重新执行(y确认,其他键返回):");
scanf("%c",&c);
scanf("%c",&c);
if(c=='y'||c=='Y')add();
else menu();
}

void coalter()//修改登陆口令
{
system("cls");
char c;
printf("======****口令修改****======\n\n");
printf("请输入新的登陆口令:");
scanf("%s",command);
printf("修改成功...");
printf("\n任意键输入返回:");
scanf("%c",&c);
scanf("%c",&c);
menu();
}

热心网友 时间:2023-11-17 07:01

我也想知道答案
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 买了个二手房只将买房合同公证了,房产证未过户,现找不到卖房的人,还能办房产 迈锐宝17和18款迈瑞宝发动机启停怎么关闭? 二手房过户,卖方本人不能到场能过户吗 怎样编写 c语言 银行账户信息管理系统 您好!我想咨询一下,几年前买的房子没过户,现在想过户可又找不到卖房子的人了,我们该怎么办呢? C语言用队列结构模拟,银行业务排队系统实现 1.有储户要办理存取款业务时,取号等待,编号入队 房子卖出去了,买方想过户,卖房的出远门不在家如何过户? 跪求银行取款机的程序编写(C语言)要求有点繁琐,运行好了又追加值! 如果找不到卖方人买方一方能不能过户房产证 模拟银行存取款c语言课程设计 梦见一群猫但只被一只黑猫被猫咬住不放 卖房人已死找不到他的家人强制过户很难执行的 在办理房产权过户手续时,如果没有卖方在场,该如何办理过户手续。 急求一个C语言编写的银行存取款管理设计的程序。 梦见被一只黑猫和一只白猫攻击,求解? 买房时只开了一张收据,签字是卖房人的一个朋友代签的.现在我想把房产证更名.找不到卖房人了,怎么办? C语言小程序.写一个关于银行存取钱的 找不到原户主但有他的房产证和卖房协议,如何过户 梦见一只白猫和一只黑猫打架? 梦见黑猫 和白猫,黑猫把白猫吃掉 我是外地在社头卖房子十年了我问一下房产证好不好过户现在找不到房主人了? 迈锐宝xl自动启停按键是什么色 C语言银行管理系统 银行金库一类库,二类库,三类库,四类库是怎么分的 雪佛兰迈锐宝XL锐驰版.自动启停能关掉吗 买的楼房没有办理过户卖房人死了有他明字房照怎么办理过户他家没人了 c语言 银行存取款设计的主要数据结构是什么 还有功能函数的流程图是什么 请大神回答 迈锐宝的发动机启停能手动关闭吗 97年我家买了一套二手房,没有过户,只有证人,卖房人家里的丈夫和我签名的一个协议,现在想过户找不到房 求一道C语言编程,在VC6.0的环境下运行。 关于ATM取款存款的一道程序代码。 要求代码100行以上左右。 雪弗兰迈锐宝xl自动启停怎么关闭? 我买了个平房,现在棚户区改造了没过户.以前卖房人找不到了,咋过户 雪佛兰迈锐宝XL锐驰版.自动启停能关掉吗? 求大神们帮帮忙,帮我用c语言编写一个银行账户管理系统!要不回不了家了。。 卖房人以身份证丢失无法办过户怎么办 银行业务库分类,按现金量:一类库应该是多少?二类、三类和四类? 求助!C语言高手做一个银行存款系统的源代码 迈锐宝的发动机启停能手动关闭吗? 卖房结婚证找不到可以过户吗 什么是一类二类、三类和四类、五类 六类城市商业银行