C語言實現(xiàn)影院售票管理系統(tǒng)_第1頁
C語言實現(xiàn)影院售票管理系統(tǒng)_第2頁
C語言實現(xiàn)影院售票管理系統(tǒng)_第3頁
C語言實現(xiàn)影院售票管理系統(tǒng)_第4頁
C語言實現(xiàn)影院售票管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第C語言實現(xiàn)影院售票管理系統(tǒng)本文實例為大家分享了C語言實現(xiàn)影院售票管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

最近剛好在寫自己的課設(shè),匆匆忙忙寫出來的課設(shè)系統(tǒng),仍有不足,拿出來和大家分享一下,希望能對大家有幫助。

一、概要設(shè)計

1、基本信息

數(shù)據(jù)類型:鏈表

typedefstructnode

charname[N];

//名稱

chartype[N];

//類型

inttime;

//時長

charday[N];

//日期

charstart[N];

//起始時間

charsite[N];

//地點

intprice;

//價格

intnum;

//數(shù)量

intid;

//編號

intseat[N][N];

//座位

structnode*next;

//指針域

}NODE;

實現(xiàn)功能:

typedefstructticket

charname[N];

//名稱

chartype[N];

//類型

inttime;

//時長

charday[N];

//日期

charstart[N];

//起始時間

charsite[N];

//地點

intprice;

//價格

intid;

//編號

charusername[N];

//用戶名

intx;

//行

inty;

//列

intistake;

//是否取票

structticket*next;

//指針域

}TICKET;

實現(xiàn)功能:

開發(fā)環(huán)境:VS2025

2、功能模塊圖

3、功能描述

(1)管理員

①增加影片:新增影片至系統(tǒng)中

②顯示影片:顯示系統(tǒng)中的所有影片信息

③查找影片:通過姓名、類型、編號查詢影片信息

④修改影片:通過編號查詢影片,修改影片信息

⑤刪除影片:通過編號查詢影片,刪除影片信息

⑥排序影片:按照時長、日期、價格、數(shù)量排序影片信息

(2)用戶

①購票:排序影片信息,顯示影片信息,通過編號查詢影片信息,購票后顯示票務(wù)信息

②取票:顯示票務(wù)信息,選擇是否取票

③退票:顯示票務(wù)信息,選擇是否退票

4、調(diào)用關(guān)系圖

二、完整代碼

#includestdio.h

#includewindows.h

#includestdlib.h

#includestring.h

#includemath.h

#includeconio.h

#defineN100

typedefstructadministrator

charid[N];

//用戶名

charpassword[N];

//密碼

structadministrator*next;

//指針域

}ADMIN;

typedefstructuser

charid[N];

//用戶名

charpassword[N];

//密碼

structuser*next;

//指針域

}USER;

typedefstructnode

charname[N];

//名稱

chartype[N];

//類型

inttime;

//時長

charday[N];

//日期

charstart[N];

//起始時間

charsite[N];

//地點

intprice;

//價格

intnum;

//數(shù)量

intid;

//編號

intseat[N][N];

//座位

structnode*next;

//指針域

}NODE;

typedefstructticket

charname[N];

//名稱

chartype[N];

//類型

inttime;

//時長

charday[N];

//日期

charstart[N];

//起始時間

charsite[N];

//地點

intprice;

//價格

intid;

//編號

charusername[N];

//用戶名

intx;

//行

inty;

//列

intistake;

//是否取票

structticket*next;

//指針域

}TICKET;

ADMINa;

//管理員信息

USERb;

//用戶信息

NODElist;

//影片信息

TICKETc;

//購票

charfusername[N],fpassword[N];

//用戶名/密碼(文件)

charusername[N],password[N];

//用戶名/密碼(輸入)

intflag=0;

//判斷是否登錄成功

//管理員登錄

voidmenu_Login_admin();

//界面

voidfun_Login_admin();

//功能

voidadmin_login();

//登錄

intRead_admin_login();

//文件讀取

//用戶登錄

voidmenu_Login_user();

//界面

voidfun_Login_user();

//功能

voiduser_login(USER*L);

//登錄

intRead_user(USER*L);

//用戶登錄文件讀取

intRead_user_login(USER*L);

//判斷

intuser_logon(USER*L);

//注冊

voidAdd1(USER*L,USERe);

//插入

//讀取文件

intRead_FILE(NODE*L);

//保存文件

intSave_FILE(NODE*L);

//菜單

voidwelcome();

//主菜單

