c語言賓館管理系統(tǒng)設計_第1頁
c語言賓館管理系統(tǒng)設計_第2頁
c語言賓館管理系統(tǒng)設計_第3頁
c語言賓館管理系統(tǒng)設計_第4頁
c語言賓館管理系統(tǒng)設計_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于C語言的賓館管理系統(tǒng)的設計與實現(xiàn)摘 要:賓館管理系統(tǒng)是在對賓館日常工作進行管理基礎(chǔ)上開發(fā)出來的一套系統(tǒng)。本系統(tǒng)程序主要任務是生成賓館信息的建立界面、賓館信息的添加界面、信息顯示界面、刪除界面、查詢界面等,可以根據(jù)房號,客戶姓名,性別,入住時間等來查詢信息。系統(tǒng)使用Visual C+6.0開發(fā)前臺應用程序,結(jié)合數(shù)據(jù)結(jié)構(gòu)的知識實現(xiàn)賓館日常工作的規(guī)范化、自動化。關(guān)鍵詞:賓館管理系統(tǒng);C語言;數(shù)據(jù)結(jié)構(gòu)Design and Implementation a Hotel management system based on C languageBian Yue, College of Physics

2、and Electronic InformationAbstract:Hotel management system is a set of system,which is developed by the management of hotel daliy work. This system program main task is to generate the interface of establish the hotel information, the interface of add the hotel information , the interface of display

3、 the hotel information, the interface of delete the hotel information, the interface of inquires the hotel information, and so on.it could query the hotel information according to the room number, or the customer's name, or the customers gender,or the check in time to the hotel.The Systems devel

4、oped foreground application by using Visual C+ 6.0 combined with the knowledge of the data structure to realize the hotel daily work standardizationautomation.Key words: Hotel management system; C; Data structure1 緒 論1.1賓館管理系統(tǒng)的研究背景與意義近年來,科技進步不僅促進了全球旅游企業(yè)的快速增長,而且指導了旅游者消費觀念更新,其中信息與通信技術(shù)的發(fā)展對酒店業(yè)有著深遠的影響1。傳

5、統(tǒng)的管理方式已不能滿足具有信息量及查詢量大,保存期長,要求不間斷運行等特點的賓館管理需求,重視信息技術(shù)的發(fā)展成為我國酒店業(yè)的共識。為增強競爭能力,提高管理水平,先進的賓館管理系統(tǒng)己成為必然。賓館管理系統(tǒng)可以及時了解客戶信息與需求,實現(xiàn)賓館管理信息化。通過賓館管理系統(tǒng)的實施可以逐步提高賓館的現(xiàn)代化建設,提升員工工作效率。良好的管理系統(tǒng)有利于建立服務部門的良好形象,有利于促進業(yè)務規(guī)范化標準化,有利于提高管理水平,有利于創(chuàng)造更高的經(jīng)濟效益和社會效益,使管理過程實現(xiàn)現(xiàn)代化2。1.2相關(guān)技術(shù)與開發(fā)工具介紹1.2.1 C語言介紹與VC+6.0本系統(tǒng)主要采用C語言,在VC+6.0上進行程序編譯、連接以及程序

6、運行一體化。C是中級語言,它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C語言既可以用于編寫系統(tǒng)軟件,又可以用于編寫應用軟件。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作, 而這三者是計算機最基本的工作單元。C是結(jié)構(gòu)式語言,結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,使程序?qū)哟吻逦? 便于使用、維護以及調(diào)試3。C 語言還有一個突出的優(yōu)點就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機型。Visual C+6.0是一款功能強大的可視化軟件開發(fā)工具。Visual C+6.0由微軟公司開發(fā),主要是在Windows環(huán)境中工作。Visual C+6.0由許多組件組成,包括編輯器

7、、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具4。這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。它的最大優(yōu)點就是提供了功能強大的MFC類庫,MFC是一個很大的C+類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù)。很多Windows的程序所共有的標準內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標準實現(xiàn)方法。程序員所要做的工作就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓,這將簡化編程工作,大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易5。 數(shù)據(jù)結(jié)構(gòu)簡介數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合??陀^存在

8、的一切個體都可以是數(shù)據(jù)元素。根據(jù)數(shù)據(jù)元素前后件關(guān)系的復雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)(又稱線性表)和非線性結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)可以進行數(shù)據(jù)處理如對數(shù)據(jù)進行查找、插入、刪除、合并、排序、統(tǒng)計以及簡單計算6。數(shù)據(jù)結(jié)構(gòu)有四類基本結(jié)構(gòu):集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖狀結(jié)構(gòu)(網(wǎng)狀結(jié)構(gòu))。線性表(linear list)是最簡單的數(shù)據(jù)結(jié)構(gòu),它由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素可以是簡單項(如數(shù),字母等),也可以由若干數(shù)據(jù)項組成,如在本文中,一個客戶的信息由客戶姓名,性別,房號,住入時間,房間價格等幾個數(shù)據(jù)項組成,是一個復雜的線性表。線性表可以順序存儲,也可以鏈式存儲。鏈式存儲便于插入或刪除元素。在C語言中,

