数据结构课程设计--活期储蓄账目管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
活期储蓄账目管理
一目的
满足活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求。
①能比较迅速地找到储户的帐户进而显示储户信息,以实现存款、取款记账;
②能比较简单,迅速地实现插入和删除,以实现开户和销户的需要;
③熟练使用 C 语言编写程序,解决实际问题;
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
二需求分析
1、数据需求
1.需先进行储户开户才可进行之后的所有的操作。
2.开户时需要的数据有姓名、身份证号码、联系电话、密码、账号会自动生成。
3.销户时,需用输入账号与密码(两者都正确后)方可销户;存取款时,也需进行账号及密码验证后方可进行交易。
2、基本功能需求
基本的功能有新建储户(开户)、删除储户(销户)、存取款、查询储户信息(此步也可看见交易后的信息)、显示所有储户信息。
3、非功能性需求
系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
三概要设计
1、数据结构设计
用结构体来定义其数据类型,然后将数据按照该数据结构存储,之后运用文件的相关知识将更改的数据写入文件中,采用数组类型的存储结构。
2、储存结构体设计
本系统主要用线性表表结构类型来存储在“活期储蓄账目管理系统”中的信息。其中,结构体由5个分量构成:用户账号、用户姓名、用户身份证号码、用户密码、开户金额。
3、模块设计
void add()函数实现新建储户功能
void select_id()函数实现查询储户信息功能
void display()函数实现显示所有储户信息功能
void del()函数实现删除储户功能
void save_money() 函数实现存款功能
void get_money()函数实现取款功能
void print()函数用于显示菜单
void main()函数用于实现菜单中的功能
四详细设计
1、结构体的详细定义
struct user //用户类型(账号,姓名,身份证号,存款)
{
int id;
char name[20];
char person_num[19];
char password[6];
double money;
};
2、系统函数详细介绍
void add()函数实现新建储户功能
void add() //添加用户
{
printf("%45s\n","***新建储户***");
printf("--------------------------------------------------------------------------------\n\n");
struct user getuser();
struct user temp;
int count(); //函数目的:计算文件中的记录数目以生成自动账号
FILE *fp;
int number;
if((fp=fopen(file,"ab"))==NULL)
{
printf("Can not open file!\n");
exit(1);
}
temp=getuser(); //读取用户名
number=count();
temp.id=number+1; //生成自动账号
fwrite(&temp,sizeof(struct user),1,fp);
printf("添加用户成功!\n");
fclose(fp);
}
void select_id()函数实现查询储户信息功能
void select_id() //查询储户信息
{
int count();
void getpassword(char *password);
printf("%45s\n","***查询储户信息***");
printf("--------------------------------------------------------------------------------\n");
printf("%s %15s %15s %15s\n","编号","用户姓名","身份证号码","存款余额");
printf("--------------------------------------------------------------------------------\n\n");
FILE *fp;
struct user temp;
int i,maxnum;
char password[8];
bool flag=false;
if((fp=fopen(file,"rb"))==NULL)
{
printf("cannot open file!\n");
exit(1);
}
maxnum=count();
printf("输入要查询账号:");
scanf("%d",&i);
if(imaxnum)
{
printf("你要查询的账号不存在!");
return;
}
printf("输入账号密码:");
scanf("%s",&password);
while(fread(&temp,sizeof(struct user),1,fp)) //循环读取每一条记录判断是否为要查看的记录
{
if(temp.id==i&&strcmp(temp.password,password)==0)
{
printf("NO.%d %8s %25s %.2f\n",temp.id,,temp.pers on_num,temp.money);
flag=true;
break;
}
}
if(flag==false) //判断密码是否正确
{
printf("您输入的密码不正确!\n");
return;
}
fclose(fp);