c语言酒店管理程序设计报告

c语言酒店管理程序设计报告
c语言酒店管理程序设计报告

+

C语言设计报告

院系:机械与电子工程系

专业:电子信息工程

班级:1430401

学号:201230040110

姓名:胡强亚

指导老师:胡文龙

摘要

随着个人计算机的的普及,越来越多的重复性工作被交由计算机来完成。在这种大趋势下,传统的纸质档案管理方式已不适应现代服务业的发展。数字化的管理成为酒店等行业的必要条件。酒店客房管理的电脑化对于优化员工工作效率、降低成本及改善服务质量等方面都有十分积极的作用。

本程序是用于酒店客房管理的软件。它可以实现定退房业务处理,用户信息的记录、查询及房间状态管理等功能。虽然比较简陋但已具备应用程序的雏形。

本程序运用Microsoft Visual C++编译器编写,涉及C语言的文件读写,结构数组运用及字符串函数相关知识。

关键词:数字化管理酒店管理系统C语言

课程设计任务书

目录

摘要 (1)

1软件需求分析说明书 (4)

1.1登记入住系统 (4)

1.2客房状态查询 (4)

1.3住户信息查询 (4)

1.4结账退房系统 (4)

2 系统分析与设计 (5)

2.1软件界面设计 (5)

2.2软件的数据(结构)设计 (9)

2.3软件的算法设计 (10)

2.3.1软件模块图 (10)

2.3.2程序流程图 (10)

3 软件的实现 (11)

3.1使用的结构数组及函数的定义 (12)

3.2登记入住模块 (12)

3.3查询房间模块 (15)

3.4查询房客模块 (16)

4 软件测试 (20)

5软件使用说明书 (22)

1软件需求分析说明书

1.1登记入住系统

登记并记录顾客姓名

登记并记录顾客的证件号码

显示现有空置房间

选择所需要的房间并更改房间状态信息

由于本软件针对操作员设计,所以界面应尽可能简单明了。住房及顾客信息由于涉及多种类型的数据,因此应用结构数组处理。用文件记录相关数据。

1.2客房状态查询

分别显示已入住客房与空置客房

读取住房信息文件的内容并判断分类,借此可以清晰明了的显示客房状态。

1.3住户信息查询

查询顾客所租房房号

查询顾客住房费用

顾客可以通过输入自己的姓名来查询个人的住房信息。

1.4结账退房系统

退房

更新所退房间状态

删除退房用户记录

显示账单

顾客可以输入姓名来完成退房操作,房间状态将更改为未入住。系统将删除该用户信息记录并读取生成账单。

2 系统分析与设计

2.1软件界面设计

运行程序后进入主界面,可以进行登记入住、查询房间、查询顾客、退出程序等几项操作:

图2.1.1

选择“1.登记入住”进入登记入住界面:

图2.1.2

输入相关信息,之后选择计费类型:

图2.1.3

选择“1.按天入住”按天数计费,会显示目前空置的房间。输入所选房间已进行下一步操作:

图2.1.4

如选择“2.按小时入住”则按小时计费,操作同理。

图2.1.5

之后会进入下一界面并提示登记成功。

图2.1.6

如在主界面选择“2.查询房间的入住情况”则会进入查询房间状况界面,程序将分别依次显示已入住的房间和空置房间。

图2.1.7

如在主界面选择“3.查询当前费用”则会进入用户查询界面,输入顾客姓名即可进行查询

图2.1.8

程序会显示该客人的相关信息

图2.1.9

如在主界面选择“4.结账退房”则会进入用户退房界面,输入顾客姓名即可进行退房操作

图2.1.10

输入成功后会显示退房成功。

图2.1.11

在主界面选择“5.退出程序”会进入退出界面。

图2.1.12

2.2软件的数据(结构)设计

本软件运用了C语言文件的读取与写入功能,各文件的作用如下:count.txt:用于存储房客数量,内部存储一个int*数据。

room.txt:用于存储房间信息,内部依次存储:

房间状态char*(1位)房间号char*(4位)房间类型char*(1位)房间描述char*(6位)房间日租金int* 房间月租金int*。

customer.txt:用于存储房客信息,内部依次存储:

姓名char* 证件类型char* 证件号码int* 房间号char*(4位)房租int* 押金int*

2.3软件的算法设计

2.3.1软件模块图

