指针.酒店管理系统
来源:互联网 发布:数据 集合提供商 编辑:程序博客网 时间:2024/05/17 06:26
大面积使用指针,链表,结构体
把它做成一个完整的系统很不错
//
// main.cpp
// 酒店管理系统
//
// Created by Mr.Xue on 16/12/28.
// Copyright © 2016年 Mr.Xue. All rights reserved.
//
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>
struct Room
{
char id[20];
float price;
char state[10];
structRoom* next;
};
struct RoomDB
{
int total;
structRoom* start;
structRoom* end;
int (*add)(structRoom*,structRoomDB*);
structRoom*(*query)(char*,structRoomDB* );
int (*commit)(structRoomDB*);
int (*del)(char*,structRoomDB*);
int (*update)(structRoom*,structRoomDB*);
};
int addRoom(structRoom* room,structRoomDB* db)
{
if(NULL==room||(*room).id==NULL)
{
printf("增加失败,客房信息不能为空//编号不能为空\n");
return0;
}
if(0==(*db).total)
{
(*db).start=room;
(*db).end=(*db).start;
}
else
{
(*((*db).end)).next=room;
(*db).end=room;
}
(*db).total++;
printf("当前客房总数%d\n",(*db).total);
return0;
}
int saveRoom(structRoomDB* db)
{
FILE* fdb;
int res;
structRoom* temp;
if(0==(*db).total)
{
printf("客房为空\n");
return0;
}
fdb=fopen("桌面:\\Room.DOC","wt");
if(NULL==fdb)
{
printf("文件打开失败\n");
return0;
}
temp=(*db).start;
while(NULL!=temp)
{
res=fprintf(fdb,"%s",(*temp).id);
if(-1==res)
{
printf("数据保存失败\n");
return0;
}
temp=(*temp).next;
}
fclose(fdb);
printf("保存文件成功\n");
return1;
}
struct Room* queryRoom(char *id,structRoomDB* db)
{
int total=(*db).total;
int i,isame;
structRoom* temp=(*db).start;
for(i=0;i<total;i++)
{
isame=strcmp(id,(*temp).id);
if(isame==0)
{
printf("已找到\n");
return temp;
}
temp=(*temp).next;
}
printf("不存在\n");
returnNULL;
return0;
}
int delRoom(char* id,structRoomDB* db)
{
int isame;
structRoom* temp;
char* nexid;
if(0==(*db).total)
{
printf("删除失败\n");
return -1;
}
nexid=(*(*db).start).id;
isame=strcmp(id,nexid);
if(isame==0)
{
(*db).start=(*(*db).start).next;
(*db).total--;
printf("删除成功\n");
return1;
}
else
{
temp=(*db).start;
while(NULL!=(*temp).next)
{
nexid=(*((*temp).next)).id;
isame=strcmp(id,nexid);
if(isame==0)
{
(*temp).next=(*((*temp).next)).next;
(*db).total--;
printf("删除成功\n");
return1;
}
}
}
printf("删除失败\n");
return0;
}
int updateRoom(structRoom* room,structRoomDB* db)
{
char id[20];
structRoom* iroom;
strcpy(id,(*room).id);
iroom=queryRoom(id,db);
if(NULL==iroom)
{
printf("修改失败\n");
return0;
}
strcpy((*iroom).state,(*room).state);
(*iroom).price=(*room).price;
printf("修改成功\n");
return1;
}
int main()
{
structRoomDB datas;
structRoom *room;
datas.total=0;
datas.add=addRoom;//增加客房
datas.commit=saveRoom;//保存数据到文件
datas.query=queryRoom;//查找客房
datas.del=delRoom;//删除客房
datas.update=updateRoom;////修改客房
room=(structRoom*)malloc(1*(sizeof(structRoom)));
strcpy((*room).id,"8008");
(*room).price=628.00;
strcpy((*room).state,"空闲");
(*room).next=NULL;
datas.add(room,&datas);
datas.commit(&datas);
datas.query("8008",&datas);
return0;
}
//(a||b)=(!a&&!b)||(a&&b)
- 指针.酒店管理系统
- 指针.酒店管理系统
- 酒店管理系统
- 酒店管理系统
- 酒店管理系统心得
- 酒店管理系统数据库
- 酒店管理系统
- 酒店管理系统
- php酒店管理系统
- 酒店管理系统
- 简易酒店管理系统
- 酒店管理系统(C#)
- 酒店管理系统
- 酒店管理系统程序
- 酒店管理系统程序
- 01.酒店管理系统
- 酒店管理系统
- 酒店管理系统
- 张小龙首次全面阐述小程序
- 杭电2030
- 阿里云专家讲座-Docker
- web前端之精通dojo三:载入Dojo
- 【Tomcat】无法显示中文命名图片,可以显示英文命名的图片问题
- 指针.酒店管理系统
- tar 解压缩命令详解
- tensorflow笔记:模型的保存与训练过程可视化
- RHCE练习题 2. 配置防火墙对SSH的限制 两种方法
- 107. Binary Tree Level Order Traversal II
- 最小割模型——最大权闭合子图 【NOI2006】bzoj1497 最大获利
- Android 断点续传进阶之多线程下载
- JavaScrpt笔记之第三天
- PostgreSQL chinese full text search 中文全文检索