C语言程序设计-客房管理系统源码和报告(共27页)_第1页
C语言程序设计-客房管理系统源码和报告(共27页)_第2页
C语言程序设计-客房管理系统源码和报告(共27页)_第3页
C语言程序设计-客房管理系统源码和报告(共27页)_第4页
C语言程序设计-客房管理系统源码和报告(共27页)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上C语言程序设计综合实验报告1、 需求分析编写一个客房管理系统,提供键盘式菜单实现功能选择,功能包括:用户登记、统计、查询和用户信息修改。软件平台:CODEBLOCKS二、整体设计整个客房管理系统被设计为用户登记模块、统计模块、查询模块和修改模块。数据以TXT格式存储,支持保存信息。3、 详细设计客房管理系统三 查询模块二 统计模块四 修改模块一 登记模块(1)用户登记模块 通过函数readfile读取txt文件信息到room数组,提示用户选择想要入住的房间号,判断是否已经被占用,若占用,重新选择房间号,若没有占用,提示输入登记信息,把数据存入Room数组中,通过sav

2、efile添加信息到txt。调用readfile函数读取txt信息读取用户输入的的房间号判断房间是否被占用是否提示用户输入登记信息调用savefile函数存储登记信息(2)统计模块 读取txt信息到结构体数组room,提示用户选择统计方式,设置计数器,顺序遍历Room数组,1、 计数器记录数组数,即总客房数2、 判断每一个数组中的结构体的时间是否和需要查询的日期相同,若相同,计数器加一调用readfile函数,读取信息选择统计方式2、按时间统计1、统计总客房数(3)查询模块 读取信息调用readfile函数,将信息读入room结构体数组中,提示用户选择查询方式,通过基本查找算法查找Room数组

3、。可以按房间号、价格、房间标记、用户姓名、居民身份证查询。选择统计方式按价格查询按身份证号查询按姓名查询按房间号查询每一个查询函数内部结构如下:遍历每一个结构体j判断是否和要查询的信息相同是调用打印函数,打印j结构体信息(4)修改模块 调用readfile函数,读取信息到room结构体数组,提示用户输入需要修改的房间号,采用基本查找算法在数组中找到要修改的数据,提示用户重新更改房间信息,最后将结构体数组重新写入文件保存。调用readfile(读取文件函数)输入需要查询的房间号遍历每一个结构体j判断是否是用户需要修改的房间号修改结构体j调用saveall函数,保存结构体数组4、 源代码#incl

4、ude <stdio.h>#include <stdlib.h>#include <string.h>#define M 80/客户结构体typedef struct client char name12; /姓名 int sex; /性别 int age; /年龄 char id20; /身份证号 int year; /入住时间 int month; int date;CLIENT;/客房结构体struct Hotelint roomid; int tel; /用户的话 int price; /价格 int sign; /默认标记为空房间 CLIENT c

5、lient_list; /客户信息roomM;void Menu(); /目录界面void dengji(struct Hotel room);void savefile(struct Hotel room,int i);int readfile(struct Hotel room);void tongji(struct Hotel room);void chaxun(struct Hotel room);void printmessage(struct Hotel room,int n);void xiugai(struct Hotel room);/主函数int main() int n;

6、 char reply; Menu(); do printf("请输入选项对应的数字:n"); scanf("%d",&n); while(n!=1&&n!=2&&n!=3&&n!=4) printf("请输入各选项对应的数字!n"); scanf("%d",&n); switch (n) case 1: dengji(room); break; case 2: tongji(room); break; case 3: chaxun(room); br

7、eak; case 4: xiugai(room); break; printf("是否还要进入其它选项?(回复Y或y继续)n"); scanf(" %c",&reply); while (reply='y'|reply='Y'); return 0;/系统目录void Menu() printf("*客房管理系统*n"); printf( "ttt 1登记n" ); printf( "ttt 2统计n" ); printf( "ttt 3查询n

8、" ); printf( "ttt 4修改n" ); printf("*n");/登记客户信息void dengji(struct Hotel room) int x,j,i,flag; char answer; do i=readfile(room); do flag=0; printf("输入您想入住的房间号:(三位数)n"); scanf("%3d",&x); for(j=0;j<i;j+) if(roomj.roomid=x) printf("该房间已经被占用!n"

9、;); flag=1; while(flag>0); roomi+1.roomid=x; printf("请输入您的电话:(仅支持六位数号码)n"); scanf("%d",&roomi+1.tel); printf("入住价格n"); scanf("%d",&roomi+1.price); printf("请输入您的名字n"); scanf("%s",roomi+1.client_); printf("性别:(1表示女,0表

10、示男)n"); scanf("%d",&roomi+1.client_list.sex); printf("您的年龄:n"); scanf("%d",&roomi+1.client_list.age); printf("您的id:n"); scanf("%s",roomi+1.client_list.id); printf( "请输入入住年月日(格式:2015 11 11)n"); scanf("%4d%2d%2d",&r

