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

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

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

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

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

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

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

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

}

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

 

voidmodify_m()

{//修改会员的信息

chars,fun='y';

charpro[]=

"|\n"

"|1姓名\n"

"|2性别\n"

"|3年龄\n"

"|4电话\n"

"|5返回\n"

"|\n";

mem*p;

load(p);

display(p);//调用显示函数

printf("请输入需要修改信息的会员卡号(n返回菜单):

");

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

while(fun=='y'||fun=='Y')

{//当继续寻找时

system("cls");//清屏

display_one(p);//调用显示一条函数

printf("请选择修改的项目:

\n");

printf(pro);//输出pro

getchar();

scanf("%c",&fun);

switch(fun)

{//用switch语句选择修改内容

case'1':

printf("请输入姓名:

");scanf("%s",p->name);break;

case'2':

a:

printf("请输入性别(f--女m--男):

");getchar();

s=getchar();

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

当前位置:首页 > 初中教育 > 中考

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

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