2.3.2程序流程图

登记入住模块:

客房查询模块:

结账退房模块:

3 软件的实现

3.1使用的结构数组及函数的定义

结构体定义:

typedef struct room //客房信息

{

char FID[5];//房间号

char type[2];//客房类型

char describe[7];//该客房类型的描述

int cost_d;//日收费

int cost_h;//时收费

char statu[2]; //入住情况

}room;

typedef struct customer //入住记录

{

char FID[5]; //房间号

char name[20];//名字

char type[14];//证件类型

int ID;//证件号

int pay;//房费

int cp; //押金

}customer;

函数定义:

void rent(room *p);//登记入住模块

void search_room(room *p);//客房查询模块

void search_customer(room *p, int l);//费用查询模块void pay(room *p, int l);//结账模块

3.2登记入住模块

源文件:

void rent(room *p)

{

int i,count,n,m=2;

struct room rm[max]={0};//定义结构数组

struct customer cs;

char search[2]={'Y'},stu[2]={'N'},dill[5]={0};

FILE *fpin,*fpout;

fpout=fopen("customer.txt","a");

assert(fpout != NULL);

printf("请输入姓名:");

scanf("%s",&https://www.360docs.net/doc/4014337201.html,);

fprintf(fpout,"%s ",https://www.360docs.net/doc/4014337201.html,);

printf("请填入证件类型:");

scanf("%s",&cs.type);

fprintf(fpout,"%s ",cs.type);

printf("请输入证件号码:");

scanf("%d",&cs.ID);

fprintf(fpout,"%d ",cs.ID);

printf("请选择入住方式:\n1.按天入住\n2.按小时入住\n");

scanf("%d",&count);

fpin = fopen("room.txt","r+");

assert(fpin != NULL);

printf("以下是现有的空房\n");

for(i=0;i

{

fscanf(fpin,"%s ",rm[i].statu);

fscanf(fpin,"%s ",rm[i].FID);

fscanf(fpin,"%s ",rm[i].type);

fscanf(fpin,"%s ",rm[i].describe);

fscanf(fpin,"%d ",&rm[i].cost_d);

fscanf(fpin,"%d ",&rm[i].cost_h);

}

fclose(fpin);

for(i=0;i

{

if(strcmp(search,rm[i].statu)==0)

{

printf("%s号%s型%s日收费:%d时收费:%d\n",rm[i].FID,rm[i].type,rm[i].describe,rm[i].cost_d,r m[i].cost_h);

}

}

printf("请输入要入住的房屋");

scanf("%s",&dill);

for(i=0;i

{

if(strcmp(dill,rm[i].FID)==0)//所选房间号与房间数据对比

{

strcpy(rm[i].statu,stu); //更改数组中的房间状态

fprintf(fpout,"%s ",rm[i].FID);

if(count==1)

{

printf("请选择天数:");

scanf("%d",&n);

fprintf(fpout,"%d ",rm[i].cost_d*n);

fprintf(fpout,"%d ",rm[i].cost_d*n*m);

system("cls");

printf("\004已成功登记房间!\n");

printf("\004您的房号为:%s\n",rm[i].FID);

printf("\004请支付%d元的房费以及押金%d元。\n",rm[i].cost_d*n,rm[i].cost_d*n*m);

}

else

{

printf("请选择小时数:");

scanf("%d",&n);

fprintf(fpout,"%d ",rm[i].cost_h*n);

fprintf(fpout,"%d ",rm[i].cost_h*n*m);

system("cls");

printf("\004已成功登记房间!\n");

printf("\004您的房号为:%s\n",rm[i].FID);

printf("\004请支付%d元的房费以及押金%d元。\n",rm[i].cost_h*n,rm[i].cost_h*n*m);

}

}

}

fpin=fopen("room.txt","w");

for(i=0;i

{

fprintf(fpin,"%s ",rm[i].statu);

fprintf(fpin,"%s ",rm[i].FID);

fprintf(fpin,"%s ",rm[i].type);

fprintf(fpin,"%s ",rm[i].describe);

fprintf(fpin,"%d ",rm[i].cost_d);

fprintf(fpin,"%d\n",rm[i].cost_h);

}

fclose(fpout);

fclose(fpin);

}

3.3查询房间模块

void search_room(room *p)

{

int i,h,k;

struct room rm[max]={0};

char search[2]={'Y'};

FILE *fpin;

fpin = fopen("room.txt","r");

assert(fpin != NULL);

for(i=0;i

录入房间信息

{

fscanf(fpin,"%s ",rm[i].statu);

fscanf(fpin,"%s ",rm[i].FID);

fscanf(fpin,"%s ",rm[i].type);

fscanf(fpin,"%s ",&rm[i].describe);

fscanf(fpin,"%d ",&rm[i].cost_d);

fscanf(fpin,"%d ",&rm[i].cost_h);

}

printf("目前的空置房间有:\n");//查询空客房

for(h=0;h

{

if(strcmp(search,rm[h].statu)==0)

printf("%s 号%s 型房间\n",rm[h].FID,rm[h].type);

}

printf("有顾客入住的房间:\n");//查询满客房

for(k=0;k

{

if(strcmp(search,rm[k].statu)!=0)

printf("%s 号%s 型房间\n",rm[k].FID,rm[k].type);

}

fclose(fpin);

}

3.4查询房客模块

void search_customer(room *p,int l)// 参数l的值即为主函数所读取的客人数量

{

char name[20];

int a;

int i;

struct customer cs[20]={0};

FILE *fpin,*fp1;

printf("请输入要查询的用户姓名:");

scanf("%s",&name);

fpin=fopen("customer.txt","r");

assert(fpin != NULL);

fp1=fopen("count.txt","r");

assert(fp1 != NULL);

for(i=0;i

{

fscanf(fpin,"%s ",&cs[i].name);

fscanf(fpin,"%s ",&cs[i].type);

fscanf(fpin,"%d ",&cs[i].ID);

fscanf(fpin,"%s ",&cs[i].FID);

fscanf(fpin,"%d",&cs[i].pay);

fscanf(fpin,"%d",&cs[i].cp);

}

for(a=0;a

{

if(strcmp(name,cs[a].name)==0) //比较与所输入字符串与是否一致

{

printf("%s ",cs[a].name);

printf("%s ",cs[a].type);

printf("%d ",cs[a].ID);

printf("%s ",cs[a].FID);

printf("%d ",cs[a].pay);

printf("%d\n",cs[a].cp);

}

}

fclose(fpin);

fclose(fp1);

}

3.5结账退房模块

void pay(room *p, int l)

{

int i,j;

char name[20];

char FID[5];

char stu[2]={'Y'};

struct room rm[max]={0};

struct customer cs[20]={0};

FILE *fp1,*fp2;

printf("请输入客人姓名:");

scanf("%s",&name);

fp1=fopen("room.txt","r");

assert(fp1);

fp2=fopen("customer.txt","r");

assert(fp2);

for(i=0;i

{

fscanf(fp1,"%s ",&rm[i].statu);

fscanf(fp1,"%s ",&rm[i].FID);

fscanf(fp1,"%s ",&rm[i].type);

fscanf(fp1,"%s ",&rm[i].describe);

fscanf(fp1,"%d ",&rm[i].cost_d);

fscanf(fp1,"%d ",&rm[i].cost_h);

}

fclose(fp1);

for(j=0;j

{

fscanf(fp2,"%s ",&cs[j].name);

fscanf(fp2,"%s ",&cs[j].type);

fscanf(fp2,"%d ",&cs[j].ID);

fscanf(fp2,"%s ",&cs[j].FID);

fscanf(fp2,"%d",&cs[j].pay);

fscanf(fp2,"%d",&cs[j].cp);

}

fclose(fp2);

for(j=0;j

{

if(strcmp(name, cs[j].name) == 0)

{

strcpy(FID,cs[j].FID);

for(;j

{

cs[j] = cs[j+1]; //为数组重新赋值以完成删除操作

}

}

}

fp2=fopen("customer.txt","w");

assert(fp2);

for(j=0;j

{

printf("%s ",cs[j].name);

printf("%s ",cs[j].type);

printf("%d ",cs[j].ID);

printf("%s ",cs[j].FID);

printf("%d ",cs[j].pay);

printf("%d\n",cs[j].cp);

}

for(j=0;j

{

fprintf(fp2,"%s ",cs[j].name);

fprintf(fp2,"%s ",cs[j].type);

fprintf(fp2,"%d ",cs[j].ID);

fprintf(fp2,"%s ",cs[j].FID);

fprintf(fp2,"%d ",cs[j].pay);

fprintf(fp2,"%d\n",cs[j].cp);

}

fclose(fp2);

for(i=0;i

{

if(strcmp(FID, rm[i].FID) == 0)

{

strcpy(rm[i].statu,stu);

}

}

fp1=fopen("room.txt","w"); //打开并清空文件

assert(fp1);

for(i=0;i

{

fprintf(fp1,"%s ",rm[i].statu);

fprintf(fp1,"%s ",rm[i].FID);

fprintf(fp1,"%s ",rm[i].type);

fprintf(fp1,"%s ",rm[i].describe);

fprintf(fp1,"%d ",rm[i].cost_d);

fprintf(fp1,"%d\n",rm[i].cost_h);

}

fclose(fp1);

}

4 软件测试

1、 void rent(room *p)//登记入住函数

用例:input: room a[20] output: 请输入姓名

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

汇编语言程序设计报告

实验一: 一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4. 掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上 三、实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。 源程序清单: 实验1.asm 实验1.obj 实验1.exe code segment assume cs:code start: mov ah,1 int 21h mov ah,4ch int 21h code ends end start 实验二:编写程序,显示一个字符Q 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。 源程序清单: 实验2.asm 实验2.obj 实验2.exe code segment assume cs:code start: mov ah,02 mov dl,'Q' int 21h mov ah,4ch int 21h code ends end start 实验三:编写程序,在屏幕上显示输出“I love DOTA” 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 考察通过调用(INT 21H)表中的0ah号功能显示输出字符串 三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。 源程序清单: 实验3.asm 实验3.obj 实验3.exe data segment buf db 'I love DOTA.$'

酒店管理系统代码C语言版

#i n c l u d e<> #include <> #include <> oomNumber = 301+i; memset(roomArray[i].nameOne,0,20); memset(roomArray[i].nameTwo,0,20); roomArray[i].sexOne = 0; roomArray[i].sexTwo = 0; roomArray[i].Count = 0; } } void fun1() ount == 2) { continue; } else if(roomArray[i].Count == 1) { if(roomArray[i].sexOne != sex) { continue; } strcpy(roomArray[i].nameTwo,name);

roomArray[i].sexTwo = sex; roomArray[i].Count++; system("cls"); printf("客人已经成功入住,在房间%d",roomArray[i].roomNumber); return;; } else { strcpy(roomArray[i].nameOne,name); roomArray[i].sexOne = sex; roomArray[i].Count++; system("cls"); printf("客人已经成功入住,在房间%d",roomArray[i].roomNumber); return;; } } printf("无法入住,房间已经住满或者是没有适合的房间"); } void fun2() ameOne,name) == 0) {

酒店管理系统代码(C语言版)

#include #include #include //房间信息结构体 struct Node { int Count; //指示该房间有多少个房客 char nameOne[20]; //房客1的名字 char nameTwo[20]; //房客2的名字 int sexOne; //房客1的性别-1代表女,0代表没有,1代表男int sexTwo; //房客2的性别 int roomNumber; //房间号 }roomArray[5]; //初始化房间数组 void InitArray() { int i; for(i=0;i<5;i++) { roomArray[i].roomNumber = 301+i; memset(roomArray[i].nameOne,0,20); memset(roomArray[i].nameTwo,0,20); roomArray[i].sexOne = 0; roomArray[i].sexTwo = 0; roomArray[i].Count = 0; } } void fun1() //旅客入住的操作 { char name[20]; int sex; int i; printf("\n输入入住旅客姓名和性别(空格隔开,1为男,-1为女):"); scanf("%s %d",name,&sex); for(i=0;i<5;i++) {

{ continue; } else if(roomArray[i].Count == 1) { if(roomArray[i].sexOne != sex) { continue; } strcpy(roomArray[i].nameTwo,name); roomArray[i].sexTwo = sex; roomArray[i].Count++; system("cls"); printf("客人已经成功入住,在房间%d",roomArray[i].roomNumber); return;; } else { strcpy(roomArray[i].nameOne,name); roomArray[i].sexOne = sex; roomArray[i].Count++; system("cls"); printf("客人已经成功入住,在房间%d",roomArray[i].roomNumber); return;; } } printf("无法入住,房间已经住满或者是没有适合的房间"); } void fun2() //退房操作 { int i; char name[20]; printf("请输入要退房旅客的姓名:"); scanf("%s",name); for(i=0;i<5;i++) { if(strcmp(roomArray[i].nameOne,name) == 0) { memset(roomArray[i].nameOne,0,20);

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

【报告】汇编语言程序设计报告

【关键字】报告 汇编语言程序设计报告 计算机学院 2011/6/7 题目要求 分支程序设计: 1、编写程序,键入学生成绩(百分制),按A、B、C、D显示在屏幕上。 子程序设计: 2、给定一个数组存放5个小写字母,用地址表传递方法编写子程序,将其 转换成大写字母,并显示在屏幕上。 循环程序设计: 3、设有一段文字,编写一段程序查找字母a出现的次数,并显示在屏幕上。 DOS功能调用: 4、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。 5、编写一个生成ASCII码表的程序,并显示在屏幕上。 6、根据提示输入任意年份,编写判断闰年的程序,如果是闰年, 则在屏幕上显示“Y”,否则显示“N”。 7、显示杨辉三角形。要求: (1)从键盘接收正整数n; (2)屏幕显示杨辉三角形,显示n行信息; 编程思路: 1. 在数据段设置提示信息,成绩ABCD的显示信息,并预留空间。 利用DOS中断,取得输入的字符,输入字符的ASCII值在30H-39H之间为‘0-9’,不是则报错,值存入SCORE中,将SCORE的高位分别与9,8,7,6相比, 跳转到设置好的代码区,输出对应成绩(A,B,C,D).若为3位数,则跳到A区,输出A. 2. 在数据段设置ADDRESS存放数据偏移量和COUNT计数器 利用DOS中断,取得输入的字符串存入DX中,偏移量存入STRING,并存入ADDRESS中。COUNT存入ADDRESS+2地址中,调用子程序TURN,利用SI指针与ADDRESS配合将每个字母由大写转为小写。 3. 在数据段设置STRING用于存放键盘输入字符,COUNT存放字符个数,利用DOS中断,输入字符串存入STRING.编写CHECK模块用于检查输入的字符是否为a,循环执行CHECK模块,为a 则BL+1,不为a,SI+1继续检查,直至CX=0,最后输出结果。 4. 堆栈段预留128字节空间存放*.设置SI控制空格数,BX为输出*个数.设置3层循环,分别输出空格数,*数,回车.首先将保护CX行数,将其压入栈中,外层循环按CX列数,输出每行之前的空格数,之后根据BX输出*,此时一行输入完,输出回车换行后,BX+2即*数+2, CX出栈,加入外循环,输出下一行信息。 5. 初始化时设置行列数,第一个字符的ASCII值,设置两层循环,首先CX入栈保护输出行数,外层循环控制输出行数,内循环输出列个数对应的字符数,将要输入的字符存入DL,每输出完一次DL+1,SI值即列数给CX,当CX=0时,输出回车换行,CX出栈,加入外循环准备下

酒店管理系统代码c语言版)

#i n c l u d e #include #include //房间信息结构体 struct Node { int Count; //指示该房间有多少个房客 char nameOne[20]; //房客1的名字 char nameTwo[20]; //房客2的名字 int sexOne; //房客1的性别 -1代表女,0代表没有,1代表男 int sexTwo; //房客2的性别 int roomNumber; //房间号 }roomArray[5]; //初始化房间数组 void InitArray() { int i; for(i=0;i<5;i++) { roomArray[i].roomNumber = 301+i; memset(roomArray[i].nameOne,0,20);

memset(roomArray[i].nameTwo,0,20); roomArray[i].sexOne = 0; roomArray[i].sexTwo = 0; roomArray[i].Count = 0; } } void fun1() //旅客入住的操作 { char name[20]; int sex; int i; printf("\n输入入住旅客姓名和性别(空格隔开,1为男,-1为女):"); scanf("%s %d",name,&sex); for(i=0;i<5;i++) { if(roomArray[i].Count == 2) { continue; } else if(roomArray[i].Count == 1) { if(roomArray[i].sexOne != sex)

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H +

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

基于C语言的酒店管理系统论文

2012届C语言课程设计题目:酒店管理系统 院(系)别 专业 班级 学号 姓名 指导教师 二○一三年六月 - 1 -

原创声明 本人***郑重声明:所呈交的论文“酒店管理系统”,是本人在导师**的指导下开展研究工作所取得的成果。除文中特别加以标注和致谢的地方外,论文中不包含任何其他个人或集体已经发表或撰写过的研究成果,对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明,本人完全意识到本声明的法律后果,尊重知识产权,并愿为此承担一切法律责任。 论文作者(签字): 日期:年月日 - 2 -

摘要 近年来,随着旅游业的发展,对酒店的需求也日益增大,这就要求酒店必须提高服务质量和服务水平。所以酒店就必须有一个完整安全的管理系统,从而更好的管理酒店,提高工作效率,减轻工作人员负担。本系统是基于C语言的基础而设计开发的,能帮助酒店更好的实现对客房的管理。 论文先研究了酒店管理系统要实现的全部功能,整体确定了各个功能的部分代码,然后重点进行的是对系统登陆界面和系统入口的设计。整体引用了大量的结构体指针和结构体数组,对系统入口则采用switch语句实现多分支选择结构。 通过使用该管理系统,能够快速而准确的实现对酒店客房的管理,从而使酒店的服务质量提高,为酒店树立良好的形象树立基础。 关键词:酒店管理系统,C语言,系统登陆,系统入口 - 3 -

目录 前言 (1) 1 系统设计 (2) 1.1系统设计目的和意义 (2) 1.1.1 目的 (2) 1.1.2 意义 (2) 1.2系统实现的功能 (2) 1.2.1 系统登录界面 (2) 1.2.2 系统入口 (2) 1.3 系统设计 (2) 1.3.1 设计原则 (2) 1.3.2 设计原理 (3) 1.3.3 设计步骤 (3) 2 系统分析 (5) 2.1 系统的可行性分析 (5) 2.1.1 技术可行性 (5) 2.1.2 经济可行性 (5) 2.1.3 社会因素可行性 (5) 2.2 系统的功能分析 (5) 2.2.1 系统初始设置 (5) 2.2.2 系统登录界面 (5) 2.2.3 系统入口 (6) 结论 (8) 致谢 (9) 参考文献 (10) 附录 (11) - 4 - - 4 -

C语言实验报告-酒店管理系统

武汉科技大学 C语言程序设计 课程设计 题目酒店管理系统 班级信息与计算科学2班姓名陈诚 学号201407119043 成绩 2015年6 月23 日

一、总体设计 1、程序的总体设计 (1)程序总体设计思路: 酒店房间登记管理系统,实现的是房间登记与管理(包括登记入住、查询)为了体现模块化设计,把所有要实现的功能做成函数,采用分步实施的方法逐步细化。具体分布实施有以下5步。 1,编写模块 2,定义实现个功能模块所要函数 3,编写各个函数 4,理清思路,逐步修改 5,调试整个程序。 核心部分是各个函数: 1、欢迎界面函数:通过switch进入不同界面。 2、登记入住函数:使用户在入住前登记个人信息,选择房间信息 3、查询入住情况函数:顾客可通过两种方式查找到自己的个人信息。 4、查询当前费用函数:顾客可随时查询所用费用 5、结账退房函数:所有信息清零。 2、数据结构 此系统,选择用结构体存放不同类型的数据,房间信息。在这过程中由于对指针的运用与操作还不熟练,不方便修改,所以没用指针。 (1)创建房间信息结构体 /*结构体hotel 房间号、房间种类、客户姓名、身份证号、入住状态、实际收房费,押金等*/ struct hotel { int num; /*房间号*/ int kind; /*房间种类1(表示单人间)2(表示双人间)*/ char name[20]; /*姓名*/ char ID[19]; /*身份证号*/ int flag; /*flag 0(表示有人入住)0(表示无人入住)*/ int dingjia; /*房间定价*/ int shiji; /*实际缴纳费用*/ }room[M]; 3、函数原型声明 void welcome(); //主界面 int dengji(); //登记入住函数 int now_room(); //查询当前房间入住情况 int now_feiyong(); //查询当前费用 int tuifang(); //结账退房 int find(); //查询当前入住人数 int kfxinxi(); //客户信息

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

《汇编语言程序设计》学习心得自主学习报告.doc

自主学习报告书 题目:学习汇编语言程序设计报告学习课程:《汇编语言程序设计》姓名: 专业: 学号: 福建工程学院国脉信息学院教务处制 二○一二年六月

学习汇编语言程序设计报告书 由于实际工作中对汇编语言程序设计应用较多,在业余时间我自主学习了北京大学出版社出版的《汇编语言程序设计》一书。这一本书介绍了80x86汇编语言程序设计的方法和技术,共分为两个部分:第一部分介绍80x86cpu的编程结构,汇编语言程序的格式和伪指令,80x86cpu的寻址方式和指令系统;第二部分深入讨论分支程序、循环程序、子程序基本程序设计方法,以及以中断为主的i/o程序设计,其中包括宏指令、多模块连接技术、汇编语言与高级语言的混合编程、dos和bios提供的常用中断调用,以及文件系统等内容。 通过本书,我深入的掌握了汇编语言的编程方法、思路和技巧,并对计算机的底层编程有一定认识;还对计算机底层运行程序的机制及计算机的工作原理有了深入的了解。 在学汇编的过程中,最重要的就是要掌握汇编语言中的指令的一些基本用法。当然要能够真正的了解其中的内涵,这样在实际的编程中也能够像运用高级语言一样灵活的变通。汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与计算机内部的结构联系应该联系很密切,而且我在学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。前面几章都是对计算机内部结构和一些常用的指令以及寻址方式的寻址方式。到后面学到子程序以及宏的作用才真正发现到其实跟高级语言差别不大。以C语言为例,C语言也

是由一个一个的函数组成的。没想到想汇编这样的低级语言也可以这样。在汇编语言的子程序和宏中,我个人更感觉宏的运用更像我们高级语言的子函数,通过定义好的宏,我们在后面直接调用就可以了。尤其是宏带参数的宏跟C语言中带参数的函数真的很像,根据参数的不同调用宏就能得到不同的结果。而汇编中的子程序没有这个传递参数这个功能。在调用子程序的时候要注意各寄存器中的内容。子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间,他不仅是源程序级别简化,形成的目标代码较短;而宏调用则是在汇编期间展开的,每调用依次进把宏定义体展开一次,它是源程序级的简化。因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间越大。如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素 汇编程序给人感觉最烦的就是好多程序的结果不能直接通过运行EXE文件显示出来,而更多的是经过DEBUG单步调试才能看到其内在变化,看是否正确。汇编程序不像其他的高级语言一样需要编译器,而是直接的就能在记事本上编写,然后进行汇编和连接就可以了。学习汇编调试,关键就是要掌握DEBUG的运用。汇编程序把汇编语言翻译成机器语言的过程称为汇编。是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

c语言的酒店管理系统.docx

. 基于 C语言的酒店管理系 统课程设计 学院:通信与电子工程学院 班级:电子 102 班 学号:2010131085 2010131012 姓名:邹远文王帅 指导老师:题原 日期:2013年11月27日

摘要 随着个人计算机的的普及,越来越多的重复性工作被交由计算机来完成。在这种大趋势下,传统的纸质档案管理方式已不适应现代服务业的发展。数字化的管理成为酒店等行业的必要条件。酒店客房管理的电脑化对于优化员工工作效 率、降低成本及改善服务质量等方面都有十分积极的作用。 本程序是用于酒店管理的软件。它可以实现定退房业务处理,用户信息的记录、查询及房间状态管理等功能。虽然比较简陋但已具备应用程序的雏形。 经济上主要考虑本系统带来的效益是否大于开发本系统的成本,由于本系统的开发以课程设计为依托 , 参与人员的目的以学习为主 , 投入成本比较小。另外,系统管理员和业务员都拥有计算机的专业知识 , 酒店前台工作人员和管理人员不需要经 过培训或只需要经过少量培训即可操作本软件。这样可以为开发本系统节升资金。 同时无纸化办公可以节省资源,减少后期资源浪费。因此,开发本系统在经济是可 行的。 本程序运用 Microsoft Visual C++ 编译器编写,涉及 C 语言的文件读写,结构 数组运用及字符串函数相关知识。 关键词:数字化管理酒店管理 C 语言

目录 摘 要..............................................................I 第 1 章绪论 ...................................................IV 1.1概述 ........................................................IV 1.1.1酒店管理系统的需求 ....................................IV 1.2酒店管理系统的当前需求 .....................................IV 1.3酒店管理系统的可行性 .........................................V 第 2 章酒店管理系统的功能实现 ......................................V 2.1设计模块 ....................................................VI 2.1.1添加录入信息模块 ......................................VI 2.1.3 删除客房信息模块 ..........................................VI 2.1.4查询剩余客房函数 ......................................VI 2.1.5排序剩余客房模块 ......................................VI 2.1.6输出剩余客房函数 ......................................VI 2.1.7点餐系统 ..............................................VI 2.2管理员登陆流程 .............................................VII 2.2主要功能模块数据流程图 ....................................VIII 2.3管理员预处理流程 ............................................IX 2.4登记入住系统 ................................................IX 2.5客房状态查询 ................................................IX 2.6住户信息查询 .................................................X 2.7结账退房系统 .................................................X 2.8系统管理 .....................................................X 2.9系统详细设计任务 .............................................X 第 3 章系统物理配置方案设计 .......................................XI 3.1设计指标 ....................................................XI 3.1.1 系统的可靠性 ...........................................XI 3.1.2 系统吞吐量 ................................................XI

《汇编语言程序设计》实验报告(一)

《汇编语言程序设计》实验报告(一) 姓名学号系别班级 指导教师实验日期 课程名称《汇编语言程序设计》同组实验者 一、实验名称:实验一汇编程序和连接程序的使用 二、实验目的: 1. 熟悉汇编语言的上机环境; 2. 学习EDIT,MASM,LINK程序的使用; 3. 掌握建立、汇编、链接、运行汇编语言程序的过程。 三、实验类型:验证 四、实验材料、工具、或软件 多媒体计算机、WINDOWS XP系统或纯DOS系统、MASM6.11以上版本或汇编语言程序设计实验集成环境。 五、实验要求 1. 编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。 2.完成课堂例题,并用DEBUG运行,观察结果。 六、试验内容与步骤:(附上必要的调试过程及运行结果截图,可加附页) 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。上机步骤如下: 1、调用https://www.360docs.net/doc/4014337201.html,程序建立汇编语言源程序.ASM 建立好的源文件以EX_1.ASM为文件名存盘 DATA SEGMENT STRING1 DB 'Visual C++ ' STRING2 DB 'Visual Basic' COUNT EQU $-STRING2 MESS1 DB 'MATCH!’,13,10,’$' MESS2 DB 'NO MATCH!’,13,10,’$' DATA ENDS code segment assume cs:code,ds:data,es:data main proc far start: push ds

C语言实验分析报告-酒店管理系统

C语言实验报告-酒店管理系统

————————————————————————————————作者:————————————————————————————————日期:

武汉科技大学 C语言程序设计 课程设计 题目酒店管理系统 班级信息与计算科学2班姓名陈诚 学号201407119043 成绩 2015年6 月23 日

一、总体设计 1、程序的总体设计 (1)程序总体设计思路: 酒店房间登记管理系统,实现的是房间登记与管理(包括登记入住、查询)为了体现模块化设计,把所有要实现的功能做成函数,采用分步实施的方法逐步细化。具体分布实施有以下5步。 1,编写模块 2,定义实现个功能模块所要函数 3,编写各个函数 4,理清思路,逐步修改 5,调试整个程序。 核心部分是各个函数: 1、欢迎界面函数:通过switch进入不同界面。 2、登记入住函数:使用户在入住前登记个人信息,选择房间信息 3、查询入住情况函数:顾客可通过两种方式查找到自己的个人信息。 4、查询当前费用函数:顾客可随时查询所用费用 5、结账退房函数:所有信息清零。 2、数据结构 此系统,选择用结构体存放不同类型的数据,房间信息。在这过程中由于对指针的运用与操作还不熟练,不方便修改,所以没用指针。 (1)创建房间信息结构体 /*结构体hotel 房间号、房间种类、客户姓名、身份证号、入住状态、实际收房费,押金等*/ struct hotel { int num; /*房间号*/ int kind; /*房间种类1(表示单人间)2(表示双人间)*/ char name[20]; /*姓名*/ char ID[19]; /*身份证号*/ int flag; /*flag 0(表示有人入住)0(表示无人入住)*/ int dingjia; /*房间定价*/ int shiji; /*实际缴纳费用*/ }room[M]; 3、函数原型声明 void welcome(); //主界面 int dengji(); //登记入住函数 int now_room(); //查询当前房间入住情况 int now_feiyong(); //查询当前费用 int tuifang(); //结账退房 int find(); //查询当前入住人数 int kfxinxi(); //客户信息