课程设计银行储蓄管理系统(16页).doc
-课程设计银行储蓄管理系统-第 16 页数据结构课程设计报告设计题目 活期储蓄账目 学院名称 信息工程学院 专 业 班 级 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 ElemTypechar name8;int account;char password6;float money; ElemType;typedef struct InodeElemType 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->data.name);s->data.account=10001000+total+;printf("n你开户的账号为:%dn",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;elses->next=L->next;L->next=s;printf("开户成功。n");void DeleteList(LINK *L)LINK*p=L,*q;char pass6;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");else printf("你所要销户的账户不存在或者该账户已销户。n");void PrinList(LINK*L)LINK*p=L->next;while(p!=NULL)printf("%st",p->data.name);printf("%dt%st%2fn",p->data.account,p->data.password,p->data.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("你的账户余额为:%.2fn",p->data.money);else if(cq=4)printf("账号退出成功。n");return;elseprintf("请输入你的取款金额:");FH: scanf("%f",&mn);if(p->data.money-mn)>=0)p->data.money=p->data.money-mn;printf("取款成功!n");elseprintf("取款失败!n");printf("你账户上的余额不足!你的账户余额为:%.2fRMPn",p->data.money);printf("请输入合适的取款金额:");goto FH;void Search(LINK *L)LINK *p=L->next;int acc;char pass6;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");elseif(strcmp(p->data.password),pass)=0)printf("账户登录成功。n");elsewhile(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 errorn");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;elsep->next=s;p=s;p->next=s->next;s=(LINK*)malloc(sizeof(LINK);s->next=NULL;fclose(fp);void menu()printf("*欢迎进入活期储蓄账目管理*n");printf("1.储蓄开户。n");printf("2.储蓄销户。n");printf("3.储蓄的账户存款、取款。n");printf("4.返回菜单。n");printf("5.查看所有储蓄账户信息。n");printf("6.退出账目管理。n");printf("*n");void choice()LINK *L=NULL;char xunhan;L=InitList(L);Print(L);while(1)menu();printf("请选择你需要的功能:");scanf("%c",&xunhan);if(xunhan='6')break;system("cls");switch(xunhan)case '1':InsertList(L);/ch=getchar();break;case '2':DeleteList(L);/ch=getchar();break;case '3':Search(L);/ch=getchar();break;case '4':menu();/ch=getchar();break;case '5':PrinList(L);/ch=getchar();break;default:printf("输入错误!请重新选择功能。n");break;fflush(stdin);save(L);void main()choice();七、 测试分析白盒黑盒进入菜单界面选择1,实现开户功能·选择2, 实现销户功能选择3,账户登陆成功,选择1,实现存款功能选择4,账户登陆成功,选择2,实现取款功能账户登陆成功,选择2,当账户资金不足时账户登陆成功,选择3,显示余额账户登陆成功,选择4,退出账户当已有账户登陆失败时,重新输入密码当目前没有存在的登录账户时,回到菜单选择5,查询所有储户信息选择6 实现退出账目管理功能八 使用说明运行程序,首先出来的是登陆界面,登录进去就可以到菜单界面,根据菜单的提示选择您想要实现的功能:1.储蓄开户 根据提示输入账户名及密码2.储蓄销户 根据提示输入账号及密码3.储蓄的账户存款、取款。登陆好自己的账号,选择要实现功能,1存款,2取款,3显示余额。若不能登陆成功,则根据提示建立一个账户。4.返回菜单。5.查看所有储蓄账户信息。6.退出账目管理。九 课程设计总结通过本次课程设计使我对编程有了新的认识,对自己所学的知识有了新的了解。在做本次课成设计的过程中,我巩固了自己所学过的知识,并且能将这些知识运用到实际中。当然,在这个过程中我也遇到很多困难,不会编写函数,不会调程序,不能理解程序中的内容,但经过俩周多的努力,我克服这些困难,圆满的完成了本次课程设计,使自己有了巨大的进步。在下次课程设计中,我一定会发挥得更好,让自己再次提高。