C语言课程设计报告 购物卡管理系统
C 语 言 课 程 实 习 报 告
课程设计第17题
(一)题目要求
请设计《购物卡管理系统》,要实现系统的主要功能模块有: (1)实现系统内制卡、发卡功能;
(2)实现系统内卡账户和相关账户管理; (3)实现卡交易和合法性检查; (4)实现卡金融交易积分功能; (5)实现卡报表功能;
(6)数据以文件形式存储。 [提示]
制卡:指申请一个购物卡,但还没有使用。 发卡;指该卡以经起用。
实现卡交易:指从卡中消费掉一定金额。 (二)题目及要求的分析:
根据题目要求,系统应该实现以下功能:
(1) 制卡:主要是新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没有激活,依然不可使用。
(2) 发卡:激活新建的购物卡,用户能够使用卡进行各项活动。
(3) 消费:进入账户后,取走少于账户金额的钱款进行消费,并在账户减少相应的金额,增加相应的积分。
(4) 存款:进入账户后,在金额项加上用户要存入的钱款。 (5) 报表:显示顾客购物卡上记录的所有信息,除密码外。
(6) 存储:购物卡内的信息以文件形式存储。 (7) 退出:从系统中退出。
(8) 菜单:提供良好的界面,方便用户的操作。
(三)整体设计与模块划分:
根据以上的分析,可以将系统整体划分为以下大致几部分:
函数及结构模块有: 1、数据结构结构体:
struct card /*定义购物卡的几要素*/ {
char name[20]; /*顾客姓名(即卡号)*/ long int password; /*购物卡密码*/ char start[4]; /*购物卡是否激活*/ float account; /*余额*/ float score; /*积分*/ } card[100];
2、main() /*主函数*/ 3、void menu() /*菜单*/ 4、make_card() /*制卡*/ 5、start_card() /*激活*/ 6、get_card() /*消费*/ 7、put_card() /*存款*/ 8、display_card() /*报表*/
9、read_card() /*读卡(读取数据)*/ 10、write_card() /*写卡(记录数据)*/
11、getch();的功能是等待你按键(有时候,需要程序停一下,以便查看结果) 它不影响程序的输出结果。
(四)详细设计
(1)、开头部分
#include<stdio.h>
#include<stdlib.h>
#include<string.h>//头函数名
void menu();
struct card /*定义购物卡的几要素*/ {
char name[20]; /*顾客姓名(即卡号)*/ long int password; /*购物卡密码*/ char start[4]; /*购物卡是否激活*/ float account; /*余额*/ float score; /*积分*/ } card[100];
int length=0; /*制卡数*/
char yes,no; /*是,否(激活)*/
(2)读卡(从文件中读取数据信息)
read_card() /*以只读方式*/ {
FILE *fp; int i;
if((fp=fopen("card.txt","r"))!=NULL) /*以输出方式打开*/
i=0;
while (!feof(fp)) {
fscanf(fp,"%s%ld%s%f%d\n",card[i].name,&card[i].password,card[i].start,&card[i].account,&card[i].score); i++; }
length=i-1; /*记录制卡数*/ fclose(fp); } }
(3)写卡(将数据信息记录到文件中)
write_card() /*以只写方式*/ {
FILE *fp; int i;
if((fp=fopen("card.txt","w"))==NULL) /*以输出方式打开 */ {
printf("写入文件错误!"); getch(); exit(0); } else
for(i=0;i<length;i++)
fprintf(fp,"%s%ld%s%f%f",card[i].name,card[i].password,card[i].start,card[i].account,card[i].score); fclose(fp); return 1; }
(4)制卡(新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没有激活,依然不可使用)
make_card() /*{
int i;
i=length; printf("请输入你的姓名:\n"); scanf("%s",card[i].name); printf("请设置你的密码:\n"); scanf("%ld",&password1);
printf("请再输入你的密码 scanf("%ld",&password2); if(password1==password2) {
strcpy(card[i].start,"no"); card[i].account=0; card[i].score=0; length=length+1;
printf("制卡成功,你的购物卡为:\n");
printf("\t姓名\t是否激活\t余额\t积分\n\n");
printf(" %8s %8s %10d %10d\n",card[i].name,card[i].start,card[i].account,card[i].score); write_card();
printf("\n输入任意键返回主菜单...");
getch(); /*程序停一下,等待你按键继续,它不影响程序的输出结果*/ menu(); } else {
printf("对不起,你输入的密码错误!"); printf("\n输入任意键返回主菜单..."); getch(); menu(); }
(5)发卡(激活新建的购物卡,用户能够使用卡进行各项活动)
start_card() /*激活卡号功能设定*/ {
int i,n;
long int password; char name[10]; n=0;
printf("请输入你的姓名:\n"); scanf("%s",name);
printf("请再输入你的密码:\n"); scanf("%ld",&password); read_card();
for(i=0;i<=length;i++) {
if((strcmp(card[i].name,name)==0)&&(card[i].password==password)) {
strcpy(card[i].start,"yes"); n=i+1; } else n=n; }
if(n>0)
{write_card();
printf("激活成功!"); } else
printf("您输入的姓名或密码错误!"); printf("\n输入任意键返回主菜单..."); getch(); menu(); }
(6)消费(进入账户后,取走少于账户金额的钱款进行消费,并在账户减少相应的金额,增加相应的积分)
get_card() /*消费功能设定*/
{
int i,m; float n;
long int password; char name[10]; m=0;
printf("请输入你的姓名:\n"); scanf("%s",name);
printf("请再输入你的密码:\n"); scanf("%ld",&password); read_card();
for(i=0;i<=length;i++)
{
if((strcmp(card[i].name,name)==0)&&(card[i].password==password)&&(strcmp(card[i].start,"yes")==0)) m=i+1; else m=m; }
if(m>0) {
printf("你想消费多少钱:\n"); scanf("%f",&n);
if(n<=card[m-1].account) {
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




