这是没改之前豪,提示我有个函数没有说明
这是改了之后,提示说 StudentMessageInterface 函数为说明,我就把他取消注释,但是为什么一下子弹出来这么错误,我已经改了接近一下午了,q i u q i u 了,我快绝望了。另外,请问一下,一个项目封装意味着将全部代码分类吗,主函数单独一个cpp,全局变量单独一个,全局函数单独一个吗?
看看你的源代码?
#include <iostream>
#include <easyx.h>
#include <graphics.h>
#include "button.hpp"
using namespace std;
/*一级菜单功能按钮*/
button ShowStudent; //显示学生
button About; //查看说明
button ChangePwd; //修改密码
button Exit; //退出系统
/*二级菜单功能按钮*/
button AddSTU;
button DeleteSTU;
button SortSTU;
button Back;
/*功能函数*/
void AddStudent() {
if (pre_num < total_num) {
}
else {
MessageBox(NULL, L"抱歉!上限已满!", L"警告", MB_RETRYCANCEL | MB_ICONWARNING);
}
}
void back_click() {
}
/*绘制一级界面*/
//主界面
void ShowMenu() {
initgraph(640, 480, SHOWCONSOLE);
int red = 230;
int green = 230;
int blue = 230;
setbkcolor(RGB(red, green, blue)); //配置初始环境
setfillcolor(RGB(red, green, blue));
setlinecolor(LIGHTGRAY);
solidrectangle(0, 0, 640, 480); //填白界面
settextcolor(BLACK); //设置标题模式
setbkmode(OPAQUE);
settextstyle(50, 0, L"宋体");
outtextxy(120, 50, _T("学生成绩管理系统")); /* 更改画布大小这里要重新设置*/
settextstyle(30, 0, L"宋体"); //设置选项卡模式
int x = 260, y = 150;
setlinestyle(PS_SOLID, 5);
setlinecolor(BLACK);
setfillcolor(RGB(red, green, blue));
fillrectangle(250, 140, 390, 340); /* 更改画布大小这里要重新设置*/
outtextxy(260, 150, L"显示学生");
line(250, 190, 390, 190); //line将其余选项卡分隔开
outtextxy(260, 200, L"查看说明");
line(250, 240, 390, 240);
outtextxy(260, 250, L"修改密码");
line(250, 290, 390, 290);
outtextxy(260, 300, L"退出系统");
}
/*绘制二级界面*/
//学生成绩界面
void StudentMessageInterface() {
cleardevice(); //清空画布
setlinecolor(BLACK);
setfillcolor(LIGHTGRAY);
fillrectangle(30, 10, 600, 70);
fillrectangle(30, 70, 600, 130);
fillrectangle(30, 130, 600, 190);
fillrectangle(30, 190, 600, 250);
fillrectangle(30, 250, 600, 310);
fillrectangle(30, 310, 600, 370);
setbkmode(LIGHTGRAY);
settextstyle(20, 0, L"宋体");
settextcolor(BLACK);
outtextxy(50, 30, L"学号");
outtextxy(120, 30, L"姓名");
outtextxy(200, 30, L"高数");
outtextxy(270, 30, L"英语");
outtextxy(350, 30, L"计算机");
outtextxy(450, 30, L"综合");
outtextxy(530, 30, L"排名");
setlinestyle(PS_SOLID, 3);
fillrectangle(80, 390, 140, 430);
fillrectangle(140, 390, 200, 430);
fillrectangle(200, 390, 260, 430);
outtextxy(20, 400, L"返回");
outtextxy(90, 400, L"增加");
outtextxy(150, 400, L"删除");
outtextxy(210, 400, L"排序");
Back.Creat(10, 390, 70, 430, L"返回", back_click);
// settextstyle(50, 0, _T("Wingdings"));
int pre = 0; //当前页数
int total = 0; //一共多少页
wchar_t a[8];
outtextxy(400, 400, L"<-");
outtextxy(500, 400, L"->");
wsprintfW(a, L"%d/%d", pre, total);
outtextxy(440, 400, a);
MOUSEMSG msg;
while (true) {
while (true) {
msg = GetMouseMsg();
if (msg.mkLButton == true) {
int x = msg.x;
int y = msg.y;
if (Back.Check(x, y)) {
Back.Function();
Judge_Menu = true;
break;
}
else if (0) {
break;
}
else if (0) {
break;
}
else if (0) {
break;
}
}
}
Sleep(10);
}
}
int main() {
ShowMenu();
ShowStudent.Creat(250, 140, 390, 190, L"显示学生", StudentMessageInterface); /* 更改画布大小这里要重新设置*/
About.Creat(250, 190, 390, 240, L"显示学生", NULL);
ChangePwd.Creat(250, 290, 390, 290, L"显示学生", NULL);
Exit.Creat(250, 290, 390, 340, L"显示学生", NULL);
MOUSEMSG msg;
while (true) { //主控循环
while (true) { //在主界面则响应其他功能,进入二级界面就限制主界面的判断范围
msg = GetMouseMsg();
if (msg.mkLButton == true) { //左键按下
int x = msg.x;
int y = msg.y;
if (ShowStudent.Check(x, y)) { //ShowMenu()中寻找坐标区域
ShowStudent.Function();
break;
}
else if (About.Check(x, y)) {
break;
}
else if (ChangePwd.Check(x, y)) {
break;
}
else if (Exit.Check(x, y)) {
break;
}
}
}
}
_getch();
closegraph();
return 0;
}