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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程教学设计活期储蓄账目管理方案计划.docx

1、数据结构课程教学设计活期储蓄账目管理方案计划活期储蓄账目管理一 目的满足活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求。能比较迅速地找到储户的帐户进而显示储户信息,以实现存款、取款记账;能比较简单,迅速地实现插入和删除,以实现开户和销户的需要;熟练使用 C 语言编写程序,解决实际问题;学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。二 需求分析1、数据需求1.需先进行储户开户才可进行之后的所有的操作。2.开户时需要的数据有姓名、身份证号码、联系电话、密码、账号会自动生成。3.销户时,需用输入账号与密码(两者都正确后

2、)方可销户;存取款时,也需进行账号及密码验证后方可进行交易。2、基本功能需求基本的功能有新建储户(开户)、删除储户(销户)、存取款、查询储户信息(此步也可看见交易后的信息)、显示所有储户信息。3、非功能性需求 系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。三 概要设计1、数据结构设计用结构体来定义其数据类型,然后将数据按照该数据结构存储,之后运用文件的相关知识将更改的数据写入文件中,采用数组类型的存储结构。2、储存结构体设计本系统主要用线性表表结构类型来存储在“活期储蓄账目管理系统”中的信息。其中,结构体由5个分量构成:用户账号、用户姓名、用户身份证号码、用户密码

3、、开户金额。3、模块设计活期储蓄账目管理显示菜单选择功能 1.新建储户 2.查询储户信息3.显示所有储户信息4.删除储户5.存款 6.取款 7.退出账目管理。void add()函数实现新建储户功能void select_id()函数实现查询储户信息功能void display()函数实现显示所有储户信息功能void del()函数实现删除储户功能void save_money() 函数实现存款功能void get_money()函数实现取款功能void print()函数用于显示菜单void main()函数用于实现菜单中的功能四 详细设计1、结构体的详细定义struct user /用户类

4、型(账号,姓名,身份证号,存款) int id; char name20; char person_num19; char password6; double money;2、系统函数详细介绍void add()函数实现新建储户功能void add() /添加用户 printf(%45sn,*新建储户*); printf(-nn); struct user getuser(); struct user temp; int count(); /函数目的:计算文件中的记录数目 以生成自动账号 FILE *fp; int number; if(fp=fopen(file,ab)=NULL) prin

5、tf(Can not open file!n); exit(1); temp=getuser(); /读取用户名 number=count(); temp.id=number+1; /生成自动账号 fwrite(&temp,sizeof(struct user),1,fp); printf(添加用户成功!n); fclose(fp);void select_id()函数实现查询储户信息功能void select_id() /查询储户信息 int count(); void getpassword(char *password); printf(%45sn,*查询储户信息*); printf(-

6、n); printf(%s %15s %15s %15sn,编号,用户姓名,身份证号码,存款余额); printf(-nn); FILE *fp; struct user temp; int i,maxnum; char password8; bool flag=false; if(fp=fopen(file,rb)=NULL) printf(cannot open file!n); exit(1); maxnum=count(); printf(输入要查询账号:); scanf(%d,&i); if(imaxnum) printf(你要查询的账号不存在!); return; printf(输

7、入账号密码:); scanf(%s,&password); while(fread(&temp,sizeof(struct user),1,fp) /循环读取每一条记录 判断是否为要查看的记录 if(temp.id=i&strcmp(temp.password,password)=0) printf(NO.%d %8s %25s %.2fn,temp.id,temp.name,temp.person_num,temp.money); flag=true; break; if(flag=false) /判断密码是否正确 printf(您输入的密码不正确!n); return; fclose(fp

8、);void display()函数实现显示所有储户信息功能void display() /显示所有储户信息 printf(%45sn,*显示所有储户信息*); printf(-n); printf(%s %15s %15s %15sn,账号,用户姓名,身份证号码,存款余额); printf(-n); FILE *fp; struct 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

9、 %10s %23s %.2fn,temp.id,temp.name,temp.person_num,temp.money); fclose(fp);void del()函数实现删除储户功能void del() /删除储户 printf(%45sn,*删除储户*); printf(-n); printf(%s %15s %15s %10sn,账号,用户姓名,身份证号码,存款余额); printf(-n); int count(); void getname(char *name); void getperson_num(char *person_num); void getpassword(c

10、har *password); FILE *fp; int i,num,mark; char password6; bool flag=false; struct user *temp; 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); f

11、close(fp); printf(输入要需要注销的账号:); scanf(%d,&mark); if(inum) printf(你要注销的账号不存在!); return; printf(输入账号密码: ); scanf(%s,&password); if(fp=fopen(file,wb)=NULL) /写方式打开文件,覆盖原文件中的内容 printf(cannot open file!n); exit(1); for(i=0;inum;i+) /无效账户信息全部置为0 if(tempi.id=mark&strcmp(tempi.password,password)=0&tempi.mone

12、y=0.00) strcpy(tempi.person_num,0); strcpy(tempi.name,0); strcpy(tempi.password,0); flag=true; fwrite(&tempi,sizeof(struct user),1,fp); fclose(fp); free(temp); if(flag=false) printf(您输入的密码不正确或是余额不为零!n); else printf(储户注销成功!n);void save_money() 函数实现存款功能void save_money() /函数功能:存款 printf(%45sn,*用户存款业务*)

