数据结构课程设计活期储蓄账目管理Word格式.docx
- 文档编号:17324357
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:36
- 大小:262.23KB
数据结构课程设计活期储蓄账目管理Word格式.docx
《数据结构课程设计活期储蓄账目管理Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计活期储蓄账目管理Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
voidget_money()函数实现取款功能
voidprint()函数用于显示菜单
voidmain()函数用于实现菜单中的功能
四详细设计
1、结构体的详细定义
structuser//用户类型(账号,姓名,身份证号,存款)
{
intid;
charname[20];
charperson_num[19];
charpassword[6];
doublemoney;
};
2、系统函数详细介绍
voidadd()//添加用户
printf("
%45s\n"
"
***新建储户***"
);
--------------------------------------------------------------------------------\n\n"
structusergetuser();
structusertemp;
intcount();
//函数目的:
计算文件中的记录数目以生成自动账号
FILE*fp;
intnumber;
if((fp=fopen(file,"
ab"
))==NULL)
{
printf("
Cannotopenfile!
\n"
exit
(1);
}
temp=getuser();
//读取用户名
number=count();
temp.id=number+1;
//生成自动账号
fwrite(&
temp,sizeof(structuser),1,fp);
添加用户成功!
fclose(fp);
}
voidselect_id()//查询储户信息
voidgetpassword(char*password);
***查询储户信息***"
--------------------------------------------------------------------------------\n"
%s%15s%15s%15s\n"
编号"
用户姓名"
身份证号码"
存款余额"
inti,maxnum;
charpassword[8];
boolflag=false;
rb"
cannotopenfile!
maxnum=count();
输入要查询账号:
"
scanf("
%d"
&
i);
if(i<
i||i>
maxnum)
你要查询的账号不存在!
return;
输入账号密码:
%s"
password);
while(fread(&
temp,sizeof(structuser),1,fp))//循环读取每一条记录判断是否为要查看的记录
if(temp.id==i&
&
strcmp(temp.password,password)==0)
{
printf("
NO.%d%8s%25s%.2f\n"
temp.id,temp.name,temp.person_num,temp.money);
flag=true;
break;
}
if(flag==false)//判断密码是否正确
您输入的密码不正确!
voiddisplay()//显示所有储户信息
***显示所有储户信息***"
账号"
temp,sizeof(structuser),1,fp))
NO.%d%10s%23s%.2f\n"
voiddel()//删除储户
***删除储户***"
%s%15s%15s%10s\n"
voidgetname(char*name);
voidgetperson_num(char*person_num);
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);
输入要需要注销的账号:
mark);
mark||mark>
num)
你要注销的账号不存在!
"
wb"
))==NULL)//写方式打开文件,覆盖原文件中的内容
i++)//无效账户信息全部置为0
{
if(temp[i].id==mark&
strcmp(temp[i].password,password)==0&
temp[i].money==0.00)
strcpy(temp[i].person_num,"
0"
strcpy(temp[i].name,"
strcpy(temp[i].password,"
flag=true;
fwrite(&
free(temp);
if(flag==false)
{
您输入的密码不正确或是余额不为零!
}
else
储户注销成功!
voidsave_money()//函数功能:
存款
***用户存款业务***"
//根据记录数申请空间
i++)//将文件内容存入数组
输入要存款账号:
//读取存款账号
i++)
strcmp(temp[i].password,password)==0)
{
doublemoney=0;
printf("
输入要存入的金额:
scanf("
%lf"
money);
while
(1)
{
if(money<
=0)
{
printf("
只能为正数!
money=0;
scanf("
}
else
break;
}
temp[i].money+=money;
//修改该用户的信息
fclose(fp);
free(temp);
if(flag==false)
{
}
else
你存款业务已办妥!
voidget_money()//函数功能:
用户取款
***用户取款业务***"
输入要取款账号:
i++)
strcmp(temp[i].password,password)==0)
doublemoney=0;
输入要取出的金额:
scanf("
if(money<
=0)//判断用户余额是否足够
money=0;
elseif(money>
temp[i].money)
{
你的余额不足!
temp[i].money-=money;
你取款业务已办妥!
voidprint()//函数功能:
输出界面
%48s\n"
***活期储蓄帐目管理系统***"
%8s,%-20s\n"
1"
新建储户"
2"
查询储户信息"
3"
显示所有储户信息"
4"
删除储户"
5"
存款"
6"
取款"
7"
退出"
\n请选择功能(1~7):
voidmain()函数用于实现菜单中的功能,主函数
voidmain()
charchoose;
do{
print();
scanf("
%c"
choose);
//读取功能标号,根据标号选择不同的函数
fflush(stdin);
system("
cls"
switch(choose)
case'
1'
:
add();
2'
select_id();
3'
display();
4'
del();
5'
save_money();
6'
get_money();
7'
exit
(1);
default:
对不起,你所选择的功能不存在!
getch();
//暂停功能(读取任意键继续)(conio.h)
system("
//清除屏幕显示(stdlib.h)
}while
(1);
五调试分析
系统运行主界面如图所示,各子功能测试运行结果如下:
每个方面实现一个功能。
定义一个包含有五个变量的结构体数组,并存入文件中。
定义一个计数函数,贯穿整个程序。
然后每个函数实现一个功能,共有六个功能。
添加用户时会使用到录入姓名和录入身份证号码两个函数。
查询只需要比较字符串,然后输出即可实现。
显示全部储户信息只需将结构体数组依次输出即可实现。
储户的存款和取款按找账号依次从文件中查找到匹配的账号,然后加上或减去存取的金额即可实现。
销户时将储户除账号外信息全部置0即可。
六测试结果
1.主界面截图
2.新建储户
3.查询储户信息
4.显示所有储户信息
5.存款
6.取款
7.删除储户
七用户使用说明
(1)本程序执行文件为”活期储蓄.exe”.
(2)进入本系统后,随即显示系统主菜单页面,用户可在该界面下输入各子菜单前对应的数字并按回车键,执行相应子菜单命令。
(3)账号或密码输入不正确时,会出现提示信息,然后按任意键退出。
八课程设计总结
这次课程设计中遇到了一些问题与同学一起讨论解决,从其他人身上学到了很多。
这个课程设计并不完美,还有很多要改善的地方,在删除储户时不能将储户信息从文件中删除,只能将储户信息全部置0了。
还有一些没想到的细节。
虽然不是很完美,但发现不足之处并在以后的设计中注意这些细节,对于将来的实践还是很有帮助,我们可以不断发现我们的不完美,并想办法去改进这些不完美。
通过这次课程设计学到了很多东西包括以前在课本上没有学到的知识,还使我懂得了理论和时间结合是很重要的。
让我进一步了解了C++程序设计方法,并且对这门课产生了浓厚的兴趣。
更重要的是培养了自己耐心、细心、用心的良好品质。
同时也非常感谢同学的帮助及老师的建议与指导。
源程序:
#include<
stdio.h>
string.h>
conio.h>
stdlib.h>
#definefile"
temp.txt"
//数据储存文件名
s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 活期 储蓄 账目 管理