- C++项目开发全程实录(第2版)
- 明日科技编著
- 923字
- 2021-03-29 16:33:24
1.5 主窗体模块设计
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P19_9538.jpg?sign=1738932840-tbOFCaUmalFQ0oRd2uUwWn7QmEzlYNpa-0-f66071894ef32774e0b60e2ac949f967)
视频讲解
1.5.1 主窗体模块概述
系统主程序界面是应用程序提供给用户访问其他功能模块的平台,根据实际需要,图书管理系统的主界面采用了传统的“数字选择功能”风格。输入数字1进入到添加新书模块,输入数字2进入到浏览全部模块,输入数字3进入到删除图书模块。图书管理系统的主界面如图1.2所示。
1.5.2 主窗体模块技术分析
要实现图书管理系统的功能,需要对引用库函数添加头文件引用。头文件引用和宏定义的代码如下:
#include <iostream> #include <iomanip> #include <stdlib.h> #include <conio.h> #include <string.h> #include <fstream> #include "Book.h"
#define CMD_COLS 80 #define CMD_LINES 25 using namespace std;
除主函数外,系统自定义了许多函数,主要函数及功能如下。
void SetScreenGrid():设置屏幕显示的行数和列数。
void ClearScreen():清除屏幕信息。
void SetSysCaption(const char *pText):设置窗体标题栏。
void ShowWelcome():显示欢迎信息。
void ShowRootMenu():显示开始菜单。
void WaitView(int iCurPage):浏览数据时等待用户操作。
void WaitUser():等待用户操作。
void GuideInput():使用向导添加图书信息。
int GetSelect():获得用户菜单选择。
long GetFileLength(ifstream & ifs):获取文件长度。
void ViewData(int iSelPage):浏览所有图书记录。
void DeleteBookFromFile():在文件中产生图书信息。
void mainloop():主循环。
1.5.3 主窗体模块实现过程
图书管理系统的主窗体设计实现过程如下。
(1)在控制台中输入mode命令可以设置控制显示信息的行数、列数和背景颜色等信息。SetScreenGrid函数主要通过system函数来执行mode命令,CMD_COLS和CMD_LINES是宏定义中的值。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P20_32728.jpg?sign=1738932840-0jbXTlkvno2DrYdcvWcqgBPosoQRtNbI-0-5213e1da9f3bdc1bd643c52b3c286234)
(2)SetSysCaption函数主要完成在控制台的标题栏上显示Sample信息。控制台的标题栏信息可以使用title命令来设置,函数中使用system函数来执行title命令。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P20_32720.jpg?sign=1738932840-Z4R4j8rdDKcoVpd7NdxEfWgw9xhlRjjz-0-a27a3ef1f30e46fed929cb4e0f752b5c)
(3)ClearScreen函数主要通过system函数来执行cls命令,完成控制台屏幕信息的清除。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P20_32730.jpg?sign=1738932840-257VSjwtjUr1Y6ZoqJ7cgLb7Xvb4aH3K-0-3071dea9946f10dc89d0f1b03e95a0cf)
(4)SetSysCaption函数共有两个版本,这是SetSysCaption函数的另一个版本,主要实现在控制台的标题栏上显示指定字符。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P21_32723.jpg?sign=1738932840-WbRJqY5q0S5qb97eQH6pWrfVd28mCSZJ-0-36fb6bd40a0ed5184d2c6a29be354eea)
(5)ShowWelcome函数在屏幕上显示“图书管理系统”字样的欢迎信息,“图书管理系统”字样应尽量显示在屏幕的中央位置。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P21_32724.jpg?sign=1738932840-LOJUJYdbDhjPBmPNWCHMXtqDXfT1ytMB-0-5ed97060aacf5f9ea888b6457f65e507)
(6)ShowRootMenu函数主要显示系统的主菜单,系统中有3个菜单选项,分别是添加新书、浏览全部和删除图书。3个菜单选项是进入系统3个模块的入口。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P21_32731.jpg?sign=1738932840-RYjtMyNE8dyEVq7uVqg3NZokKbasEI6i-0-215ae24509e313a524ed5b279563a9fb)
(7)WaitUser函数主要负责当程序进入某一模块后,等待用户进行处理。用户可以选择返回主菜单,也可以直接退出系统。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P22_32732.jpg?sign=1738932840-LnQMyyCQwwyqCA3EHwwWimjKAPpv4k9W-0-b22c55351e3cdb59aa0168b996408538)
(8)main函数是程序的入口,主要调用了SetScreenGrid、SetSysCaption和mainloop 3个函数,其中,mainloop函数是主函数,负责模块执行的调度,主要代码如下:
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P22_32734.jpg?sign=1738932840-avCzmb0g3ZHzREbzsXgxm279YmXEwKZ6-0-364bb0456cd927c8298ad351ab63405f)
(9)GetSelect函数主要负责获取用户在菜单中的选择。
![](https://epubservercos.yuewen.com/620C61/13043251103823906/epubprivate/OEBPS/Images/Figure-P22_32736.jpg?sign=1738932840-kiwz4xXznDj0MI6dqTi1hoKJtacaSD7F-0-f0a7c77a3467a4f0051a52f957140e46)
其他函数都应用在添加新书模块、浏览全部模块和删除图书模块中,相关内容将在具体模块中讲解。