#include<stdio.h>
#include<stdlib.h>
structcell
{
char*name;
inttime;
intseat;
intsaled;
}a,b,c,d;
intsel=0;
voidtitle();
voidsaleproc();
intsaleThread(structcell*ce,intdd);
voidtiupiaoproc();
inttiupiaoThread(structcell*ce);
voidcount();
intinit(structcell*ce,char*name,inttime,intseat)
{
ce->name=name;
ce->time=time;
ce->seat=seat;
ce->saled=0;
return1;
}
intsaleThread(structcell*ce,intdd)
{
if((ce->seat-ce->saled)>=dd)
{
->saled+=dd;
printf("售票成功!按ESC鍵返回主菜單 ");
fflush(stdin);
intcc=_getche();
return1;
}
else
{
printf("售票失敗---余票不足!按ESC鍵返回主菜單 ");
fflush(stdin);
intcc=_getche();
return0;
}
}
voidsaleproc()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*廳影片時間余票* ");
printf("** ");
printf("*A%s%d:%d%3d* ",a.name,a.time/60,a.time%60,a.seat-a.saled);
printf("** ");
printf("*B%s%d:%d%3d* ",b.name,b.time/60,b.time%60,b.seat-b.saled);
printf("** ");
printf("*C%s%d:%d%3d* ",c.name,c.time/60,c.time%60,c.seat-c.saled);
printf("** ");
printf("*D%s%d:%d%3d* ",d.name,d.time/60,d.time%60,d.seat-d.saled);
printf("** ");
printf("*********************************** ");
printf("請選擇放映廳(a,b,c,d)和要購的票數(按ESC鍵返回主菜單)(格式:a5): ");
fflush(stdin);
charcc;
intdd;
dd=_getche();
if(dd==27)
{
f=0;
break;
}
else
{
cc=(char)dd;
}
scanf("%d",&dd);
switch(cc)
{
case'a':
saleThread(&a,dd);
f=0;
break;
case'b':
saleThread(&b,dd);
f=0;
break;
case'c':
saleThread(&c,dd);
f=0;
break;
case'd':
saleThread(&d,dd);
f=0;
break;
default:
break;
}
}
title();
}
inttiupiaoThread(structcell*ce)
{
if(ce->saled==0)
{
printf("撞尼瑪鬼了老子一張票都沒賣,哪來的退票??? ");
fflush(stdin);
intcc=_getche();
return0;
}
ce->saled--;
printf("退票成功!按任意鍵返回主菜單 ");
fflush(stdin);
intcc=_getche();
return1;
}
voidtiupiaoproc()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*退票* ");
printf("** ");
printf("*A%-20s* ",a.name);
printf("** ");
printf("*B%-20s* ",b.name);
printf("** ");
printf("*C%-20s* ",c.name);
printf("** ");
printf("*D%-20s* ",d.name);
printf("** ");
printf("*********************************** ");
printf("請輸入要退的廳(a,b,c,d): ");
charcc;
fflush(stdin);
scanf("%c",&cc);
if(cc=='')
{
f=0;
break;
}
switch(cc)
{
case'a':
tiupiaoThread(&a);
f=0;
break;
case'b':
tiupiaoThread(&b);
f=0;
break;
case'c':
tiupiaoThread(&c);
f=0;
break;
case'd':
tiupiaoThread(&d);
f=0;
break;
default:
break;
}
}
title();
}
voidcountproc()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*統計* ");
printf("** ");
printf("*A廳:余票%3d上座率%5.2f%%* ",a.seat-a.saled,(((float)a.saled/(float)a.seat)*100));
printf("** ");
printf("*B廳:余票%3d上座率%5.2f%%* ",b.seat-b.saled,(((float)b.saled/(float)b.seat)*100));
printf("** ");
printf("*C廳:余票%3d上座率%5.2f%%* ",c.seat-c.saled,(((float)c.saled/(float)c.seat)*100));
printf("** ");
printf("*D廳:余票%3d上座率%5.2f%%* ",d.seat-d.saled,(((float)d.saled/(float)d.seat)*100));
printf("** ");
printf("*********************************** ");
printf("按ESC鍵返回主菜單! ");
fflush(stdin);
intcc=_getche();
if(cc==27)
{
f=0;
break;
}
}
title();
}
voidtitle()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*歡迎光臨牛B電影院* ");
printf("** ");
printf("*1.售票* ");
printf("** ");
printf("*2.退票* ");
printf("** ");
printf("*3.統計* ");
printf("** ");
printf("*4.退出* ");
printf("** ");
printf("*********************************** ");
printf("請選擇:(1,2,3,4) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case1:
saleproc();
f=0;
break;
case2:
tiupiaoproc();
f=0;
break;
case3:
countproc();
f=0;
break;
case4:
system("exit");
f=0;
break;
default:
break;
}
}
}
intmain(intargc,char*argv[])
{
init(&a,"鋼鐵俠3",18*60+30,150);
init(&b,"致青春",19*60+30,150);
init(&c,"姜戈",20*60+30,150);
init(&d,"生化危機4",20*60+20,100);
title();
return0;
}
⑵ 用C語言編寫火車售票系統
如果誰能用C語言能把這么題目就這樣順利的編出來的話,他已經是編程高手了,這太高級了
⑶ C語言 電影院售票(坐位)系統
這是我自己做的, 是用C# 實現的,,如果你的其它語言,稍做修改,應該符合你的題目:
選題的根據:1) 本選題的理論、實際意義
2) 綜述國內外有關本選題的研究動態和自己的見解
1) 本選題的理論、實際意義
影院售票系統是計算機技術與影院管理相結合的產物,通過影院售票系統實現了對影院的高效
管理。隨著計算機技術的不斷提高,計算機已經深入到社會生活的各個角落.而採用人工售票的方
法,不僅效率低,易出錯,手續繁瑣,而且耗費大量人力。為了滿足售票人員對售票,訂票,退
票等進行高效的管理,在工作人員的具備一定的計算機操作能力的前提下,特編此影院售票系統
軟體以提高影院的管理效率。
2) 綜述國內外有關本選題的研究動態和自己的見解
面對全球方興未艾的影院觀看熱潮,國內外對影院觀看的視覺需求,以及其規模的優勢,其獨有的互動效果和場內氣氛贏得了越來越多的人心。
國外研究動態
1829年,比利時著名物理學家約瑟夫普拉多發現:當一個物體在人的眼前消失後,該物體的形象 還
會在人的視網膜上滯留一段時間,這一發現,被稱之為「視象暫留原理」。普拉多根據此原理於1832
年發明了「詭盤」。「詭盤」能使被描畫在鋸齒形的硬紙盤上的畫片因運動而活動起來,而且能使視
覺上產生的活動畫面分解為各種不同的形象。「詭盤」的出現,標志著電影的發明進入到了科學實驗
階段。1834年,美國人霍爾納的「活動視盤」試驗成功;1853年,奧地利的馮烏卻梯奧斯將軍在上
述的發明基礎上,運用幻燈,放映了原始的動畫片。
國內研究動態
1979年10月電影事業獲得發展,鄧小平同志代表黨中央肯定了文化大革命前17年的文藝路線基本
是正確的,總結了歷史的經驗教訓,糾正了過去提出的「文藝服從政治 、文藝從屬政治」的偏頗提法 ,
重申執行雙百方針。1977年電影生產開始復甦,1980~1984年平均年產量達120部左右,每年觀眾
人次平均在250億左右,中國電影進入一個蓬勃發展的新時期。中國美術片從形式到內容都極富有民族風格和特色。中華人民共和國建立以後,美術片是中國影片在國際上獲獎最多的一個片種。新聞紀錄片已向縱深發展,充分利用豐富的資料,系統地編輯一些重要的文獻片,並對群眾普遍關心的問題與重要事件進行綜合報道、專題報道;還注意表現人物和人物的精神世界,抓住真人真事中豐富的細節,以情動人。
主要內容:
1) 項目規劃
完成一個完整的影院售票系統,分為影院內部管理和網路服務2個系統,影院內部管理子系統主要實現影院售票員對影院的售票功能,網路服務實現網上查詢瀏覽約定電影院功能。這些功能可以分為以下二部個部分:前台管理,,後台管理
前台現場售票:電影名稱,票價,票價打折,售票,座位,列印票,結帳
後台管理模塊: 管理員主要用於電影類型管理:添加電影種類,介紹,票價,放映場次,放映時間,放映大廳,近幾日放映訂劃管理。具體的功能可以分為以下幾個部分:
影院介紹
預訂電影
2) 系統功能結構圖
研究方法:
廣泛查閱、收集論文資料和研究資源,了解以及參考國內外對影院售票系統的研究成果;研究已存在的影院售票系統,學習他人的設計思想和方法,並在導師的指導下,利用在大學所學的一些軟體開發知識完成該系統。本系統後台資料庫採用目前最新的Microsoft SQL Server 2005,該資料庫系統在安全性、准確性和運行速度方面有絕對的優勢,並且處理數據量大、效率高;前台採用Microsoft 公司的Visual Studio 2005 作為主要的開發工具,其可與 SQL Server 2005資料庫無縫連接。
完成期限和採取的主要措施:
1) 完成期限
階段 階 段 內 容 起止時間
一 准備階段:閱讀搜集相關資料,搭建工作環境,制定設計方案,開題; 10.2.16—10.2.22
二 需求分析、系統設計階段:各模塊功能的設計,資料庫的設計,系統文件夾的設計; 10.2.23—10.2.28
三 網站系統的開發與實現; 10.3.01—10.04.08
四 系統聯調及測試階段:完成各模塊的集成測試,與管理子系統集成,進行聯調和測試,編寫論文。 10.4.10—10.04.30
五 編寫並提交畢業設計論文、設計源文件、源代碼,參加畢業設計答辯。 10.5.01—10.05.20
2) 採取的主要措施
在開發本系統時,系統的界面設計和內核設計使用Visual Studio 2005進行開發,主要措施如下:
使用母版頁構建網站的整體風格
主題的應用
使用存儲過程實現站內模糊查詢
使用哈希表和Session對象實現購物功能
Free TextBox組件的配置使用
主要參考文獻:
[1] 梅曉冬,顏燁青. Visual C#網路編程技術與實踐 [M]. 北京: 清華大學出版社
[2] 劉瑞新 C#網路編程及應用 機械工業出版社
[3] 王平 柴晟 C#程序設計語言任務驅動式教程 北京航空航天大學出版社
[4] 武馬群 SQL Server 2000 資料庫基礎與應用
[5] Christian Nagel. C#高級編程(第6版) [M]. 北京: 清華大學出版社
[6] [美]麥克金,赫特克. SQL Server 2005資料庫伺服器架構設計[M]. 北京: 清華大學出版社
[7] 張躍廷,顧彥玲. ASP.NET 從入門到精通[M]. 北京: 清華大學出版社
[8] 王宏編 C#程序設計案例教程 清華大學出版社
[9] 劉冰 軟體工程實踐教程 機械工程出版社
[10]馬丁. 敏捷軟體開發:原則、模式與實踐(C#版)[M]. 北京: 人民郵電出版社
⑷ 用C語言來編寫:商品銷售統計程序
#include<iostream>
#include<cstring>
#include<fstream>
#include<stdlib.h>//system("cls")//清屏
#include<conio.h>//getche()
using namespace std;
//全局變數
int i=0;//已錄入商品總個數
char ch;//cin>>ch
int n;//case(n)
char code[10];
char name[10];
char unit[10];
int amount;
float unitprice;
float total=0;//總價
ofstream f1("./test.txt");
ofstream f2("./sell.txt");//構建輸出流,沒有文件就建立
class Goods
{
private:
char code[10];//代碼
char name[10];//名稱
char unit[10];//單位
int amount;//總數
float unitprice;//單價
public:
Goods();
Goods(char co[10],char na[10],char un[10],int am,float unpr);//構造函數
void f_write();// 錄入
void f_change();//改變
void f_delete();//刪除
void display();//顯示全部商品信息
void s_buy();//買入
};
//構造函數
Goods::Goods(){}
Goods::Goods(char co[10],char na[10],char un[10],int am,float unpr)
{
strcpy(code,co);
strcpy(name,na);
strcpy(unit,un);
amount=am;
unitprice=unpr;
}
Goods *g[50];
//商品信息錄入
void Goods::f_write()
{
cout<<"請輸入第"<<i+1<<"件商品代碼:"<<endl;
cin>>code;
cout<<"請輸入第"<<i+1<<"件商品名稱:"<<endl;
cin>>name;
cout<<"請輸入第"<<i+1<<"件商品計量單位:"<<endl;
cin>>unit;
cout<<"請輸入第"<<i+1<<"件商品總數:"<<endl;
cin>>amount;
cout<<"請輸入第"<<i+1<<"件商品單價:"<<endl;
cin>>unitprice;
g[i]=new Goods(code,name,unit,amount,unitprice);
i++;
cout<<"信息錄入成功!(繼續錄入按y,返回上一層按n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_write();
}
}
//改變商品信息
void Goods::f_change()
{
cout<<"請輸入要改變的商品代碼:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"商品信息如下:"<<endl;
cout<<"代碼 名稱 單價 總數 單位"<<endl;
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<"\t"<<g[h]->unit<<endl;
char newco,newna,newun;
int newam;
float newunpr;
cout<<"你想要修改:1、代碼;2、名稱;3、單價;4、總數;5、單位。"<<endl;
cin>>n;
switch(n)
{
case 1:
cout<<"請輸入修改後的商品代碼:";
cin>>newco;
g[h]->code[10]=newco;
cout<<"修改成功!"<<endl;
break;
case 2:
cout<<"請輸入修改後的商品名稱:";
cin>>newna;
g[h]->name[10]=newna;
cout<<"修改成功!"<<endl;
break;
case 3:
cout<<"請輸入商品單價:";
cin>>newunpr;
g[h]->unitprice=newunpr;
cout<<"修改成功!"<<endl;
break;
case 4:
cout<<"請輸入修改後的商品總數:";
cin>>newam;
g[h]->amount=newam;
cout<<"修改成功!"<<endl;
break;
case 5:
cout<<"請輸入修改後的商品單位:";
cin>>newun;
g[h]->unit[10]=newun;
cout<<"修改成功!"<<endl;
break;
}
break;
}//if
}//for循環
cout<<"是否繼續修改?(y/n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_change();
}
}
//刪除信息
void Goods::f_delete()
{
cout<<"請輸入要刪除的商品代碼:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
for(int k=h;k<i;k++)
{
g[k]=g[k+1];
i--;
}
}
}
cout<<"刪除成功!"<<endl;
cout<<"是否繼續刪除?(y/n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_delete();
}
}
//列印信息
void Goods::display()
{
system("cls");
cout<<" "<<endl;
cout<<"-----------全部商品信息如下-------------------"<<endl;
cout<<" "<<endl;
cout<<"代碼 名稱 單價 總數 單位"<<endl;
f1<<" "<<endl;
f1<<"---------------全部商品信息如下--------------"<<endl;
f1<<" "<<endl;
f1<<"代碼 名稱 單價 總數 單位"<<endl;
if(i==0)
{
cout<<"系統未曾錄入任何商品信息,或記錄被刪除!";
}
for(int k=0;k<i;k++)
{
cout<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl;
f1<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl;
}
cout<<endl;
}
//買入
void Goods::s_buy()
{
float price=0;//單個商品價格
cout<<"請輸入想要買的商品代碼:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"請輸入想要購買的商品數量:";
cin>>amount;//當前要購買的數量
price=amount*g[h]->unitprice;
g[h]->amount=g[h]->amount-amount;
cout<<endl;
cout<<"代碼 名稱 單價 數量 小計"<<endl;
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl;
f2<<"代碼 名稱 單價 數量 小計"<<endl;
f2<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl;
total=total+price;
break;
}
}
cout<<"按1繼續購買,按2結束。"<<endl;
cin>>n;
if(n==2)
{
cout<<endl;
cout<<"購買結束,總計:"<<total<<"元!"<<endl;
}
else
{
s_buy();
}
}
//類外函數
//第一部分操作顯示
void f_screen()
{
system("cls");
Goods g;
cout<<"按相應鍵操作:"<<endl;
cout<<"0.錄入信息 1.更改信息 2.刪除信息 3.返回上一層"<<endl;
cin>>n;
switch(n)
{
case 0:
g.f_write();
if(ch=='n'||ch=='N')
f_screen();
break;
case 1:
g.f_change();
if(ch=='n'||ch=='N')
f_screen();
break;
case 2:
g.f_delete();
if(ch=='n'||ch=='N')
f_screen();
break;
}
}
//第二部分操作顯示
void s_screen()
{
Goods g;
g.display();
cout<<endl;
g.s_buy();
}
//初始屏幕顯示
void screen()
{
system("cls");
cout<<" "<<endl;
cout<<"-----------------商品銷售統計系統---------------"<<endl;
cout<<" "<<endl;
f2<<" "<<endl;
f2<<"----------------商品銷售統計系統--------------"<<endl;
f2<<" "<<endl;
cout<<"更改商品信息請按1,進行銷售統計請按-1。"<<endl;
cin>>ch;
if(ch=='1')
{
f_screen();
if(n==3)
screen();
}
else if(ch=='-1')
{
s_screen();
}
else
{
cout<<"輸入錯誤,系統重新啟動!";
screen();
}
}
int main()
{
screen();
return 0;
}