c语言学习知识网吧计费系统源代码资料.doc
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 5struct userchar ID_card30;char user_card10;char user_level50;float add_money;/充值;struct LinkListstruct user struct_user;LinkList *pNext;struct controlchar control_name20;char control_password15;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 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 2 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 3 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 4 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 5 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 6 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 7 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 8 endenter(7);tab(3);printf(" 星星网吧计费管理系统 ");enter(2);tab(4);printf(" ");enter(1);tab(4);for(i=0;i<100000000;i+)system("cls");/circle 9 endlogin();/登陆函数void login()char name20;char password15;while(1)system("cls");enter(7);tab(3);printf(" 管理员登录 ");enter(2);tab(4);printf("Count:");fflush(stdin);if(strcmp(gets(name),control_person.control_name)=0)leap: system("cls");enter(7);tab(3);printf(" 管理员登录 ");enter(2);tab(4);printf("Password:");fflush(stdin);if(strcmp(gets(password),control_person.control_password)=0)mainmenu();break;elsechar 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);elsesystem("cls");enter(7);tab(1);printf("Error!Please check your code then login again,thank you!n");tab(3);exit(0);elsechar 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);elsesystem("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_bandianhong126.com *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_cardi>9 | pTemp->struct_user.ID_cardi<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_cardi>9 | pTemp->struct_user.user_cardi<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;elsep=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;elsep=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;elsebreak;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;elsep=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;elsebreak;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_fen100;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(" -|-|-|-