C语言课程设计
院 系: 姓 名: 学 号: 班 号:
指导教师: 日 期:
购物卡管理系统程序设计
一、题目要求:
设计购物卡管理系统,系统主要模块: (1) 实现系统内制卡、发卡功能; (2) 实现系统内账户及相关账户管理; (3) 实现卡交易和合法性检查; (4) 实现卡金融交易积分功能; (5) 实现卡报表功能; (6) 数据以文件形式存储。
【提示】
制卡:指申请一张购物卡,但还没有使用。 发卡:指该购物卡已经启用。
实现卡交易:指从卡中消费掉一定的金额
二、需求分析
根据题目要求,由于数据要以文件形式存储,所以应提供文件的输入、输出等操作;在程序中要实现银行卡的各项功能,应提供制卡、发卡、存款、消费、查询账户相关信息、查询账户交易记录、查询全部信息、退出程序等一系列操作;另外还应提供键盘式选择菜单实现功能选择。
三、总体设计
分析了整个系统之后,根据上面的系统需求分析,可以将这个系统的设计分为如下七大模块:制卡、发卡、存款、消费积分、查询账户相关信息、查询账户交易记录、查询全部信息
购物卡管理系统 制卡 存款 查询账户相关信息 报表
发卡 消费积分 查询账户交易记录 退出
四、详细设计
1. 主函数设计
主函数的设计比较简介,只包括一个主菜单函数,主要实现菜单功能,提供了菜单输入、模块选择、退出系统等模块的调用。其中各功能模块用菜单方式选择。
【流程图】
【程序】
开始 输出菜单供用户选择 输入菜单编号 判断编号是否在1~5范围内 Y 根据编号调用各功能模块函结束 N
void main() { printf(\
printf(\购 物 卡 管 理 系 统************************\\n\
printf(\按任意键进入............\ getchar(); menu(); }
函数开头有“文件包含”的预处理命令,所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。C语言提供了#include命令用来实现“文件包含”的操作。
在本程序中包含了一下头文件:\、\、\,方便调用库函数实现某些功能。
在程序设计中,只使用一些基本类型(或称简单类型)的变量(如整型、实型、字符型变量等)和构造类型数据——数组,是远远不够的。有时候需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是相互联系的。
在这个程序中,定义了一个结构体数组来存放购物卡用户的各种信息,包括账户卡号、户主姓名、账户余额、账户状态、账户积分,结构体如下:
struct user {
int num;/*账户号码*/
char name[20];/*户主名称*/ float surplus;/*账户余额*/
char state[2];/*账户状态,y:已启用,n:未启用*/ int point;/*账户积分*/ }u[100];
同时在各分函数中,定义了int、float、char等一系列变量类型,用来实现函数功能。 在主函数前面,要加上对各功能函数的声明,声明的作用是把函数的名字、函数的类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查,例如函数名是否正确,实参与形参的类型和个数是否一致等。
主函数比较简单,但是函数的调用很多,所以,在程序的开头就加上了各函数的声明,如下:
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();/*给用户提示已有信息*/
实现菜单选择功能,使用的是switch语句,根据用户输入的菜单选项a,调用不同的函数实现各种功能:
switch(a) {
case 1:c_c();break;/*制卡模块*/ 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;/*退出模块*/ } 主菜单函数 [程序]
void menu() {
int v,w1; do {
printf(\ printf(\<________________________THE MENU_______________________>\\n\
printf(\ (1) 制 卡 操 作 ||\\n\
printf(\
printf(\ (2) 帐 号 激 活 ||\\n\
printf(\
printf(\ (3) 帐 户 登 陆 ||\\n\
printf(\
printf(\ (4) 报 表 操 作 ||\\n\
printf(\
printf(\ (5) 退 出 ||\\n\
printf(\
printf(\请选择操作(1--5):< >\\b\\b\ scanf(\ if(v<1||v>5) {
printf(\输 入 有 误 !************\

