C语言实现影院管理系统
语言实现影院管理系统
主要为大家详细介绍了C语言实现影院管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣
的小伙伴们可以参考一下
本文实例为大家分享了C语言影院管理系统的具体代码,供大家参考,具体内容如下
#include
#include
#include
#include
#include"state.h"
#define change 3
int iCount;
int n;
//*****************注册*****************//
void router_registe(pAccout ahead)
{
system("cls");
char username[20];
char password[13];
char pass[13];
char q;
int i;
FILE *fp;
loop2:
printf("\n\n\n\n");
printf("\t\t\t\t账号:");
scanf("%s",username);
getchar();
printf("\t\t\t\t密码:");
i=0;
while (1)
{
q = getch();
if (q != 13)
{
printf("*");
password[i++] = q;
}
else {
password[i] = '\0';
printf("\n");
break;
}
}
printf("\t\t\t\t请确认密码:");
i=0;
while (1)
{
q = getch();
if (q != 13)
{
printf("*");
pass[i++] = q;
}
else {
pass[i] = '\0';
printf("\n");
break;
}
}
if(strcmp(pass,password)==0)
{
fp=fopen("e:\\课设\\Accout1.txt", "ab+");
fprintf(fp," %s %s",username,password); //把内存中的文件输入到硬盘中
fclose(fp);
system("cls");
printf("\n\n\n\n注册成功\n");
}
else goto loop2;
}
//*****************登录*****************//
pAccout router_acc(pAccout ahead)
{
pAccout p1,p2;
FILE *fp;
int m=0;
if((fp=fopen("e:\\课设\\Accout.txt", "rw"))==NULL)
{
printf("读取失败!");
return ahead;
}
ahead==NULL;
p1=(pAccout)malloc(sizeof(Accout));
while(fscanf(fp,"%s %s",p1->name,p1->pass)==2)
{
//printf("%s\n",p1->name); //读进去了
m=m+1;
if(m==1)
{
ahead->next=p1;
p2=p1;
p2->next = NULL;
}
else
{
p2->next=p1;
p2=p1;
p2->next=NULL;
}
p1=(pAccout)malloc(sizeof(Accout));
}
fclose(fp);
return ahead;
}
pAccout router_acc1(pAccout ahead)
{
pAccout p1,p2;
FILE *fp;
int m=0;
if((fp=fopen("e:\\课设\\Accout1.txt", "rw"))==NULL)
{
printf("读取失败!");
return ahead;
}
ahead==NULL;
p1=(pAccout)malloc(sizeof(Accout));
while(fscanf(fp,"%s %s",p1->name,p1->pass)==2)
{
//printf("%s\n",p1->name); //由于文件没有读入换行,读出的时候将先一个人的密码和
//printf("%s",p1->pass); //后一个人的名称
m=m+1;
if(m==1)
{
ahead->next=p1;
p2=p1;
p2->next = NULL;
}
else
{
p2->next=p1;
p2=p1;
p2->next=NULL;
}
p1=(pAccout)malloc(sizeof(Accout));
}
fclose(fp);
return ahead;
}
void login_printf()
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆\n");
printf("\t\t\t☆ ★\n");
printf("\t\t\t☆ 1.登录 ★\n");
printf("\t\t\t☆ 2.注册 ★\n");
printf("\t\t\t★ 0.退出 ☆\n");
printf("\t\t\t☆ ★\n");
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆\n");
}
void login_printf1()
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t********************************\n");
printf("\t\t\t|| ||\n");
printf("\t\t\t|| 1.管理员登录 ||\n");
printf("\t\t\t|| 2.用户登录 ||\n");
printf("\t\t\t|| 0.退出 ||\n");
printf("\t\t\t|| ||\n");
printf("\t\t\t********************************\n");
}
void login_acc()
{
system("cls");
int bk;
int bb;
pAccout ahead,p1;
ahead=(pAccout)malloc(sizeof(Accout));
ahead->next=NULL;
while(1)
{
char a[200];
char b[200];
loop:
login_printf();
printf("请输入:");
scanf("%s",a);
bk=back(a);
switch(bk)
{
case 1:{
login_printf1();
printf("请输入:");
scanf("%s",b);
bb=back(b);
switch(bb)
{
case 1:{
router_acc(ahead);
ahead=login_panduan(ahead);//管理员登录
meun();
break;
}
case 2:{
router_acc1(ahead);
ahead=login_panduan(ahead);//用户登陆
menu1();
break;
}
case 0:
{
print2();
exit(0);
break;
}
default:printf("输入错误!");
Sleep(1000);
system("cls");
break;
}
if(bb!=0)//丢失此处则会无法跳出循环
break;
}
case 2:{
router_registe(ahead);
goto loop;
break;
}
case 0:{
// printf("BUG!!!!\n");测试bug!!!!!
print2();
exit(0);
break;
}
default:printf("输入错误!");
Sleep(1000);
system("cls");
break;
}
if(bk!=0)
break;
}
}
pAccout login_panduan(pAccout ahead)
{
char name1[20],pass1[20];
char q;
pAccout p1;
int i=0,j=0;
system("cls");
printf("\n\n\n\n");
loop1:
while(1)
{
j++;
p1=ahead->next;
printf("\t\t\t\t账号:");
scanf("%s",name1);
getchar();
printf("\t\t\t\t密码:");
i=0;
while (1)
{
j++;
q = getch();
if (q != 13)
{
printf("*");
pass1[i++] = q;
}
else {
pass1[i] = '\0';
printf("\n");
break;
}
}
//printf("%s",pass1);密码正确(加密最初出现问题)
while(p1!=NULL)
{
if(strcmp(name1,p1->name)==0)
{
if(strcmp(pass1,p1->pass)==0)
{
printf("\n\n\t\t\t\t登录成功!");
Sleep(2000);
return ahead;
}
else
{
p1=p1->next;
}
}
else
{
p1=p1->next;
}
if(p1==NULL)
{
printf("\n\n\n\n\t\t\t\t输入有误");
system("cls");
printf("\n\n\n\n\t\t\t\t请重新输入\n");
Sleep(2000);
goto loop1;
break;
}
}
if(j>=change)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t***************\n");
printf("\t\t\t\t你完蛋了!!!!!\n");
printf("\t\t\t\t***************\n");
Sleep(2000);
print2();
exit (0);
}
}
return ahead;
}//登录成功
int panduan(char choice)
{
while(1)
{
fflush(stdin);
choice=getchar();
if(choice == 'y'|| choice =='Y')
return 1;
else if(choice == 'n'||choice == 'N')
return 0;
while(getchar() != '\n')
continue;
printf("输入错误!请重新输入您的选择:\n");
}
}
int back(char *a)
{
if(strlen(a)==1)
{
if(a[0]>='0'&&a[0]<='9')
return ((int)a[0]-48);
}
else
return 10;
}
void print1()
{
int i;
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t|******************************|\n");
printf("\t\t\t\t||****************************||\n");
printf("\t\t\t\t||| |||\n");
printf("\t\t\t\t||| 欢迎来到影院管理系统 |||\n");
printf("\t\t\t\t||| |||\n");
printf("\t\t\t\t||****************************||\n");
printf("\t\t\t\t|******************************|\n");
printf("\n\t\t\t\t系统开始启动.........\n");
printf("===================================================================================================\r");
for(i=1;i<100;i++)
{
Sleep(40);
printf(">");
}
}
void print() //主界面
{
system("cls");
printf("\t\t\t|*******************************|\n");
printf("\t\t\t| 欢迎来到影院管理系统(主菜单) |\n");
printf("\t\t\t|*******************************|\n");
printf("\t\t\t| 1.插入信息 |\n");
printf("\t\t\t| 2.查看信息 |\n");
printf("\t\t\t| 3.查询信息 |\n");
printf("\t\t\t| 4.修改信息 |\n");
printf("\t\t\t| 5.排序信息 |\n");
printf("\t\t\t| 6.删除信息 |\n");
printf("\t\t\t|-------------------------------|\n");
printf("\t\t\t|-------------------------------|\n");
printf("\t\t\t| 0.退出程序 |\n");
printf("\t\t\t|===============================|\n");
}
void print2()
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t|******************************|\n");
printf("\t\t\t||****************************||\n");
printf("\t\t\t||| |||\n");
printf("\t\t\t||| 谢谢使用 |||\n");
printf("\t\t\t||| |||\n");
printf("\t\t\t||****************************||\n");
printf("\t\t\t|******************************|\n");
Sleep(2000);
}
void print3()
{
system("cls");
printf("\t\t\t|*******************************|\n");
printf("\t\t\t| 欢迎来到影院购票系统(主菜单) |\n");
printf("\t\t\t|*******************************|\n");
printf("\t\t\t| 1.主页信息 |\n");
printf("\t\t\t| 2.查询信息 |\n");
printf("\t\t\t| 3.排序信息 |\n");
printf("\t\t\t| 4.打印报表 |\n");
printf("\t\t\t|-------------------------------|\n");
printf("\t\t\t|-------------------------------|\n");
printf("\t\t\t| 0.退出程序 |\n");
printf("\t\t\t|===============================|\n");
}
/*******************查询模块********************/
pticket searchmenu(pticket phead) //查询子系统菜单
{
fflush(stdin);
system("cls");
int bk;
while(1)
{
char P[200];
system("cls");
printf("\t\t\t|*******************************|\n");
printf("\t\t\t| 查询子系统菜单 |\n");
printf("\t\t\t|*******************************|\n");
printf("\t\t\t| 1.按影院查询 |\n");
printf("\t\t\t| 2.按电影查找 |\n");
printf("\t\t\t| 3.按价格区间查找 |\n");
printf("\t\t\t|-------------------------------|\n");
printf("\t\t\t| 0.返回上一层 |\n");
printf("\t\t\t|*******************************|\n\n");
printf("请输入指令:");
scanf("%s",P);
bk=back(P);
switch(bk)
{
case 1:
{
phead=search1(phead);//按影院查询
break;
}
case 2:
{
phead=search2(phead);//按电影查询
break;
}
case 3:{
phead=search3(phead);//按价格区间查询
break;
}
case 0:break;
default:printf("输入错误!请重新输入\n");
system("pause");
break;
}
if(bk==0)
break;
}
return phead;
}
pticket search1(pticket phead) //影院查询
{
system("cls");
char cinema1[30],choice;
pticket p;
int flag=0;
char q;
p=(pticket)malloc(sizeof(ticket));
while(1)
{
system("cls");
printf("\n\n\n\t\t\t请输入影院名称:");
scanf("%s",cinema1);
if(strlen(cinema1)>=30)
{
system("cls");
printf("**************\n");
printf("请输入正确的名字!\n");
printf("**************\n");
Sleep(1000);
}
else
break;
}
while(1)
{
system("cls");
if(phead->next==NULL)
{
printf("\n\n\n\t\t\t没有信息!\n");
system("pause");
break;
}
p=phead->next;
print_stu2();
do
{
if(strcmp(p->cinema,cinema1)==0)
{
printf(" %-4s ",p->number);
printf("%-12s ",p->name);
printf("%-16s",p->cinema);
printf(" %4d ",p->time);
printf("%.2lf ",p->price);
printf(" %.1lf ",p->grade);
printf("\n");
flag=1;
}
p=p->next;
}while(p!=NULL);
if(flag==0)
{
printf("不存在的!\n");
}
printf("是否继续查找?(Y or N)");
q=getchar();
if(panduan(q)==1)
{
while(1)
{
system("cls");
printf("\n\n\n\t\t\t请输入影院名称:");
scanf("%s",cinema1);
if(strlen(cinema1)>=30)
{
system("cls");
printf("**************\n");
printf("请输入正确的名字!\n");
printf("**************\n");
Sleep(1000);
}
else
break;
}
}
else if(panduan(choice)==0)
break;
}
return phead;
}
pticket search2(pticket phead) //按电影名称查询
{
system("cls");
char name1[30],choice;
pticket p;
int flag=0;
char q;
while(1)
{
system("cls");
printf("\n\n\n\t\t\t请输入电影名称:");
scanf("%s",name1);
if(strlen(name1)>=30)
{
system("cls");
printf("**************\n");
printf("请输入正确的名字!\n");
printf("**************\n");
Sleep(1000);
}
else
break;
}
while(1)
{
system("cls");
if(phead->next==NULL)
{
printf("没有信息!\n");
system("pause");
break;
}
p=phead->next;
print_stu2();
do{
if(strcmp(p->name,name1)==0)
{
printf(" %-4s ",p->number);
printf("%-12s ",p->name);
printf("%-16s",p->cinema);
printf(" %4d ",p->time);
printf("%.2lf ",p->price);
printf(" %.1lf ",p->grade);
printf("\n");
flag=1;
}
p=p->next;
}while(p!=NULL);
if(flag==0)
{
printf("不存在的!\n");
}
printf("是否继续查找?(Y or N)\n");
q=getchar();
if(panduan(q)==1)
{
while(1)
{
system("cls");
printf("请输入电影名称:");
scanf("%s",name1);
if(strlen(name1)>=30)
{
system("cls");
printf("**************\n");
printf("请输入正确的名字!\n");
printf("**************\n");
Sleep(1000);
}
else
break;
}
}
else if(panduan(choice)==0)
break;
}
return phead;
}
pticket search3(pticket phead) //按价格区间名称查询
{
system("cls");
int count=0;
char choice;
float x,y;
pticket p;
int flag=0;
char q;
loop2:
system("cls");
printf("\n\n\n\t\t\t请输入价格下限:");
scanf("%f",&x);
printf("\n\t\t\t请输入价格上限:");
scanf("%f",&y);
while(1)
{
system("cls");
if(phead->next==NULL)
{
printf("没有信息!\n");
system("pause");
break;
}
p=phead->next;
print_stu2();
do{
if(p->price>x&&p->pricenumber);