c语言课程设计报告 会员卡计费系统源代码 联系客服

发布时间 : 星期日 文章c语言课程设计报告 会员卡计费系统源代码更新完毕开始阅读f244e564b9d528ea81c779ea

#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(\ //运用指针输入卡号 printf(\请输入姓名: \ scanf(\ //运用指针输入姓名

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(\ //运用指针输入年龄 printf(\请输入缴费金额: \ scanf(\ //运用指针输入余额

printf(\请输入电话: \ scanf(\ //运用指针输入电话 pNew->cost=0; //运用指针初始化消费额为0

printf(\创建完毕!\\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(\ printf(\ 卡号 | 姓名 | 性别 | 年龄 | 余额 |累计消费| printf(\}

void table_buttom()

{ printf(\}

void table_row(mem *p)

{ 部分 printf(\ p->id,p->name,p->sex,p->age,p->money,p->cost,p->tel); }

void display(mem *p)

{ //显示所有信息 p = head; table_head(); //调用表头

//显示信息电话 |\\n\ //定义底线 // 定义中间 while(p != NULL) { table_row(p); //调用中间部分 p = p->next; }

table_buttom(); //调用底线 }

void display_one(mem *p)

{ //只显示一条信息 table_head(); table_row(p); table_buttom(); }

void table_sum()

{ //定义总计 printf(\

printf(\ | | | | 总计 | 总计 | printf(\}

void table_r(float money,float cost)

{ //定义总计2 printf(\ | | | |%8.2f|%8.2f| }

void display_statistics(mem *p,float money,float cost)

{ 息函数

p = head; table_head(); while(p != NULL) { table_row(p); p = p->next; }

p=head;

table_sum();

table_r(money,cost); |\\n\ |\\n\ //显示统计信 //调用表头 //定义中间部分 //定义总计 //定义总计2