控制檯窗口程序

#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();
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章