C语言网吧计费系统(小项目)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统是基于c语言写的小程序,以应付毕业项目或期末考试用。
由于用到fopen读写文件操作,编译前必须在当前文件下建立用户信息.txt 和充值卡.txt 两个文件,否则会报错。
效果图
#include
#include
#include
#include
#include
//定义链表
typedef struct
{
char name[20];
char mima[20];
int state;
int jine;
}user;
typedef struct lnod
{
user data;
struct lnod *next;
}lnod, *linklist;
//充值卡定义链表
typedef struct
{
char name[30];
int jine;
}kami;
typedef struct kk
{
kami data;
struct kk *next;
}kk, *kamil;
//创建链表
void createlist_l(linklist *l)
{
*l = (linklist)malloc(sizeof(lnod));
(*l)->next = NULL;
}
//插入用户信息(尾插法)
int listinset_l(linklist *l,user data) {
linklist p = *l,q;
if (NULL==p)
return -1;
while (NULL!=p)
{
}
p = (linklist)malloc(sizeof(lnod));
p->data = data;
p->next = q->next;
q->next = p;
return 0;
}
//载入文件到链表
void filelist_l(linklist *l)
{
int i;
FILE *fp1;
user user0;
fp1 = fopen("用户信息.txt","rb");
for (i = 0;i<50;i++)
{
if (1!=fread(&user0,sizeof(user),1,fp1))
{
break;
}
listinset_l(l,user0);
}
fclose(fp1);
}
//查找制定用户是否存在
int locateelem_l(linklist l,char name[])
{
linklist p;
p = l->next;
while (p!=NULL)
{
if (!(strcmp(p->,name)))
{
break;
}
p = p->next;
}
if (p == NULL)
{
return -1;
}
else
return 0;
}
//查找指定用户和密码
int locateelem_l2(linklist l,char name[],char mm[]) {
p = l->next;
while (p!=NULL)
{
a = strcmp(p->,name);
b = strcmp(p->data.mima,mm);
if (a==0&&b==0)
{
//p->data.state = 1;
break;
}
p = p->next;
}
if (p == NULL)
{
return -1;
}
else
return 0;
}
//登陆后state = 1;
void gaistate_l(linklist *l,char name[]) {
linklist p;
int b;
p = (*l)->next;
while (p!=NULL)
{
b = strcmp(p->,name);
if (b==0)
{
p->data.state=1;
break;
}
else
{
p = p->next;
}
}
}
//下线state = 0
void xiaxian_l(linklist *l,char name[]) {
linklist p;
int b;
p = (*l)->next;
while (p!=NULL)
if (b==0)
{
p->data.state=0;
break;
}
else
{
p = p->next;
}
}
}
//修改金额
void gaijine_l(linklist *l,char name[],int j)
{
linklist p;
int b;
p = (*l)->next;
while (p!=NULL)
{
b = strcmp(p->,name);
if (b==0)
{
p->data.jine=p->data.jine+j;
printf("您当前余额为%d元",p->data.jine);
break;
}
else
{
p = p->next;
}
}
}
//修改密码
void gaimm_l(linklist *l,char name[],char gmm[])
{
linklist p;
int b;
p = (*l)->next;
while (p!=NULL)
{
b = strcmp(p->,name);
if (b==0)
{
strcpy(p->data.mima,gmm);
break;