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

2019-01-03 16:32

#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

table_buttom(); //定义表尾

} //文件相关操作

void save(mem *p) { //保存函数 FILE *fp; //定义一个指向文件的指针变量

fp=fopen(\\ //将fopen函数的返回值赋给指针变量fp while(p != NULL) { fprintf(fp, \%s %s %d %f %s %d\\n\p->name, p->sex, p->age, p->money, p->tel,p->cost); p = p->next; } fclose(fp); //关闭指针 getchar(); }

void modify_file(mem *p)

{ //保存修改会员信息函数 FILE *fp; p= head; if((fp=fopen(\ { //检查打开文件的操作是否有错 printf(\文件不存在\ getchar(); menu(); //调用菜单函数 } while(p != NULL) { fprintf(fp, \%s %s %d %f %s %f\\n\p->name, p->sex, p->age, p->money, p->tel,p->cost); p = p->next; } fclose(fp);


c语言课程设计报告 会员卡计费系统源代码.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国人的时令养生观 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: