#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 5
struct user
{ char ID_card[30]; char user_card[10]; char user_level[50]; float add_money; //充值
};
struct LinkList
{ struct user struct_user; LinkList *pNext;
};
struct control
{ char control_name[20]; char control_password[15];
}control_person={"apollo","apollo"};//管理员账户和密码设置
void enter(int x);
void tab(int x);
void start();
void login();
void mainmenu();
void submenu1();
void submenu2();
void submenu3();
void submenu4();
void xian_shi(LinkList *pHead);
LinkList *adduser(LinkList *pHead);
LinkList *addmoney(LinkList *pHead); //充值
LinkList *shang_wang(LinkList *pHead); //上网
LinkList *zhu_xiao(LinkList *pHead); //注销会员
void save(LinkList *pTemp);
LinkList *readsave();
void cha_xun_shen(LinkList *pHead);
void cha_xun_hui(LinkList *pHead);
/
//启动
void start()
{ system("cls"); for(int k=0;k<2;k++) { for(int i=0;i<N;i++) { system("color B"); enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 1 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 2 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 3 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 4 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4);printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 5 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 6 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 7 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 8 end enter(7); tab(3); printf(" 网吧计费管理系统 "); enter(2); tab(4); printf(" ■"); enter(1); tab(4); for(i=0;i<100000000;i++) {} system("cls"); //circle 9 end } } login();
}
//登陆函数
void login()
{ char name[20]; char password[15]; while(1) { system("cls"); enter(7); tab(3); printf(" 管理员登录 "); enter(2); tab(4); printf("Count:"); fflush(stdin); if(strcmp(gets(name),l_name)==0) {
leap: system("cls"); enter(7); tab(3); printf(" 管理员登录 "); enter(2); tab(4); printf("Password:"); fflush(stdin); if(strcmp(gets(password),l_password)==0) { mainmenu(); break; } else { char ch; tab(4); printf("Your password is error!n"); tab(4); printf("Do you want to try again?(Y/N):"); scanf("%c",&ch); if(ch=='Y' || ch=='y') goto leap; else if(ch=='N' || ch=='n') exit(0); else { system("cls"); enter(7); tab(1); printf("Error!Please check your code then login again,thank you!n"); tab(3); exit(0); } } } else { char i; system("cls"); enter(7); tab(4); printf("Your count is erorr!n"); tab(4); printf("Do you want to try again?(Y/N):"); scanf("%c",&i); if(i=='Y' || i=='y') continue; else if(i=='N' || i=='n') exit(0); else { system("cls"); enter(7); tab(1); printf("Error!Please check your code then login again,thank you!n"); tab(3); exit(0); } } }
}
//enter函数
void enter(int x)
{ for(int i=0;i<x;i++) printf("n");
}
//tab函数
void tab(int x)
{ for(int i=0;i<x;i++) printf("t");
}
//mainmenu主菜单
void mainmenu()
{ struct LinkList *pHead=NULL; //初始化 while(1) { int i; system("cls"); printf("nnnnnttt********网吧计费管理系统*********n"); printf("ttt** 1.注册会员 **n"); printf("ttt** **n"); printf("ttt** 2.会员管理 **n"); printf("ttt** **n"); printf("ttt** 3.注 销 **n"); printf("ttt** **n"); printf("ttt** 4.重 启 **n"); printf("ttt** **n"); printf("ttt** 5.关闭系统 **n"); printf("ttt*************************************n"); printf("ttt请选择:"); fflush(stdin); scanf("%d",&i); switch(i) { case 1:pHead=adduser(pHead);break; case 2:submenu1();break; case 3:login();break; case 4:start();break; case 5:submenu2();break; default:printf("输入错误!n");for(int j=0;j<100000000;j++){}break; } }
}
//submenu1会员管理菜单
void submenu1()
{ struct LinkList *pHead=NULL; while(1) { int i; system("cls"); printf("nnnnnttt**************会员管理***************n"); printf("ttt** 1.会员消费 **n"); printf("ttt** **n"); printf("ttt** 2.注销会员 **n"); printf("ttt** **n"); printf("ttt** 3.查找会员信息 **n"); printf("ttt** **n"); printf("ttt** 4.查询所有会员信息 **n"); printf("ttt** **n"); printf("ttt** 5.返回上一级菜单 **n"); printf("ttt*************************************n"); printf("ttt请选择:"); fflush(stdin); scanf("%d",&i); switch(i) { case 1:submenu3();break; case 2:pHead=zhu_xiao(pHead);break; case 3:submenu4();break; case 4:;xian_shi(pHead);break; case 5:mainmenu();break; default:printf("输入错误!n");for(int j=0;j<100000000;j++){}break; } }
}
//submenu2关闭系统
void submenu2()
{ system("cls"); printf("nnnnnttt********星星网吧计费管理系统*********n"); printf("ttt** 谢谢您的使用! **n"); printf("ttt** **n"); printf("ttt** 欢迎再次使用! **n"); printf("ttt** **n"); printf("ttt** 技术支持: **n"); printf("ttt** imti_bandianhong@126 **n"); printf("ttt** 版权所有: **n"); printf("ttt** 湖南长沙英泰学院09081A班 **n"); printf("ttt** 2009.10 **n"); printf("ttt*************************************n"); exit(0);
}
//submenu3消费菜单
void submenu3()
{ int i; LinkList *pHead=NULL; while(1) { system("cls"); printf("nnnnnttt**********消费内容*******************n"); printf("ttt** 1.充值 **n"); printf("ttt** **n"); printf("ttt** 2.上网 **n"); printf("ttt** **n"); printf("ttt** 3.返回上一级菜单 **n"); printf("ttt*************************************n"); printf("ttt请选择:"); fflush(stdin); scanf("%d",&i); switch(i) { case 1:pHead=addmoney(pHead); break; case 2:pHead=shang_wang(pHead); break; case 3:submenu1();break; default: printf("输入错误!请重新输入!n");for(int j=0;j<100000000;j++){}break; } }
}
//submenu4会员查找函数
void submenu4()
{ int i; LinkList *pHead=NULL; while(1) { system("cls"); printf("nnnnnttt**************查找会员***************n"); printf("ttt** 1.按身份证号码查找 **n"); printf("ttt** **n"); printf("ttt** 2.按会员卡号号码查找 **n"); printf("ttt** **n"); printf("ttt** 3.返回上一级菜单 **n"); printf("ttt*************************************n"); printf("ttt请选择:"); fflush(stdin); scanf("%d",&i); switch(i) { case 1:cha_xun_shen(pHead); break; case 2: cha_xun_hui(pHead); break; case 3:submenu1();break; default: printf("输入错误!请重新输入!n");for(int j=0;j<100000000;j++){}break; } }
}
//新会员注册
LinkList *adduser(LinkList *pHead)
{ LinkList *pTemp,*p; system("cls"); pTemp=(LinkList *)malloc(sizeof(struct LinkList)); if(pTemp==NULL) return pHead;
leap: printf("nnnntt"); printf("输入第二代身份证号码(18位):"); fflush(stdin); gets(pTemp->struct_user.ID_card); for(int i=0;i<17;i++) { if(pTemp->struct_user.ID_card[i]>'9' || pTemp->struct_user.ID_card[i]<'0') //如果输入的信息大于9小于0的范围(输入的不是数字) { system("cls"); printf("输入的不是纯数字!n请重新输入!n"); goto leap; } else if(strlen(pTemp->struct_user.ID_card)!=18 ||
strlen(pTemp->struct_user.ID_card)==0) { system("cls"); printf("输入不合法!n请重新输入!n"); goto leap; } } loop: printf("ntt"); printf("请输入卡号(8位):"); fflush(stdin); gets(pTemp->struct_user.user_card); for(i=0;i<8;i++) { if(pTemp->struct_user.user_card[i]>'9' || pTemp->struct_user.user_card[i]<'0') //如果输入的信息大于9小于0的范围(输入的不是数字) {system("cls"); tab(3); printf("输入的不是纯数字!n请重新输入!n"); goto loop; } else if(strlen(pTemp->struct_user.user_card)!=8 ||
strlen(pTemp->struct_user.user_card)==0) { system("cls"); printf("输入不合法!n请重新输入!n"); goto loop; } }
k: printf("nntt|-----------会员优惠活动------------|n"); printf("tt| 普通会员 >0 <=10元 |n"); printf("tt| 铜卡会员 >10 <=20元 +10元 |n"); printf("tt| 银卡会员 >20 <=30元 +20元 |n"); printf("tt| 金卡会员 >30 <=50元 +30元 |n"); printf("tt| VIP会员 充100元 送80元 |n"); printf("tt|-----------------------------------|n"); printf("tt"); printf("充值:"); fflush(stdin); scanf("%f",&(pTemp->struct_user.add_money)); //充值 if(pTemp->struct_user.add_money>1000 || pTemp->struct_user.add_money<=0) //如果输入的信息大于9小于0的范围(输入的不是数字) { system("cls"); printf("输入错误!n请重新输入!n"); goto k; } else if(pTemp->struct_user.add_money>0 && pTemp->struct_user.add_money<=10) { tab(2); strcpy(pTemp->struct_user.user_level,"普通会员"); printf("■恭喜你!你已成为本网吧普通会员!■n"); } else if(pTemp->struct_user.add_money>10 && pTemp->struct_user.add_money<=20) { tab(2); strcpy(pTemp->struct_user.user_level,"铜卡会员"); printf("■恭喜你!你已成为本网吧铜卡会员!■n"); pTemp->struct_user.add_money+=10; } else if(pTemp->struct_user.add_money>20 && pTemp->struct_user.add_money<=30) { tab(2); strcpy(pTemp->struct_user.user_level,"银卡会员"); printf("■恭喜你!你已成为本网吧银卡会员!■n"); pTemp->struct_user.add_money+=20; } else if(pTemp->struct_user.add_money>=30 && pTemp->struct_user.add_money<100) { tab(2); strcpy(pTemp->struct_user.user_level,"金卡会员"); printf("■恭喜你!你已成为本网吧金卡会员!■n"); pTemp->struct_user.add_money+=30; } else if(pTemp->struct_user.add_money>=100) { tab(2); strcpy(pTemp->struct_user.user_level,"VIP会员"); printf("■恭喜你!你已成为本网吧VIP会员!■n"); pTemp->struct_user.add_money+=80; } pTemp->pNext=NULL; // if(pHead==NULL) pHead=pTemp; else { p=pHead; while(p->pNext!=NULL) p=p->pNext; p->pNext=pTemp; } save(pTemp); return pHead;
}
//保存会员注册
void save(LinkList *pTemp)
{ FILE *fp=fopen("user","ab"); if(fp==NULL) { tab(3); printf("读取失败!n"); exit(0); } tab(3); printf("开始保存文件!n"); if(fwrite(pTemp,sizeof(struct LinkList),1,fp)==1) { tab(3); printf("文件保存成功!n"); getch(); } else { tab(3); printf("文件保存失败!n"); getch(); } fclose(fp);
}
//读取保存
LinkList *readsave()
{ LinkList *pHead=NULL,*p; FILE *fp; fp=fopen("user","rb"); if(fp==NULL) { tab(3); printf("文件打开失败!n"); getch(); return pHead; } while(!feof(fp)) { LinkList *pTemp=(LinkList*)malloc(sizeof(LinkList)); int t=fread(pTemp,sizeof(struct LinkList),1,fp); pTemp->pNext=NULL; if(t>0) { if(pHead==NULL) { pHead=pTemp; } else { p=pHead; while(p->pNext!=NULL) p=p->pNext; p->pNext=pTemp; } } else break; } fclose(fp); return pHead;
}
//显示所有会员信息
void xian_shi(LinkList *pHead)
{ FILE *fp=fopen("user","rb"); if(fp==NULL) { system("cls"); printf("nnnnnnnntttt"); printf("没有会员信息!n"); getch(); return; } LinkList *pTemp,*p; pTemp=(LinkList *)malloc(sizeof(LinkList)); int count=0; system("cls"); enter(5); printf(" -----------------------|-------------|--------------|--------------n"); printf("t身份证号码tt会员卡号t卡上余额t会员级别n"); printf(" -----------------------|-------------|--------------|--------------n"); while(!feof(fp)) { int t=fread(pTemp,sizeof(LinkList),1,fp); pTemp->pNext=NULL; // if(t>0) { count++; if(pHead==NULL) { pHead=pTemp; }
else { p=pHead; while(p->pNext!=NULL) p=p->pNext; p->pNext=pTemp; } } else { break; } printf("t%-20st%-10st%-5.1f元tt%-6sn",pTemp->struct_user.ID_card,pTemp->struct_user.user_card,pTemp->struct_user.add_money,pTemp->struct_user.user_level); } printf(" -----------------------|-------------|--------------|--------------n"); printf("ntt共有会员%d个n",count); getch(); fclose(fp);
}
//查找会员信息(按身份证号码查找)
void cha_xun_shen(LinkList *pHead)
{ LinkList *pTemp; char shen_fen[100]; system("cls"); enter(9); tab(3); printf("身份证号码:"); fflush(stdin); gets(shen_fen); if(strlen(shen_fen)!=18) { tab(3); printf("输入错误!n"); getch(); return; } pHead=readsave(); if(pHead==NULL) { tab(3); printf("没有找到会员信息或会员不存在!n"); getch(); return; } pTemp=pHead; while(pTemp) { if(strcmp(pTemp->struct_user.ID_card,shen_fen)==0) { system("cls"); enter(5); printf(" -----------------------|-------------|--------------|--------------n"); printf("t身份证号码tt会员卡号t卡上余额t会员级别n"); printf(" -----------------------|-------------|--------------|--------------n"); printf("t%-20st%-10st%-5.1f元tt%-6sn",pTemp->struct_user.ID_card,pTemp->struct_user.user_card,pTemp->struct_user.add_money,pTemp->struct_user.user_level); printf(" -----------------------|-------------|--------------|--------------n"); getch(); break; } pTemp=pTemp->pNext; }
} //查找会员信息(按会员卡号查找)
void cha_xun_hui(LinkList *pHead)
{ LinkList *pTemp; char shen_fen[100]; system("cls"); enter(9); tab(3); printf("卡号(8位:"); fflush(stdin); gets(shen_fen); if(strlen(shen_fen)!=8) { tab(3); printf("输入错误!n"); getch(); return; } pHead=readsave(); if(pHead==NULL) { tab(3); printf("没有找到会员信息或会员不存在!n"); getch(); return; } pTemp=pHead; while(pTemp) { if(strcmp(pTemp->struct_user.user_card,shen_fen)==0) { system("cls"); enter(5); printf(" -----------------------|-------------|--------------|--------------n"); printf("t身份证号码tt会员卡号t卡上余额t会员级别n"); printf(" -----------------------|-------------|--------------|--------------n"); printf("t%-20st%-10st%-5.1f元tt%-6sn",pTemp->struct_user.ID_card,pTemp->struct_user.user_card,pTemp->struct_user.add_money,pTemp->struct_user.user_level); printf(" -----------------------|-------------|--------------|--------------n"); getch(); break; } pTemp=pTemp->pNext; }
}
//保存充值、注销和上网消费后的后的会员信息
void save_chong(LinkList *pHead)
{ FILE *fp=fopen("user","wb"); if(fp==NULL) { tab(3); printf("文件打开失败!n"); getch(); return; } LinkList *pTemp; pTemp=pHead; if(pHead==NULL) { printf("没有找到会员信息!n"); getch(); return; } printf("开始保存修改!n"); while(pTemp) { fwrite(pTemp,sizeof(LinkList),1,fp); pTemp=pTemp->pNext; } printf("保存成功!n"); getch(); fclose(fp);
}
//充值
LinkList *addmoney(LinkList *pHead)
{ LinkList *pTemp; char shen_fen[100]; system("cls"); enter(9); tab(3); printf("卡号(8位):"); fflush(stdin); gets(shen_fen); if(strlen(shen_fen)!=8) { tab(3); printf("输入错误!n"); getch(); return pHead; } pHead=readsave(); //very important if(pHead==NULL) { tab(3); printf("没有找到会员信息或会员不存在!n"); getch(); return pHead; } pTemp=pHead; while(pTemp) { if(strcmp(pTemp->struct_user.user_card,shen_fen)==0) { system("cls"); enter(5); printf(" -----------------------|-------------|--------------|--------------n"); printf("t身份证号码tt会员卡号t卡上余额t会员级别n"); printf(" -----------------------|-------------|--------------|--------------n"); printf("t%-20st%-10st%-5.1f元tt%-6sn",pTemp->struct_user.ID_card,pTemp->struct_user.user_card,pTemp->struct_user.add_money,pTemp->struct_user.user_level); printf(" -----------------------|-------------|--------------|--------------n"); float m=pTemp->struct_user.add_money; printf("请输入充值金额:"); scanf("%f",&(pTemp->struct_user.add_money)); pTemp->struct_user.add_money+=m; save_chong(pHead); break; } pTemp=pTemp->pNext; } return pHead;
}
//上网
LinkList *shang_wang(LinkList *pHead)
{ LinkList *pTemp; char shen_fen[100]; system("cls"); enter(2); printf("nnnnttt**********网吧计费管理系统***********n"); printf("ttt** 1.普通会员 3元/时 **n"); printf("ttt** **n"); printf("ttt** 2.铜卡会员 2.5元/时 **n"); printf("ttt** **n"); printf("ttt** 3.银卡会员 2元/时 **n"); printf("ttt** **n"); printf("ttt** 4.金卡会员 1.5元/时 **n"); printf("ttt** **n"); printf("ttt** 5.VIP会员 1元/时 **n"); printf("ttt*************************************n"); printf("请输入会员卡号码(8位数字):"); fflush(stdin); gets(shen_fen); if(strlen(shen_fen)!=8) { tab(3); printf("输入错误!n"); getch();return pHead; } pHead=readsave(); //读取文件 if(pHead==NULL) //如果头指针为空说明没有该链表 { tab(3); printf("没有找到会员信息或会员不存在!n"); getch(); return pHead; } pTemp=pHead; //头指针不为空 while(pTemp) //访问节点 { if(strcmp(pTemp->struct_user.user_card,shen_fen)==0) //如果找到与输入的会员卡号相同 { //则输出该会员信息 printf(" -----------------------|-------------|--------------|--------------n"); printf("t身份证号码tt会员卡号t卡上余额t会员级别n"); printf(" -----------------------|-------------|--------------|--------------n"); printf("t%-20st%-10st%-5.1f元tt%-6sn",pTemp->struct_user.ID_card,pTemp->struct_user.user_card,pTemp->struct_user.add_money,pTemp->struct_user.user_level); printf(" -----------------------|-------------|--------------|--------------n"); float m=pTemp->struct_user.add_money;//上网前的卡上余额 float time; printf("请输入上网时间(时):"); fflush(stdin); scanf("%f",&time); if(strcmp(pTemp->struct_user.user_level,"普通会员")==0) //按会员级别来管理 { //每小时上网的费用 pTemp->struct_user.add_money=m-3*time; //上网后的卡上余额 save_chong(pHead); //保存修改后的内容 break; } else if(strcmp(pTemp->struct_user.user_level,"铜卡会员")==0) { pTemp->struct_user.add_money=m-2.5f*time; save_chong(pHead); break; } else if(strcmp(pTemp->struct_user.user_level,"银卡会员")==0) {
pTemp->struct_user.add_money=m-2*time; save_chong(pHead); break; } else if(strcmp(pTemp->struct_user.user_level,"金卡会员")==0) { pTemp->struct_user.add_money=m-1.5f*time; save_chong(pHead); break; } else if(strcmp(pTemp->struct_user.user_level,"VIP会员")==0) { pTemp->struct_user.add_money=m-1*time; save_chong(pHead); break; } } pTemp=pTemp->pNext;//指针指向下一个查找直到找到满足上面条件为止 } return pHead;
}
//注销会员
LinkList *zhu_xiao(LinkList *pHead)
{ LinkList *pTemp,*p; char shen_fen[100]; system("cls"); enter(9); tab(3); printf("卡号:"); fflush(stdin); gets(shen_fen); pHead=readsave(); //读取文件 if(pHead==NULL) //如果头节点为空表示这条链表没有内容或者没有这条链表 { tab(3); printf("没有找到会员信息或会员不存在!n"); return pHead; } pTemp=pHead; //指针指向头节点 while(pTemp)//访问节点 { if(strcmp(pTemp->struct_user.user_card,shen_fen)==0)//寻找要删除的会员卡号找到后输出 { system("cls"); enter(5); printf(" -----------------------|-------------|--------------|--------------n"); printf("t身份证号码tt会员卡号t卡上余额t会员级别n"); printf(" -----------------------|-------------|--------------|--------------n"); printf("t%-20st%-10st%-5.1f元tt%-6sn",pTemp->struct_user.ID_card,pTemp->struct_user.user_card,pTemp->struct_user.add_money,pTemp->struct_user.user_level); printf(" -----------------------|-------------|--------------|--------------n"); char ch; printf("n你要注销该会员吗?(Y/N)n"); scanf("%c",&ch); switch(ch) { case 'Y': case 'y': { if(pTemp==pHead) //如果要删除的是头节点 { pHead=pTemp->pNext; //把头节点指针指向第二个节点并把头节点覆盖 printf("注销成功!n"); getch(); break; } p=pHead;//不是头节点把指针指向头节点 while(1) { if(p->pNext==pTemp) //如果p的指针域指向找到的节点pTemp { p->pNext=pTemp->pNext;//则把pTemp的指针域指向的下一个节点付给p的指针域 printf("注销成功!n");//删除成功 getch(); break; } p=p->pNext;//寻找p->pNext和要删除节点pTemp的交合 } } break; case 'N': case 'n': break; } } pTemp=pTemp->pNext;//寻找shen_fen和节点的交合 } save_chong(pHead); system("cls"); return pHead;
}
//主函数
void main()
{ start(); mainmenu();
}
本文发布于:2024-02-04 16:26:49,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170711621357246.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |