easyx库+简易学生管理系统

概要

通过使用easyx库,完成学生管理系统,这是简易版,可以在此基础上,增加删改一些内容。

例如:

修改学生信息,使用文件输入输出流保存和读取学生信息等等。

整体架构流程

1.使用easyx库,加载背景图原图(第一张图片),在背景图上增加框,线和文本成为新背景图。其中文本包括标题:学生管理系统,进入和退出按钮。

2.使用鼠标指令对新背景图进行操作,点击进入或退出。点击进入,则加载下一张图片(第二张图片的新图);点击退出,则给提示框(确认退出)。

3.在步骤2中下一张图片这个图片需要提前进行修改成想要的,在图片上加入框,线和文本。文本就是所需要的功能。如1.录入,2.打印,3.删除,4.退出。

4.在步骤2加载第二张图片的新图后,有1,2,3,4四个功能,使用键盘指令操作,输入1进入录入功能,2进入打印功能,以此类推。

5.录入学生信息,包括姓名,年龄,学号。先加载第二张图片的原图。用InputBox()进行输入,输入完可以进行保存到图片。

6.打印学生信息。加载5保存的图片。

7.删除学生信息。对保存的图片进行删除文本。

8.退出。回到背景图。

9.可以给代码增加音乐。

以下是代码:

#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <malloc.h>
#include <string.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")

void bkpic();
void musicstd();
void mouseop();
void firststd();
void keyop();
void logstd();
void printstd();
void delstd();
void backstd();
void pdstd();

IMAGE img;//背景图
IMAGE img1;//第一张图片
IMAGE img2;//第一张图片(新)
IMAGE img3;//背景图(新)
IMAGE img4;//录入学生图片

int main() {
	//加载1背景
	bkpic();
	mouseop();
	

	getchar();
	return 0;
}

//背景图片,用buff0,img(原)
void bkpic() {
	//音乐
	musicstd();
	//窗口
	initgraph(400, 600);
	//加载,绘图bk
	loadimage(&img, "ybk.jpg", 400,600,true);
	putimage(0, 0, &img);
	//加框(总)
	setlinecolor(BLACK);
	rectangle(100, 0, 400, 300);
	line(100, 100, 400, 100);
	//加框(小)
	setfillcolor(RGB(185, 122, 87));
	fillrectangle(120, 160, 220, 220);
	fillrectangle(280, 160, 380, 220);
	//加文字
	settextcolor(RED);
	settextstyle(40, 0, "宋体");
	setbkmode(TRANSPARENT);
	char arr[] = "学生管理系统";
	int wigth = (300 - textwidth(arr)) / 2;
	int height = (100 - textheight(arr)) / 2;
	outtextxy(wigth+100 , height , arr);

	settextcolor(GREEN);
	setbkmode(TRANSPARENT);
	char arr1[] = "进入";
	int wigth1 = (100 - textwidth(arr1)) / 2;
	int height1 = (60 - textheight(arr1)) / 2;
	outtextxy(wigth1+120, height1+160, arr1);

	char arr2[] = "退出";
	int wigth2 = (100 - textwidth(arr2)) / 2;
	int height2 = (60 - textheight(arr2)) / 2;
	outtextxy(wigth2 + 280, height2 + 160, arr2);
	//保存图像
	char buff0[100] = { 0 };
	sprintf_s(buff0, "bk.jpg");
	saveimage(buff0);
}
//音乐
void musicstd() {
	mciSendString("open 两个我们.mp3", 0, 0, 0);
	mciSendString("play 两个我们.mp3", 0, 0, 0);
}