13、; printf(-nn); int count(); void getpassword(char *password); FILE *fp; int i,num,mark; bool flag=false; struct user *temp; char password6; 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+) /将文

14、件内容存入数组 fread(&tempi,sizeof(struct user),1,fp); fclose(fp); printf(输入要存款账号:); /读取存款账号 scanf(%d,&mark); if(inum) 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&str

15、cmp(tempi.password,password)=0) double money=0; printf(输入要存入的金额:); scanf(%lf,&money); while(1) if(money=0) printf(只能为正数!n); money=0; printf(输入要存入的金额:); scanf(%lf,&money); else break; tempi.money +=money; flag=true; fwrite(&tempi,sizeof(struct user),1,fp); /修改该用户的信息 fclose(fp); free(temp); if(flag=fa

16、lse) printf(您输入的密码不正确!n); else printf(你存款业务已办妥!n);void get_money()函数实现取款功能void get_money() /函数功能:用户取款 printf(%45sn,*用户取款业务*); printf(-nn); int count(); FILE *fp; int i,num,mark; char password6; bool flag=false; struct user *temp; num=count(); /根据记录数申请空间 temp=(struct user *)malloc(num*sizeof(struct u

17、ser); 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(inum) printf(你要查询的账号不存在!); return; printf(输入账号密码: ); scanf(%s,&password); if(fp=fopen(file,wb)=NULL) /写方式打开文件,覆盖原文件

18、中的内容 printf(cannot open file!n); exit(1); for(i=0;inum;i+) if(tempi.id=mark&strcmp(tempi.password,password)=0) double money=0; printf(输入要取出的金额:); scanf(%lf,&money); if(moneytempi.money) printf(你的余额不足!n); money=0; tempi.money -=money; flag=true; fwrite(&tempi,sizeof(struct user),1,fp); fclose(fp); fr

19、ee(temp); if(flag=false) printf(您输入的密码不正确!n); else printf(你取款业务已办妥!n);void print()函数用于显示菜单void print() /函数功能:输出界面 printf(%48sn,*活期储蓄帐目管理系统*); printf(-nn); printf(%8s,%-20sn,1,新建储户); printf(%8s,%-20sn,2,查询储户信息); printf(%8s,%-20sn,3,显示所有储户信息); printf(%8s,%-20sn,4,删除储户); printf(%8s,%-20sn,5,存款); printf

20、(%8s,%-20sn,6,取款); printf(%8s,%-20sn,7,退出); printf(n请选择功能(17):);void main()函数用于实现菜单中的功能,主函数void main() char choose; do print(); scanf( %c,&choose); /读取功能标号,根据标号选择不同的函数 fflush(stdin); system(cls); switch(choose) case 1: add(); break; case 2: select_id(); break; case 3: display(); break; case 4: del()

21、; break; case 5: save_money(); break; case 6: get_money(); break; case 7: exit(1); default: printf(对不起,你所选择的功能不存在!n); getch(); /暂停功能(读取任意键继续)(conio.h) system(cls); /清除屏幕显示(stdlib.h) while(1);五 调试分析 系统运行主界面如图所示,各子功能测试运行结果如下: 每个方面实现一个功能。定义一个包含有五个变量的结构体数组,并存入文件中。定义一个计数函数,贯穿整个程序。然后每个函数实现一个功能,共有六个功能。添加用户

22、时会使用到录入姓名和录入身份证号码两个函数。查询只需要比较字符串,然后输出即可实现。显示全部储户信息只需将结构体数组依次输出即可实现。储户的存款和取款按找账号依次从文件中查找到匹配的账号,然后加上或减去存取的金额即可实现。销户时将储户除账号外信息全部置0即可。六 测试结果1.主界面截图 2.新建储户 3.查询储户信息 4.显示所有储户信息 5.存款 6.取款 7.删除储户七 用户使用说明 (1) 本程序执行文件为”活期储蓄.exe”. (2) 进入本系统后,随即显示系统主菜单页面,用户可在该界面下输入各子菜单前对应的数字并按回车键,执行相应子菜单命令。 (3) 账号或密码输入不正确时,会出现提

23、示信息,然后按任意键退出。八 课程设计总结这次课程设计中遇到了一些问题与同学一起讨论解决,从其他人身上学到了很多。 这个课程设计并不完美,还有很多要改善的地方,在删除储户时不能将储户信息从文件中删除,只能将储户信息全部置0了。还有一些没想到的细节。虽然不是很完美,但发现不足之处并在以后的设计中注意这些细节,对于将来的实践还是很有帮助,我们可以不断发现我们的不完美,并想办法去改进这些不完美。通过这次课程设计学到了很多东西包括以前在课本上没有学到的知识,还使我懂得了理论和时间结合是很重要的。让我进一步了解了C+程序设计方法,并且对这门课产生了浓厚的兴趣。更重要的是培养了自己耐心、细心、用心的良好品质。同时也非常感谢同学的帮助及老师的建议与指导。源程序:#include#include#include#include#define file temp.txt /数据储存文件名struct user /用户类型(账号,姓名,身份证号,存款) int id; char name20; char person_num19; char password6; double money;void add() /添加用户 printf(%45sn,*新建储户*); printf(

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

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