這是原始碼
#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");
}
uj5u.com熱心網友回復:
快來人啊!!!!uj5u.com熱心網友回復:
代碼實作了什么功能,發生了什么問題,也不說。這么多代碼,哪有那么多時間看呀。
咋看呀
uj5u.com熱心網友回復:
正解。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268196.html
標籤:C語言
上一篇:使用SSE將資料處理提升了16倍
下一篇:為什么我的冒泡排序不起作用。
