#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<tchar.h>
#include<vld.h>
#include<Windows.h>
typedef struct book_info
{
char* bookname;
int bookID;
float bookprice;
char* bookauthor;
int existstatus;
char* borrowername;
bool borrowersex; //true爲男 false爲女
int borrowerStuID;
}BookManage;
void display(book_info& bi);
void welcome(HANDLE hout);
int menu();
void display(book_info& bi);
int main()
{
BookManage books = { const_cast<char*>("C++標準庫"),100001,186.00,const_cast<char*>("侯捷"),
0,const_cast<char*>("王五"),true,65512 };
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
welcome(hout);
loop:
switch (menu())
{
case '1':
system("cls");
display(books);
getch();//無屏顯,同步
goto loop;
break;
case 'q':
goto end;
break;
default:
system("cls");
goto loop;
}
end:
CloseHandle(hout);
return 0;
}
const char* sex(bool& s)
{
if (s == true)
return "男";
if (s == false)
return "女";
return " ";
}
const char* existStatus(int& status)
{
switch (status)
{
case 1:
return "已借出";
case 2:
return "已還";
default:
return (const char*)(status - 48);
}
}
void display(book_info& bi)
{
printf("圖書名稱:%s\n圖書編號:%d\n圖書價格:%.2f\n圖書作者:%s\n",
bi.bookname, bi.bookID, bi.bookprice, bi.bookauthor);
printf("存在狀態:%d\n借書人姓名:%s\n借書人性別:%s\n借書人學號:%d\n",
bi.existstatus, bi.borrowername, sex(bi.borrowersex), bi.borrowerStuID);
}
void welcome(HANDLE hout)
{
SetConsoleTitle((LPCWSTR)_T("圖書管理系統"));
SMALL_RECT rc;
rc.Left = 0;
rc.Right = 65;
rc.Top = 0;
rc.Bottom = 25;
SetConsoleWindowInfo(hout, TRUE, &rc);
printf("-------------------------------------\n");
printf("\n\n\n\n");
printf("\t歡迎使用圖書管理系統\n");
printf("\n\n\n\n");
printf("-------------------------------------\n");
system("color fa");
while (_getch()) //_kbhit()在有按鍵按下的時候返回非零值,否則返回0
{ //_getch() 阻塞線程
break;
}
system("color 0f");
system("cls");
}
int menu()
{
printf("-------------------------------------\n");
printf("\n\n");
printf("1.查看所有圖書信息\n");
printf("\n\n");
printf("-------------------------------------\n");
printf("*.按數字進入相應的功能\n*.按q退出\n");
printf("-------------------------------------\n");
return getchar();
}