购物卡管理系统

上传人:s9****2 文档编号:467095890 上传时间:2023-10-08 格式:DOC 页数:21 大小:404.50KB
返回 下载 相关 举报
购物卡管理系统_第1页
第1页 / 共21页
购物卡管理系统_第2页
第2页 / 共21页
购物卡管理系统_第3页
第3页 / 共21页
购物卡管理系统_第4页
第4页 / 共21页
购物卡管理系统_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《购物卡管理系统》由会员分享,可在线阅读,更多相关《购物卡管理系统(21页珍藏版)》请在金锄头文库上搜索。

1、题目要求设计购物卡管理系统,系统主要模块:实现系统内制卡、发卡功能;实现系统内账户及相关账户管理;实现卡交易和合法性检查;实现卡金融交易积分功能;实现卡报表功能;数据以文件形式存储。(提示)制卡:指申请一张购物卡,但还没有使用。发卡:指该购物卡已经启用。实现卡交易:指从卡中消费掉一定的金额。系统需求分析 根据题目要求,由于数据要以文件形式存储,所以应提供文件的输入、输出等操作;在程序中要实现银行卡的各项功能,应提供制卡、发卡、存款、消费、查询账户相关信息、查询账户交易记录、查询全部信息、退出程序等一系列操作;另外还应提供键盘式选择菜单实现功能选择。系统总体设计 分析了整个系统之后,根据上面的系

2、统需求分析,可以将这个系统的设计分为如下七大模块:制卡、发卡、存款、消费、查询账户相关信息、查询账户交易记录、查询全部信息购物卡管理系统制卡发卡存款消费查询账户相关信息查询账户交易记录查询全部信息退出系统详细设计主函数设计 主函数的设计比较简介,只包括一个菜单函数,主要实现菜单功能,提供了菜单输入、模块选择、退出系统等模块的调用。其中各功能模块用菜单方式选择。流程图输出菜单供用户选择输入菜单编号判断编号是否在15范围内根据编号调用各功能模块函数开始结束YN小结 函数开头有“文件包含”的预处理命令,所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文

3、件之中。C语言提供了#include命令用来实现“文件包含”的操作。 在本程序中包含了一下头文件:string.h、ctype.h、stdio.h,方便调用库函数实现某些功能。 在程序设计中,只使用一些基本类型(或称简单类型)的变量(如整型、实型、字符型变量等)和构造类型数据数组,是远远不够的。有时候需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是相互联系的。 在这个程序中,定义了一个结构体数组来存放购物卡用户的各种信息,包括账户卡号、户主姓名、账户余额、账户状态、账户积分,结构体如下:struct userint num;/*账户号码*/char name2

4、0;/*户主名称*/float surplus;/*账户余额*/char state2;/*账户状态,y:已启用,n:未启用*/int point;/*账户积分*/u100; 同时在各分函数中,定义了int、float、char等一系列变量类型,用来实现函数功能。 在主函数前面,要加上对各功能函数的声明,声明的作用是把函数的名字、函数的类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查,例如函数名是否正确,实参与形参的类型和个数是否一致等。 主函数比较简单,但是函数的调用很多,所以,在程序的开头就加上了各函数的声明,如下:void c_c();/*制卡函数模块*

5、/void s_u();/*发卡函数模块*/void in_m();/*存款函数模块*/void out_m();/*取款函数模块*/void c_i();/*查询账户相关信息函数模块*/void c_r();/*查询账户交易记录函数模块*/void check();/*查询全部信息函数模块*/void menu();/*主菜单函数模块*/void back();/*返回函数模块*/void check_b();/*给用户提示已有信息*/ 实现菜单选择功能,使用的是switch语句,根据用户输入的菜单选项a,调用不同的函数实现各种功能:switch(a)case 1:c_c();break;/

6、*制卡模块*/case 2:s_u();break;/*发卡模块*/case 3:in_m();break;/*存款模块*/case 4:out_m();break;/*取款模块*/case 5:c_i();break;/*查询账户相关信息模块*/case 6:c_r();break;/*查询交易记录模块*/case 7:check();break;/*查看所有信息模块*/case 8:exit(0);break;/*退出模块*/各功能模块设计制卡模块流程图开始打开存有数据的文本文件输入需要开卡的户主信息,包括卡号、姓名、初始金额、是否开始使用此卡输出到屏幕输出到文本文件中关闭文本文件结束发卡

