?? train_booking_debug.c
字號:
// train_booking_debug.c -- 包含調試程序使用的函數
//
/////////////////////////////////////////////////////////////////////////////
#ifndef TRAIN_BOOKING_DEBUG_C_
#define TRAIN_BOOKING_DEBUG_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"
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// 函數功能: 依次顯示車次鏈表中的所有結點信息
//
// 函數參數: train_sq_head:車次鏈表頭結點指針
// type:查看類型:0為普通用戶,1為管理員
//
/////////////////////////////////////////////////////////////////////////////
status show_sq_links(train_sq_info *train_sq_head, char type)
{
int count = 0, i;
train_info *train_info_pt;
station_info *station_info_head;
if (!(train_sq_head->next))
{
printf("【警告】車次鏈表中無信息可顯示!\n");
WAIT;
return OK;
}
train_sq_head = train_sq_head->next; // 跳過頭結點
while (train_sq_head)
{
CR;
printf("┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄\n");
printf("【系統信息】第(%d)條車次記錄\n", count + 1);
printf("【系統信息】車次編號:%s\n", train_sq_head->train_sq_id);
printf("【系統信息】隸屬車站:%s\n", train_sq_head->master);
if (type)
{
printf("【系統信息】目前運營列車數量:%d\n", train_sq_head->running_amount);
printf("【系統信息】發車間隔天數:%d\n", train_sq_head->days_per_train);
}
// 取得一趟列車的信息
train_info_pt = &train_sq_head->train_list;
train_info_pt = train_info_pt->next;
printf("【系統信息】始發站:%s\n", train_info_pt->start);
printf("【系統信息】終點站:%s\n", train_info_pt->final);
// 取得站點鏈表,直接跳過頭結點
station_info_head = &train_info_pt->station_links.next;
for (i = 0; i < train_info_pt->total_station - 1; i++)
{
printf("【系統信息】途經車站:\n");
printf("【%d】【%s】 ", i + 1, station_info_head->station_id);
if (!i)
{
printf("發車時間:%d時%d分\n",
station_info_head->reach_time.tm_hour,
station_info_head->reach_time.tm_min);
}
else
{
printf("到達時間:%d時%d分\n",
station_info_head->reach_time.tm_hour,
station_info_head->reach_time.tm_min);
}
}
CR;
printf("┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄\n");
train_sq_head = train_sq_head->next;
getch();
}
CR;
message(TIP, "按任意鍵繼續...", C);
return OK;
}
/////////////////////////////////////////////////////////////////////////////
// 函數功能; 顯示系統信息
//
// 函數參數: system_info_pt:系統信息體指針
//
// 函數說明: 僅供管理員程序代碼使用
//
/////////////////////////////////////////////////////////////////////////////
status show_system_info(system_info *system_info_pt)
{
int i;
char ch;
train_info *train_info_head;
CR;
printf("┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄【系統配置信息】┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄\n");
printf("【系統信息】系統數據庫綁定車站:%s\n", system_info_pt->location);
printf("【系統信息】是否開放訂票功能:");
if (system_info_pt->open)
{
printf("是\n");
}
else
{
printf("否\n");
}
printf("【系統信息】是否鎖定:");
if (system_info_pt->locked)
{
printf("是\n");
}
else
{
printf("否\n");
}
printf("【系統信息】總運營車次數量:%d\n", system_info_pt->total_train_sq);
train_info_head = &system_info_pt->train_sq_list; // 取得車次信息鏈
if (train_info_head->next)
{
message(TIP, "按V鍵查看所有車次信息,其它鍵跳過。", NULL);
ch = getch();
if ('v' == ch)
{
show_sq_links(&system_info_pt->train_sq_list, 1);
}
}
printf("【系統信息】總運營列車數量:%d\n", system_info_pt->total_train);
printf("【系統信息】管理員數量:%d\n", system_info_pt->admin_amount);
if (system_info_pt->admin_amount)
{
message(TIP, "按V鍵查看所有管理員信息,其他鍵跳過", NULL);
ch = getch();
if ('v' == ch)
{
for (i = 0; i < system_info_pt->admin_amount; i++)
{
printf("【%d】%s", system_info_pt->admin[i]);
if (!(i % 4))
{
CR;
}
}
}
else
{
printf("【警告】放棄查看管理員信息。\n");
}
}
printf("【系統信息】乘客數量:%d\n", system_info_pt->psngr_amount);
printf("【系統信息】每公里軟臥票價:%.2f元\n", system_info_pt->price_sbed_per_km);
printf("【系統信息】每公里硬臥票價:%.2f元\n", system_info_pt->price_hbed_per_km);
printf("【系統信息】每公里硬座票價:%.2f元\n", system_info_pt->price_hseat_per_km);
printf("【系統信息】乘客退票打折率:%.0f%\n", system_info_pt->bounce_off * 100);
printf("【系統信息】特殊乘客訂票打折率:%.0f%\n", system_info_pt->special_off * 100);
printf("【系統信息】總售出票數:%d元\n", system_info_pt->total_sold);
printf("【系統信息】車站總收入:%ld元\n", system_info_pt->total_income);
CR;
printf("┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄\n");
WAIT;
return OK;
}
/////////////////////////////////////////////////////////////////////////////
// 函數功能: 顯示全部的乘客信息鏈
//
// 函數參數: psngr_info_head:乘客信息鏈頭結點指針
//
/////////////////////////////////////////////////////////////////////////////
status show_psngr_info_list(passenger_info *psngr_info_head)
{
char tmp[64];
if (psngr_info_head->next)
{
message(WARN, "當前的乘客信息鏈中無可用數據!", W);
return FAIL;
}
while (psngr_info_head->next)
{
psngr_info_head = psngr_info_head->next;
printf("【乘客信息】稱呼:%s\n", psngr_info_head->passenger_id);
printf("【乘客信息】密碼:%s\n", psngr_info_head->password);
printf("【乘客信息】注冊車站:%s\n", psngr_info_head->station_id);
if (0 == psngr_info_head->type)
{
strcpy(tmp, "管理員");
}
else if (1 == psngr_info_head->type)
{
strcpy(tmp, "普通乘客");
}
else
{
strcpy(tmp, "特殊乘客");
}
printf("【乘客信息】注冊類型:%s\n", tmp);
printf("【乘客信息】總訂票列車數:%d\n", psngr_info_head->total_booked_train);
printf("【乘客信息】總訂票票數:%d\n", psngr_info_head->total_booked_tickets);
printf("【乘客信息】總消費:%d\n", psngr_info_head->total_cost);
printf("【乘客信息】系統消息數:%d\n", psngr_info_head->sysmsg_amount);
printf("【乘客信息】系統新到消息數:%d\n", psngr_info_head->sysmsg_new);
// 此處加入顯示全部訂票信息的代碼
// 此處加入顯示全部系統消息的代碼
}
return OK;
}
/////////////////////////////////////////////////////////////////////////////
// 函數功能: 顯示單個乘客數據
//
// 函數參數: psngr_info_pt:乘客數據單元指針
//
/////////////////////////////////////////////////////////////////////////////
status show_single_psgnr_info(passenger_info *psngr_info_pt)
{
char tmp[64];
if (!(psngr_info_pt))
{
message(WARN, "乘客數據單元為空!", W);
}
printf("【乘客信息】稱呼:%s\n", psngr_info_pt->passenger_id);
printf("【乘客信息】密碼:%s\n", psngr_info_pt->password);
printf("【乘客信息】注冊車站:%s\n", psngr_info_pt->station_id);
if (0 == psngr_info_pt->type)
{
strcpy(tmp, "管理員");
}
else if (1 == psngr_info_pt->type)
{
strcpy(tmp, "普通乘客");
}
else
{
strcpy(tmp, "特殊乘客");
}
printf("【乘客信息】注冊類型:%s\n", tmp);
printf("【乘客信息】總訂票列車數:%d\n", psngr_info_pt->total_booked_train);
printf("【乘客信息】總訂票票數:%d\n", psngr_info_pt->total_booked_tickets);
printf("【乘客信息】總消費:%d\n", psngr_info_pt->total_cost);
printf("【乘客信息】系統消息數:%d\n", psngr_info_pt->sysmsg_amount);
printf("【乘客信息】系統新到消息數:%d\n", psngr_info_pt->sysmsg_new);
// 此處加入顯示全部訂票信息的代碼
// 此處加入顯示全部系統消息的代碼
return OK;
}
/////////////////////////////////////////////////////////////////////////////
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -