小问题,大家帮忙看看。

lvjaio5241 2009-07-17 11:03:23
课程设计:
做一个旅店管理系统:
题目如下:旅店收款POS机管理系统的简单实现。
(1)前台管理:包括空房分等级显示、入住登记、退房结算;
(2)后台管理包括客房预定分析、营业额统计、日报表、月报表、年报表);
(3)设计数据结构文件来实现数据库管理,包括数据录入、查询、删除、修改、更新。
我写了如下的程序,但是还是有错误,有一个问题就是基本实现了前台管理的功能,但是对于后台管理要做出日报表、月报表、年报表有点无从下手了,本人认为要加上文件的操作,但是不知道该怎么搞呀,大家帮帮给看看。

...全文
49 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwjjamk 2009-08-11
  • 打赏
  • 举报
回复
文件操作不就是open read write close么。这不难的,你去再学习一下。对于后台管理那东东,就是些麻烦的逻辑,只要有耐心就可以搞定的,加油吧!
K_s_G 2009-07-17
  • 打赏
  • 举报
回复
顶个吧
yangyunzhao 2009-07-17
  • 打赏
  • 举报
回复
太长了
icefairy 2009-07-17
  • 打赏
  • 举报
回复
好长啊 帮顶
pigcoffee 2009-07-17
  • 打赏
  • 举报
回复
帮忙顶一下吧
lvjaio5241 2009-07-17
  • 打赏
  • 举报
回复
主函数:void main()
{
LinkList L;
L.head=L.tail=(Link)malloc(sizeof(LNode));
L.head->next=NULL;
L.len=0;
int select,flag=1;
while(flag)
{
printf("\n\t 旅店POS机前台管理系统 \n");
printf("\n\t  →→→→→→→→→→→主菜单←←←←←←←←←←\n");
printf("\t 0:退出系统 1:创建\n");
printf("\t 2:添加信息 3:修改信息\n");
printf("\t 4:删除信息 5:查询信息\n");
printf("\t 6:输出信息 7:入住退房\n");
printf("\t 8:返回主菜单\n");


printf("请输入数字键选择服务种类:");
scanf("%d",&select);
if(select==0) flag=0;
if(select==1)
{
L.len=Create(L);
getch();
system("cls");
}
if(select==2)
{
L.len=AddInfo(L);
getch();
system("cls");
}
if(select==3)
{
ModifyInfo(L);
getch();
system("cls");
}
if(select==4)
{
L.len=DeleInfo(L);
getch();
system("cls");
}
if(select==5)
{
Find(L);
getch();
system("cls");
}
if(select==6)
{
PrintInfo(L);
getch();
system("cls");
}

if(select==7)
{
ruzhutuifang();
getch();
system("cls");
}
else system("cls");
printf("%d\n",L.len);
}

}





lvjaio5241 2009-07-17
  • 打赏
  • 举报
回复
#define MAX 60

struct passenger
{
int roomnum;
struct tm time;
char name[20];
long ID;
int tel;
};

struct Room{
int price;
int num;
int remain_num;
}room[5];


typedef struct LNode
{
struct passenger info;
struct LNode *next;
}*Link;

typedef struct
{
Link head,tail,temp;
int len;
}LinkList;

int Create(LinkList L)
{
int flag=1;
L.tail=L.head;
printf("请录入旅客信息!\n");
while(flag)
{
L.temp=(Link)malloc(sizeof(LNode));
L.tail->next=L.temp;
L.tail=L.tail->next;
L.tail->next=NULL;
printf("请输入旅客姓名:");
scanf("%c",&L.tail->info.name);
printf("请输入旅客的电话号码:");
scanf("%s",L.tail->info.tel);
printf("请输入旅客的身份证号:");
scanf("%ld",&L.tail->info.ID);
printf("请输入旅客的房间号:");
scanf("%d",L.tail->info.roomnum);
L.len++;
L.temp=NULL;
}
return L.len;
}


int AddInfo(LinkList L)
{
L.temp=(Link)malloc(sizeof(LNode));
L.tail->next=L.temp;
L.tail=L.tail->next;
L.tail->next=NULL;
printf("请输入旅客的房间号:");
scanf("%d",&L.tail->info.roomnum);
printf("请输入旅客的姓名:");
scanf("%c",L.tail->info.name);
printf("请输入旅客的身份证号:");
scanf("%ld",L.tail->info.ID);
printf("请输入旅客的电话号码:");
scanf("%s",L.tail->info.tel);
L.len++;
L.temp=NULL;
return L.len;
}

