?? train_booking_interact.c
字號:
// train_booking_interact.c -- 包含查詢、報表等交互操作函數
//
/////////////////////////////////////////////////////////////////////////////
#ifndef TRAIN_BOOKING_INTERACT_C_
#define TRAIN_BOOKING_INTERACT_C_
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include "train_booking_declare.h"
#include "train_booking_const.h"
#include "train_booking_unit.h"
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// 函數功能: 按起始站/終點站搜索車次
//
// 函數參數: system_info_pt:系統信息體指針
// ok_sq_head:查詢結果鏈表頭結點指針
// count:反回搜索結果數量
// type:搜索類型:1為起始站,0為終點站
//
/////////////////////////////////////////////////////////////////////////////
status search_train_sq_by_start_end(system_info *system_info_pt,
train_sq_info *ok_train_sq_head, char type)
{
train_sq_info *train_sq_info_pt, *train_sq_info_head;
char t_station[128], call[16], t_target_station[16];
int count, search_state;
train_info *train_info_pt;
CLS;
actitle("按起始站/終點站搜索車次");
if (1 == type) // 取得稱呼
{
strcpy(call, "起始站");
}
else
{
strcpy(call, "終點站");
}
if (!(get_str(call, t_station, MIN_TRING_ID_LEN, MAX_TRAIN_ID_LEN)))
{
message(WARN, "搜索車次失敗!", WC);
return FAIL;
}
printf("【信息】正在搜索%s為(%s)的所有車次信息...\n", call, t_station);
count = 0; // 清空計數器
train_sq_info_head = &system_info_pt->train_sq_list; // 取得鏈頭
if (!train_sq_info_head->next)
{
message(ERROR, "本車站都還沒有車次!", NULL);
message(WARN, "查找車次失敗!", WC);
return FAIL;
}
while (train_sq_info_head->next)
{
train_sq_info_head = train_sq_info_head->next; // 跳過頭結點
train_info_pt = train_sq_info_head->train_list.next; // 取得其中一趟火車信息即可
if (1 == type)
{
strcpy(t_target_station, train_info_pt->start);
}
else
{
strcpy(t_target_station, train_info_pt->final); // 取得對應站點名稱
}
if (check_string(t_target_station, t_station)) // 查找到符合條件的車次
{
if (!(train_sq_info_pt = (train_sq_info *)malloc(sizeof(train_sq_info))))
{
message(ERROR, "搜索車次信息時申請內存失敗!", NULL);
message(WARN, "查找車次失敗!", WC);
return FAIL;
}
// 獲取匹配數據,鏈上表尾
ok_train_sq_head->next = train_sq_info_pt; // 鏈上表尾
*train_sq_info_pt = *train_sq_info_head; // 數據賦給新鏈表
train_sq_info_head->next = NULL; // 封尾
ok_train_sq_head = ok_train_sq_head->next; //
count++;
}
}
if (!count) // 沒有找到匹配結果
{
printf("【信息】沒有找到任何%s為(%s)的車次信息!\n", call, t_station);
message(TIP, "按任意鍵返回", WC);
return FAIL;
}
else
{
printf("【信息】搜索完成!共找到%d個符合您的要求的車次。\n", count);
message(TIP, "按任意鍵始可查看結果!", W);
show_sq_links(ok_train_sq_head, 1); // 顯示結果
message(INFO, "按任意鍵返回主界面!", WC);
}
return OK;
}
/////////////////////////////////////////////////////////////////////////////
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -