1、课程设计报告银行储蓄管理系统数据结构课程设计报告设计题目 活期储蓄账目 学院名称 信息工程学院 专 业 班 级 13计本1 姓 名 学 号 000000000000 一、实验题目活期储蓄账理 -二、问题描述-三、设计目标-四、需求分析-五、概要设计- 1-系统流程图- 2-各个模块功能的详细描-六、详细设计-七、测试分析-八、使用说明-九、课程设计总结-一 活期储蓄账目管理二 问题描述活期储蓄处理中,储蓄开户、销户、存款、取款活动频繁,系统设计要求: 能够比较迅速地找到储户的账户,以实现存款、取款记账; 能比较简单,迅速地插入和删除,以实现开户和销户的需要。三 设计目标编写一个程序,要求该程序
2、可以实现储蓄开户,及储蓄销户。同时,该程序具有在储蓄账户中实现存款、取款,查看该账户信息的功能。四 需求分析本演示程序用c语言编写,完成银行管理系统的生成,储户开户、销户、存入、支出。a输入的形式和输入值的范围:开户时自定义输入账号、用户姓名、密码、及开户金额;用户登陆时输入正确的账号及密码,完成登陆后即可进行存款、取款及销户。b输出的形式:在所有三种操作中都显示操作是否正确以及相应操作后的内容。其中输入错误回到主页面,可继续选择操作。c 程序所能达到的功能: 用户开户 账户登陆(存款、取款 、查询余额、 退出登录) 账户注销d测试数据五 概要设计:1、系统流程图2、各个模块功能的详细描本程序
3、主要包括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
4、 *L)该函数可以将账户信息存储起来void Search(LINK *L)该函数可以实现查询账户是否存在的功能六 详细设计(给出算法的伪码描述)#include#include#includeint total=1;typedef struct ElemType char name8; int account; char password6; float money; ElemType;typedef struct Inode ElemType data; struct Inode *next;LINK;LINK * InitList(LINK *L) L=(LINK *)malloc (s
5、izeof(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
6、=NULL) L-next=s; else s-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.pass
7、word),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 Depo
8、sit(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) prin
9、tf(账号退出成功。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(你账户上的余额不足!你的账户余额为:%.2fRMPn,p-data.money); printf(请输入合适的取款金额:); goto FH; void Search(LINK *L) LINK *p=L-next; int acc; char pass6; printf(请
10、输入你要登录的账号:); 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(是否重新输入(是,就输入任意键)、(否,
11、从键盘输入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 e
12、rrorn); 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=
13、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); Pri
14、nt(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);
15、 /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 实现退出账目管理功能八 使
16、用说明运行程序,首先出来的是登陆界面,登录进去就可以到菜单界面,根据菜单的提示选择您想要实现的功能:1.储蓄开户 根据提示输入账户名及密码2.储蓄销户 根据提示输入账号及密码3.储蓄的账户存款、取款。登陆好自己的账号,选择要实现功能,1存款,2取款,3显示余额。若不能登陆成功,则根据提示建立一个账户。4.返回菜单。5.查看所有储蓄账户信息。6.退出账目管理。九 课程设计总结通过本次课程设计使我对编程有了新的认识,对自己所学的知识有了新的了解。在做本次课成设计的过程中,我巩固了自己所学过的知识,并且能将这些知识运用到实际中。当然,在这个过程中我也遇到很多困难,不会编写函数,不会调程序,不能理解程序中的内容,但经过俩周多的努力,我克服这些困难,圆满的完成了本次课程设计,使自己有了巨大的进步。在下次课程设计中,我一定会发挥得更好,让自己再次提高。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1