void ModifyInfo(LinkList L)
{
int i,way;
char number[20];
char name[20];
L.temp=L.head->next;
printf("请输入你要修改信息的:姓名—1,房间号—2 ");
scanf("%d",&way);
if(way==1)
{
printf("请输入你要修改旅客信息的姓名:");
scanf("%c",&number);
for(i=0;i<L.len;i++)
{
if(name==L.temp->info.name)
{
printf("请输入修改后旅客的房间号:");
scanf("%d",&L.temp->info.roomnum);
printf("请输入修改后旅客的姓名:");
scanf("%c",L.temp->info.name);
printf("请输入修改后旅客的得身份证号:");
scanf("%ld",L.temp->info.ID);
printf("请输入修改后旅客的电话号码:");
scanf("%s",L.temp->info.tel);
break;
}
L.temp=L.temp->next;
}
if(i>=L.len) printf("没有你要修改的旅客的信息!\n");
}
else
{
printf("请输入你要修改旅客信息的姓名:");
scanf("%c",name);
for(i=0;i<L.len;i++)
{
if(!strcmp(name,L.temp->info.name))
{
printf("请输入修改后旅客的房间号:");
scanf("%d",&L.temp->info.roomnum);
printf("请输入修改后旅客的姓名:");
scanf("%c",L.temp->info.name);
printf("请输入修改后旅客的身份证号:");
scanf("%ld",L.temp->info.ID);
printf("请输入修改后旅客的电话号码:");
scanf("%s",L.temp->info.tel);
break;
}
L.temp=L.temp->next;
}
if(i>=L.len) printf("没有你要修改的旅客的信息!\n");
}
}


int DeleInfo(LinkList L)
{
int i,way;
Link p;
long number;
char name[20];
L.temp=L.head;
{
printf("请输入你要删除旅客信息的:姓名—1,房间号—2 ");
scanf("%d",&way);
if(way==1)
{
printf("请输入你要删除旅客的姓名:");
scanf("%c",&name);
for(i=0;i<L.len;i++)
{
if(name==L.temp->next->info.name)
{
p=L.temp->next;
L.temp->next=L.temp->next->next;
free(p);
break;
}
L.temp=L.temp->next;
}
if(i>=L.len) printf("没有你要删除的旅客的信息!\n");
else L.len--;
}
else
{
printf("请输入你要删除旅客的房间号:");
scanf("%d",&number);
for(i=0;i<L.len;i++)
{
if(number==L.temp->next->info.roomnum)
{
p=L.temp->next;
L.temp->next=L.temp->next->next;
free(p);
break;
}
L.temp=L.temp->next;
}
if(i>=L.len) printf("没有你要删除的旅客的信息!\n");
else L.len--;
}
}
return L.len;
}


void Find(LinkList L)
{
int i,way;
long number;
char name[20];
L.temp=L.head->next;
{
printf("请选择你要查询的方式,输入1按姓名进行查找,输入2按房间号进行查找:");
scanf("%d",&way);
if(way==1)
{
printf("请输入你要查询旅客的姓名:");
scanf("%c",&name);
for(i=0;i<L.len;i++)
{
if(name==L.temp->info.name)
{
printf("旅客的房间号:%s\n",L.temp->info.roomnum);
printf("旅客的姓名:%c\n",L.temp->info.name);
printf("旅客的身份证号:%ld\n",L.temp->info.ID);
printf("旅客的电话号码:%s\n",L.temp->info.tel);
break;
}
L.temp=L.temp->next;
}
if(i>=L.len) printf("没有你要查找的信息!\n");
}
else
{
printf("请输入你要查询旅客的房间号:");
scanf("%s",&number);
for(i=0;i<L.len;i++)
{
if(number==L.temp->info.roomnum)
{
printf("旅客的房间号:%s\n",L.temp->info.roomnum);
printf("旅客的姓名:%c\n",L.temp->info.name);
printf("学生的身份证号:%ld\n",L.temp->info.ID);
printf("旅客的电话号码:%s\n",L.temp->info.tel);
break;
}
L.temp=L.temp->next;
}
if(i>=L.len) printf("没有你要查找的信息!\n");
}
}
}

void PrintInfo(LinkList L)
{
int i;
L.temp=L.head->next;
if(L.len==0) printf("\a通讯录为空,无法进行当前操作!\n");
else
{
printf("房间号\t 姓名 \t身份证号\t电话\t\n");
for(i=0;i<L.len;i++)
{
printf("%c %s %ld %s ",L.temp->info.roomnum,L.temp->info.name,
L.temp->info.ID,L.temp->info.tel);
L.temp=L.temp->next;
}
}
}


