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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

购物卡管理系统课程设计文档格式.docx

1、 getchar(); menu();函数开头有“文件包含”的预处理命令,所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。C语言提供了#include命令用来实现“文件包含”的操作。在本程序中包含了一下头文件:string.h、ctype.hstdio.h,方便调用库函数实现某些功能。在程序设计中,只使用一些基本类型(或称简单类型)的变量(如整型、实型、字符型变量等)和构造类型数据数组,是远远不够的。有时候需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是相互联系的。在这个程序中,定义了一个结构体数组来存

2、放购物卡用户的各种信息,包括账户卡号、户主姓名、账户余额、账户状态、账户积分,结构体如下:struct user int num;/*账户号码*/ char name20;/*户主名称*/ float surplus;/*账户余额*/ char state2;/*账户状态,y:已启用,n:未启用*/ int point;/*账户积分*/u100;同时在各分函数中,定义了int、float、char等一系列变量类型,用来实现函数功能。在主函数前面,要加上对各功能函数的声明,声明的作用是把函数的名字、函数的类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查,例如函数

3、名是否正确,实参与形参的类型和个数是否一致等。主函数比较简单,但是函数的调用很多,所以,在程序的开头就加上了各函数的声明,如下:void c_c();/*制卡函数模块*/void s_u();/*发卡函数模块*/void in_m();/*存款函数模块*/void out_m();/*取款函数模块*/void c_i();/*查询账户相关信息函数模块*/void c_r();/*查询账户交易记录函数模块*/void check();/*查询全部信息函数模块*/void menu();/*主菜单函数模块*/void back();/*返回函数模块*/void check_b();/*给用户提示已

4、有信息*/实现菜单选择功能,使用的是switch语句,根据用户输入的菜单选项a,调用不同的函数实现各种功能:switch(a) case 1:c_c();break;/*制卡模块*/ case 2:s_u();/*发卡模块*/ case 3:in_m();/*存款模块*/ case 4:out_m();/*取款模块*/ case 5:c_i();/*查询账户相关信息模块*/ case 6:c_r();/*查询交易记录模块*/ case 7:check();/*查看所有信息模块*/ case 8:exit(0);/*退出模块*/ 主菜单函数程序void menu() int v,w1; do p

