(C语言文件操作+EasyX)数据信息管理系统+图形化交互界面 程序设计(含源码)

1.程序结构

设计语言与运行环境:使用C语言与Easyx图形库,编程环境为VS2022,字符集为使用多字符集,所有文件的路径都在当前路径下

实现设计一个面向工业数据的分析、处理、管理系统,系统可以实现用户注册与登录,注册模块进行输入检查与身份验证;登录模块进行密码验证,单个文件处理,新建文件,查询文件,整体文件处理与退出登录;其中单个文件处理操作包括:删除文件,显示图像,显示数据与返回功能;整体文件处理包括默认排序,按照方差顺序与按照均值顺序的排序功能;整体离不开数据文件的读取,数据预处理,数据分析,数据可视化,数据文件管理,文件信息统计等。

工业数据分析与文件信息管理系统组成框图如下:

2.数据结构

定义六个结构体类型,从上至下分别表示数据文件信息,绘图区域,选择类按钮信息,文件选项显示类按钮信息,用户信息,包含用户结构体并计数。用结构体一维数组存储数据文件信息与文件显示按钮信息,动态开辟内存存储选择类按钮信息,文件选项显示类按钮信息,用户信息,包含用户结构体并计数,并将用户信息写入文件contact.txt中。结构体具体类型定义如下:

typedef struct
{
char filename[20]; //数据文件名
int col;      //数据列数
int row;       //数据行数
float mean;     //均值
float variance;   //方差
char status;     //文件状态:是否处理过
}FILEINFO;         //文件信息结构体类型

typedef struct
{
int x0, y0, x1, y1;  // 左上角与右下角的xy坐标
}PLOTAREA;   //绘图区域

struct Button     //封装按钮
{
	int x;  //按钮放置的x坐标
	int y;  //按钮放置的y坐标
	int w;  //按钮的宽度
	int h;  //按钮的高度
	unsigned long curColor; //按钮当前颜色
	unsigned long oldColor; //按钮初始颜色
	char* str;  //按钮上显示的字符串
};

struct Buttonfile
{
	int x;//文件按钮放置的x坐标
	int y;//文件按钮放置的y坐标
	int w;//文件按钮的宽度
	int h;//文件按钮的高度
	unsigned long curColor; //文件按钮当前颜色
	unsigned long oldColor; //文件按钮初始颜色
	char str[Q];//文件按钮上显示的文件名
};

struct User
{
	char account[LEN];//账号
	char passnumber[LEN2];//密码
	char phonenumber[LEN3];//手机号
};

struct Contact
{
	struct User* data;//用户信息
	int currentsize;//当前已经有的用户个数
	int maxsize;//当前的最大容量
};

int nowfilenum=0; /*文件当前个数全局变量*/
int page=1; /*当前页面全局变量*/

3.设计难点

查看数据信息设计时,由于数据较多,仅靠一个页面无法完全展示,在设计翻页时遇到设计难点。原本设计想法是,在ShowPage函数的while循环中通过检测鼠标消息,如果鼠标左键收到消息,则页面page加或减一,但是获取鼠标事件和while循环是异步处理,无法准确对page加减1。对此我的处理方法是:增加一个选择变量p,在检测到不同按钮的鼠标消息后给p赋不同的值,然后跳出循环执行AddPage函数(进行辅助翻页)。以下是ShowPage函数与AddPage函数的程序段:

