教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

C语言课程设计报告 购物卡管理系统

来源:网络收集 时间:2026-09-01
导读: C 语 言 课 程 实 习 报 告 课程设计第17题 (一)题目要求 请设计《购物卡管理系统》,要实现系统的主要功能模块有: (1)实现系统内制卡、发卡功能; (2)实现系统内卡账户和相关账户管理; (3)实现卡交易和合法性检查; (4)实现卡金融交易积分功能; (5)实现

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) {

c …… 此处隐藏:2887字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言课程设计报告 购物卡管理系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/266676.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)