活期储蓄帐目管理_第1页
活期储蓄帐目管理_第2页
活期储蓄帐目管理_第3页
活期储蓄帐目管理_第4页
活期储蓄帐目管理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 数据结构课程设计 设计题目 活期储蓄帐目管理 课 程 设 计 任 务 书设计题目:活期储蓄帐目管理_设计内容与要求:【问题描述】   活期储蓄处理中,储户开户、销户、存入、支出活动频繁。设计一个活期储蓄账目管理系统。【基本要求】1) 能比较迅速地找到储户的帐户,以实现存款、取款记账;2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。 课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日(1)问题描述:活期储蓄处理中,储户开户、销户、存入、支出活动频繁。设计一个活期储蓄账目管理系统。(2)基本要求:1)

2、 能比较迅速地找到储户的帐户,以实现存款、取款记账;2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。(3)测试数据:(4)算法思想:1主要思想12开户3查询(5)模块划分:01)void InsertList(LINK *&L) /链表插入实现开户功能02)void Search(LINK *L) /链表查找,实现用户登陆功能03)void Deposit(LINK *&L,LINK *p) /用户存款、取款04)void PrintList(LINK*L) /打印链表,实现用户信息输出05)void DeleteList(LINK *&L) /链表删除

3、,实现销户功能(需要账号和密码)06)void save(LINK *L) /保存链表,实现用户信息保存到文件07)void Print(LINK *&L) /打开文件,得到链表08)void menu() /主菜单函数09)void choice() /菜单选择函数(6)数据结构:typedef struct ElemType /定义结构体 char name11; int account; char password7; float money; ElemType; typedef struct lnode /定义链表 ElemType data; struct lnode *ne

4、xt; LINK;(7)心得:这次实验我学到了很多在课本上没有注意的知识,在设计实验的过程中,我通过对链表的应用,让我对链表的应用更加的牢固,也通过设计,我也发现了我在学习中的不足,在不断改进程序的同时,我也发现了很多能够改进的地方,在改进程序的同时,巩固对链表的知识掌握。这次我设计的程序,主要是以链表为中心,通过对链表的建立,插入,删除打印等来实现开户、销户、存钱、取钱等功能。其中链表打印的环节的功能我不是很明白,通过上网查询。查找资料。逐渐改善。最终实现完全的程序(8) 源程序:#include<stdio.h> #include<string.h> #includ

5、e<stdlib.h> #include<conio.h> #define file "lnode.txt" int total=0; /定义的全局变量,用于开户所需typedef struct ElemType /定义结构体 char name11; int account; char password7; float money; ElemType; typedef struct lnode /定义链表 ElemType data; struct lnode *next; LINK; void InitList(LINK *&L) /建立

6、空链表 L=(LINK *)malloc (sizeof(LINK); L->next=NULL; void InsertList(LINK *L) /链表插入实现开户功能 int x; LINK *s; s=(LINK*)malloc(sizeof(LINK); printf("请输入你要开户的姓名(10字符以内):"); scanf("%s",s->); x=rand()%10; /随机数 total+=x; /total随机增大一个数值(10以内)x s->data.account=10000000+total;

7、 printf("n你开户的账号为:%dn",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"); void DeleteList(LINK

8、 *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->

9、;next->data.password,pass)!=0) printf("密码错误!请重新输入:"); scanf("%s",pass); q=p->next; p->next=q->next; free(q); printf("账号销户成功。n"); else printf("你所要销户的的账号不存在(或者已经销户)。n"); void PrintList(LINK*L) /打印链表,实现用户信息输出 LINK *p=L->next; while (p!=NULL) printf

10、("%st",p->); 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(

11、"%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; else printf("请

12、输入你的取款金额:"); FH:scanf("%f",&mn); if(p->data.money-mn)>=0) p->data.money=p->data.money-mn; printf("取款成功!n"); else printf("取款失败!n"); printf("你账户上的金额不足!n你的账户余额为:%.fn",p->data.money); printf("请输入合适的取款金额:"); goto FH; void Search(LI

13、NK *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"); else if(str

14、cmp(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

15、; printf("n请重新输入你的密码:"); scanf("%s",pass); Deposit(L,p); void save(LINK *L) /保存链表,实现用户信息保存到文件 FILE *fp; if(fp=fopen(file,"rb")=NULL) printf("cannot open file.n"); exit(1); LINK *p=L->next; if (p!=NULL) if(fwrite(p,sizeof(struct lnode),1,fp)!=1) printf("

16、;file write errorn"); p=p->next; fclose(fp); void Print(LINK *&L) /打开文件,得到链表 FILE *fp; LINK *p,*s; if(fp=fopen(file,"rb")=NULL) printf("cannot open file.n"); exit(1); s=(LINK*)malloc(sizeof(LINK);s->next=NULL; while(fread(s,sizeof(struct lnode),1,fp) ) total+; /用于记

17、录账号的,以致账号不重复 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.储户开户。n"); printf("2.储户销户。n"); pri

18、ntf("3.储户的账号存款、取款。n"); printf("4.查看所有储蓄账户信息。n"); printf("5.退出账目管理。n"); printf("*n"); void choice() /菜单选择函数 LINK *L; InitList(L); while(1) menu(); char x,ch; printf("请选择你需要的功能:"); scanf("%c",&x); getchar(); if(x>'5') printf("输入有误,请重新选择操作:n"); if(x='5') break; switch(x) case '1':

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论