void ShowPage(char* s,int flag,float* a,int b)
{
	IMAGE bk;
	ExMessage msg;
	int xx, yy;
	int n, m,i;
	int p;
	char d[6] = { 0 };
	initgraph(1000, 700);
	loadimage(&bk, "显示界面.jpg", 1000, 700);
	struct Button* show1 = createbutton(880, 50, 80, 30, RGB(192, 192, 192), RGB(192, 192, 192), "返回");
	struct Button* show2 = createbutton(880, 100, 80, 30, RGB(192, 192, 192), RGB(192, 192, 192), "上一页");
	struct Button* show3 = createbutton(880, 150, 80, 30, RGB(192, 192, 192), RGB(192, 192, 192), "下一页");
	BeginBatchDraw();
	while (1)
	{
		peekmessage(&msg);
		putimage(0, 0, &bk);
		Show(show1);
		setbkmode(TRANSPARENT);
		settextstyle(25, 0, "宋体");
		settextcolor(BLACK);
		outtextxy(20, 40, s);
		for (i = 0 + 100 * (page - 1); (i < 100 * page) && (i < b); i++)
		{
			n = (i - (page - 1) * 100) / 20;
			m = (i - (page - 1) * 100) % 20;
			if (m == 0)
			{yy = 80;}
			else
				yy = 80 + m * (20 + 10);
			xx = 60 + n * (100 + 40);
			sprintf(d, "%f", a[i]);//把浮点数转换成字符串才能用outtextxy函数输出
			setbkmode(TRANSPARENT);
			settextstyle(20, 0, "宋体");
			settextcolor(BLACK);
			outtextxy(xx, yy, d);
		}
		if ((page == 1) && (flag != 1))//如果在第一页且还有页面
		{
			Show(show3);
		}
	    else if ((page == 1)&&(flag==1))//如果总共只有一页
		{
		}
		else if ((page == flag)&&(flag!=1))//最后一页
		{
			Show(show2);
		}
		else
		{
			Show(show2);
			Show(show3);
		}
		if (InButton(show1, msg) || InButton(show2, msg) || InButton(show3, msg))
		{
		}
		if (InButton(show1, msg) && msg.message == WM_LBUTTONDOWN)
		{
			closegraph();
			Handlemenu(s);
		}
		if (InButton(show3, msg) && msg.message == WM_LBUTTONDOWN)
		{
			p = 1;
			break;
		}
		if (InButton(show2, msg) && msg.message == WM_LBUTTONDOWN)
		{
			p = 2;
			break;
		}
		FlushBatchDraw();
	}
	EndBatchDraw();
	AddPage(p,s,flag,a,b);
}
/*辅助翻页*/
void AddPage(int p, char* s, int flag, float* a, int b)
{
	switch (p)
	{
	case 1:
		page += 1;
		break;
	case 2:
		page -= 1;
		break;
	}
	ShowPage(s, flag, a, b);
}

4.最终成果

系统运行典型效果图,如图所示。

写在最后

欢迎大家一起交流讨论!需要源码可以给我留评论或者私我。

  • 20
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
餐饮管理系统是用C语言EasyX和MFC开发的一款软件。它主要用于餐饮企业进行订单管理、库存管理、财务管理和人事管理等各项业务的管理工作。 首先,餐饮管理系统可以实现订单管理功能。通过系统,餐饮企业可以方便地记录客户的订单信息,包括订单编号、下单时间、商品种类和数量等。同时,系统还可以自动计算订单的总金额,并生成相应的发票,方便企业进行财务结算。 其次,餐饮管理系统还可以进行库存管理。系统可以记录每一种商品的库存数量,并根据销售情况进行动态调整。一旦库存不足,系统会自动生成补货提醒,以便及时补充商品,保证供应链的畅通。 此外,餐饮管理系统还拥有财务管理功能。它可以自动生成各类财务报表,如销售额报表、成本报表和利润报表等,为企业提供全面的财务数据分析。同时,系统还可以进行财务流水账的记账工作,方便企业进行日常的财务管理。 最后,餐饮管理系统还可以进行人事管理。系统可以记录员工的基本信息、考勤情况和薪资结算等。通过系统,企业可以方便地进行员工的薪资发放和考勤统计管理,提高人力资源的利用效率。 总之,餐饮管理系统利用C语言EasyX和MFC开发,具备订单管理、库存管理、财务管理和人事管理等多项功能。它可以帮助餐饮企业提高运营效率,降低成本,实现科学管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值