void ruzhutuifang()
{
printf("1 入住登记\n2 退房管理\n3 退出\n");
int s,rank,money,number,day,fee,m,i,a[MAX-1]={0};//i表示房间号//
printf("请您输入 1,2或3:");
scanf("%d",&s);
if(s==1) //入住登记//
{
printf("1 标准间\n2 豪华间\n3 总统套房\n");
printf("请您输入房间类型: ");
scanf("%d",&rank);
if(rank==1)
{
printf("您选择的是标准间\n价格:100RMB/日\n押金:200RMB\n");
printf("请交押金: ");
scanf("%d",&money);
while(money!=200)
{
printf("输入有误请重新输入: ");
scanf("%d",&money);
}
if(money==200)
{
i=1;
while(a[i]!=0&&(i<=20))
{
i++;
}
number=i;
a[i]=1; //人已入住 要标记
}
printf("操作成功\n房间编号为:%d\n",number);
}
if(rank==2)
{
printf("您选择的是豪华间\n价格:200RMB/日\n押金:400RMB\n");
printf("请交押金: ");
scanf("%d",&money);
while(money!=400)
{
printf("输入有误请重新输入: ");
scanf("%d",&money);
}
if(money==400)
{
i=21;
while(a[i]!=0&&(i<=40))
{
i++;
}
number=i;
a[i]=1;
}
printf("操作成功\n房间编号为:%d\n",number);
}
if(rank==3)
{
printf("您选择的是总统套房\n价格:500RMB/日\n押金:1000RMB\n");
printf("请交押金: ");
scanf("%d",&money);
while(money!=1000)
{
printf("输入有误请重新输入:");
scanf("%d",&money);
}
if(money==1000)
{
i=41;
while(a[i]!=0&&(i<MAX))
{
i++;
}
number=i;
a[i]=1;
}
printf("操作成功\n房间编号为:%d\n",number);}
}

passenger * Find_With_RoomKey(int n)
{
/* int i,j,flag;
flag=0;

for(i=4;i>=1;i--)
{
for(j=1;j<=room[i].num;j++)
if(Customer[i][j].roomnum==n)
{
flag=1;
break;
}
if(flag)
break;
}

return &Customer[i][j];*/
return &passenger[n/1000][n%1000];//Hash method better!
}



if(s==2)
{
struct tm nowtime;
long sum,s_m,s_d;
int n;
printf("Input nowtime\n");
scanf("%d.%d",&nowtime.tm_mon,&nowtime.tm_mday);
printf("Enter the roomnumber\n");
scanf("%d",&n);
Find_With_RoomKey(n);
if(nowtime.tm_mday>Find_With_RoomKey(n)->time.tm_mday)
{
s_d=nowtime.tm_mday-Find_With_RoomKey(n)->time.tm_mday;
s_m=nowtime.tm_mon-Find_With_RoomKey(n)->time.tm_mon;
}
else
{
s_d=nowtime.tm_mday-Find_With_RoomKey(n)->time.tm_mday+31;
s_m=nowtime.tm_mon-Find_With_RoomKey(n)->time.tm_mon-1;
}

printf("The Room-%d passenger's info\n",Find_With_RoomKey(n)->roomnum);

printf("%d\t\t%s\t%d\t%d\t%d.%d\n",Find_With_RoomKey(n)->roomnum,
Find_With_RoomKey(n)->name,Find_With_RoomKey(n)->ID,Find_With_RoomKey(n)->tel,
Find_With_RoomKey(n)->time.tm_mon,Find_With_RoomKey(n)->time.tm_mday);
sum=room[Find_With_RoomKey(n)->roomnum/1000].price*(s_m*31+s_d-2);
room[Find_With_RoomKey(n)->roomnum/1000].remain_num++;
strcpy(Find_With_RoomKey(n)->name,"NULL");
Find_With_RoomKey(n)->ID=0;
Find_With_RoomKey(n)->roomnum=0;
Find_With_RoomKey(n)->tel=0;
Find_With_RoomKey(n)->time.tm_mon=1;
Find_With_RoomKey(n)->time.tm_mday=1;
printf("%d",sum);
}
if(s==3)
{
printf("您已经退出本系统的操作,欢迎下次使用!\n");
}

}







bigriverhorse 2009-07-17
  • 打赏
  • 举报
回复
楼主应该专业一点,代码使用“样式”格式化一下,

另外,这是楼主的作业吗,如果不限制的话,不要使用文件,建议写到数据库去吧,比如SQLite。
myullian 2009-07-17
  • 打赏
  • 举报
回复
学习下,网上应该有很多吧

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