数据结构课程设计活期储蓄账目管理Word文档下载推荐.docx
《数据结构课程设计活期储蓄账目管理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计活期储蓄账目管理Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。
3、非功能性需求
系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
三概要设计
1、数据结构设计
用结构体来定义其数据类型,然后将数据按照该数据结构存储,之后运用文件的相关知识将更改的数据写入文件中,采用数组类型的存储结构。
2、储存结构体设计
本系统主要用线性表表结构类型来存储在“活期储蓄账目管理系统”中的信息。
其中,结构体由5个分量构成:
用户账号、用户姓名、用户身份证号码、用户密码、开户金额。
3、模块设计
显示菜单
选择功能
1.新建储户
2.查询储户信息
3.显示所有储户信息
4.删除储户
5.存款
6.取款
7.退出账目管理。
voidadd()函数实现新建储户功能
voidselect_id()函数实现查询储户信息功能
voiddisplay()函数实现显示所有储户信息功能
voiddel()函数实现删除储户功能
voidsave_money()函数实现存款功能
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()//函数功能:
存款