9、用戶可以利用malloc(存儲區(qū)字節(jié)數(shù))函數(shù)向系統(tǒng)申請分配鏈表節(jié)點的存儲空間。該函數(shù)返回存儲區(qū)的首地址7。2 VC+6.0集成開發(fā)環(huán)境目前所用的C+集成開發(fā)環(huán)境(集成開發(fā)環(huán)境:把編輯編譯連接和執(zhí)行等步驟在一個環(huán)境中完成)功能強,使用方便。由于C+和C兼容,可以用C+集成開發(fā)環(huán)境對C程序進行編譯連接和運行8。本系統(tǒng)采用Visual C+6.0開發(fā)工具。 在Visual C+6.0主窗口的頂部是Visual C+6.0的主菜單欄,其中包含9個菜單項:File(文件) Edit(編輯)View(查看)Insert(插入)Project(工程)Build(編譯)Tools(工具)Window(窗口)H

10、elp(幫助)9。在此主要介紹以下幾點: (1)File(文件):在子菜單欄中有New(新建)Open打開)Save(保存)等幾項。首先新建一個源程序,在新建對話框中選擇C+ Source File,回到Visual C+6.0主窗口,在編輯窗口輸入程序,保存。保存時可選擇保存路徑和保存的文件名,后綴為.cpp。如果已有一個已存在的文件,可直接選擇open。備份還可以選擇“另存為(Save as)”項。在編譯新文件前,應先選擇File(文件)下的Close Workspace(關(guān)閉工作區(qū))將原有的工作區(qū)關(guān)閉,以免新文件在原有的工作區(qū)進行編譯。 (2)Build(編譯或建立):在編輯和保存了源文

11、件以后,生成的是文件擴展名為.C,不能直接運行,需要對其進行編譯,在編譯下拉菜單中選擇Compile(編譯)項。在進行編譯時,編譯系統(tǒng)可以檢查源程序中有無語法錯誤,然后在主窗口輸出編譯的信息。如果無錯,則生成目標文件.obj,如果有錯,則會指出錯誤的位置和性質(zhì),提示用戶改正錯誤。編譯后還需連接成一個可執(zhí)行文件.exe文件,同樣在Build菜單下進行。.exe文件可以通過菜單進行運行,也可以直接按Ctrl+F5鍵來實現(xiàn)程序的執(zhí)行??傊贐uild(編譯)菜單下可以將.c文件編譯成.obj文件再連接成.exe文件。若是在已保存所需要的源程序的基礎(chǔ)上進行修改完善,可以再File(文件)下選擇Open

12、(打開),之后進行需要的編輯10。3 系統(tǒng)需求分析3.1系統(tǒng)設計思路 本系統(tǒng)中主要實現(xiàn)客戶信息的建立,查找,刪除等方面功能。由主函數(shù)生成系統(tǒng)主菜單,為進入各個界面提供通道。主要為SWITCH開關(guān)語句進入不同的界面,輸入“1”進入賓館信息建立界面,輸入“2”進入信息添加界面,輸入“3”進入客戶姓名查詢界面,輸入“4”進入客戶性別查詢界面,輸入“5”進入房號查詢界面。輸入“6”進入入住時間查詢界面,輸入“7”進入客戶信息修改界面,輸入“8”進入客戶信息刪除界面,輸入“9”進入客戶信息刪除界面,輸入“0”退出系統(tǒng)。程序由C語言結(jié)合數(shù)據(jù)結(jié)構(gòu)中建立一個線性鏈表的知識編程。 圖3.1顯示的是系統(tǒng)結(jié)構(gòu)圖:主

13、菜單賓館信息的建立賓館信息的添加客戶性別的查詢客戶姓名的查詢客戶信息的修改賓館信息的刪除賓館信息的顯示退出賓館房號的查詢?nèi)胱r間的查詢 1 2 4 3 5 6 7 8 9 0圖3.1 系統(tǒng)結(jié)構(gòu)圖3.2系統(tǒng)功能分析本系統(tǒng)共做出十個界面,通過鍵盤輸入0到9十個不同的數(shù)字達到從主菜單進入功能菜單的目的,不同的數(shù)字進入的不同的界面以及完成的功能介紹如下:3.21賓館信息建立功能在主菜單輸入“1”進入“賓館信息建立界面”。此界面可建立客戶的基本信息:姓名,性別,證件號,入住時間,天數(shù),房號,押金,離開時間等,并返回主菜單。3.22賓館信息添加功能在主菜單輸入“2”進入“賓館信息添加界面”。此界面可以添加

