C语言网吧计费系统(小项目)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档