voidfun_welcome();

//主菜單功能

voidmenu_administrator();

//管理員界面

voidfun_administrator();

//管理員功能

voidmenu_user();

//用戶界面

voidfun_user();

//用戶功能

//增加影片

voidAdd(NODE*L,NODEe);

//功能

voidAdd_Printf();

//界面

//查詢影片

voidSearch_Printf(NODE*L);

//界面

intSearch_allname(charname[],NODE*L);

//按名稱進(jìn)行查找

NODE*Search_name(charname[],NODE*L);

//按名稱進(jìn)行查找第一個

intSearch_type(chartype[],NODE*L);

//按類型進(jìn)行查找

NODE*Search_id(intid,NODE*L);

//按編號進(jìn)行查找

//刪除影片

voidDelete_Printf(NODE*L);

//界面

voidDelete(NODE*s);

//功能

//修改影片

voidFix(NODE*L);

//顯示影片

voidPrint(NODE*L);

//功能

voidPrint_Printf();

//界面

//排序影片

voidSort(NODE*L);

intcmp_big_time(NODEe1,NODEe2);

//時長從大到小

intcmp_big_day(NODEe1,NODEe2);

//日期從大到小

intcmp_big_price(NODEe1,NODEe2);

//價格從大到小

intcmp_big_num(NODEe1,NODEe2);

//數(shù)量從大到小

intcmp_small_time(NODEe1,NODEe2);

//時長從小到大

intcmp_small_day(NODEe1,NODEe2);

//日期從小到大

intcmp_small_price(NODEe1,NODEe2);

//價格從小到大

intcmp_small_num(NODEe1,NODEe2);

//數(shù)量從小到大

//購票

voidBuy_ticket();

//功能

intBuy_ticket_Printf();

//界面

voidAdd2(TICKET*L,TICKETe);

//保存預(yù)定信息

intSave_TICKET(TICKET*L);

//文件保存售票信息

intRead_TICKET(TICKET*L);

//讀取售票信息

//取票

voidCollect_ticket();

//打印票務(wù)信息

voidPrint_ticket(TICKET*L);

voidPrint_ticket_Printf();

//退票

voidReturn_ticket();

voidPrint_ticket1(TICKET*L);

//打印信息

TICKET*Find_ticket(TICKET*L,charusername[]);

//查找前驅(qū)節(jié)點

voidDelete_ticket(TICKET*s);

//刪除

//退出系統(tǒng)

voidgoodbye();

intmain()

Read_FILE(list);

