当前位置:文档之家› 课程设计银行储蓄管理系统方案

课程设计银行储蓄管理系统方案

《数据结构》课程设计报告设计题目活期储蓄账目学院名称信息工程学院专业班级13计本1姓名学号000000000000目录一、实验题目—活期储蓄账理-------------------------------二、问题描述-----------------------------------------------三、设计目标-----------------------------------------------四、需求分析-----------------------------------------------五、概要设计-----------------------------------------------1---系统流程图--------------------------------------2--各个模块功能的详细描-------------------------------六、详细设计-----------------------------------------------七、测试分析-----------------------------------------------八、使用说明-----------------------------------------------九、课程设计总结-------------------------------------------一活期储蓄账目管理二问题描述活期储蓄处理中,储蓄开户、销户、存款、取款活动频繁,系统设计要求:•能够比较迅速地找到储户的账户,以实现存款、取款记账;•能比较简单,迅速地插入和删除,以实现开户和销户的需要。

三设计目标编写一个程序,要求该程序可以实现储蓄开户,及储蓄销户。

同时,该程序具有在储蓄账户中实现存款、取款,查看该账户信息的功能。

四需求分析本演示程序用c语言编写,完成银行管理系统的生成,储户开户、销户、存入、支出。

a输入的形式和输入值的范围:开户时自定义输入账号、用户姓名、密码、及开户金额;用户登陆时输入正确的账号及密码,完成登陆后即可进行存款、取款及销户。

b输出的形式:在所有三种操作中都显示操作是否正确以及相应操作后的内容。

其中输入错误回到主页面,可继续选择操作。

c 程序所能达到的功能:用户开户账户登陆(存款、取款、查询余额、退出登录)账户注销d测试数据五概要设计:1、系统流程图2、各个模块功能的详细描本程序主要包括11个函数void choice():该函数可以实现选择功能void DeleteList(LINK *L):该函数可以实现销户操作void Deposit(LINK *L,LINK *p):该函数可以实现存款功能void InitList(LINK *L):构造函数void InsertList(LINK *L)该函数可以实现开户操作void main()定义主函数void menu() 该函数可以输出菜单页面的功能void PrinList(LINK*L)把存放在链表中的数据输出来void Print(LINK*L)该函数可以将账户信息释放出来void save(LINK *L)该函数可以将账户信息存储起来void Search(LINK *L)该函数可以实现查询账户是否存在的功能六详细设计(给出算法的伪码描述)#include<stdio.h>#include<string.h>#include<stdlib.h>int total=1;typedef struct ElemType{char name[8];int account;char password[6];float money;} ElemType;typedef struct Inode{ElemType data;struct Inode *next;}LINK;LINK * InitList(LINK *L){L=(LINK *)malloc (sizeof(LINK));L->next=NULL;return L;}void InsertList(LINK *L){LINK*s;s=(LINK*)malloc(sizeof(LINK));printf("请输入你要开户的姓名:");scanf("%s",s->);s->data.account=10001000+total++;printf("\n你开户的账号为:%d\n",s->data.account);printf("\n请输入你账户的密码:");scanf("%s",s->data.password);s->data.money=0.00;s->next=NULL;if(L->next==NULL)L->next=s;else{s->next=L->next;L->next=s;}printf("开户成功。

\n");}void DeleteList(LINK *L){LINK*p=L,*q;char pass[6];int s;printf("请输入你要销户的账号:");scanf("%d",&s);printf("请输入该账号的密码:");scanf("%s",pass);while (p->next!=NULL){if(p->next->data.account==s)break;p=p->next;}if(p->next!=NULL){while(strcmp((p->next->data.password),pass)!=0){printf("密码错误!请重新输入:");scanf("%s",pass);}q=p->next;p->next=q->next;free(q);printf("账户销户成功。

\n");}elseprintf("你所要销户的账户不存在或者该账户已销户。

\n"); }void PrinList(LINK*L){LINK*p=L->next;while(p!=NULL){printf("%s\t",p->);printf("%d\t%s\t%2f\n",p->data.account,p->data.password,p->da ta.money);p=p->next;}}void Deposit(LINK *L,LINK *p){int cq;float mn;while(1)if(p!=NULL){printf("请输入存款(1)、取款(2)、查询余额(3)、退出账号(4)。

\n(请输入括号内的数字,输入其他数字默认为取款):");scanf("%d",&cq);if (cq==1){printf("请输入你的存款金额:");scanf("%f",&mn);p->data.money=p->data.money+mn;printf("存款成功!\n");}else if(cq==3){printf("你的账户余额为:%.2f\n",p->data.money);}else if(cq==4){printf("账号退出成功。

\n");return;}else{printf("请输入你的取款金额:");FH: scanf("%f",&mn);if((p->data.money-mn)>=0){p->data.money=p->data.money-mn;printf("取款成功!\n");}else{printf("取款失败!\n");printf("你账户上的余额不足!你的账户余额为:%.2fRMP\n",p->data.money);printf("请输入合适的取款金额:");goto FH;}}}}void Search(LINK *L){LINK *p=L->next;int acc;char pass[6];printf("请输入你要登录的账号:");scanf("%d",&acc);printf("请输入你的密码:");scanf("%s",pass);while(p!=NULL){if(p->data.account==acc)break;p=p->next;}if(p==NULL)printf("不存在该账户\n");else{if(strcmp((p->data.password),pass)==0)printf("账户登录成功。

\n");else{while(strcmp(p->data.password,pass)!=0){char pa;printf("密码错误\n");printf("是否重新输入(是,就输入任意键)、(否,从键盘输入N or n):");scanf("\n%c",&pa);if(pa=='n'||pa=='N'){system("cls");return;}printf("\n 请重新输入你的密码:");scanf("%s",pass);}}Deposit (L,p);}}void save(LINK *L){FILE*fp;fp=fopen("Account.txt","w");LINK*p;p=(LINK *)malloc (sizeof(LINK));p=L->next;while(p!=NULL){if(fwrite(p,sizeof(struct Inode),1,fp)!=1) printf("file write error\n");p=p->next;}fclose(fp);}void Print(LINK * L){FILE* fp;LINK * p,* s;if((fp=fopen("Account.txt","r"))==NULL){printf("can not open.\n");exit(0);}s=(LINK *)malloc(sizeof(LINK));s->next=NULL;for(;fread(s,sizeof(struct Inode),1,fp)!=0;){total++;if(L->next==NULL){L->next=s;p=s;p->next=s->next;}else{p->next=s;p=s;p->next=s->next;}s=(LINK*)malloc(sizeof(LINK));s->next=NULL;}fclose(fp);}void menu(){printf("********欢迎进入活期储蓄账目管理*******\n");printf("1.储蓄开户。

相关主题