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