14、客戶個數(shù)和客戶基本信息:姓名,性別,證件號,入住時間,天數(shù),房號,押金,離開時間等,并返回到菜單進行下一步。3.23客戶姓名查詢功能在主菜單輸入“3”進入“客戶姓名查詢界面”。在此界面首先根據(jù)提示輸入1表示按照姓名查找,然后輸入客戶姓名確定進行查詢客戶的基本信息并顯示出來。此功能可以方便的查詢到某一姓名的客戶的客房信息。3.24客戶性別查詢功能在主菜單輸入“4”,進入“客戶性別查詢界面”。在此界面可按客戶的性別查詢某一性別的所有客戶的基本信息,此功能可以查詢同一性別的客人信息,并比較不同性別客流量,以制定計劃增加客流量。3.25賓館房號查詢功能 在主菜單輸入“5”,進入“賓館房號查詢界面”。在

15、此界面可按已知的房號查詢客戶的基本信息,此功能可以確定某房間的住入情況,若無人則顯示沒有該房間信息,若有人住入可根據(jù)之前建立或添加的客戶信息顯示出住在該房間的客人登記信息。3.26入住時間查詢功能在主菜單輸入“6”,進入“入住時間查詢界面”。在此界面可通過大概的入住時間查詢客戶登記的基本信息,此功能可以查詢在同一天住入賓館的客人??梢员容^那一段時間人流量大。 3.27客戶信息修改功能在主菜單輸入“7”,進入“客戶信息修改界面”。在此界面先通過先前的客戶姓名查找到該客戶信息,再根據(jù)要修改的客戶姓名,修改客戶信息。此功能可以方便的對需要增加住宿時間的客戶進行維護。3.28客戶信息刪除功能在主菜單輸

16、入“8”,進入“客戶信息刪除界面”。在此界面可按客戶的姓名刪除客戶的基本信息,使用del()函數(shù),輸入客戶姓名,確定刪除按1,此功能可以將保存時間過長現(xiàn)在已不需要保留的客戶的信息刪除。3.29客戶信息顯示功能在主菜單輸入“9”,進入“客戶信息顯示界面”。在此界面可按客戶的性別查詢客戶的基本信息,此功能可以將所有客戶信息顯示在輸出界面上,工作人員可直觀觀察所有記錄信息。3.20退出界面功能 輸入0即可退出該系統(tǒng)。輕松退出界面。4 設計方案系統(tǒng)程序有五大部分:頭函數(shù),結(jié)構(gòu)體,菜單函數(shù),主函數(shù)和幾個子函數(shù)。4.1頭函數(shù)#include<stdio.h> #include<strin

17、g.h> #include<stdlib.h>#include<math.h>4.2結(jié)構(gòu)體typedef struct char name10; char sex20; char ID30; char come40; char day50; char number60; char type70; char price80; char yushou90; char yajin100; char leave110; char beizhu120;datatype;typedef struct node datatype data; struct node * next

