版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 魚塘投飼機(jī)行業(yè)分析報告
- 分析寧夏枸杞行業(yè)報告
- 房屋變更普查工作方案
- 消毒滅菌實施方案范文
- 量子計算與數(shù)學(xué)方法-洞察及研究
- 蛋白質(zhì)互作網(wǎng)絡(luò)在環(huán)境適應(yīng)中的作用-洞察及研究
- 非平衡態(tài)與信息理論的交叉研究-洞察及研究
- 黎曼流形度規(guī)拓?fù)湫再|(zhì)研究-洞察及研究
- 精準(zhǔn)飼養(yǎng)模式探討-洞察及研究
- 表觀遺傳標(biāo)記物在深靜脈血栓診斷中的應(yīng)用-洞察及研究
- 清真生產(chǎn)過程管控制度
- 2026年淺二度燒傷處理
- 北京通州產(chǎn)業(yè)服務(wù)有限公司招聘考試備考題庫及答案解析
- 河北省NT名校聯(lián)合體2025-2026學(xué)年高三上學(xué)期1月月考英語(含答案)
- 2025-2026學(xué)年滬科版八年級數(shù)學(xué)上冊期末測試卷(含答案)
- 途虎養(yǎng)車安全培訓(xùn)課件
- 衛(wèi)生管理研究論文
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)二年級下冊(全冊)教學(xué)設(shè)計(附教材目錄P161)
- 委托市場調(diào)研合同范本
- 畜牧安全培訓(xùn)資料課件
- 2025年度黨支部書記述職報告
評論
0/150
提交評論