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;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->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==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->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.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->data.name,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->data.name,name);
        if (b==0)
        {
            strcpy(p->data.mima,gmm);           
            break;
        }
        else
        {
            p = p->next;
        }
    }
}
//下线扣费
void koufei_l(linklist *l,char name[],int j)
{
    linklist p;
    int b;
    p = (*l)->next;
    while (p!=NULL)
    {
        b = strcmp(p->data.name,name);
        if (b==0)
        {
            p->data.jine = p->data.jine-j;           
            break;
        }
        else
        {
            p = p->next;
        }
    }
}
//写文件
void userfile(user user0)
{
    FILE *fp0;
    if((fp0=fopen("用户信息.txt","ab"))==NULL)

本文发布于:2024-09-23 13:20:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/283148.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:用户   文件   链表   查找   信息   毕业
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议