18、; listnode; typedef listnode * linklist; linklist head; listnode * p;4.3選擇菜單函數(shù)int Menu() int i; printf(" n");printf(" n");printf(" 賓館信息系統(tǒng) n"); printf("*n");printf("*n");printf("* 1.賓館信息的創(chuàng)建 *n"); printf("* 2.賓館信息的添加 *n"); printf(&q

19、uot;* 3.客戶姓名的查詢 *n"); printf("* 4.客戶性別的查詢 *n"); printf("* 5.賓館房號的查詢 *n"); printf("* 6.入住時間的查詢 *n"); printf("* 7.客戶信息的修改 *n"); printf("* 8.賓館信息的刪除 *n");printf("* 9.賓館信息的顯示 *n");printf("* 0.退出管理系統(tǒng) *n"); printf("*n");p

20、rintf("*n");printf(" n");printf(" 請 選 擇 0-9:"); for(;) scanf("%d",&i); printf("n"); if(i<0|i>9) printf(" 輸出錯誤,重選0-9:"); else break ; return i; 4.4主函數(shù)void main() for(;) switch(Menu() case 1: printf("*賓館信息的建立*n");int i;pri

21、ntf("輸入你想輸入的數(shù)目:");scanf("%d",&i);head=Create(i); break; case 2: printf("*賓館信息的添加*n"); int a;printf("輸入你想添加的人數(shù):");scanf("%d",&a);Add(head,a); break; case 3: printf("*客戶姓名的查詢*n"); p=Find(head); if(p!=NULL) printf("姓名 性別 證件 入住 天數(shù)

22、房號 價格 押金 離開n");printf("*n"); printf("%s %s %s %s %s %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number, p->data.price, p->data.yajin,p->data.leave);printf("n");printf("*n"); else printf("該客戶信息

23、不存在!"); break; case 4:printf("*客戶性別的查詢*n"); p=Find1(head); if(p!=NULL) printf("姓名 性別 證件 入住 天數(shù) 房號 價格 押金 離開n");printf("*n"); printf("%s %s %s %s %s %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number, p->da

24、ta.price, p->data.yajin,p->data.leave);printf("n");printf("*n"); else printf("該客戶信息不存在!"); break; case 5:printf("* 賓館房號的查詢*n"); p=Find2(head); if(p!=NULL) printf("姓名 性別 證件 入住 天數(shù) 房號 價格 押金 離開n");printf("*n"); printf("%s %s %s %s %s

25、 %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number, p->data.price, p->data.yajin,p->data.leave);printf("n");printf("*n"); else printf("該房間信息不存在!"); break; case 6:printf("* 入住時間的查詢*n"); p=Find3(hea

26、d); if(p!=NULL) printf("姓名 性別 證件 入住 天數(shù) 房號 價格 押金 離開n");printf("*n"); printf("%s %s %s %s %s %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number,p->data.price, p->data.yajin,p->data.leave); printf("n");pri

27、ntf("*n"); else printf("該房間信息不存在!"); break;case 7: printf("*賓館信息的修改*n");Alter(head);break;case 8: printf("*賓館信息的刪除*n"); Delete(head); break;case 9: printf("*賓館信息的輸出*n"); List(head); break;case 0: printf("*退出*n");exit(0);圖4.1 主菜單4.5顯示界面函數(shù) 信息

28、建立界面/賓館客戶信息的建立linklist Create(int a ) linklist head=(listnode *)malloc(sizeof(listnode); listnode *p,*q; q=head; while(a-) p=(listnode *)malloc(sizeof(listnode); printf("姓名 性別 證件 入住 天數(shù) 房號 價格 押金 離開n"); scanf("%s%s%s%s%s%s%s%s%s",p->,p->data.sex,p->data.ID,p->e

29、,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave); q->next=p; q=p; q->next=NULL; return head;圖4.2 信息建立界面4.5.2信息添加界面/賓館客戶信息的添加 void Add(linklist head,int b) listnode * m,* n,* p; m=head; n=m->next; while(n->next!=NULL) m=n; n=n->next; while(b-) p=(li

30、stnode *)malloc(sizeof(listnode); printf("姓名 性別 證件 入住 天數(shù) 房號 價格 押金 離開n"); printf("*n"); scanf("%s%s%s%s%s%s%s%s%s",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave); n->next=p; n=p

31、; n->next=NULL;圖4.3 添加界面姓名查找界面/按姓名查找賓館信息 listnode * Find(linklist head) listnode *p; char name10; int i; printf("*n"); printf("*n"); printf("姓名查找,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("請輸入要查詢的姓名:"); scanf("%s",&a

32、mp;name); while(p&&strcmp(p->,name)>0) p=p->next; if(p=NULL|strcmp(p->,name)<0) p=NULL; return p; 圖4.4 姓名查詢界面4.5.4性別查找界面/按性別查找賓館信息 listnode * Find1(linklist head) listnode *p; char sex5; int i; printf("*n"); printf("*n"); printf("性別查找

33、,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("請輸入要查詢的性別:");scanf("%s",&sex);while(p&&strcmp(p->data.sex,sex)>0) p=p->next; if(p=NULL|strcmp(p->data.sex,sex)<0) p=NULL; return p; 圖4.5 性別查詢界面4.5.5房間號碼查找界面/按房間號碼查找賓館信息 list

34、node * Find2(linklist head) listnode *p;char number10;int i; printf("*n"); printf("*n"); printf("房號查找,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("請輸入要查詢的房號:"); scanf("%s",&number); while(p&&strcmp(p->data.

35、number,number)<0) p=p->next; if(p=NULL|strcmp(p->data.number,number)>0) p=NULL; return p; 圖4.6 房號查詢界面4.5.6入住時間查找界面/按入住時間查找賓館信息 listnode * Find3(linklist head) listnode *p; char come10; int i; printf("*n"); printf("*n"); printf("時間查找,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("請輸入要查詢的時間:"); scanf("%s",&come); while(p&&strcmp(p->e,come)<0) p=p->next; if(p=NULL|strcmp(p->e,come)>0) p=N

溫馨提示

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

評論

0/150

提交評論