配置:vs2022 项目属性/高级/字符集 将“使用Unicode字符集”改成“使用多字节字符集”
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<string.h>
#include<ctype.h>
#include <time.h>
int i = 0;//记录学生个数
void FirstPage();//首页
void creat();//新建
void print();//打印
void get();//抽取
void result();//抽取结果
typedef struct Student
{
char num[64];//学号
char name[64];//姓名
}Student;
Student StuArry[100];
void FirstPage()
{
MOUSEMSG m1;//鼠标
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
//标题
settextcolor(BLACK);
settextstyle(60, 0, _T("黑体"));
setbkmode(TRANSPARENT);
outtextxy(175, 100, _T("学生抽取系统"));
//绘制选项
setfillcolor(0x5D7DB3);
fillrectangle(230, 230, 490, 280);
fillrectangle(230, 300, 490, 350);
fillrectangle(230, 370, 490, 420);
settextcolor(WHITE);
settextstyle(40, 0, "黑体");
setbkmode(TRANSPARENT);
outtextxy(280, 235, "添加学生");
outtextxy(280, 305, "显示学生");
outtextxy(280, 375, "抽取学生");
while (1)
{
m1 = GetMouseMsg();//获取鼠标操作
if (m1.x >= 230 && m1.x <= 490 && m1.y >= 230 && m1.y <= 280)
{
setlinecolor(RED);//绘制选择矩形框
rectangle(230, 230, 490, 280);
if (m1.uMsg == WM_LBUTTONDOWN)
{
cleardevice();
creat();
}
}
else if (m1.x >= 230 && m1.x <= 490 && m1.y >= 300 && m1.y <= 350)
{
setlinecolor(RED);//绘制选择矩形框
rectangle(230, 300, 490, 350);
if (m1.uMsg == WM_LBUTTONDOWN)
{
cleardevice();
print();
}
}
else if (m1.x >= 230 && m1.x <= 490 && m1.y >= 370 && m1.y <= 420)
{
setlinecolor(RED);//绘制选择矩形框
rectangle(230, 370, 490, 420);
if (m1.uMsg == WM_LBUTTONDOWN)
{
cleardevice();
get();
}
}
else
{
//绘制待选择矩形框
setlinecolor(WHITE);
rectangle(230, 230, 490, 280);
rectangle(230, 300, 490, 350);
rectangle(230, 370, 490, 420);
}
}
}
void creat()
{
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
//标题
settextcolor(BLACK);
settextstyle(60, 0, _T("黑体"));
setbkmode(TRANSPARENT);
outtextxy(175, 100, _T("学生抽取系统"));
//输入操作
TCHAR InputWindow0[] = "请输入该学生的学号";
InputBox(StuArry[i].num, 10, InputWindow0);
TCHAR InputWindow1[] = ("请输入该学生的姓名");
InputBox(StuArry[i].name, 10, InputWindow1);
i++;
FirstPage();
}
void print()
{
//判断是否录入学生信息
if (i == 0)
{
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
HWND hwndInput = GetHWnd();
TCHAR InputWindow3[] = ("您还没有录入学生!");
MessageBox(hwndInput, InputWindow3, "提示", MB_OK);
FirstPage();
}
else
{
//鼠标
MOUSEMSG SA;
//绘制窗口
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
//绘制选项
settextstyle(30, 0, "黑体");
setbkmode(TRANSPARENT);
setfillcolor(0x5D7DB3);
fillrectangle(550, 690, 650, 740);
outtextxy(570, 700, "返回");
settextcolor(BLACK);
outtextxy(175, 80, "学号: 姓名:");
for (int q = 0, y = 120; q <= i; q++, y += 40)
{
outtextxy(210, y, StuArry[q].num);
outtextxy(400, y, StuArry[q].name);
}
while (1)
{
SA = GetMouseMsg();
if (SA.x >= 550 && SA.x <= 650 && SA.y >= 690 && SA.y <= 740)
{
setlinecolor(RED);
rectangle(550, 690, 650, 740);
if (SA.uMsg == WM_LBUTTONDOWN)
{
FirstPage();
}
}
else
{
//绘制待选择矩形框
setlinecolor(WHITE);
rectangle(550, 690, 650, 740);
}
}
}
}
void get()
{
if (i == 0)
{
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
HWND hwndInput = GetHWnd();
TCHAR InputWindow3[] = ("您还没有录入学生!");
MessageBox(hwndInput, InputWindow3, "提示", MB_OK);
FirstPage();
}
else
{
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
HWND hwndInput = GetHWnd();
MessageBox(hwndInput, "正在抽取学生中!请耐心等待", "提示", MB_OK);
MessageBox(hwndInput, "抽取成功,点击确定查看结果", "提示", MB_OK);
result();
}
}
void result()
{
//获取随机数
int getnum;
srand((unsigned)time(NULL));
getnum = rand() % (i);
//绘制背景
initgraph(700, 800);
cleardevice();
IMAGE picture1;
loadimage(&picture1, "F:\\实践作业\\760.jpg", 700, 800);
putimage(0, 0, &picture1);
//鼠标
MOUSEMSG SA;
//绘制选项和文字
settextstyle(30, 0, "黑体");
setbkmode(TRANSPARENT);
setfillcolor(0x5D7DB3);
fillrectangle(500, 690, 650, 740);
outtextxy(515, 700, "退出程序");
settextcolor(BLACK);
outtextxy(210, 200, "学号:");
outtextxy(210, 250, "姓名:");
outtextxy(300, 200, StuArry[getnum].num);
settextstyle(60, 0, "黑体");
outtextxy(240, 100, "恭喜您!");
settextstyle(80, 0, "黑体");
outtextxy(270, 310, StuArry[getnum].name);
while (1)
{
SA = GetMouseMsg();
if (SA.x >= 500 && SA.x <= 650 && SA.y >= 690 && SA.y <= 740)
{
setlinecolor(RED);
rectangle(500, 690, 650, 740);
if (SA.uMsg == WM_LBUTTONDOWN)
{
exit(0);
}
}
else
{
//绘制待选择矩形框
setlinecolor(WHITE);
rectangle(500, 690, 650, 740);
}
}
}
int main()
{
FirstPage();
return 0;
}