11、oomi+1.client_list.year,&roomi+1.client_list.month,&roomi+1.client_list.date); savefile(room,i+1); printf("是否还要继续登记?(回复Y或y继续)n"); scanf(" %c",&answer); while(answer='Y'|answer='y');/读取txt中的信息int readfile(struct Hotel room) FILE *fp; int i; if(fp=fopen(

12、"room.txt","r")=NULL) printf("Failure to open score.txt!n"); exit(0); for (i=0;!feof(fp);i+) fscanf(fp,"%5d",&roomi.roomid); fscanf(fp,"%6d",&roomi.price); fscanf(fp,"%15d",&roomi.tel); fscanf(fp,"%12s",roomi.client_li

13、); fscanf(fp,"%4d",&roomi.client_list.sex); fscanf(fp,"%6d",&roomi.client_list.age); fscanf(fp,"%20s",roomi.client_list.id); fscanf(fp,"%7d",&roomi.client_list.year); fscanf(fp,"%5d",&roomi.client_list.month); fscanf(fp,"%

14、5d",&roomi.client_list.date); fclose(fp); return i;/保存结构体数组信息到文件void savefile(struct Hotel room,int i) FILE *fp; if(fp = fopen("room.txt","a")=NULL) printf("Failure to open score.txt!n"); exit(0); fprintf(fp,"%5d%6d%15d%12s%4d%6d%20s%7d%5d%5d", roomi.

15、roomid, roomi.price, roomi.tel, roomi.client_, roomi.client_list.sex, roomi.client_list.age, roomi.client_list.id, roomi.client_list.year, roomi.client_list.month, roomi.client_list.date); fclose(fp);/统计模块void tongji(struct Hotel room) int n,x; int year,month,day,j,count=0; x=readfile(room)

16、; printf("请选择统计方式:1>统计房客数,2>统计某一天的房客数n"); scanf("%d",&n); switch (n) case 1: printf("客房总数为:%dn",x); break; case 2: printf("请输入具体时间:n"); scanf("%d%d%d",&year,&month,&day); for(j=0;j<x;j+) if(roomj.client_list.year=year&&am

17、p;roomj.client_list.month=month&&roomj.client_list.date=day) count+; printf("%d年%d月%d号的房客数为%d",year,month,day,count); /查询模块void chaxun(struct Hotel room) int n,x,roomid,price,j; char name12,id20; x=readfile(room); printf("按房间号查询请按1;按价格查询请按2;按用户姓名查询请按3;按身份证号码查询请按4n"); scan

18、f("%d",&n); switch(n) case 1: printf("请输入房间号:n"); scanf("%d",&roomid); for(j=0;j<x;j+) if(roomj.roomid=roomid) print(room,j); break; case 2: printf("请输入价格:n"); scanf("%d",&price); for(j=0;j<x;j+) if(roomj.price=price) print(room,j);

19、 break; case 3: printf("请输入客户姓名:n"); scanf("%s",name); for(j=0;j<x;j+) if(strcmp(roomj.client_,name)=0) print(room,j); break; case 4: printf("请输入身份证号码:n"); scanf("%s",id); for(j=0;j<x;j+) if(strcmp(roomj.client_list.id,id)=0) print(room,j); /打印v

20、oid print(struct Hotel room,int j) printf("%5d%6d%15d%12s%4d%6d%20s%7d%5d%5dn", roomj.roomid, roomj.price, roomj.tel, roomj.client_, roomj.client_list.sex, roomj.client_list.age, roomj.client_list.id, roomj.client_list.year, roomj.client_list.month, roomj.client_list.date);void pr

21、intmessage(struct Hotel room,int n) int j; for(j=0;j<n;j+) printf("%5d%6d%15d%12s%4d%6d%20s%7d%5d%5dn", roomj.roomid, roomj.price, roomj.tel, roomj.client_, roomj.client_list.sex, roomj.client_list.age, roomj.client_list.id, roomj.client_list.year, roomj.client_list.month, room

22、j.client_list.date); /修改模块void xiugai(struct Hotel room) int i, m, roomid; m = readfile(room); printf("请选择房间号:n"); scanf("%d",&roomid); for(i=0;i<m;i+) if(roomi.roomid=roomid) printf("请输入您的电话:n"); scanf("%d",&roomi.tel); printf("入住价格n"); s

23、canf("%d",&roomi.price); printf("请输入您的名字n"); scanf("%s",roomi.client_); printf("性别:n"); scanf("%d",&roomi.client_list.sex); printf("您的年龄:n"); scanf("%d",&roomi.client_list.age); printf("您的id:n"); sca

24、nf("%s",roomi.client_list.id); printf( "请输入入住年月日(格式:)"); scanf("%4d%2d%2d",&roomi.client_list.year,&roomi.client_list.month,&roomi.client_list.date); saveall(room,m);/保存所有信息到txt文件void saveall(struct Hotel room,int m) int j; FILE *fp; if(fp = fopen("room

25、.txt","w")=NULL) printf("Failure to open score.txt!n"); exit(0);for(j=0;j<m;j+) fprintf(fp,"%5d%6d%15d%12s%4d%6d%20s%7d%5d%5d", roomj.roomid, roomj.price, roomj.tel, roomj.client_, Roomj.client_list.sex, roomj.client_list.age, roomj.client_list.id, roomj.client_list.year, roomj.client_list.month,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论