- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言网吧计费系统(小工程)资料
系统是基于c语言写的小程序,以应付毕业项目或期末考试用。
由于用到fopen读写文件操作,编译前必须在当前文件下建立 用户信息.txt 和 充值卡.txt 两个文件,否则会报错。
效果图
#include stdio.h
#include windows.h
#include string.h
#include stdlib.h
#include time.h
//定义链表
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)
{
q = p;
p = p-next;
}
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;i50;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-data.name,name)))
{
break;
}
p = p-next;
}
if (p == NULL)
{
return -1;
}
else
return 0;
}
//查找指定用户和密码
int locateelem_l2(linklist l,char name[],char mm[])
{
linklist p;
int a,b;
p = l-next;
while (p!=NULL)
{
a = strcmp(p-data.name,name);
b = strcmp(p-data.mima,mm);
if (a==0b==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-data.name,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)
{
b = strcmp(p-data.name,name);
if (b==0)
{
p-data.stat
文档评论(0)