5、rintf(nnnntt ntt| (1) 制 卡 操 作 |ntt|-|ntt| (2) 帐 号 激 活 |ntt| (3) 帐 户 登 陆 |ntt| (4) 报 表 操 作 |ntt| (5) 退 出 |ntt|_|nnntt 请选择操作(1-5):bb scanf(%d,&v); if(v5) printf(nntt*输 入 有 误 !* w1=1; getchar(); else w1=0; while(w1=1); switch(v)made(); /*制作*/life(); /*激活*/enter(); /*登陆*/browse(); /*报表*/ /*退出*/2、 功能模块设计

6、2.1 制卡模块1、制卡【数据结构】所输入的数据信息在磁盘上以文本文件的形式保存,一条记录对应一个购物卡,既符合习惯也方便信息管理。【分析】制卡时需要把开卡的户主的信息输入,包括卡号、姓名、初始金额、是否开始使用此卡,并且还需要输出其信息。把购物卡的卡号、姓名、密码、存款金额、消费金额、积分数作为结构体成员,存放在结构体数组:struct credicard /*定义信用卡结构体*/ int number; char ID20; char word8; int flag; float account; int integal; int jifen;cardM;void made() /*制卡操

7、作*/ int i; char h20;nnt请输入要申请的号码:tttbbbbbbb%s,h); if(strlen(h)!=6)nnntt*输入有误,请重新输入*nn continue; for(i=0;in;i+) if(strcmp(cardi.ID,h)=0) printf(nntt*该号码已经存在,请重新输入*nn break; while(strlen(h)!=6)|strcmp(cardi.ID,h)=0); cardn.number=n; strcpy(cardn.name,* strcpy(cardn.ID,h); strcpy(cardn.word,000000 card

8、n.flag=0; cardn.account=0.00; cardn.integal=0;nnntt*制 卡 成 功 !*nn print_one(n); n+; add();2、显示卡的信息将刚制的卡的信息输出到屏幕。void print_one(int j) /*显示消息*/n|-|-|-|-|-|-|n|NO. | name | ID |flag| account | integal |n|%4d|%20s|%20s|%4d|%10.2f|%10d|, cardj.number,cardj.name,cardj.ID,cardj.flag,cardj.account,cardj.int

9、egal);3、用文件的形式将卡保存void add() /*写入文件*/ FILE *fp; if(fp=fopen(score.txt,wb)=NULL)tt Can not open the file n return; for(i=0; if(fwrite(&cardi,sizeof(struct credicard),1,fp)!=1)tt File write error n return; fclose(fp);nnntt*成功保存!2.2 发卡模块该模块的功能是根据输入的卡号查找对应的记录,找到后可进行发卡,填写申请人的姓名、设置密码等操作,并决定是否激活。最后登录此卡查看是否

10、已激活,输出到屏幕。【流程图】1、 首先输入卡号进行激活该卡操作:void huo(int k) /*激活操作*/ char m20,p8; int x,w2;nntt 是否激活该卡? (1) 是 (2) 否 nntt 请选择卡号: scanf(x); if(x2) w2=1;getchar(); else w2=0; while(w2=1); if(x=1)nntt请输入姓名:bbbbbbbbbbbbbbbbbbbb,m); strcpy(cardk.name,m);nntt请输入六位数密码:,p); strcpy(cardk.word,p); cardk.flag=1;nnntt*激 活

11、成 功! print_one(k);2、 登陆该卡验证是否激活void life() /*登陆*/ int k=-1;FILE *fp;r for(n=0;feof(fp);n+) fread(&cardn,sizeof(struct credicard),1,fp); if(n=0)nntt*请 先 制 卡*n elsennt请输入购物卡号码: k=search(h); if(k=-1)nnttt*该号码不存在!*n else if(cardk.flag=1)nntt*该卡已经激活!*n else huo(k);int search(char h20) int i,k=-1; if(strc

12、mp(cardi.ID,h)=0)k=i; return(k);3、进入该卡进行核对信息void enter() /*进入*/ if(cardk.flag=0)nntt*该卡还未激活,请先激活!*n else hedui(k);4、核对卡号密码void hedui(int k) /*验证核对*/ int c=0,w3=0; char p8; nntt*请输入密码: if(strcmp(cardk.word,p)!=0)nntt*密码不正确,请重新输入!*n c+; continue;nntt*密 码 正 确 !*n w3=1; menu1(k); while(w3=0&ctt| (1) 查 询

13、 |ntt| (2) 存 款 |ntt| (3) 消 费 |ntt| (4) 修 改 密 码 |ntt| (5) 返回主菜单 |n w4=1; else w4=0; while(w4=1);stat_one(k);deposit(k);fetch(k);change(k);menu();2.3 存款模块该模块的功能是在账户登录后,通过选择步骤进行对此卡进行此存款,最后以表格的形式将卡上的信息输出。void deposit(int k) float a=0.00;nntt请输入存款金额:ttbbbbbbbbbbb%fa); cardk.account+=a;nntt*存 款 成 功 !* print_one(k); 2.4 消费积分模块该模块的功能是使用该卡进行消费,最后以表格的形式将此卡现状输出到屏幕。【流程图】void fetch(int k) /*消费*积分*/ float b=0.00,jifen=0.00;nntt请输入消费金额:b); if(bcardk.account)nntt*余 额 不 足 !* cardk.account-=b; cardk.integal=b; cardk.jifen+=b;nntt*谢 谢 惠 顾 !2.5 查询账户相关信息模块该模块的功能是在户主登录后对账户的信息进行查询,并且可以根据需要进行密码修改。【选择程序】tt|-

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

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