急求大佬帮忙,c语言做了个简单的网吧管理系统,现在出问题不知道怎么改了

kuniii 2021-03-13 10:37:51
这是源码
#include"Mylist.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void menu()
{
printf("----------网吧管理系统---------\n");
printf("\t\t1.添加会员信息\n");
printf("\t\t2.浏览会员信息\n");
printf("\t\t3.删除会员信息\n");
printf("\t\t4.添加上网信息\n");
printf("\t\t5.删除上网信息\n");
printf("\t\t6.查找会员信息\n");
printf("\t\t0.退出管理系统\n");
printf("-------------------------------\n");
}
struct Node* list = createList();
void keyDown()
{
int choice = 0;
struct VIP data;
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("--------添加会员信息---------\n");
printf("请输入会员姓名,身份证号码,会员号,电话号码,会员积分:");
/* fflush(stdin); */ //清空缓冲区
scanf("%c%d%d%d%d",&data.name,&data.idN,&data.VIPN,&data.PN,&data.integral);
insertNodeByHead(list,data);
break;
case 2:
printf("--------浏览会员信息---------\n");
printflist(list);
break;
case 3:
printf("--------删除会员信息---------\n");
printf("请输入删除的会员号");
scanf("%s",data.VIPN) ;
deleteAppoinNode(list,data.VIPN);
break;
case 4:
printf("--------添加上网信息---------\n");
printf("请输入上机时间,机子编号\n");
fflush(stdin);
scanf("%s%s",data.time,data.CN);
insertNodeByHead(list,data);
break;
case 5:
printf("--------删除上网信息---------\n");
break;
case 6:
printf("--------查找会员信息---------\n");
printf("请输入要查找的会员号:");
scanf("%s", data.VIPN);
if (searchInfoByData(list, data.VIPN) == NULL)
{
printf("未找到相关信息,无法删除!\n");
system("pause");
}
else
{
printf("会员姓名\t身份证号码\t会员号\t电话号码\t会员积分\t上机时间\t机子编号\n");
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\n",searchInfoByData(list, data.VIPN)->data.name,searchInfoByData(list, data.VIPN)->data.idN,searchInfoByData(list, data.VIPN)->data.VIPN,searchInfoByData(list, data.VIPN)->data.PN,searchInfoByData(list, data.VIPN)->data.integral,searchInfoByData(list, data.VIPN)->data.time,searchInfoByData(list, data.VIPN)->data.CN);
}
break;
case 0:
printf("正常退出!\n");
system("pause");
exit(0);
break;
default :
printf("选择错误,重新输入\n");
system("pause");
break;
}
writeInfoToFile(list, "1.txt");
}


int main(int argc, char *argv[])
{

readInfoFromFile(list, "1.txt");
while(1)
{
menu();
keyDown();
system("pause");
system("cls");
}
system("pause");
return 0;
}





#include<stdio.h>
#include<stdlib.h>


struct VIP
{
int idN,VIPN,PN,integral,time,CN;//身份证号码,会员号,电话号码,会员积分,上机时间,机子编号
char name[50]; //会员姓名
};
struct Node
{
//int data;
struct VIP data;
struct Node* next;
};
//创建表
struct Node* createList()
{
struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
headNode->next = NULL;
return headNode;
}


