c语言编译 创建卡号信息表,C语言超市会员信息管理系统源程序

这是一个使用C语言编写的超市会员信息管理系统,包括会员登记、信息修改、续费、消费结算、删除会员、统计功能和退出系统等操作。程序通过结构体存储会员信息,并实现了文件操作来保存和加载数据。
摘要由CSDN通过智能技术生成

#include                   //编译预处理指令,引入头文件

#include

#include

#include

#define MAX 10                      //自定义符号常量

#define MENU_MAIN_COUNT 7                     //主菜单的选项个数

typedef struct member               //定义结构体类型member,采用链式存储结构

{

char name[MAX];                         //姓名

char id[MAX];                    //卡号

char sex[2];                             //性别

int age;                                     //年龄

float money;                             //余额

char tel[12];                         //电话

struct member *next;             //定义一个指针指向下一个会员信息

float cost;                                    //消费金额

}mem;                                //定义结构体变量mem

/*声明函数*/

void menu();                          /*声明函数,声明菜单函数*/

void save(mem *p);                     //声明保存函数

mem *head=NULL;                                 //头指针为NULL

mem* get_last(mem *p)                   //取得链表最后一个元素的节点指针并返回该指针

{

if(p->next == NULL)

{

return p;

}

else

{

get_last(p->next);

}

}

void creat_member(mem *pNew)                                      //输入信息操作,会员登记函数

{                                                                          //创建一个新的会员

char s;

printf("卡号:");                                        scanf("%s",pNew->id);     //运用指针输入卡号

printf("请输入姓名: ");                                scanf("%s",pNew->name);   //运用指针输入姓名

a:

printf("请输入性别(f--女m--男): ");        getchar();                //输入男女

s = getchar();

if(s=='f'||s=='m')                                            //判断是 男 是 女

{

if (s == 'f' || s == 'F') strcpy(pNew->sex,"女");

if (s == 'M' || s == 'm') strcpy(pNew->sex,"男");

}

else                                                           //如果输入错误

{

printf("输入错误,请重新输入...\n");

goto a;                                                    //跳转至a,重新输入

}

printf("请输入年龄: ");                                scanf("%d",&(pNew->age));   //运用指针输入年龄

printf("请输入缴费金额: ");                        scanf("%f",&(pNew->money));  //运用指针输入余额

printf("请输入电话: ");                                scanf("%s",pNew->tel);       //运用指针输入电话

pNew->cost=0;                                                    //运用指针初始化消费额为0

printf("\n创建完毕!\n");

}

void newMember()                                                    //会员登记函数

{                                                                               //添加会员信息

char con='N';

mem *pLast= NULL;

mem *pNew=(mem *)malloc(sizeof(mem));                           //按 mem 动态分配内存

pNew->next=NULL;

creat_member(pNew);                                             //调用会员登记函数

if(head == NULL)

{

head = pNew;

}

else

{

pLast = get_last(head);

pLast->next = pNew;

}

printf("继续输入会员信息?(Y 继续, N 返回菜单)");              //判断是否继续登记

getchar();

con = getchar();

if (con == 'n' || con == 'N')

{

save(pNew);

menu();

}

else{

save(pNew);

newMember();

}

}

//显示信息操作

void table_head()

{                                                                             //定义表头

printf("+----------+------+------+------+--------+--------+-----------+\n");

printf("|   卡号   | 姓名 | 性别 | 年龄 |  余额  |累计消费|   电话    |\n");

printf("+----------+------+------+------+--------+--------+-----------+\n");

}

void table_buttom()

{                                                                       //定义底线

printf("+----------+------+------+------+--------+--------+-----------+\n");

}

void table_row(mem *p)

{                                                                        // 定义中间部分

printf("|%10s|%6s|%6s|%6d|%8.2f|%8.2f|%11s|\n",

p->id,p->name,p->sex,p->age,p->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值