void OnCustomerLeave ( void *para ) { if ( winlist == NULL ) { // 判断有没有窗口 printf ( "当前没有窗口!\n\n" ); return; } WElemType windowId; printf ( "请输入要办结离队的窗口编号:" ); scanf ( "%d", &windowId ); // 查找该窗口 WinList p = Findwindows ( windowId ); if ( p == NULL ) { // 没有找到该窗口 printf ( "窗口不存在!\n\n" ); return; } // 判断队列是否为空 if ( p->data.queue.length == 0 ) { printf ( "队列中没有顾客!\n\n" ); return; } int e; //编号 char ch; DeQueue ( &p->data.queue, &e ); //办结离队 printf ( "顾客 %c%d-%d 号正在办结排队...是否愿意为服务您的窗口 %d 号进行评分(y=进行评分,n=默认8分): ",p->data.type + 'A', windowId, e, windowId ); scanf ( " %c", &ch ); if ( ch == 'Y' || ch == 'y' ) { rateWindow ( &p->data.score ); //进入评分函数进行评分 } else { p->data.score.rating = WinRating ( p->data.score, 8 ); //默认打8分 p->data.score.servedCount ++; //顾客量加一 } char str[100]; printf("请为这次服务留下意见(100字内):"); gets(str); puts(str); getchar(); printf("感谢您的评价,欢迎下次光临!\n"); getchar ( ); printf ( "窗口 %d 的顾客 %c%d-%d 号已经离队!\n\n", windowId, p->data.type + 'A', windowId, e ); }帮我做这段代码的数据存储
时间: 2024-03-14 17:48:07 浏览: 62
串数组习题:实现下面函数的功能。函数void insert(char*s,char*t,int pos)将字符串t插入到字符串s中,插入位置为pos。假设分配给字符串s的空间足够让字符串t插入。
这段代码的数据存储主要涉及到评价信息的存储。可以考虑将评价信息存储到文件中,具体实现步骤如下:
1. 在程序中定义一个文件名,比如"comments.txt"。
2. 在OnCustomerLeave函数中,添加代码将评价信息写入文件中。具体实现步骤如下:
a. 打开文件,使用fopen函数,文件打开方式为"a",表示向文件追加内容。
b. 将评价信息写入文件中,使用fprintf函数。
c. 关闭文件,使用fclose函数。
下面是修改后的代码:
```
void OnCustomerLeave ( void *para )
{
if ( winlist == NULL )
{
// 判断有没有窗口
printf ( "当前没有窗口!\n\n" );
return;
}
WElemType windowId;
printf ( "请输入要办结离队的窗口编号:" );
scanf ( "%d", &windowId );
// 查找该窗口
WinList p = Findwindows ( windowId );
if ( p == NULL )
{
// 没有找到该窗口
printf ( "窗口不存在!\n\n" );
return;
}
// 判断队列是否为空
if ( p->data.queue.length == 0 )
{
printf ( "队列中没有顾客!\n\n" );
return;
}
int e; //编号
char ch;
DeQueue ( &p->data.queue, &e ); //办结离队
printf ( "顾客 %c%d-%d 号正在办结排队...是否愿意为服务您的窗口 %d 号进行评分(y=进行评分,n=默认8分): ",p->data.type + 'A', windowId, e, windowId );
scanf ( " %c", &ch );
if ( ch == 'Y' || ch == 'y' )
{
rateWindow ( &p->data.score ); //进入评分函数进行评分
}
else
{
p->data.score.rating = WinRating ( p->data.score, 8 ); //默认打8分
p->data.score.servedCount ++; //顾客量加一
}
char str[100];
printf("请为这次服务留下意见(100字内):");
getchar(); //读取多余的回车符,避免gets函数读取到上一次输入留下的回车符
gets(str);
FILE *fp = fopen("comments.txt", "a"); //打开文件,向文件追加内容
if(fp == NULL)
{
printf("文件打开失败!\n");
return;
}
fprintf(fp, "窗口 %d 的顾客 %c%d-%d 号的评价:%s\n", windowId, p->data.type + 'A', windowId, e, str); //将评价信息写入文件
fclose(fp); //关闭文件
printf("感谢您的评价,欢迎下次光临!\n");
getchar ( );
printf ( "窗口 %d 的顾客 %c%d-%d 号已经离队!\n\n", windowId, p->data.type + 'A', windowId, e );
}
```
阅读全文