Read_TICKET(

Read_user(

while(1)

{

fun_welcome();

}

return0;

//主菜單

voidwelcome()

system("cls");

printf("****************************************************************\n");

printf("***********

影院管理系統(tǒng)

***********\n");

printf("***********

1----

管理員

***********\n");

printf("***********

2----

用戶

***********\n");

printf("***********

0----

退出

***********\n");

printf("****************************************************************\n");

printf("請選擇你要實現(xiàn)的功能(數(shù)字):");

//管理員功能

voidfun_administrator()

fun_Login_admin();

if(flag==1)

{

intchoice=0;

while(1)

{

menu_administrator();

scanf("%d",choice);

switch(choice)

{

case1://增加影片

Add_Printf();

break;

case2://顯示影片

Print(list);

break;

case3://查找影片

Search_Printf(list);

break;

case4://修改影片

Fix(list);

break;

case5://刪除影片

Delete_Printf(list);

break;

case6://排序影片

Sort(list);

break;

case0://退出

return;

}

printf("是否需要繼續(xù)操作?(Yes:1/No:0):");

scanf("%d",choice);

if(choice!=1)

{

if(choice!=0)

printf("輸入錯誤!??!\n");

system("pause");

break;

}

}

}

//用戶界面

voidmenu_user()

system("cls");

printf("請選擇您要實現(xiàn)的功能(數(shù)字):");

//用戶功能

voidfun_user()

fun_Login_user();

if(flag==1)

{

intchoice=0;

while(1)

{

menu_user();

scanf("%d",choice);

switch(choice)

{

case1://購票

Buy_ticket();

break;

case2://取票

Collect_ticket();

break;

case3://退票

Return_ticket();

break;

case0://退出

return;

}

system("cls");

printf("請選擇你要實現(xiàn)的功能(數(shù)字):");

//管理員登錄功能

voidfun_Login_admin()

intchoice=0;

menu_Login_admin();

scanf("%d",choice);

switch(choice)

{

case1://登錄

admin_login();

break;

case0://退出

flag=0;

return;

}

//管理員登錄

voidadmin_login()

intcnt=0;

do{

printf("請輸入用戶名:");

scanf("%s",username);

getchar();

printf("請輸入要修改的信息:");

scanf("%d",choice);

switch(choice)

{

case1:

printf("請輸入查詢方式:");

scanf("%d",choice);

node*st;

if(choice==1)

{

charname[N];

intcnt=0;

printf("請選擇排序方式:");

scanf("%d",choice);

intflag=0;

for(node*p=L-next;p!=NULL;p=p-next)

{

for(node*q=p;q!=NULL;q=q-next)

{

switch(choice)

{

case1:

if(!cmp_big_time(*p,*q))

{

flag=1;

}

break;

case2:

if(!cmp_small_time(*p,*q))

{

flag=1;

}

break;

case3:

if(!cmp_big_day(*p,*q))

{

flag=1;

}

break;

case4:

if(!cmp_small_day(*p,*q))

{

flag=1;

}

break;

case5:

if(!cmp_big_price(*p,*q))

{

flag=1;

}

break;

case6:

if(!cmp_small_price(*p,*q))

{

flag=1;

}

break;

case7:

if(!cmp_big_num(*p,*q))

{

flag=1;

}

break;

case8:

if(!cmp_small_num(*p,*q))

{

flag=1;

}

break;

}

if(flag==1)

{

//交換數(shù)據(jù)域

nodet=*p;

*p=*q;

*q=t;

//處理指針域

t.next=p-next;

p-next=q-next;

q-next=t.next;

flag=0;

}

}

}

printf("【系統(tǒng)】排序成功!\n");

//時長從大到小

intcmp_big_time(NODEe1,NODEe2)

returne1.timee2.time;

//日期從大到小

intcmp_big_day(NODEe1,NODEe2)

returnstrcmp(e1.day,e2.day)=01:0;

//價格從大到小

intcmp_big_price(NODEe1,NODEe2)

returne1.pricee2.price;

//數(shù)量從大到小

intcmp_big_num(NODEe1,NODEe2)

returne1.nume2.num;

//時長從小到大

intcmp_small_time(NODEe1,NODEe2)

returne1.timee2.time;

//日期從小到大

intcmp_small_day(NODEe1,NODEe2)

returnstrcmp(e1.day,e2.day)01:0;

//價格從小到大

intcmp_small_price(NODEe1,NODEe2)

returne1.pricee2.price;

//數(shù)量從小到大

intcmp_small_num(NODEe1,NODEe2)

returne1.nume2.num;

//文件保存售票信息

intSave_TICKET(TICKET*L)

FILE*pfWrite=fopen("ticket1.txt","w");

if(pfWrite==NULL)

{

return0;

}

TICKET*p=L-next;

while(p!=NULL)

{

fprintf(pfWrite,"%s%s%d%s%s%s%d%d%s%d%d%d\n",p-name,p-type,p-time,p-day,p-start,p-site,p-price,p-id,p-username,p-x,p-y,p-istake);

p=p-next;

}

//打開文件后記得關(guān)閉

fclose(pfWrite);

return1;

//讀取售票信息

intRead_TICKET(TICKET*L)

FILE*pfRead=fopen("ticket1.txt","r");

TICKETst;

TICKET*s=NULL;

TICKET*t=L;

if(pfRead==NULL)

{

return0;

}

while(fscanf(pfRead,"%s%s%d%s%s%s%d%d%s%d%d%d\n",,st.type,st.time,st.day,st.start,st.site,st.price,st.id,st.username,st.x,st.y,st.istake)!=EOF)

{

s=(TICKET*)malloc(sizeof(TICKET));

*s=st;

//尾插法

t-next=s;

t=s;

t-next=NULL;

}

fclose(pfRead);

//打開文件后記得關(guān)閉

return1;

//購票

voidBuy_ticket()

do{

Sort(list);

system("pause");

Print(list);

}while(Buy_ticket_Printf()==0);

intBuy_ticket_Printf()

TICKETs;//記錄票務(wù)信息

intid;

printf("【系統(tǒng)】請輸入您要購買的影片的編號:");

scanf("%d",id);

system("cls");

node*st=Search_id(id,list);

if(st==NULL)

{

printf("【系統(tǒng)】無法找到該影片!\n");

intchoice;

printf("【系統(tǒng)】請選擇是否要繼續(xù)購票?(Yes:1/No:0):");

scanf("%d",choice);

if(choice==1)

return0;

elseif(choice==0)

return1;

else

{

printf("輸入錯誤\n");

system("pause");

return1;

}

}

st=st-next;

printf("【系統(tǒng)】該影片的信息如下:\n");

printf("_________________________________________________________________________________________________________\n");

printf("|\t名稱\t\t|類型\t|時長\t|日期\t\t|起始時間\t|地點\t|價格\t|數(shù)量\t|編號\t|\n");

printf("_________________________________________________________________________________________________________\n");

printf("_________________________________________________________________________________________________________\n");

printf("|%-15s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t|%d\t|%d\t|%d\t|\n",st-name,st-type,st-time,st-day,st-start,st-site,st-price,st-num,st-

printf("_________________________________________________________________________________________________________\n");

printf("【系統(tǒng)】座位示意圖如下:(■表示已預(yù)定,□表示未預(yù)定)\n");

printf("

");

for(inti=1;i=10;i++)

{

printf("%3d",i);

}

printf("\n");

for(inti=1;i=10;i++)

{

printf("%4d",i);

for(intj=1;j=10;j++)

{

if(st-seat[i][j]==0)

printf("□");

else

printf("■");

}

printf("\n");

}

inta;

printf("【系統(tǒng)】請選擇您要購買的數(shù)量:");

scanf("%d",

for(inti=0;ii++)

{

printf("【系統(tǒng)】請選擇您要購買的座位號:\n");

intx,y;

printf("行(1-10):");

scanf("%d",

printf("列(1-10):");

scanf("%d",

if(st-seat[x][y]==0)

{

st-seat[x][y]=1;

st-num=st-num-1;

}

else

{

printf("【系統(tǒng)】預(yù)定失敗,該座位已被預(yù)定\n");

intchoice;

printf("【系統(tǒng)】請選擇是否要繼續(xù)購票?(Yes:1/No:0):");

scanf("%d",choice);

if(choice==1)

return0;

elseif(choice==0)

return1;

else

{

printf("輸入錯誤\n");

system("pause");

return1;

}

}

//記錄訂單信息

strcpy(,st-name);

strcpy(s.type,st-type);

s.time=st-time;

strcpy(s.day,st-day);

strcpy(s.start,st-start);

strcpy(s.site,st-site);

s.price=st-price;

s.id=st-

strcpy(s.username,username);

s.x=x;

s.y=y;

s.istake=0;

Add2(c,s);

printf("【系統(tǒng)】預(yù)定成功\n");

}

system("pause");

system("cls");

printf("【系統(tǒng)】您的訂單信息如下:\n");

printf("_________________________________________________________________________________________________\n");

printf("|\t名稱\t\t|類型\t|時長\t|日期\t\t|起始時間\t|地點\t|價格\t|數(shù)量\t|\n");

printf("_________________________________________________________________________________________________\n");

printf("_________________________________________________________________________________________________\n");

printf("|%-15s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t|%d\t|%d\t|\n",st-name,st-type,st-time,st-day,st-start,st-site,st-price*a,a);

printf("_________________________________________________________________________________________________\n");

system("pause");

Save_FILE(list);

return1;

//保存預(yù)定信息

voidAdd2(TICKET*L,TICKETe)

//頭插法

TICKET*p=L;

TICKET*s=(TICKET*)malloc(sizeof(TICKET));

*s=e;

s-next=p-next;

p-next=s;

Save_TICKET(L);

//取票

voidCollect_ticket()

system("cls");

Print_ticket(

Save_TICKET(

voidPrint_ticket(TICKET*L)

TICKET*p=L-next;

intcnt=0,choice=0;

if(p!=NULL)

{

while(p!=NULLstrcmp(p-username,username)==0p-istake==0)

{

printf("【系統(tǒng)】您的訂單如下:\n");

Print_ticket_Printf();

printf("______________________________________________________________________________________________________________________\n");

printf("|%-15s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t|%d\t|%d\t|%-10s|%d\t|%-5d|\n",p-name,p-type,p-time,p-day,p-start,p-site,p-price,p-id,p-username,p-x,p-

printf("______________________________________________________________________________________________________________________\n");

printf("【系統(tǒng)】是否取票?(Yes:1/No:0):");

scanf("%d",choice);

if(choice!=1)

{

if(choice!=0)

printf("【系統(tǒng)】輸入錯誤?。?!\n");

}

else

{

p-istake=1;

printf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論