//创建结点
struct Node* createNode(struct VIP data)
{
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
//插入结点
void insertNodeByHead(struct Node* headNode,struct VIP data)
{
struct Node* newNode = createNode(data);
//表头法
newNode->data = data;
headNode->next = newNode;
}
//指定位置删除
void deleteAppoinNode(struct Node* headNode,int VIPN)
{
struct Node* posNode = headNode->next;
struct Node* posFrontNode = headNode;
if(posNode == NULL)
{
printf("数据为空,无法删除!\n");
return;
}
//name是字符串
while (posNode->data.VIPN != VIPN)
{
posFrontNode = posNode;
posNode = posFrontNode->next;
if(posNode == NULL)
{
printf("未找到指定位置无法删除!\n");
return;
}
}
//找到了
posFrontNode->next = posNode->next;
free(posNode);
}
//查找功能
struct Node* searchInfoByData(struct Node* headNode,int VIPN)
{
struct Node* pMove = headNode->next;
if(pMove == NULL)
return NULL;
while (pMove->data.VIPN == VIPN)
{
pMove = pMove->next;
}
return pMove;
}
//文件读操作
void readInfoFromFile(struct Node* headNode, char *fileName)
{
//1.打开
FILE *fp;
struct VIP data;
fp = fopen(fileName, "r") ;
if (fp == NULL)
{
fp=fopen(fileName, "w+");
}
//2.读文件
while(fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",data.name,data.idN,data.VIPN,data.PN,data.integral,data.time,data.CN)!=EOF)
{
insertNodeByHead(headNode, data);
}
//3.关闭文件
fclose(fp) ;
}
//文件写操作
void writeInfoToFile(struct Node* headNode,char *FileName)
{
FILE *fp;
fp = fopen(FileName,"w");
struct Node* pMove = headNode->next;
while(pMove)
{
fprintf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d\n",pMove->data.name,pMove->data.idN,pMove->data.VIPN,pMove->data.PN,pMove->data.integral,pMove->data.time,pMove->data.CN);
pMove = pMove->next;
}
fclose(fp);
}

//打印链表
void printflist(struct Node* headNode)
{
struct Node*pMove = headNode->next;
printf("会员姓名\t身份证号码\t会员号\t电话号码\t会员积分\t上机时间\t机子编号\n");
while (pMove)
{
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\n",pMove->data.name,pMove->data.idN,pMove->data.VIPN,pMove->data.PN,pMove->data.integral,pMove->data.time,pMove->data.CN);
pMove = pMove->next;
}
printf("\n");
}
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-03
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
qzjhjxj 2021-03-14
  • 打赏
  • 举报
回复
供参考:
//#include"Mylist.h"
//run this program using the console pauser or add your own getch, system("pause") or input loop



#include<stdio.h>
#include<stdlib.h>


struct VIP
{
    char name[20]; //会员姓名
    int  idN,VIPN,PN,integral,time,CN;
//身份证号码,会员号,电话号码,会员积分,上机时间,机子编号
};

struct Node
{
    //int data;
    struct VIP data;
    struct Node* next;
};

//创建表
struct Node* createList()
{
    struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
    headNode->next = NULL;
    return headNode;
}


//创建结点
struct Node* createNode()//(struct VIP data)
{
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    //newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

//插入结点
void insertNodeByHead(struct Node* headNode,struct VIP data)
{
    struct Node* newNode = createNode();//(data);
    newNode->data  = data;  //表头法
    newNode->next  = headNode->next;
    headNode->next = newNode;
}

struct Node* list = createList();

//查找功能
struct Node* searchInfoByData(struct Node* headNode,int VIPN)
{
    struct Node* pMove = headNode->next;
    if(pMove == NULL)
         return NULL;
    for (;pMove != NULL;pMove = pMove->next)
        if (pMove->data.VIPN == VIPN)
            return pMove;
    return NULL;
}

//指定位置删除
void deleteAppoinNode(struct Node* headNode,int VIPN)
{
    struct Node* posNode ,* posFrontNode ;
    
    for(posNode = headNode,posFrontNode = NULL;
        posNode != NULL && posNode->data.VIPN != VIPN;
        posFrontNode = posNode,posNode = posNode->next);

    if(posNode == NULL)     //未找到
      {
        printf("未找到指定位置信息,无法删除!\n");
        return;
      }
    if(posFrontNode == NULL)//第一个节点
      {
        headNode = headNode->next;
      }
    else
      {
        posFrontNode->next = posNode->next;
      }
    free(posNode);
}

//文件读操作
void readInfoFromFile(struct Node* headNode, char *fileName)
{
    
     FILE *fp;
     struct VIP data;
     fp = fopen(fileName, "r+");//1.打开
     if (fp == NULL)
      {
         printf("\n*********新的网吧管理系统*************\n");
         return;
      }
                                //2.读文件
     while(fscanf(fp,"%s %d %d %d %d %d %d\n",data.name,&data.idN,&data.VIPN,&data.PN,
                                                   &data.integral,&data.time,&data.CN)==7)
      {
        insertNodeByHead(headNode, data);
      }
     fclose(fp) ; //3.关闭文件
}
//文件写操作
void writeInfoToFile(struct Node* headNode,char *FileName)
{
    FILE *fp;
    fp = fopen(FileName,"w+");
    if (fp == NULL)
      {
         printf("不能打开文件!\n");
         return;
      }
    struct Node* pMove = headNode->next;
    while(pMove)
     {
        fprintf(fp,"%s %d %d %d %d %d %d\n",pMove->data.name,pMove->data.idN,pMove->data.VIPN,
                             pMove->data.PN,pMove->data.integral,pMove->data.time,pMove->data.CN);
        pMove = pMove->next;
     }
    fclose(fp);
}
 
//打印链表 
void printflist(struct Node* headNode)
{
    struct Node*pMove = headNode->next;
    printf("会员姓名\t\t身份证号码\t\t会员号\t\t电话号码\t\t会员积分\t\t上机时间\t\t机子编号\n");
    while (pMove)
     {
        printf("%-20s\t%-18d\t%-18d\t%-18d\t%-12d\t%-12d\t%-12d\n",pMove->data.name,pMove->data.idN,
               pMove->data.VIPN,pMove->data.PN,pMove->data.integral,pMove->data.time,pMove->data.CN);
        pMove = pMove->next;
     }
    printf("\n");
}

void menu()
{
    printf("----------网吧管理系统---------\n");
    printf("\t1.添加会员信息\t\n");
    printf("\t2.浏览会员信息\t\n");
    printf("\t3.删除会员信息\t\n");
    printf("\t4.添加上网信息\t\n");
    printf("\t5.删除上网信息\t\n");
    printf("\t6.查找会员信息\t\n");
    printf("\t0.退出管理系统\t\n");
    printf("-------------------------------\n");
}

void keyDown()
{
    int choice = 0;
    struct VIP data;
    struct Node * searchID ;
    printf("请输入你的选择:");
    fflush(stdout);
    rewind(stdin);
    scanf("%d",&choice);
    switch(choice)
                 {
                 case 1:
                        printf("--------添加会员信息---------\n");
                        printf("请输入会员姓名,身份证号码,会员号,电话号码,会员积分:");
                        fflush(stdout);           //清空缓冲区
                        rewind(stdin);
                        scanf("%s%d%d%d%d",data.name,&data.idN,&data.VIPN,&data.PN,&data.integral);
                        data.time =0; data.CN =0;
                        insertNodeByHead(list,data);
                        break;
                 case 2:
                        printf("--------浏览会员信息---------\n");
                        printflist(list);
                        break;
                 case 3:
                        printf("--------删除会员信息---------\n");
                        printf("请输入删除的会员号;");
                        fflush(stdout);
                        rewind(stdin);
                        scanf("%d",&data.VIPN) ;
                        deleteAppoinNode(list,data.VIPN);
                        break;
                 case 4:
                        printf("--------添加上网信息---------\n");
                        printf("请输入会员号:");
                        fflush(stdout);
                        rewind(stdin);
                        scanf("%d",&data.VIPN);
                        searchID = searchInfoByData(list, data.VIPN);
                        if(searchID != NULL){
                            printf("请输入上机时间,机子编号:");
                            fflush(stdout);
                            rewind(stdin);
                            scanf("%d%d",&data.time,&data.CN);
                            searchID->data.time = data.time;
                            searchID->data.CN   = data.CN;
                        }else
                            printf("未找到相关信息!\n");
                        break;
                 case 5:
                        printf("--------删除上网信息---------\n");
                        printf("请输入会员号:");
                        fflush(stdout);
                        rewind(stdin);
                        scanf("%d",&data.VIPN);
                        searchID = searchInfoByData(list, data.VIPN);
                        if(searchID != NULL){
                            searchID->data.time = 0;
                            searchID->data.CN   = 0;
                            printf("%d号会员上网信息删除成功!",data.VIPN);
                        }else
                            printf("未找到会员号为:%d的相关信息!\n",data.VIPN);
                        break;
                 case 6:
                        printf("--------查找会员信息---------\n");
                        printf("请输入要查找的会员号:");
                        fflush(stdout);
                        rewind(stdin);
                        scanf("%d", &data.VIPN);
                        searchID =  searchInfoByData(list, data.VIPN);
                        if (searchID == NULL)                       
                           {
                              printf("未找到相关信息!\n");
                           }
                        else
                           {
                              printf("会员姓名\t\t身份证号码\t\t会员号\t\t电话号码\t\t"
                                                      "会员积分\t\t上机时间\t\t机子编号\n");
                              printf("%-20s\t%-18d\t%-18d\t%-18d\t%-12d\t%-12d\t%-12d\n",
                                     searchID->data.name,searchID->data.idN,searchID->data.VIPN,
                                     searchID->data.PN,searchID->data.integral,searchID->data.time,
                                     searchID->data.CN);
                           }
                        break;
                 case 0:
                        printf("正常退出!\n");
                        writeInfoToFile(list,"1.txt");
                        exit(0);
                        break;
                 default :
                        printf("选择错误,重新输入\n");
                        break;
    }
    //writeInfoToFile(list, "1.txt");
}


int main(int argc, char *argv[])
{
    system("title 网吧管理系统");//设置cmd窗口标题
    system("mode con cols=200 lines=50");//窗口宽度高度

    readInfoFromFile(list, "1.txt");
    while(1)
     {
        menu();
        keyDown();
        system("pause");
        system("cls");
     }
    return 0;
}
kuniii 2021-03-14
  • 打赏
  • 举报
回复
引用 3 楼 往事如烟0819 的回复:
代码实现了什么功能,发生了什么问题,也不说。
这么多代码,哪有那么多时间看呀。
咋看呀

我的问题,现在已经解决了 ,谢谢大家
kuniii 2021-03-13
  • 打赏
  • 举报
回复
快来人啊!!!!
ctrigger 2021-03-13
  • 打赏
  • 举报
回复
引用 3 楼 往事如烟0819 的回复:
代码实现了什么功能,发生了什么问题,也不说。
这么多代码,哪有那么多时间看呀。
咋看呀

正解。。
往事如烟0819 2021-03-13
  • 打赏
  • 举报
回复
代码实现了什么功能,发生了什么问题,也不说。 这么多代码,哪有那么多时间看呀。 咋看呀

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