7、模块流程图开始打开存有数据的文本文件输入户主姓名判断户主姓名与数据中的姓名是否匹配将户主状态改为“y”输出到屏幕将数据输入到程序定义的结构体内输出到文本文件中关闭文本文件结束YN存款模块流程图开始打开存有数据的文本文件输入户主姓名逐个判断户主姓名与数据中的姓名是否匹配将户主的最后一项交易记录信息记录下来输入存款金额将数据输入到程序定义的结构体内,并输出到屏幕上输出到文本文件中关闭文本文件结束YN消费模块流程图开始打开存有数据的文本文件输入户主姓名逐个判断户主姓名与数据中的姓名是否匹配将户主的最后一项交易记录信息记录下来输入存款金额将数据输入到程序定义的结构体内,并输出到屏幕上输出到文本文件中关

8、闭文本文件结束YN判断账户余额是否足够YN查询账户相关信息模块流程图开始打开存有数据的文本文件输入需要查询的账户户主姓名将余额信息输出到屏幕关闭文本文件结束逐个判断户主姓名与数据中的姓名是否匹配YN将文件中的用户信息输入到系统定义的结构体中2.7 查询全部信息模块【流程图】开始打开存有数据的文本文件将全部用户的信息输出到屏幕关闭文本文件结束将文件中的用户信息输入到系统定义的结构体中公共函数设计返回模块 即在完成一项命令之后,可以选择返回主菜单或者是退出程序。流程图输出菜单供用户选择输入菜单编号判断编号是否为“1”返回主菜单开始结束NY总结 经过连日的奋斗,终于完成了这个购物卡管理系统的设计制作

9、,在这个过程中,感谢老师给了我很多的指导和帮助,使我可以更快的完成这个系统的制作。在读写文件的相关操作中,我屡次犯错,原因是打开一个二进制文件和打开一个文本文件所存放的信息和读取的信息是不同的,由于这一失误,在很长的一段时间内阻碍了我继续向前的脚步,后来向精通C语言的同学请教,终于弄明白了这一原理,得以继续向前,继续完成这一程序设计。 给予每一个用户清晰明了的界面和全面的信息,方便每一位用户的操作,这是我设计程序的一个宗旨,鉴于找一点,我添加了一个函数来实现查询全部信息的功能,使程序更加完善。但是还有一个不足之处就是不能没能够实现积分的积累,只能记录最后一次消费的积分,财务报表也只能报出每个账

10、户最后一次的消费情况。 毋庸置疑,学习的过程就是寻找错误和改正错误的过程,在这次实习中,我发现了很多自己编程方面的不足,也遇到了很多的困难,但通过自己的努力,终于完成了这个程序设计。 在这次C语言课程设计实习中,我充分的利用了以前学习的知识,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧,利用系统提供的标准函数和自定义函数进行程序设计,培养了利用C语言设计综合程序的能力。源代码#include#include /*调用字符函数*/#include#include /*通用输入输出库*/#include#define M 1000void menu();void made();void

11、 add();void life();void enter();void browse();void huo(int k);void hedui(int k);void menu1(int k);void fetch(int k);void change(int k);void deposit(int k);void stat_one(int k);void print_one(int j);int search(char h20);int n=0;struct credicard /*定义信用卡结构体*/int number;char name20;char ID20;char word8;

12、int flag;float account;int integal;cardM;void menu()int v,w1;doprintf(nnnn);printf(ttn);printf(tt| (1) 制 卡 操 作 |n);printf(tt|-|n);printf(tt| (2) 帐 号 激 活 |n);printf(tt|-|n);printf(tt| (3) 帐 户 登 陆 |n);printf(tt|-|n);printf(tt| (4) 报 表 操 作 |n);printf(tt|-|n);printf(tt| (5) 退 出 |n);printf(tt|_|n);printf(nntt 请选择操作(1-5):bb);scanf(%d,&v);if(v5) printf(nntt*输 入 有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号