活期储蓄帐目管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

洛阳理工学院课程设计报告课程名称数据结构课程设计设计题目活期储蓄帐目管理课程设计任务书设计题目:活期储蓄帐目管理_________________________________________________________设计内容与要求:【问题描述】活期储蓄处理中,储户开户、销户、存入、支出活动频繁。设计一个活期储蓄账目管理系统。【基本要求】1)能比较迅速地找到储户的帐户,以实现存款、取款记账;2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。课程设计评语成绩:指导教师:_______________年月日洛阳理工学院课程设计报告1(1)问题描述:活期储蓄处理中,储户开户、销户、存入、支出活动频繁。设计一个活期储蓄账目管理系统。(2)基本要求:1)能比较迅速地找到储户的帐户,以实现存款、取款记账;2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。(3)测试数据:洛阳理工学院课程设计报告2(4)算法思想:1主要思想12开户3查询洛阳理工学院课程设计报告3(5)模块划分:01)voidInsertList(LINK*&L)//链表插入实现开户功能02)voidSearch(LINK*L)//链表查找,实现用户登陆功能03)voidDeposit(LINK*&L,LINK*p)//用户存款、取款04)voidPrintList(LINK*L)//打印链表,实现用户信息输出05)voidDeleteList(LINK*&L)//链表删除,实现销户功能(需要账号和密码)06)voidsave(LINK*L)//保存链表,实现用户信息保存到文件07)voidPrint(LINK*&L)//打开文件,得到链表08)voidmenu()//主菜单函数09)voidchoice()//菜单选择函数(6)数据结构:typedefstructElemType//定义结构体{charname[11];intaccount;charpassword[7];floatmoney;}ElemType;typedefstructlnode//定义链表{ElemTypedata;structlnode*next;}LINK;(7)心得:洛阳理工学院课程设计报告4这次实验我学到了很多在课本上没有注意的知识,在设计实验的过程中,我通过对链表的应用,让我对链表的应用更加的牢固,也通过设计,我也发现了我在学习中的不足,在不断改进程序的同时,我也发现了很多能够改进的地方,在改进程序的同时,巩固对链表的知识掌握。这次我设计的程序,主要是以链表为中心,通过对链表的建立,插入,删除打印等来实现开户、销户、存钱、取钱等功能。其中链表打印的环节的功能我不是很明白,通过上网查询。查找资料。逐渐改善。最终实现完全的程序(8)源程序:#includestdio.h#includestring.h#includestdlib.h#includeconio.h#definefilelnode.txtinttotal=0;//定义的全局变量,用于开户所需typedefstructElemType//定义结构体{charname[11];intaccount;charpassword[7];floatmoney;}ElemType;typedefstructlnode//定义链表{ElemTypedata;structlnode*next;}LINK;voidInitList(LINK*&L)//建立空链表洛阳理工学院课程设计报告5{L=(LINK*)malloc(sizeof(LINK));L-next=NULL;}voidInsertList(LINK*L)//链表插入实现开户功能{intx;LINK*s;s=(LINK*)malloc(sizeof(LINK));printf(请输入你要开户的姓名(10字符以内):);scanf(%s,s-data.name);x=rand()%10;//随机数total+=x;//total随机增大一个数值(10以内)xs-data.account=10000000+total;printf(\n你开户的账号为:%d\n,s-data.account);printf(请输入你账号的密码(6位数以内):);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);}洛阳理工学院课程设计报告6voidDeleteList(LINK*L)//链表删除实现销户功能(需要账号和密码){LINK*p=L,*q;charpass[6];ints;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);}洛阳理工学院课程设计报告7voidPrintList(LINK*L)//打印链表,实现用户信息输出{LINK*p=L-next;while(p!=NULL){printf(%s\t,p-data.name);printf(%d\t%s\t%.2f\n,p-data.account,p-data.password,p-data.money);p=p-next;}}voidDeposit(LINK*L,LINK*p)//用户存款、取款{intcq;floatmn;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);}洛阳理工学院课程设计报告8elseif(cq==3){printf(你账户的余额为:%.2f\n,p-data.money);}elseif(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(你账户上的金额不足!\n你的账户余额为:%.f\n,p-data.money);printf(请输入合适的取款金额:);gotoFH;}}}}洛阳理工学院课程设计报告9}voidSearch(LINK*L)//链表查找,实现用户登陆功能{LINK*p=L-next;intacc;charpass[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){charpa;printf(密码错误\n);洛阳理工学院课程设计报告10printf(是否重新输入(是,就输入任意键)、(否,从键盘上输入Norn):);scanf(\n%c,&pa);if(pa=='n'||pa=='N'){system(cls);return;}printf(\n请重新输入你的密码:);scanf(%s,pass);}}Deposit(L,p);}}voidsave(LINK*L)//保存链表,实现用户信息保存到文件{FILE*fp;if((fp=fopen(file,rb))==NULL){printf(cannotopenfile.\n);exit(1);}LINK*p=L-next;if(p!=NULL){if(fwrite(p,sizeof(structlnode),1,fp)!=1)printf(filewriteerror\n);p=p-next;}fclose(fp);}洛阳理工学院课程设计报告11voidPrint(LINK*&L)//打开文件,得到链表{FILE*fp;LINK*p,*s;if((fp=fopen(file,rb))==NULL){printf(cannotopenfile.\n);exit(1);}s=(LINK*)malloc(sizeof(LINK));s-next=NULL;while(fread(s,sizeof(structlnode),1,fp)){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);}voidmenu()//主菜单函数洛阳理工学院课程设计报告12{printf(************欢迎进入活期储蓄账目管理***********\n);printf(1.储户开户。\n);printf(2.储户销户。\n);printf(3.储户的账号存款、取款。\n);printf(4.查看所有储蓄账户信息。\n);printf(5.退出账目管理。\n);printf(***********************************************\n);}voidchoice()//菜单选择函数{LINK*L;InitList(L);while(1){menu();charx,ch;printf(请选择你需要的功能:);scanf(%c,&x);getchar();if(x'5')printf(输入有误,请重新选择操作:\n);if(x=='5')break;switch(x){case'1':InsertList(L);ch=getchar();break;case'2':DeleteList(L);ch=getchar();break;洛阳理工学院课程设计报告13case'3':Search(L);ch=getchar();break;case'4':PrintList(L);ch=getchar();break;default:break;}getch();//暂停功能(读取任意键继续)(conio.h)system(cls);}save(L);}voidmain(){choice();}。洛阳理工学院课程设计报告14

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功