c语言专业课程设计方案报告会员卡计费系统源代码.docx
《c语言专业课程设计方案报告会员卡计费系统源代码.docx》由会员分享,可在线阅读,更多相关《c语言专业课程设计方案报告会员卡计费系统源代码.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include /编译预处理指令,引入头文件#include #include #include #define MAX 10 /自定义符号常量#define MENU_MAIN_COUNT 7 /主菜单选项个数typedef struct member /定义结构体类型member,采取链式存放结构 char nameMAX; /姓名 char idMAX; /卡号 char sex2; /性别 int age; /年纪 float money; /余额 char tel12; /电话 struct member *next; /定义一个指针指向下一个会员信息 float cost; /消
2、费金额 mem; /定义结构体变量mem /*申明函数*/void menu(); /*申明函数,申明菜单函数*/void save(mem *p); /申明保留函数mem *head=NULL; /头指针为NULL mem* get_last(mem *p) /取得链表最终一个元素节点指针并返回该指针 if(p-next = NULL)return p;elseget_last(p-next);void creat_member(mem *pNew) /输入信息操作,会员登记函数 /创建一个新会员 char s; printf(卡号:);scanf(%s,pNew-id); /利用指针输入卡
3、号 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); /利用指
4、针输入年纪 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); /调用会员登记
5、函数if(head = NULL)head = pNew;elsepLast = get_last(head);pLast-next = pNew;printf(继续输入会员信息?(Y 继续, N 返回菜单); /判定是否继续登记getchar();con = getchar();if (con = n | con = N)save(pNew);menu();elsesave(pNew);newMember(); /显示信息操作void table_head() /定义表头 printf(+-+-+-+-+-+-+-+n);printf(| 卡号 | 姓名 | 性别 | 年纪 | 余额 |累计
6、消费| 电话 |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-money,p-cost,p-tel);void display(mem *p) /显示全部信息 p = head;table_head(); /调用表头while(p != NULL) table_row(p); /调用
7、中间部分p = p-next;table_buttom(); /调用底线void display_one(mem *p) /只显示一条信息 table_head();table_row(p);table_buttom();void table_sum() /定义总计printf(+-+-+-+-+-+-+-+n);printf(| | | | | 总计 | 总计 | |n);printf(+-+-+-+-+-+-+-+n);void table_r(float money,float cost) /定义总计2printf(| | | | |%8.2f|%8.2f| |n,money,cost)
8、;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); /定义总计2table_buttom(); /定义表尾 /文件相关操作void save(mem *p) /保留函数FILE *fp; /定义一个指向文件指针变量 fp=fopen(member.dat, a); /将fop
9、en函数返回值赋给指针变量fpwhile(p != NULL)fprintf(fp, %s %s %s %d %f %s %dn,p-id, 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(member.dat, w)=NULL) /检验打开文件操作是否有错printf(文件不存在);getchar();menu(); /调用菜单函数while(p
10、 != NULL) fprintf(fp, %s %s %s %d %f %s %fn,p-id, p-name, p-sex, p-age, p-money, p-tel,p-cost);p = p-next;fclose(fp);getchar();void load(mem *p) /从文件加载信息 FILE *fp; mem *pLast = NULL;head=NULL;if(fp=fopen(member.dat,r)=NULL) /检验打开文件操作是否有错printf(没有会员信息,请录入!);getch();menu(); /调用菜单函数while(!feof(fp) /文件指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计方案 报告 会员卡 计费 系统 源代码
限制150内