活期储蓄账目管理系统Word格式.docx
- 文档编号:21675336
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:16.83KB
活期储蓄账目管理系统Word格式.docx
《活期储蓄账目管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《活期储蓄账目管理系统Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
函数目的:
计算文件中的记录数目
以生成自动账号
FILE*fp;
intnumber;
structusertemp;
if((fp=fopen(file,"
ab"
))==NULL)
{
cannotopenfile!
exit
(1);
}
temp=getuser();
//读取用户名number=count();
temp.id=number+1;
//生成自动账号
fwrite(&
temp,sizeof(structuser),1,fp);
添加用户成功!
fclose(fp);
intcount()//函数目的:
计算文件中的记录总数
intnum;
structusertemp;
num=0;
rb"
while(fread(&
temp,sizeof(structuser),1,fp))
num++;
returnnum;
structusergetuser()
voidgetname(char*name);
voidgetperson_num(char*person_num);
请输入用户姓名(字符数<
20):
"
;
//读取相关开户信息getname(temp.name);
请输入用户身份证号码:
getperson_num(temp.person_num);
输入开户金额:
do{//判断开户金额(>
=100)cin>
>
temp.money;
fflush(stdin);
if((temp.money)<
100.0)cout<
开户金额不能小于100"
elsebreak;
重新输入开户金额:
}while
(1);
returntemp;
voidgetname(char*name)//函数功能:
读取用户姓名(字符数<
20)
do{
scanf("
%s"
name);
if(strlen(name)==0)
姓名不能为空!
elseif(strlen(name)>
=20)cout<
姓名不能超过20个字符!
elsebreak;
重新输入姓名:
}while
(1);
//循环以保证读入数据有效
voidgetperson_num(char*person_num)//函数功能:
读取用户身份证号码(15位或者18位)
inti,mark;
charch;
for(i=0,mark=0;
i++)//输入有效性判断(只能是数字)if((ch=getchar())!
='
\n'
){
if(ch<
9'
&
ch>
0'
)person_num[i]=ch;
else
身份证号码只能是数字!
mark=1;
break;
person_num[i]='
\0'
if(mark==1)
continue;
if(strlen(person_num)!
=15&
strlen(person_num)!
=18)cout<
身份证号码只能是15位,或者18位!
\n"
重新输入身份证号码:
voidselect_name()//按照姓名查询账户余额
cout<
***按照姓名查询账户余额***"
账号"
用户姓名"
身份证号码"
存款余额"
FILE*fp;
{cout<
exit
(1);
输入要查询的姓名:
//调用读取用户名函数getname(name);
判断是
temp,sizeof(structuser),1,fp))//循环读取每一条记录否为要查看的记录
if(strcmp(temp.name,name)==0)
temp.id<
temp.name<
temp.person_num<
temp.money<
voidselect_id()//按照账号查询账户余额
intcount();
***按照编号查询账户余额***"
编号"
inti,maxnum;
maxnum=count();
输入要查询账号:
//判断账号是否在记录中cin>
i;
if(i<
1||i>
maxnum)
你要查询的账号不存在!
return;
判断是否
temp,sizeof(structuser),1,fp))//循环读取每一条记录为要查看的记录
if(temp.id==i)
voiddisplay()//显示用户资料
***用户资料显示***"
voidsave_money()//函数功能:
按账号存款
***用户存款业务***"
inti,num,mark;
structuser*temp;
num=count();
//根据记录数申请空间temp=(structuser*)malloc(num*sizeof(structuser));
for(i=0;
i<
num;
i++)//将文件内容存入数组fread(&
temp[i],sizeof(structuser),1,fp);
输入要存款账号:
//读取存款账号cin>
mark;
if(mark<
1||mark>
num)
你要存款账号不存在!
return;
wb"
))==NULL)//写方式打开文件,覆盖原文件中的内容{
}for(i=0;
i++)
{if(temp[i].id==mark)
doublemoney=0;
输入要存入的金额:
cin>
money;
if(money<
=0)
只能为正数!
money=0;
temp[i].money+=money;
//修改该用户的信息
}fwrite(&
}fclose(fp);
free(temp);
你存款业务已办妥!
voidget_money()//函数功能:
用户取款
***用户取款业务***"
inti,num,mark;
structuser*temp;
i++)//读取文件内容fread(&
输入要取款账号:
你要取款账号不存在!
i++)//写方式打开文件,覆盖原文件中的内容{
if(temp[i].id==mark)
输入要取出的金额:
if(money<
=0)//判断用户余额是否足够
if(money>
temp[i].money)
你的余额不足!
money=0;
temp[i].money-=money;
free(temp);
你取款业务已办妥!
voiddel()//销户
***注销账户***"
inti,maxnum;
输入要销户账号:
//判断编号是否在记录中cin>
if(temp.id==i&
temp.money==0.00)//余额为0
{temp.id=-1;
//算无效帐户cout<
//保存修改
voidprint()//函数功能:
输出界面
***活期储蓄帐目管理系统***"
1"
储户开户"
2"
按照姓名查询账户余额"
3"
按照账号查询账户余额"
4"
显示用户信息"
5"
存款"
6"
取款"
7"
储户销户"
8"
退出"
请选择功能(1~8):
intmain()
charchoose;
print();
choose;
fflush(stdin);
//
读取功能标号,根据标号选择不同的函数
system("
cls"
);
switch(choose)
case'
1'
:
add();
2'
select_name();
3'
select_id();
4'
display();
5'
save_money();
6'
get_money();
7'
del();
8'
default:
对不起,你所选择的功能不存在!
getch();
//暂停功能(读取任意键继续)(conio.h)
//清除屏幕显示(stdlib.h)
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 活期 储蓄 账目 管理 系统