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

上传人:b****2 文档编号:1580166 上传时间:2022-10-23 格式:DOCX 页数:20 大小:19.56KB
下载 相关 举报
c语言课程设计报告 会员卡计费系统源代码.docx_第1页
第1页 / 共20页
c语言课程设计报告 会员卡计费系统源代码.docx_第2页
第2页 / 共20页
c语言课程设计报告 会员卡计费系统源代码.docx_第3页
第3页 / 共20页
c语言课程设计报告 会员卡计费系统源代码.docx_第4页
第4页 / 共20页
c语言课程设计报告 会员卡计费系统源代码.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

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

《c语言课程设计报告 会员卡计费系统源代码.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告 会员卡计费系统源代码.docx(20页珍藏版)》请在冰豆网上搜索。

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

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

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

#include

#include

#include

#defineMAX10//自定义符号常量

#defineMENU_MAIN_COUNT7//主菜单的选项个数

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

{

charname[MAX];//姓名

charid[MAX];//卡号

charsex[2];//性别

intage;//年龄

floatmoney;//余额

chartel[12];//电话

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

floatcost;//消费金额

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

/*声明函数*/

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

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

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

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

{

if(p->next==NULL)

{

returnp;

}

else

{

get_last(p->next);

}

}

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

{//创建一个新的会员

chars;

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");

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

}

printf("请输入年龄:

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

printf("请输入缴费金额:

");scanf("%f",&(pNew->money));//运用指针输入余额

printf("请输入电话:

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

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

printf("\n创建完毕!

\n");

}

voidnewMember()//会员登记函数

{//添加会员信息

charcon='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();

}

}

//显示信息操作

voidtable_head()

{//定义表头

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

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

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

}

voidtable_buttom()

{//定义底线

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

}

voidtable_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);

}

voiddisplay(mem*p)

{//显示所有信息

p=head;

table_head();//调用表头

while(p!

=NULL)

{

table_row(p);//调用中间部分

p=p->next;

}

table_buttom();//调用底线

}

voiddisplay_one(mem*p)

{//只显示一条信息

table_head();

table_row(p);

table_buttom();

}

voidtable_sum()

{//定义总计

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

printf("|||||总计|总计||\n");

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

}

voidtable_r(floatmoney,floatcost)

{//定义总计2

printf("|||||%8.2f|%8.2f||\n",money,cost);

}

voiddisplay_statistics(mem*p,floatmoney,floatcost)

{//显示统计信息函数

p=head;

table_head();//调用表头

while(p!

=NULL)

{

table_row(p);//定义中间部分

p=p->next;

}

p=head;

table_sum();//定义总计

table_r(money,cost);//定义总计2

table_buttom();//定义表尾

}//文件相关操作

voidsave(mem*p)

{//保存函数

FILE*fp;//定义一个指向文件的指针变量

fp=fopen("member.dat","a");//将fopen函数的返回值赋给指针变量fp

while(p!

=NULL)

{

fprintf(fp,"%s%s%s%d%f%s%d\n",p->id,p->name,p->sex,p->age,p->money,p->tel,p->cost);

p=p->next;

}

fclose(fp);//关闭指针

getchar();

}

voidmodify_file(mem*p)

{//保存修改会员信息函数

FILE*fp;

p=head;

if((fp=fopen("member.dat","w"))==NULL)

{//检查打开文件的操作是否有错

printf("文件不存在");

getchar();

menu();//调用菜单函数

}

while(p!

=NULL)

{

fprintf(fp,"%s%s%s%d%f%s%f\n",p->id,p->name,p->sex,p->age,p->money,p->tel,p->cost);

p=p->next;

}

fclose(fp);

getchar();

}

voidload(mem*p)

{//从文件加载信息

FILE*fp;

mem*pLast=NULL;

head=NULL;

if((fp=fopen("member.dat","r"))==NULL)

{//检查打开文件的操作是否有错

printf("没有会员信息,请录入!

");

getch();

menu();//调用菜单函数

}

while(!

feof(fp))

{//文件指针是否到达末尾

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

pNew->next=NULL;

fscanf(fp,"%s%s%s%d%f%s%f\n",

pNew->id,pNew->name,pNew->sex,&(pNew->age),&(pNew->money),pNew->tel,&(pNew->cost));

if(head==NULL)

{

head=pNew;

}

else

{

pLast=get_last(head);

pLast->next=pNew;

}

}

p=head;

fclose(fp);

}

//通过卡号搜索信息函数

mem*search_id(mem*p)

{//通过卡号搜索信息

charid[MAX];

inti=0;

p=head;

scanf("%s",id);

while(p&&(strcmp(id,"n")!

=0))

{//判断id是否不为n

if(strcmp(p->id,id)==0)

{//找到

i=1;

break;

}

else

p=p->next;

}

if(strcmp(id,"n")==0)//输入n时返回菜单

menu();

if(p==NULL)

{//重新搜索卡号

printf("您查找的卡号不存在,请重新输入:

\n");

p=search_id(p);//调用寻找函数

}

else

returnp;//返回p

}

/*修改会员信息操作*/

voidmodif

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1