① c语言酒店管理系统
20分?我倒
给个建构你,至于怎么实现自己想办法了
struct Hotel
{
int index;//客房编号;
int type;//客房类型;
int position;//客房位置;
int area;//面积;
int bedsOfRoom;//床位数;
int price;//价格
Hotel*next;
};
② 请高手帮忙用C语言做一个酒店管理系统
在这个经济社会里谁还会免费的帮人家出这么大的力啊?你那酒店管理系统要求再简单也要花时间啊!再说你要它的原理,这不是要人家的知识产权吗?也许人家开发出来把软件打包给你还有可能。
③ 求C语言程序设计—宿舍信息管理系统。调研宿舍楼的住房基本信息管理案例,实现各个宿舍楼的宿舍信息管理
哈哈 我今天也开始课程设计了 也在到处找答案
④ 请问高手 用C语言怎样编程酒店管理系统!
留个EMAIL,发一个VC做的完整项目让你参考下.
⑤ c语言 商品管理系统
#include"stdio.h"
#include <conio.h>
#include <stdlib.h>
//#include"FILE.h"
typedef struct shangpin
{
char name[20];
int biaohao;
int shuliang;
double jiage;
}Node;
typedef struct list
{
Node data;
struct list *next;
}List ,*Slist;
void charu(Slist &s,Node x);
int caidan()
{
int i;
while(1)
{
system("cls");
printf("\n\t\t\t 商店销售管理系统\n\n");
printf("\t\t **********************************************\n\n");
printf("\t\t 1--添加商品 2--出售商品\n\n");
printf("\t\t 3--删除商品 4--显示商品\n\n");
printf("\t\t 5--查找商品 0--退出系统\n\n");
printf("\t\t **********************************************\n\n");
printf("请选择(0-5): ");
scanf("%d",&i);
if(i<6&&i>=0)break;
}
return i;
}
void chushihua(Slist &s)
{
Slist head=new List;
head->next=NULL;
s=head;
}
void tianjia(Slist &s)
{
Node x;
Slist r,p,q;
int i=0;
r=new List;
r->next=NULL;
q=p=s->next;
while(q)
{
i++;
q=q->next;
}
printf("请输入商品名称、数量以及价格: ");
scanf("%s%d%lf",x.name,&x.shuliang,&x.jiage);
x.biaohao=i+1;
r->data=x;
s->next=r;
r->next=p;
}
void chu(Slist &s)
{
FILE *cp;//定义文件指针
int i=0;
Node x;
if((cp=fopen("shangpin.txt","a+"))==NULL)//打开文件
{printf("文件打开失败!");return ;}
fseek(cp,0L,SEEK_SET);//将文件指针移动到文件开头
while(!feof(cp))
{
fscanf(cp,"%s%d%lf",x.name,&x.shuliang,&x.jiage);//读取文件的内容
x.biaohao=++i;
charu(s,x);//把读到的数据插入到链表上
}
fclose(cp);//关闭文件
}
void charu(Slist &s,Node x)
{
Slist r,p=s->next;
r=new List;
r->next=NULL;
r->data=x;
s->next=r;
r->next=p;
}
void xieru(Slist s)
{
FILE *cp;//同上
Slist p=s->next;
if((cp=fopen("shangpin.txt","w+"))==NULL)
{printf("文件打开失败!");return ;}//同上
while(p)
{
fprintf(cp,"%s %d %.2lf ",p->data.name,p->data.shuliang,p->data.jiage);//写入文件中,并且以空格隔开
p=p->next;
}
fclose(cp);//关闭文件
}
Slist chazhao(Slist s,int m)
{
Slist p=s->next;
if(p==0)return 0;
if(p->next==0)return p;
if(p->data.biaohao==m)return p;
while(p->next)
{
if(p->next->data.biaohao==m)return p;
p=p->next;
}
return 0;
}
void xianshi(Slist s)
{
Slist p;
p=s->next;
printf("%10s%20s%10s%10s\n","商品编号","商品名称","商品数量","商品价格");
while(p)
{
printf("%10d%20s%10d%10.2f\n",p->data.biaohao,p->data.name,p->data.shuliang,p->data.jiage);
p=p->next;
}
}
void shanchu(Slist &s)
{
}
void chushou(Slist &s)
{
}
void main()
{
int num;
Slist s;
chushihua(s);
chu(s);
num=caidan();
while(1)
{
switch(num)
{
case 0:exit(0);break;
case 1:tianjia(s);break;
case 2:chushou(s);break;
case 3:shanchu(s);break;
case 4:xianshi(s);break;
case 5:chazhao(s,1);break;
}
printf("按任意键继续!");
getch();
num=caidan();
}
xieru(s);
}
//有些函数我在没写啊,你自己写写吧,文件的读取和写入,还有链表的创建我都给你写好了,也就是上面的1,4我都写好了,
//包括了文件,剩下的2,3,5,你自己试试,并且我也给你写了一个查找函数,你看看能用不!
⑥ 求C语言的大项目
朋友我这有几个哈。你可以看看 一. 设计题目: 图书管理系统 1. 新书入库: 图书信息包括书名, 书号, 库存量, 现存量共4项. 首先输入3本书的信息, 并将其存入文件 ”book.dat” 中. 当有新书入库时, 先判断文件中是否有此书( 即比较书名 ), 若有则修改库存量, 现存量的信息; 若无此书, 则将该书的信息添加到文件中. 2. 图书查询: 输入一个书号, 在文件中查找此书, 若找到则输出此书的全部信息; 若找不到则输出查找失败的信息. 3. 借阅管理 (1) 每个读者的信息包括姓名, 编号, 1张借书卡( 限借一本书 ), 输入3个读者的信息存入文件 “reader . dat” 中. (2) 借书登记: 输入读者的姓名, 所借图书的书号, 先判断姓名是否在文件”reader.dat” 中, 若有则将书号存入一张借书卡上( 注: 初始时借书卡的信息都为零, 借书后借书卡的信息改为所借书的书号), 并修改文件”reader.dat”的相应内容, 同时修改文件”book.dat”中此书的现存量. 若”reader.dat”无此姓名, 则应提示错误 (3) 还书管理: 输入读者的姓名, 所还图书的书号, 将借书卡的信息置为零, 并修改文件”reader.dat”的相应内容, 同时修改文件”book.dat”中此书的现存量. 4. 输出全部图书信息和全部读者信息 5. 退出系统. 二. 设计题目: 航空订票系统 1. 航线信息: 每条航线信息包括航班号, 飞机号, 目的地, 订票数, 余票数共5项. 假设现在有3条航线, 目的地分别是北京, 上海, 广州, 飞机上可乘坐100人( 即初始订票数为0, 余票数为100) , 将这3条航线信息存入文件”airline.dat” 中. 2. 订票业务 (1) 客户信息包括姓名, 航班号, 座位号(初始为0), 假设已有3个客户信息存入文件”customer.dat”中. (2) 有新客户订票时, 先输入客户的姓名和他提出的航班号, 查询该航线的订票情况, 若有余票, 则为客户办理订票手续, 分配给客户一个座位号, 然后将新客户的信息添加到文件”customer.dat”中, 并修改文件”airline.dat”中该航线的订票数和余票数. 若无余票, 则输出客满信息. 3. 退票业务: 根据客户提出的航班号, 办理退票, 从文件”customer.dat”中删除该客户的信息, 并修改文件”airline.dat”中相应航线的订票数和余票数. 4. 输出全部航线信息和全部客户信息. 5. 退出系统. 三. 设计题目: 销售管理系统 1. 销售员信息: 每个销售员包括姓名, 编号, 产品1销售额, 产品2销售额, 总销售额共5项信息. 首先输入3个销售员的信息存入文件”sailer.dat”中. 2. 排序: 按产品1的销售额进行排序, 将排序后的信息存入文件 ”sailer1.dat”中, 按产品2的销售额进行排序, 将排序后的信息存入文件”sailer2.dat”中, 按总销售额进行排序, 将排序后的信息存入文件 ”sailer3.dat” 中 3. 统计: 分别统计产品1的总销售额和产品2的总销售额并进行输出 4. 销售员的增加: 增加一个销售员的信息, 先将其添加到文件”sailer.dat”中, 然后按其总销售额进行插入排序, 排序后的信息仍存入文件”sailer3.dat”中. 5. 销售员的减少: 输入一个销售员的姓名, 从文件”sailer.dat”中将其删除. 6. 输出全部销售员的信息 7. 退出系统 四. 设计题目: 停车场管理 1.有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层. ( 停车场可用一个二维数组实现, 每个数组元素存放一个车牌号 ) 每辆车的信息包括车牌号, 层号, 车位号, 停车时间共4项. 其中停车时间按分钟计算 2. 假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.dat”中( 数组的对应元素也要进行赋值 ) 3. 停车操作: 当一辆车进入停车场时, 先输入其车牌号, 再为它分配一个层号和一个车位号(分配前先查询车位的使用情况, 如果第一层有空则必须停在第一层), 停车时间设为5 , 最后将新停入的汽车的信息添加文件”car.dat”中, 并将在此之前的所有车的停车时间加5. 4. 收费管理(取车): 当有车离开时, 输入其车牌号, 先按其停车时间计算费用, 每5分钟0.2元. (停车费用可设置一个变量进行保存), 同时从文件”car.dat”中删除该车的信息, 并将该车对应的车位设置为可使用状态(即二维数组对应元素清零). 按用户的选择来判断是否要输出停车收费的总计. 5. 输出停车场中全部车辆的信息. 6. 退出系统. 五. 为小型会议设计一个参会人员管理程序。 要求: (1)登录参会人员的下列信息: ·姓名(name); ·性别(sex); ·年龄(age); ·单位(department) ·房间号(room-num)(设每个房间只住一人,房间号为101#—120#,…..,501#—520#)。 (2)主菜单应至少包括以下几个菜单项: 人员登录、显示报到人员信息、查询、统计、修改、删除 (3)程序应分别用几个个函数实现以上功能: ·随时对报到人员进行登录(login),来客登记的房间是根据客人要求分配的;如果客人申请的房间已有人登记了,可以让客人重新申请;如果所有的房间都已经住满,则拒绝再进行人员登录; ·随时按所住房间号(由小到大)输出(print)已报到人员信息; ·能够根据姓名实现对人员信息的查询; ·能够根据单位对与会人员进行分类统计,并输出统计结果; ·能够修改与会人员的信息; ·能够删除某个参会人员,并清空其所住房间; (4)程序中的变量要使用题中给定的英文名词。 六、 设计题目:建通讯录,并对它进行增加、查询、修改、删除、显示记录等操作。 第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示英文提示选单。 第三个模块——Quit()的功能是:退出选单。 第四个模块——Create()的功能是:创建新的通讯录。 第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。 第八个模块——Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。 第九个模块——List()的功能是:显示通讯录中的所有记录。 七、设计题目:动态演示汉诺塔问题的解决过程。(或用C语言设计一个动画程序) 要求:在图形模式下,能将每一次盘子的移动用动画演示出来。 八、设计题目:迷宫问题。 要求: (1) 用户可以自己建立一个大小随意的迷宫。 (2) 从入口出发,找出所有出路。(最好用图形化的方式演示) 九、题目:设计一个摸拟时钟转动的程序。 (一)、基本要求:设计的时钟要美观大方,既能摸拟机械钟表行走(有时针、分针和秒针),还要准确地利用数字显示日期和时间。 (三)、创新要求:在基本要求达到后,进行创新设计,如增加整点报时功能,定时功能等。 (四)、设计方法 基本原理:在图形模式下绘出时钟的外表,利用dos.h中的gettime和getdate得到系统的时间和日期,然后利用绘图函数显示在屏幕上。 十、设计题目:编写一个文本编辑器(记事本)。 要求:要有文本编辑器的基本功能,如打开、编辑、保存、修改等。 十一、设计题目:俄罗斯方块游戏实现。 用户的键盘控制如下: 左右箭头(“<”和“>”:控制方块的左右运动。 向下方的箭头:控制方块的加速运动,可以使方块迅速下落到底部。 空格键:控制方块的旋转变换。 Esc键:退出游戏。 设计总要求: 1. 有些题目要制作字符形式的菜单. 2. 不同的功能使用不同的函数实现. 3. 对程序进行必要的注释. 4. 按下列要求书写课程设计报告(必须要有) (1) 给出相关数据结构及说明; (2) 给出程序的结构流程; (3) 调试过程中出现的问题和解决方法; (4) 编程体会。 (5) 要有磁盘稿。
⑦ 销售系统C语言程序设计那个菜单怎么做
如果只是要菜单不要真实功能的话,下面的应该是我认为最简单的了!
#include<stdio.h>
void main()
{
int i;
printf(" ******************************************\n\n");
printf(" 请选择业务\n");
printf(" 1.进货\n");
printf(" 2.销售\n");
printf(" 3.统计\n");
printf(" 4.退出\n\n\n");
printf(" 请选择:");
scanf("%d",&i);
fflush(stdin);
switch(i)
{
case 1:printf("进货\n");break;
case 2:printf("销售\n");break;
case 3:printf("统计\n");break;
case 4:printf("退出\n");break;
default:printf("输入错误\n");break;
}
}
⑧ 房屋销售管理信息系统(C语言)
#include
#include
#include
void frist_print()
{
printf("\t\t********************************\n\n"); //欢迎信息
printf("\t\t\t欢迎进入学生成绩系统\n");
}
void menu()
{
printf("\n\t\t********************************\n"); //管理菜单
printf("\t\t==\t1.录入学生成绩\n\t\t+\n");
printf("\t\t==\t2.显示学生成绩\n\t\t+\n");
printf("\t\t==\t3.查询学生成绩\n\t\t+\n");
printf("\t\t==\t4.添加学生成绩\n\t\t+\n");
printf("\t\t==\t5.修改学生成绩\n\t\t+\n");
printf("\t\t==\t6.删除学生成绩\n\t\t+\n");
printf("\t\t==\t7.清空页面\n\t\t+\n");
printf("\t\t==\t8.退出系统\n");
printf("\t\t********************************\n");
printf("please choise 1--8:\t");
putchar(10);
}
struct MM // 结构体定义变量
{
char num[20];
char name[10];
float pay;
int many;
}mm;
void scanf_1() //第一次输入信息并保存在文件中
{
char ch;
FILE *fp;
if((fp=fopen("dd.dat","wb+"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
do
{
printf("请输入成绩的--编号:\t");
getchar();
gets(mm.num);
printf("姓名:\t");
gets(mm.name);
printf("成绩:\t");
scanf("%f",&mm.pay);
printf("学号:\t");
scanf("%d",&mm.many);
if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)
{
printf("file write error\n");
exit(0);
}
printf("是否继续输入y or n ?\t");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
}
void find() //查询成绩的信息
{ int a,b=0;
char ch[20];
FILE *fp;
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("请输入要查询的成绩的方式\n\t1.编号 2.姓名:\n\t请选择 1 or 2 \t");
scanf("%d",&a);
if(a==1)
{ getchar();
printf("请输入成绩的编号:\t");
gets(ch);
while(fread(&mm,sizeof(struct MM),1,fp)==1)
if(strcmp(mm.num,ch)==0)
{
b++;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
if(b==0) printf("对不起!没有找到相关信息:\n");
}
else if(a==2)
{ printf("请输入成绩的姓名:\t");
getchar();
gets(ch);
while(fread(&mm,sizeof(struct MM),1,fp)==1)
if(strcmp(mm.name,ch)==0)
{
b++;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
if(b==0) printf("input error!\n");
}
fclose(fp);
}
void scanf_2() //第二次输入信息并保存在文件中
{
char ch;
FILE *fp;
if((fp=fopen("dd.dat","ab"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
do
{
printf("请输入要添加成绩的--编号:\t");
getchar();
gets(mm.num);
printf("姓名:\t");
gets(mm.name);
printf("价格:\t");
scanf("%f",&mm.pay);
printf("学号:\t");
scanf("%d",&mm.many);
if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)
{
printf("file write error\n");
exit(0);
}
printf("是否继续输入y or n ?\t");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
}
void print() //输出文档中的信息
{
FILE *fp;
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
return ;
}
printf("编号\t姓名\t价格\t\t学号\n");
while(fread(&mm,sizeof(struct MM),1,fp)==1)
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
fclose(fp);
}
void change()
{ //修改信息的函数,定义另一个文件,把要修改的信息放到该文件中
struct XX //然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名
{ //把原来的文件移除;
char num[20];
char name[10];
float pay;
int many;
}xx;
FILE *fp2;
int a,b=0,c=0,n=0;
char ch[20],ck;
FILE *fp;
do{
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("temp.dat","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("请输入要修改成绩的编号:\t");
scanf("%s",ch);
n++;
while(fread(&mm,sizeof(struct MM),1,fp)==1)
{
if((strcmp(mm.num,ch)==0))
{
b++; //b的值如果一直没有改变说明,没有找到相关的信息;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
getchar();
printf("请输入成绩的新编号:\t");
gets(xx.num);
printf("请输入成绩的新姓名:\t");
gets(xx.name);
printf("请输入成绩的新价格:\t");
scanf("%f",&xx.pay);
printf("请输入成绩新学号:\t");
scanf("%d",&xx.many);
getchar();
fwrite(&xx,sizeof(struct XX),1,fp2);
}
if(strcmp(mm.num,ch)!=0)
fwrite(&mm,sizeof(struct MM),1,fp2);
}
if(b==0)
{
printf("\t没有找到相关信息!\n");
getchar();
}
rewind(fp); //如果要继续修改的话,要把标记返回到文件的开头;
printf("是否继续修改?enter 'y' or 'n' \t");
ck=getchar();
fclose(fp);
fclose(fp2);
remove("dd.dat");
rename("temp.dat","dd.dat");
}while(ck=='y'||ck=='Y');
if(b!=0) //如果没有找到相关信息就不能输出
printf("\t修改成功:\n");
}
void del()
{ //删除函数和修改很相似
FILE *fp2;
int a,b=0,c=0,n=0;
char ch[20],ck;
FILE *fp;
do {
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("temp.dat","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("请输入要删除成绩的编号:\t");
scanf("%s",ch);
n++;
while(fread(&mm,sizeof(struct MM),1,fp)==1)
{
if((strcmp(mm.num,ch)==0))
{
b++; //b的值如果一直没有改变说明,没有找到相关的信息;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
else if(strcmp(mm.num,ch)!=0)
fwrite(&mm,sizeof(struct MM),1,fp2);
}
if(b==0)
{
printf("\t没有找到相关信息!\n");
getchar();
}
rewind(fp);
getchar();
getchar();
printf("删除成功!");
getchar(); //如果要继续修改的话,要把标记返回到文件的开头;
printf("是否继续删除?enter 'y' or 'n' \t");
ck=getchar();
fclose(fp);
fclose(fp2);
remove("dd.dat");
rename("temp.dat","dd.dat");
}while(ck=='y'||ck=='Y');
if(b!=0) //如果没有找到相关信息就不能输出
printf("\t保存成功:\n");
}
void myexit()
{
int a;
char ch;
printf("\t是否确定退出?请选择 y or n: ");
getchar();
ch=getchar();
if(ch=='y'||ch=='Y') exit(0);
else
menu();
}
int main()
{
int a;
frist_print();
menu();
while(1)
{
scanf("%d",&a);
if(a==1)
scanf_1();
else if(a==2)
print();
else if(a==3)
find();
else if(a==4)
scanf_2();
else if(a==5)
change();
else if(a==6)
del();
else if(a==7)
system("cls");
else if(a==8)
myexit();
else printf("输入错误!!!请重新输入:\t");
printf("\t按任意键继续!\n");
getch();
menu();
}
getch();
}
一个成绩管理系统,注释不是太多,写的不太好,能运行,符合你初级水平。
满意请采纳。
⑨ C语言做个小型商品销售管理系统
我这里有一个!
具体的,稍微改一下就可以了!
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;
void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}
void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}
fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
}
⑩ 求帮助!!C语言 宾馆客房管理系统!!!!高分悬赏!!!!紧急!!紧急!!!!!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//***********************************************************************************
void initial_room(); //初始化80个房间信息
void welcome(); //验证用户登陆,登陆成功显示欢迎信息
void enter();
void book_room();
void check_in();
void check_out();
void inquire();
int i=0;
//***********************************************************************************
struct Room
{
int number;
int dank;
int price;
int state;
};
struct Customer
{
char name[10],ID[19];
int room_number;
int prepaid;
int change;
int day;
};
void set_name(struct Customer *cs, char *n)
{
strcpy(cs->name,n);
}
void set_ID(struct Customer *cs, char *p)
{
strcpy(cs->ID,p);
}
void set_room_number(struct Customer *cs, int n)
{
cs->room_number=n;
}
void set_day(struct Customer *cs, int d)
{
cs->day=d;
}
void set_prepaid(struct Customer *cs, int p)
{
cs->prepaid=p;
}
char *get_name(struct Customer *cs)
{
return cs->name;
}
char *get_ID(struct Customer *cs)
{
return cs->ID;
}
int get_room_number(struct Customer *cs)
{
return cs->room_number;
}
int get_day(struct Customer *cs)
{
return cs->day;
}
int get_prepaid(struct Customer *cs)
{
return cs->prepaid;
}
//***********************************************************************************
struct Room room[80];
struct Customer *customer[80];
void CCustomer(struct Customer *cs)
{
printf("请您输入顾客的姓名\n");
scanf("%s",&cs->name);
printf("请您输入顾客的身份证号码\n");
scanf("%s",&cs->ID);
cs->prepaid = cs->change = cs->day = 0;
}
void FCustomer()
{
printf("该顾客退房成功!");
}
int main(void) //程序入口从这里开始运行
{
char choice='1';
initial_room(); //初始化80个房间的信息,分四个等级
welcome(); //验证用户登陆,登陆成功显示欢迎信息
while(choice=='1')
{
enter(); //根据用户的选择执行不同的功能
printf("\n");
printf("继续使用本系统请按\"1\",退出请按\"2\"! ");
fflush(stdin);
scanf("%c",&choice);
printf("\n");
}
return 0;
}
//系统登陆界面***********************************************************************
void welcome() //验证用户登陆,登陆成功显示欢迎信息
{
char name[4],code[7];
printf("请输入用户名和密码(以空格隔开):\n");
scanf("%s%s",&name,&code);
while((strcmp(name,"000")!=0)||(strcmp(code,"666666")!=0))
{
printf("用户名或密码输入有误,请重新输入!\n");
scanf("%s%s",&name,&code);
}
printf("\n");
printf("\n");
printf(" ▲***************************▲\n");
printf(" △ 欢迎使用宾馆客房管理系统! △\n");
printf(" ▲***************************▲\n");
printf("\n");
}
//系统入口***************************************************************************
void enter()
{
int kind_of_service;
printf("请选择服务类别:订房、入住、退房还是查询? \n");
printf(" 1->定房 2->入住 3->退房 4->查询: ");
scanf("%d",&kind_of_service);
if((kind_of_service>4) || (kind_of_service<1))
{
printf("您的输入有误,请重试!\n");
scanf("%d",&kind_of_service);
}
else
{
switch(kind_of_service)
{
case 1: book_room();
break;
case 2: check_in();
break;
case 3: check_out();
break;
case 4: inquire();
break;
}
}
}
//订房实现***************************************************************************
void book_room()
{
int room_standard,day;
customer[i] = (struct Customer*)malloc(sizeof(struct Customer));
CCustomer(customer[i]);
printf("请您选择预定房间的标准:\n");
printf("1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n");
scanf("%d",&room_standard);
printf("请输入预定天数\n");
scanf("%d",&day);
set_day(customer[i],day);
switch(room_standard)
{
int n;
case 1:
printf("住房费用总共为: %d 元\n",day*150); //计算住房费用
for(n=0;n<20;n++) //从第一个级别的房间中查找一个空闲的房间
{
if(room[n].state==0) //state=0表示该住房没有被预定的
{
printf("预定成功★房间号码为: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 2:
printf("住房费用总共为: %d 元\n",day*200);
for(n=20;n<40;n++)
{
if(room[n].state==0)
{
printf("预定成功★房间号码为: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 3:
printf("住房费用总共为: %d 元\n",day*300);
for(n=40;n<60;n++)
{
if(room[n].state==0)
{
printf("预定成功★房间号码为: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 4:
printf("住房费用总共为: %d 元\n",day*600);
for(n=60;n<80;n++)
{
if(room[n].state==0)
{
printf("预定成功★房间号码为: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
}
i++; //住房的顾客数加1
}
//入住登记***************************************************************************
void check_in()
{
char name1[10],id1[19];
int ding_or_no,prepaid;
int j;
printf("该顾客订房了吗? (1->订了 2->没订) ");
scanf("%d",&ding_or_no);
if(ding_or_no==1)
{
printf("请输入顾客的姓名:\n");
scanf("%s",&name1);
printf("请输入顾客的身份证号码:\n");
scanf("%s",&id1);
for(j=0;j<i;j++)
{
if((strcmp(get_name(customer[j]),name1)==0)&&(strcmp(get_ID(customer[j]),id1)==0)) //查找该顾客的定房信息
{
int num=get_room_number(customer[j]); //取得定房的房间号
printf("顾客 %s 今天入住本宾馆! 房间号码为: %d\n",name1,num);
switch(num/100)
{
case 6:
prepaid=get_day(customer[j])*150;
set_prepaid(customer[j],prepaid);
printf("请收房费 %d元整!\n",prepaid); //开始收费
room[num%100-1].state=2; //修改房间状态为入住状态
break;
case 7:
prepaid=get_day(customer[j])*200;
set_prepaid(customer[j],prepaid);
printf("请收房费 %d元整!\n",prepaid);
room[19+num%100].state=2;
break;
case 8:
prepaid=get_day(customer[j])*300;
set_prepaid(customer[j],prepaid);
printf("请收房费 %d元整!\n",prepaid);
room[39+num%100].state=2;
break;
case 9:
prepaid=get_day(customer[j])*600;
set_prepaid(customer[j],prepaid);
printf("请收房费 %d元整!\n",prepaid);
room[59+num%100].state=2;
break;
}
break;
}
}
}
else
{
int room_standard,day;
customer[i] = (struct Customer*)malloc(sizeof(struct Customer));
CCustomer(customer[i]);
printf("请您选择预定房间的标准:\n");
printf("1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n");
scanf("%d",&room_standard);
printf("请输入住宿天数\n");
scanf("%d",&day);
set_day(customer[i],day);
switch(room_standard)
{
int n;
case 1:
prepaid=day*150;
set_prepaid(customer[i],prepaid);
printf("请收房费 %d元整!\n",prepaid);
for(n=0;n<20;n++)
{
if(room[n].state==0)
{
printf("入住房间号码为: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 2:
prepaid=day*200;
set_prepaid(customer[i],prepaid);
printf("请收房费 %d元整!\n",prepaid);
for(n=20;n<40;n++)
{
if(room[n].state==0)
{
printf("入住房间号码为: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 3:
prepaid=day*300;
set_prepaid(customer[i],prepaid);
printf("请收房费 %d元整!\n",prepaid);
for(n=40;n<60;n++)
{
if(room[n].state==0)
{
printf("入住房间号码为: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 4:
prepaid=day*600;
set_prepaid(customer[i],prepaid);
printf("请收房费 %d元整!\n",prepaid);
for(n=60;n<80;n++)
{
if(room[n].state==0)
{
printf("入住房间号码为: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
}
i++;
}
}
//退房结算***************************************************************************
void check_out()
{
char name2[10],id2[19];
int standard,j,room_number,day1,day2,day;
printf("请输入要退房的顾客姓名和身份证号码:\n");
scanf("%s%s",&name2,&id2);
printf("请输入该顾客实住天数:\n");
scanf("%d",&day2);
for(j=0;j<i;j++)
{
if((strcmp(get_name(customer[j]),name2)==0)&&(strcmp(get_ID(customer[j]),id2)==0))
{
char account;
room_number=get_room_number(customer[j]);
standard=room_number/100;
day1=get_day(customer[j]);
day=day1-day2;
switch(standard)
{
case 6:
printf("顾客的房间号是%d :为单人间,每天150元\n",room_number);
printf("该顾客预付了房费 %d元, 实际消费 %d元整!\n",get_prepaid(customer[j]),day2*150);
printf("\n");
if(day>0)
printf("请退给该顾客 %d 元整!\n",day*150);
if(day<0)
printf("请补收该顾客住房费 %d 元整!\n",-day*150);
break;
case 7:
printf("顾客的房间号是%d :为单人间,每天200元\n",room_number);
printf("该顾客预付了房费 %d元, 实际消费 %d元整!\n",get_prepaid(customer[j]),day2*200);
printf("\n");
if(day>0)
printf("请退给该顾客 %d 元整!\n",day*200);
if(day<0)
printf("请补收该顾客住房费 %d 元整!\n",-day*200);
break;
case 8:
printf("顾客的房间号是%d :为单人间,每天300元\n",room_number);
printf("该顾客预付了房费 %d元, 实际消费 %d元整!\n",get_prepaid(customer[j]),day2*300);
printf("\n");
if(day>0)
printf("请退给该顾客 %d 元整!\n",day*300);
if(day<0)
printf("请补收该顾客住房费 %d 元整!\n",-day*300);
break;
case 9:
printf("顾客的房间号是%d :为单人间,每天600元\n",room_number);
printf("该顾客预付了房费 %d元, 实际消费 %d元整!\n",get_prepaid(customer[j]),day2*600);
printf("\n");
if(day>0)
printf("请退给该顾客 %d 元整!\n",day*600);
if(day<0)
printf("请补收该顾客住房费 %d 元整!\n",-day*600);
break;
}
printf("\n");
printf("退房核算清楚,请按1: ");
fflush(stdin);
scanf("%c",&account);
if(account=='1')
{
int k;
for(k=0;k<80;k++)
{
if(room[k].number==get_room_number(customer[j]))
room[k].state=0;
}
i--;
for(;j<i;j++)
{
customer[j]=customer[j+1];
}
free(customer[i]);
FCustomer();
}
}
}
}
//信息查询***************************************************************************
void inquire()
{
char inquire_choice;
printf("房间信息查询请按1, 顾客信息查询请按2: ");
fflush(stdin);
scanf("%c",&inquire_choice);
if(inquire_choice=='1')
{
int j,k=0;
printf("\n");
printf("下列房间还没人预订,也没人入住:\n");
for(j=0;j<80;j++)
{
if(room[j].state==0)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
printf("\n");
printf("\n");
k=0;
printf("下列房间已预订:\n");
for(j=0;j<80;j++)
{
if(room[j].state==1)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
k=0;
printf("\n");
printf("\n");
printf("下列房间有人入住:\n");
for(j=0;j<80;j++)
{
if(room[j].state==2)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
printf("\n");
printf("\n");
}
else if(inquire_choice=='2')
{
char inquire_choice;
int j;
printf("按姓名查询请按1, 按身份证查询请按2: \n");
fflush(stdin);
scanf("%c",&inquire_choice);
if(inquire_choice=='1')
{
char name3[10];
printf("请输入顾客的姓名: \n");
scanf("%s",&name3);
for(j=0;j<i;j++)
{
if(strcmp(get_name(customer[j]),name3)==0)
{
printf("%s的住房信息如下:\n",name3);
printf("\t房间号为: %d\n",get_room_number(customer[j]));
printf("\t预付房费为: %d\n",get_prepaid(customer[j]));
}
}
}
if(inquire_choice=='2')
{
char id3[10];
int j;
printf("请输入顾客的身份证: \n");
scanf("%s",&id3);
for(j=0;j<i;j++)
{
if(strcmp(get_ID(customer[j]),id3)==0)
{
printf("%s的住房信息如下:\n",get_name(customer[j]));
printf("\t房间号为: %d\n",get_room_number(customer[j]));
printf("\t预付房费为: %d\n",get_prepaid(customer[j]));
}
}
}
}
}
//房间信息初始化*********************************************************************
void initial_room() //对80个房间进行初始化,分4个等级
{
int j,k=601;
for(j=0;j<20;j++)
{
room[j].number=k++;
room[j].dank=1;
room[j].price=150;
room[j].state=0;
}
k=701;
for(j=20;j<40;j++)
{
room[j].number=k++;
room[j].dank=2;
room[j].price=200;
room[j].state=0;
}
k=801;
for(j=40;j<60;j++)
{
room[j].number=k++;
room[j].dank=3;
room[j].price=300;
room[j].state=0;
}
k=901;
for(j=60;j<80;j++)
{
room[j].number=k++;
room[j].dank=4;
room[j].price=600;
room[j].state=0;
}
}