ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:334.23KB ,
资源ID:9216983      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9216983.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(活期储蓄账目管理系统doc.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

活期储蓄账目管理系统doc.docx

1、活期储蓄账目管理系统doc数据结构课程设计 课程设计题目:活期存储账目管理系统姓 名:院系: 计算机学院专 业:计算机科学与技术 年 级: 11级 学 号:指导教师:2013 年 10月 12 日目 录 1 课程设计的目的1 2 需求分析1 3 课程设计报告内容1 3.1概要设计1-2 3.2详细设计 2-10 3.3调试分析10-12 3.4用户手册13 3.5测试结果13 3.6程序清单13-24 4 小结 24 5 参考文献 24-25 1 课程设计的目的设计活期储蓄帐目管理系统的要求:活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:能比较迅速地找到储户的帐户,以实现存

2、款、取款记账;能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。设计这个活期账目管理系统可以方便银行人员进行管理和调试,从而也能提 高我们的编程技能熟练使用 C 语言编写程序,解决实际问题;了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;2 需求分析(1)创建文件,用数组形式存储用户数据,开户时自定义用户账户、 姓名、密码、开户金额。(2)用户登录时,输入正确的用户姓名、用户密码,完成登录后即可进行存款、取款、 查询、修改密码。(也可以

3、输入用户账号、用户密码)(3)实现输入用户的账户名和密码,将其全部信息删除,进行销户。3 课程设计报告内容3.1概要设计在本课程设计的方案设计中,已经确定了用链表来作为数据的存储结构(也可以不用单链表),所以这里我没有采用单链表作为其存储结构,首先用结构体来定义其数据类型,然后将数据按照该数据结构存储,之后运用文件的相关知识将更改的数据写入文件中,这样就完成了本课程设计的方案设计。为了实现需求分析中的功能,可以从以下几个方面着手设计。(1)数据结构设计 该课程设计的数据结构是线性的数据存储结构,采用的是数组类型的存储结构。(2)存储结构设计 该存储结构是链式存储结构,本系统主要用线性表表结构类

4、型来存储在“活期储蓄账目管理系统”中的信息。其中,结构体由4个分量构成:用户账号名、用户姓名、用户密码、开户金额。(3)模块设计 (4)模块功能分析及其外部设计 开户模块主要是输入需要开户的姓名,然后建立开户账号,提醒输入账号密码。销户模块则是输入需要销户的账号及其密码,然后从系统中销去些账号的相关记录。同样存款是根据提醒输入需要登录的账号,然后再输入其密码,之后就可以查看其账号上的相关资料。 取款则是要求登录需要存入及其支出的账号,然后对该账号进行相关的存入及支出。程序的外部设计主要是通过编写一个菜单功能来实现各个模块功能的调用,从而更好的协调各个模块功能之间的关系,同时还要编写一段代码来实

5、现所有数据更改后将其写入文件中,实现数据的及时更新,维护数据的正确性.3.2详细设计(1)数据类型定义 本系统采用链式结构存储储蓄账目管理系统结构。结点定义如下: struct user char name20; int id; char password8; double money; (2)系统主要子程序详细设计 用户输入要想开户的储户输入其姓名账户密码,然后显示开户 成功,会有一个账户号生成,则开户就成功了。 可以设计账户开户函数:add(); 用户登录需要输入账户名和密码,判断密码是否正确,如果错误则返回, 然后点击登录,就可以进入管理系统。 则需要设计用户信息输入函数:getuser

6、(); 用户的存取款和查询余额,首先在登录账户的基础上,选择存或者取款,然后输入 相应的金额, 若是取款应判断其金额是否小于账户上的金额,如果不小于,则提示 储户重新输入相应的金额,或者退出。 可以设计存款函数:save_money();取款函数:get_money(); 查询余额函数(用名字进行查询):select_name();查找用户账号函数:select_name(); 储户输入需要销户的账号,然后程序自动判断该账号是否存在,然后输入账号密码, 若账号与密码相对应,则删除该账号。 可以设计函数销户函数:del();系统显示函数dispaly(); 1用户开户函数void add() p

7、rintf(%30sn,*用户开户*); printf(-nn); struct user getuser(); int count(); FILE *fp; int number; struct user temp; if(fp=fopen(file,ab)=NULL) printf(cannot open file!n); exit(1); temp=getuser(); number=count(); temp.id=number+1; fwrite(&temp,sizeof(struct user),1,fp); printf(用户开户成功!n); fclose(fp);2.按姓名查询

8、帐户余额void select_name() void getname(char *name); void getpassword(char *password); printf(%30sn,*按照姓名查询账户余额*); printf(%8s %15s %15s %10sn,账号,用户姓名,存款余额); printf(-nnn); FILE * fp; struct user temp; char name20; char password8; if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); printf(输入要查

9、询的姓名:); getname(name); printf(请输入密码:); getpassword(password); while(fread(&temp,sizeof(struct user),1,fp) if(strcmp(temp.name,name)=0&strcmp(temp.password,password)=0) printf(NO.%d %20s %.2fn,temp.id,temp.name,temp.money); fclose(fp);按账号查询账户余额void select_id() int count();void getpassword(char *passw

10、ord); printf(%30sn,*按照编号查询账户余额*); printf(%8s %15s %10sn,编号,用户姓名,存款余额); printf(-nn); FILE * fp; struct user temp; int i,maxnum; char password8; if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); maxnum=count(); printf(输入要查询账号:); scanf(%d,&i); printf(输入账号密码:); scanf(%s,&password); if(imax

11、num) printf(你要查询的账号不存在!); return; while(fread(&temp,sizeof(struct user),1,fp) if(temp.id=i&strcmp(temp.password,password)=0) printf(NO.%d %20s %.2fn,temp.id,temp.name,temp.money); fclose(fp);显示用户资料void display() printf(%30sn,*用户资料显示*); printf(%8s %15s %10sn,账号,用户姓名,存款余额); printf(-nn); FILE * fp; str

12、uct user temp; if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); while(fread(&temp,sizeof(struct user),1,fp) printf(NO.%d %20s %.2fn,temp.id,temp.name,temp.money); fclose(fp);储户存款void save_money() printf(%30sn,*用户存款业务*); printf(-nn); int count();void getpassword(char *password); FILE *

13、fp; int i,num,mark; struct user *temp; char password8; num=count(); temp=(struct user *)malloc(num*sizeof(struct user); if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); for(i=0;inum;i+) fread(&tempi,sizeof(struct user),1,fp); fclose(fp); printf(输入要存款账号:); scanf(%d,&mark); if(marknum)

14、printf(你要存款账号不存在!); return; printf(输入账号密码:); scanf(%s,&password); if(fp=fopen(file,wb)=NULL) printf(cannot open file!n); exit(1); for(i=0;inum;i+) if(tempi.id=mark) double money=0; printf(输入要存入的金额:); scanf(%lf,&money); if(money=0) printf(只能为正数!n); money=0; tempi.money +=money; fwrite(&tempi,sizeof(s

15、truct user),1,fp); fclose(fp); free(temp); printf(你存款业务已办妥!n);储户取款void get_money() printf(%30sn,*用户取款业务*); printf(-nn); int count();void getpassword(char *password); FILE *fp; int i,num,mark; struct user *temp; char password8; num=count(); temp=(struct user *)malloc(num*sizeof(struct user); if(fp=fo

16、pen(file,rb)=NULL) printf(cannot open file!n); exit(1); for(i=0;inum;i+) fread(&tempi,sizeof(struct user),1,fp); fclose(fp); printf(输入要取款账号:); scanf(%d,&mark); if(marknum) printf(你要取款账号不存在!); return; printf(输入账号密码:); scanf(%s,&password); if(fp=fopen(file,wb)=NULL) printf(cannot open file!n); exit(1)

17、; for(i=0;inum;i+) if(tempi.id=mark) double money=0; printf(输入要取出的金额:); scanf(%lf,&money); if(moneytempi.money) printf(你的余额不足!n); money=0; tempi.money -=money; fwrite(&tempi,sizeof(struct user),1,fp); fclose(fp); free(temp); printf(你取款业务已办妥!n);销户void del() int count(); printf(%30sn,*注销账户*); printf(%

18、8s %15s %10sn,账号,用户姓名,存款余额); printf(-nn); FILE * fp; struct user temp; int i,maxnum; if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); maxnum=count(); printf(输入要销户账号:); scanf(%d,&i); if(imaxnum) printf(你要查询的账号不存在!); return; while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看

19、的记录 if(temp.id=i&temp.money=0.00)/余额为0 temp.id=-1;/算无效帐户 printf(NO.%d %20s %.2fn,temp.id,temp.name,temp.money); fwrite(&temp,sizeof(struct user),1,fp);/保存修改 printf(账户销户成功n); fclose(fp);3.3调试分析 系统运行主界面如图所示,各子功能测试运行结果如下。每个方面实现一个功能。定义一个包含有四个变量的结构体数组,并存入文件中。定义一个计数函数,贯穿整个程序。然后每个函数实现一个功能,共有七个功能。添加用户时会使用到录

20、入姓名和录入身份证号码两个函数。按姓名和账号查询只需要比较字符串,然后输出即可实现。显示用户资料只需将结构体数组依次输出即可实现。储户的存款和取款按找账号依次从文件中查找到匹配的账号,然后加上或减去存取的金额即可实现。销户时将金额为零的账户账号标为-1即可。1.主界面截图2.用户开户3.按照姓名查找账户4按照账号查找账户 5.用户存款 6.用户取款7.用户销户前显示用户信息进行销户3.4用户手册(1)本程序执行文件为”活期储蓄.exe”.(2) 进入本系统后,随即显示系统主菜单页面,用户可在该界面下输入各子菜单前对应的数字并按回车键,执行相应子菜单命令。3.5测试结果最后以文件输出的数据(有点

21、乱码)3.6 程序清单 #include#include#include#include#define file temp.txtstruct user int id; char name20; char password6; double money;void add() printf(%30sn,*用户开户*); printf(-nn); struct user getuser(); int count(); FILE *fp; int number; struct user temp; if(fp=fopen(file,ab)=NULL) printf(cannot open file!

22、n); exit(1); temp=getuser(); number=count(); temp.id=number+1; fwrite(&temp,sizeof(struct user),1,fp); printf(用户开户成功!n); fclose(fp);int count() FILE *fp; int num; struct user temp; num=0; if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); while(fread(&temp,sizeof(struct user),1,fp) num+

23、; fclose(fp); return num;void getname(char *name) do scanf(%s,name); fflush(stdin); if(strlen(name)=0) printf(姓名不能为空!n); else if(strlen(name)=20) printf(姓名不能超过20个字符!n); else break; printf(重新输入姓名: ); while(1);void getpassword(char *password) do int i,j; char ch; for(i=0,j=0; i+) if(ch=getchar()!=n) i

24、f(ch=0) passwordi=ch; else printf(密码只能是数字!n); j=1; break; else break; passwordi=0; if(j=1) continue; if(strlen(password)!=6) printf(密码只能是6位!n); else break; printf(重新输入密码: ); while(1);struct user getuser() void getname(char *name); void getpassword(char *password); struct user temp; printf(请输入用户姓名: )

25、; getname(temp.name); printf(请输入用户密码: ); getpassword(temp.password); printf(输入开户金额:); do scanf(%lf,&temp.money); fflush(stdin); if(temp.money)10) printf(开户金额不能小于10n); else break; printf(重新输入开户金额:); while(1); return temp;void select_name() void getname(char *name); void getpassword(char *password); printf(%30sn,*按照姓名查询账户余额*); printf(%8s %15s %15s %10s

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1