//对背景图片的操作,
void mouseop() {
	while (1) {
		MOUSEMSG msg = GetMouseMsg();
		if (msg.uMsg == WM_LBUTTONDOWN) {
			if (msg.x > 120 && msg.x < 220 && msg.y>160 && msg.y < 220) {
				firststd();
				//进入第一张图片
				loadimage(&img2, "bk2.jpg", 400, 600, true);
				putimage(0, 0, &img2);
				//对第一张图片操作
				keyop();
				break;
			}
			if (msg.x > 280 && msg.x < 380 && msg.y>160 && msg.y < 220) {	
				HWND hwnd = GetHWnd();
				SetWindowText(hwnd, "学生管理系统");
				int a = MessageBox(hwnd, "确定退出吗?", "学生管理系统",MB_OKCANCEL);
				if (a == IDOK) {
					closegraph();
					break;
				}
			}
		}
	}
}
//第一张图片,img1(原2),buff1
void firststd() {
	//加载1
	loadimage(&img1, "ybk2.jpg", 400, 600, true);
	putimage(0, 0, &img1);
	//第一个图片加框
	rectangle(0, 0, 400, 500);
	line(0, 100, 400, 100);
	//加文字
	settextcolor(RED);
	settextstyle(50, 0, "宋体");
	setbkmode(TRANSPARENT);
	char arr[] = "学生管理系统";
	int wigth = (400 - textwidth(arr)) / 2;
	int height = (100 - textheight(arr)) / 2;
	outtextxy(wigth , height, arr);

	settextcolor(GREEN);
	settextstyle(25, 0, "宋体");
	setbkmode(TRANSPARENT);
	char t1[] = "1.录入学生信息";
	char t2[] = "2.打印学生信息";
	char t3[] = "3.删除学生信息";
	char t4[] = "4.退出";
	int h1 = (50 - textheight(t1)) / 2;
	outtextxy(0, h1 + 100, t1);
	outtextxy(0, h1 + 150, t2);
	outtextxy(0, h1 + 200, t3);
	outtextxy(0, h1 + 250, t4);

	//保存
	char buff1[100] = { 0 };
	sprintf_s(buff1, "bk2.jpg");
	saveimage(buff1);
}
//对第一张图片操作
void keyop() {
	char ch = _getch();
	switch (ch) {
	case '1':
		logstd();
		break;
	case '2':
		printstd();
		break;
	case '3':
		delstd();
		break;
	case '4':
		backstd();
		break;
	}
}
//录入学生图片,buff2
void logstd() {
	putimage(0, 0, &img1);
	setbkmode(TRANSPARENT);
	outtextxy(0, 40, "姓名");
	outtextxy(150, 40, "年龄");
	outtextxy(300, 40, "学号");
	int tem = 0;
	while (1) {	
		char s[20];
		InputBox(s, 20, "请输入学生姓名");
		outtextxy(0,100 + tem,s);
		InputBox(s, 20, "请输入学生年龄");
		outtextxy(150,100 + tem,s);
		InputBox(s, 20, "请输入学生id");
		outtextxy(300,100 + tem,s);
		tem += 50;
		
		HWND hw1 = GetHWnd();
		int isok = MessageBox(hw1, "是否继续?", "学生录入",MB_OKCANCEL);
		if (isok == IDCANCEL) {
			break;
		}
	}
	//保存图片到.jpg
	HWND hw3 = GetHWnd();
	int isok = MessageBox(hw3, "是否保存录入?", "学生录入", MB_OKCANCEL);
	if (isok == IDOK) {
		char buff2[100] = { 0 };
		sprintf_s(buff2, "luru.jpg");
		saveimage(buff2);
	}
	//返回上一界面
	HWND hw2 = GetHWnd();
	int isok1 = MessageBox(hw2, "是否返回?", "学生管理系统", MB_OKCANCEL);
	if (isok1 == IDOK) {
		loadimage(&img2, "bk2.jpg", 400, 600, true);
		putimage(0, 0, &img2);
		keyop();
	}
	if (isok1 == IDCANCEL) {
		loadimage(&img3, "bk.jpg", 400, 600, true);
		putimage(0, 0, &img3);
		mouseop();
	}
}
//打印学生信息
void printstd() {
	loadimage(&img4, "luru.jpg", 400, 600, true);
	putimage(0, 0, &img4);
	pdstd();
}
//删除学生信息
void delstd() {
	loadimage(&img1, "ybk2.jpg", 400, 600, true);
	putimage(0, 0, &img1);
	pdstd();
}

//退出
void backstd() {
	loadimage(&img3, "bk.jpg", 400, 600, true);
	putimage(0, 0, &img3);
	mouseop();
}
//打印,删除操作
void pdstd() {
	setfillcolor(RGB(185, 122, 87));
	setlinecolor(BLACK);
	fillrectangle(50, 450, 150, 500);
	fillrectangle(250, 450, 350, 500);
	settextcolor(GREEN);
	setbkmode(TRANSPARENT);
	char arr1[] = "返回";
	int wigth1 = (100 - textwidth(arr1)) / 2;
	int height1 = (50 - textheight(arr1)) / 2;
	outtextxy(wigth1 + 50, height1 + 450, arr1);

	char arr2[] = "退出";
	outtextxy(wigth1 + 250, height1 + 450, arr2);
	while (1) {
		MOUSEMSG msg = GetMouseMsg();
		if (msg.uMsg == WM_LBUTTONDOWN) {
			if (msg.x > 50 && msg.x < 150 && msg.y>450 && msg.y < 500) {
				firststd();
				//进入第一张图片
				loadimage(&img2, "bk2.jpg", 400, 600, true);
				putimage(0, 0, &img2);
				//对第一张图片操作
				keyop();
				break;
			}
			if (msg.x > 250 && msg.x < 450 && msg.y>450 && msg.y < 500) {
				HWND hwnd = GetHWnd();
				SetWindowText(hwnd, "学生管理系统");
				int a = MessageBox(hwnd, "确定退出吗?", "学生管理系统", MB_OKCANCEL);
				if (a == IDOK) {
					closegraph();
					break;
				}
			}
		}
	}
}

重点

//保存图像

char buff0[100] = { 0 };
sprintf_s(buff0, "bk.jpg");
saveimage(buff0);

//音乐加载

mciSendString("open 两个我们.mp3", 0, 0, 0);
mciSendString("play 两个我们.mp3", 0, 0, 0);

//输入学生信息

        char s[20];
        InputBox(s, 20, "请输入学生姓名");
        outtextxy(0,100 + tem,s);
        InputBox(s, 20, "请输入学生年龄");
        outtextxy(150,100 + tem,s);
        InputBox(s, 20, "请输入学生id");
        outtextxy(300,100 + tem,s);

//对“对话框的确认和取消”进行操作

HWND hw1 = GetHWnd();
        int isok = MessageBox(hw1, "是否继续?", "学生录入",MB_OKCANCEL);
        if (isok == IDCANCEL) {
            break;
        }

技术细节

1.下载easyx.h头文件

2.在程序的文件夹中加入图片(ybk,ybk2),和音乐(两个我们)。

如下:

运行效果

查看视频easyx

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值