最近考试完后,因为在疯狂搭东西,所以一直没有更,今晚上做完了课设就来更了
软件
①c语言做的项目
银行存取款管理系统(拿着一个大佬的图进行疯狂改的一个课设)
源码
①功能函数的源码
#include"tyd.h"
//定义数据
//定义全局数据
int khzc = 0;//客户的注册编号
int khjlbh = 0;//客户记录的编号
int khdl = 0;//用于判断客户是否为登录的情况特点
//定义结构体数据
//因为涉及到要调用InputBox函数进行输出中文,因此这里定义的是wchar_t双字节
struct kh
{
wchar_t name[10];//用户姓名
wchar_t password1[10];//用户密码
wchar_t password2[10];
wchar_t phone[12];//客户电话
wchar_t dz[100];//客户地址
int bh;//用户编号
wchar_t ye[100];
}khnum[100],*p=khnum;//利用一个结构体代一个用户的数据,即实现查数据的功能
struct jl//定义用于编号的
{
wchar_t bh[10];//编号
wchar_t rq[20];//日期
wchar_t lb[10];//类别,即存款还是取款
wchar_t sm[10];//存款金额
wchar_t jbr[10];//经办人,即办这个业务的人
}jlnum[100];
//全局调用函数
void save()
{
int i;
FILE *fp;
fopen_s(&fp, "kh.dat", "wb");
fwrite(&khzc, 4, 1, fp);
fwrite(&khdl, 4, 1, fp);
fwrite(&khjlbh, 4, 1, fp);
//---------------------------------------输入结构体信息到文件里面---------------------------------------
//---------------------------------------客户的信息-----------------------------------------------------
for (i = 0; i <=khzc; i++)
{
fwrite(&khnum[i], sizeof(struct kh), 1, fp);
}
//-----------------------------------------记录信息-----------------------------------------------------
for (i = 0; i <=khjlbh; i++)
{
fwrite(&jlnum[i], sizeof(struct jl), 1, fp);
}
//-----------------------------------------输入整形类信息----------------------------------------
fclose(fp);
}
void read()
{
int i;
FILE *fp;
fopen_s(&fp, "kh.dat", "rb");
//-----------------------------------------输入整形类信息----------------------------------------
fread(&khzc, 4, 1, fp);
fread(&khdl, 4, 1, fp);
fread(&khjlbh, 4, 1, fp);
//---------------------------------------输入结构体信息到文件里面---------------------------------------
//---------------------------------------客户的信息-----------------------------------------------------
for (i = 0; i <= khzc; i++)
{
fread(&khnum[i], sizeof(struct kh), 1, fp);
}
//-----------------------------------------记录信息-----------------------------------------------------
for (i = 0; i <= khjlbh; i++)
{
fread(&jlnum[i], sizeof(struct jl), 1, fp);
}
fclose(fp);
}
//第一个界面的功能函数
void pd()//判断是否登录
{
int j = 0;
do //即代do-while函数代跳出防止MessageBox卡死的状况特点
{
if (khdl != 0)//已登录
{
Kh_gljm();//调用客户管理界面
break;
}
else
{
MessageBox(NULL, _T("您还未登录,请登录"), _T("登录管理"), MB_ICONSTOP | MB_SETFOREGROUND);
j++;
break;
}
} while (1);
if (j != 0)
{
Kh_login();
}
}
void reg()
{
int i, j = 0;//用于循环遍历的作用
wchar_t name[10];//输入的客户
wchar_t password[10];//输入的密码
wchar_t xdh[13];
wchar_t xye[100];
wchar_t xdz[100];
wchar_t name2[10] = { };//设置一个空的值,用于躲开当用户为空的状况特点,思考为什么第二次为空
//判断输入的用户是否存在
do//判断用户的账号类
{
InputBox(name, 10, _T("请输入用户名"));
for (i = 0; i < khzc; i++)
{
if ((wcscmp(name, khnum[i].name)) == 0 && (wcscmp(name2, khnum[i].name) == 1))
{
khdl = i;
break;
}
}
if (i >= khzc)//判断是否存在的方法
{
j++;
break;
}
else
{
MessageBox(NULL, _T("存在该账号"), _T("注册管理"), MB_ICONSTOP | MB_SETFOREGROUND);
break;
}
} while (1);
if (j != 0)
{
InputBox(password, 10, _T("该账号可注册,请输入注册账号密码"));
InputBox(xdh,12,_T("请输入客户的联系电话"));
InputBox(xye, 100,_T("请输入客户的余额"));
InputBox(xdz, 100, _T("请输入客户的地址"));
wcscpy(khnum[++khzc].name, name);
wcscpy(khnum[khzc].password1, password);
wcscpy(khnum[khzc].phone,xdh);
wcscpy(khnum[khzc].ye, xye);
wcscpy(khnum[khzc].dz, xdz);
save();
}
}
void login()
{
int i,j=0;//用于循环遍历的作用
wchar_t name[10];//输入的客户
wchar_t password[10];//输入的密码
wchar_t name2[10] = { };//设置一个空的值,用于躲开当用户为空的状况特点,思考为什么第二次为空
//判断输入的用户是否存在
do//判断用户的账号类
{
InputBox(name, 10, _T("请输入用户名"));
for (i = 0; i <=khzc; i++)
{
if ((wcscmp(name,khnum[i].name)) == 0&&(wcscmp(name2,khnum[i].name)!=0))
{
khdl = i;
break;
}
}
if (i >= khzc&&khdl==0)//判断是否存在的方法
{
MessageBox(NULL, _T("不存在该账号"), _T("登录管理"), MB_ICONSTOP | MB_SETFOREGROUND);
break;
}
else
{
j++;
break;
}
} while (1);
if (j != 0)
{
do//判断用户的密码
{
InputBox(password, 10, _T("请输入密码"));
if ((wcscmp(password, khnum[khdl].password1)) == 0)
{
MessageBox(NULL, _T("登录成功"), _T("登录管理"), MB_SETFOREGROUND);
break;
}
else
MessageBox(NULL, _T("密码错误,请重新输入"), _T("登录管理"), MB_ICONSTOP | MB_SETFOREGROUND);
} while (1);
}
}
void exit1()//进行代退出功能
{
khdl = 0;
}
void reset()
{
int i, j = 0;//用于循环遍历的作用
wchar_t name[10];//输入的客户
wchar_t password[10];//输入的密码
wchar_t name2[10] = { };//设置一个空的值,用于躲开当用户为空的状况特点,思考为什么第二次为空
//判断输入的用户是否存在
do//判断用户的账号类
{
InputBox(name, 10, _T("请输入用户名"));
for (i = 0; i < khzc; i++)
{
if ((wcscmp(name, khnum[i].name)) == 0 && (wcscmp(name2, khnum[i].name) == 1))
{
khdl = i;
break;
}
}
if (i >= khzc)//判断是否存在的方法
{
MessageBox(NULL, _T("不存在该账号"), _T("登录管理"), MB_ICONSTOP | MB_SETFOREGROUND);
break;
}
else
{
j++;
break;
}
} while (1);
if (j!=0)
{
InputBox(password, 10, _T("请输入原始密码"));
if ((wcscmp(password, khnum[khdl].password1)) == 0)
{
InputBox(password, 10, _T("密码正确,请输入更改的密码"));
wcscpy(khnum[khdl].password1, password);
MessageBox(NULL, _T("修改密码成功"), _T("登录管理"),MB_SETFOREGROUND);
save();
}
else
MessageBox(NULL, _T("密码错误"), _T("登录管理"), MB_ICONSTOP | MB_SETFOREGROUND);//在前面加一个stop即为图标
}
}
//第二个界面的功能函数
void inf()//客户信息功能
{
//----------------------------------------------------------------字体版头,即文字输入头--------------------------------------------------------------------------
int position_x=476, position_y=92;
setbkmode(TRANSPARENT);//设置字体背景为透明
settextcolor(COLORREF(RGB(0, 0, 0)));//设置字体颜色为黑色
settextstyle(20, 0, _T("楷体"));//设置字体大小20,格式宋体
outtextxy(position_x, position_y, _T("类型 姓名 密码 电话 余额 地址"));//显示第一行表头
//------------------------------------------------------------------输出客户的值---------------------------------------------------------------------------------
position_y +=20;
outtextxy(556, position_y, khnum[khdl].name);//客户姓名
outtextxy(640, position_y, khnum[khdl].password1);//客户密码
outtextxy(720, position_y, khnum[khdl].phone);//客户电话
outtextxy(855, position_y, khnum[khdl].ye);//客户余额
outtextxy(955, position_y, khnum[khdl].dz);//客户地址
}
void xjjl()//新建记录功能
{
//----------------------------------------------------------------字体版头,即文字输入头-------------------------------------------------------------------------
int position_x = 476, position_y = 92;
setbkmode(TRANSPARENT);//设置字体背景为透明
settextcolor(COLORREF(RGB(0, 0, 0)));//设置字体颜色为黑色
settextstyle(20, 0, _T("楷体"));//设置字体大小20,格式宋体
outtextxy(position_x, position_y, _T("编号 日期 类别 数目 经办人"));//显示第一行表头
//-----------------------------------------------------------------查找新建的记录是否存在------------------------------------------------------------------------------
int i, j = 0;//用于循环遍历的作用
wchar_t xjl[10];//输入的新纪录的编号
wchar_t xrq[20];
wchar_t xlb[10];
wchar_t xsm[10];
wchar_t xjbr[10];
do//判断用户的账号类
{
InputBox(xjl, 10, _T("请输入新纪录的编号"));
for (i = 0; i < khjlbh; i++)
{
if ((wcscmp(xjl,jlnum[i].bh))== 0 )
{
khjlbh = i;
break;
}
}
if (i >= khjlbh)//判断是否存在的方法
{
MessageBox(NULL, _T("不存在该记录,创建编号成功"),_T("记录管理"),MB_SETFOREGROUND);
j++;
break;
}
else
{
MessageBox(NULL, _T("输入错误,存在该记录"), _T("记录管理"), MB_ICONSTOP | MB_SETFOREGROUND);
break;
}
} while (1);
//--------------------------------------------------------------建立记录内容-----------------------------------------------------------------------------------------
if (j != 0)
{
wcscpy(jlnum[++khjlbh].bh, xjl);//编号创建
InputBox(xrq, 20, _T("请输入日期"));
InputBox(xlb, 10, _T("请输入类别"));
InputBox(xsm, 10, _T("请输入数目"));
do {
if ((wcscmp(_T("存款"), xlb)) == 0 || (wcscmp(_T("取款"), xlb)) == 0)
{
wcscpy(jlnum[khjlbh].lb, xlb);
if ((wcscmp(_T("存款"),xlb) == 0))
{
/*p->ye += jlnum[khjlbh].sm;*///注意对于wchar_t或者char类型不能代运算的状况特点,思考对应wchar_T类该如何代相加减
InputBox(khnum[khdl].ye, 10, _T("请在原来的值上面添加存款的值"));//初始时间
}
else
{
InputBox(khnum[khdl].ye, 10, _T("请在原来的值上面减去取款的值"));
}
break;
}
else
{
MessageBox(NULL, _T("输入错误,请重新输入"), _T("类别管理"), MB_ICONSTOP | MB_SETFOREGROUND);
InputBox(xlb, 10, _T("请输入类别"));
}
} while (1);
InputBox(xjbr, 10, _T("请输入经办人"));
wcscpy(jlnum[khjlbh].rq,xrq);
wcscpy(jlnum[khjlbh].sm, xsm);
wcscpy(jlnum[khjlbh].jbr, xjbr);
save();
}
//-----------------------------------------------------------------输出内容--------------------------------------------------------------------------------------------
wchar_t jlxh[10];//客户的序号
for (int i = 1; i <= khjlbh; i++)//显示出客户用户
{
if (i == 0)
wcscpy(jlxh, L"0");//即给参数赋一个序号类控制专
if (i == 1)
wcscpy(jlxh, L"1");
if (i == 2)
wcscpy(jlxh, L"2");
if (i == 3)
wcscpy(jlxh, L"3");
if (i == 4)
wcscpy(jlxh, L"4");
if (i == 5)
wcscpy(jlxh, L"5");
if (i == 6)
wcscpy(jlxh, L"6");
if (i == 7)
wcscpy(jlxh, L"7");
if (i == 8)
wcscpy(jlxh, L"8");
if (i == 9)
wcscpy(jlxh, L"9");
if (i == 10)
wcscpy(jlxh, L"10");
position_y += 20;//向下推一行(利用控制位置状况进行推至下部分)
outtextxy(494, position_y, jlxh);//显示序号
outtextxy(556, position_y, jlnum[i].rq);//显示记录的日期
outtextxy(700, position_y, jlnum[i].lb);//记录的类别
outtextxy(800, position_y, jlnum[i].sm);//记录的数目
outtextxy(926, position_y, jlnum[i].jbr);//客户的经办人
}
}
void jlcx()//记录查询
{
//----------------------------------------------------------------字体版头,即文字输入头-------------------------------------------------------------------------
int position_x = 476, position_y = 92;
setbkmode(TRANSPARENT);//设置字体背景为透明
settextcolor(COLORREF(RGB(0, 0, 0)));//设置字体颜色为黑色
settextstyle(20, 0, _T("楷体"));//设置字体大小20,格式宋体
outtextxy(position_x, position_y, _T("编号 日期 类别 数目 经办人"));//显示第一行表头
//----------------------------------------------------------------输出记录的值----------------------------------------------------------------------------------
wchar_t jlxh[10];//记录的序号
for (int i = 1; i <= khjlbh; i++)//显示出记录
{
if (i == 0)
wcscpy(jlxh, L"0");//即给参数赋一个序号类控制专
if (i == 1)
wcscpy(jlxh, L"1");
if (i == 2)
wcscpy(jlxh, L"2");
if (i == 3)
wcscpy(jlxh, L"3");
if (i == 4)
wcscpy(jlxh, L"4");
if (i == 5)
wcscpy(jlxh, L"5");
if (i == 6)
wcscpy(jlxh, L"6");
if (i == 7)
wcscpy(jlxh, L"7");
if (i == 8)
wcscpy(jlxh, L"8");
if (i == 9)
wcscpy(jlxh, L"9");
if (i == 10)
wcscpy(jlxh, L"10");
position_y += 20;//向下推一行(利用控制位置状况进行推至下部分)
outtextxy(494, position_y, jlxh);//显示序号
outtextxy(556, position_y, jlnum[i].rq);//显示记录的日期
outtextxy(700, position_y, jlnum[i].lb);//记录的类别
outtextxy(800, position_y, jlnum[i].sm);//记录的数目
outtextxy(926, position_y, jlnum[i].jbr);//客户的经办人
}
}
头文件的源码
#pragma once
#include <graphics.h> // 引用easyx图形库头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include <conio.h>
#include<tchar.h>
#pragma warning(disable:4996)//可以利用该代码消去警告类
//声明函数,且扔在头文件里面进行代
//声名界面函数
void Welcome();
void Kh();
void Kh_register();
void Kh_login();
void Kh_resetpassword();
void Kh_gl();
void Kh_gljm();
void Kh_gljm1();
void Kh_gljm2();
void Kh_gljm3();
void Kh_return();
void End();
//声名功能函数
//通用功能函数
void save();
void read();
//第一个界面的功能函数
void pd();//判断用户是否登录
void login();
void exit1();//退出函数
void reg();
void reset();
//第二个界面的功能函数
void inf();
void xjjl();
void jlcx();
界面函数
#include"tyd.h"
//图片定义,思考直接扔在头文件里面错误原因
IMAGE welcome;
IMAGE welcome_button;
IMAGE kh_login;
IMAGE kh_register;
IMAGE kh_resetpassword;
IMAGE kh_gl;
IMAGE kh_gljm;
IMAGE kh_gljm1;
IMAGE kh_gljm2;
IMAGE kh_gljm3;
IMAGE kh;
IMAGE kh_return;
IMAGE kh_exit;
IMAGE end;
void Welcome()//即进入界面
{
loadimage(&welcome, L"welcome.jpg");//导入欢迎界面(特别注意:双引号里面不能有空格,要跟图片命名完全一致)
putimage(0, 0, &welcome);//显示欢迎界面
/*下面进行鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 232 && msg.x < 498 && msg.y > 478 && msg.y < 543)//鼠标点击特定区域,即ENTER按钮所在区域(利用坐标实现的)
{
loadimage(&welcome_button, L"welcome_button.jpg");//导入橙色按钮图片
putimage(0, 0, &welcome_button);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
Kh();
}
}
}
}
}
void Kh()//客户管理界面
{
loadimage(&kh, L"kh.jpg");
putimage(0, 0, &kh);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 81 && msg.x < 365 && msg.y > 71 && msg.y < 134)//鼠标点击特定区域,即“创建账户”按钮所在区域
Kh_register();
if (msg.x > 81 && msg.x < 365 && msg.y > 162 && msg.y < 228)//鼠标点击特定区域,即“用户登录”按钮所在区域
Kh_login();
if (msg.x > 81 && msg.x < 365 && msg.y > 252 && msg.y < 318)//鼠标点击特定区域,即“修改密码”按钮所在区域
Kh_resetpassword();
if (msg.x > 81 && msg.x < 365 && msg.y > 344 && msg.y < 413)//鼠标点击特定区域,即“客户管理”按钮所在区域
{
loadimage(&kh_gl, L"kh_gl.jpg");
putimage(0, 0, &kh_gl);
Sleep(100);
pd();
}
if (msg.x > 1239 && msg.x < 1334 && msg.y > 20 && msg.y < 62)//鼠标点击exit按钮
{
loadimage(&kh_exit, L"kh_exit.jpg");
putimage(0, 0, &kh_exit);
Sleep(100);
End();
}
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//即返回按钮
{
Kh_return();
}
}
}
}
}
void Kh_register()//客户注册界面函数
{
loadimage(&kh_register, L"kh_register.jpg");
putimage(0, 0, &kh_register);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)
{
if (msg.x > 81 && msg.x < 365 && msg.y > 162 && msg.y < 228)//鼠标点击特定区域,即“用户登录”按钮所在区域
Kh_login();
if (msg.x > 81 && msg.x < 365 && msg.y > 252 && msg.y < 318)//鼠标点击特定区域,即“修改密码”按钮所在区域
Kh_resetpassword();
if (msg.x > 81 && msg.x < 365 && msg.y > 344 && msg.y < 413)//鼠标点击特定区域,即“客户管理”按钮所在区域
{
loadimage(&kh_gl, L"kh_gl.jpg");
putimage(0, 0, &kh_gl);
Sleep(100);
pd();
}
if (msg.x > 1239 && msg.x < 1334 && msg.y > 20 && msg.y < 62)//鼠标点击exit按钮
{
loadimage(&kh_exit, L"kh_exit.jpg");
putimage(0, 0, &kh_exit);
Sleep(100);
End();
}
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//即返回按钮
{
Kh_return();
}
if (msg.x > 81 && msg.x < 365 && msg.y > 69 && msg.y < 135)
reg();
}
}
}
}
void Kh_login()//客户登录函数
{
loadimage(&kh_login, L"kh_login.jpg");
putimage(0, 0, &kh_login);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)
{
if (msg.x > 81 && msg.x < 365 && msg.y > 71 && msg.y < 134)//鼠标点击特定区域,即“创建账户”按钮所在区域
Kh_register();
if (msg.x > 81 && msg.x < 365 && msg.y > 252 && msg.y < 318)//鼠标点击特定区域,即“修改密码”按钮所在区域
Kh_resetpassword();
if (msg.x > 81 && msg.x < 365 && msg.y > 344 && msg.y < 413)//鼠标点击特定区域,即“客户管理”按钮所在区域
{
loadimage(&kh_gl, L"kh_gl.jpg");
putimage(0, 0, &kh_gl);
Sleep(100);
pd();
}
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//即返回按钮
{
Kh_return();
}
if (msg.x > 1239 && msg.x < 1334 && msg.y > 20 && msg.y < 62)//鼠标点击exit按钮,退出登录
{
save();//即保存用户信息的函数
exit1();
loadimage(&kh_exit, L"kh_exit.jpg");
putimage(0, 0, &kh_exit);
Sleep(100);
End();
}
if (msg.x > 81 && msg.x < 365 && msg.y > 162 && msg.y < 228)//登录功能
login();
}
}
}
}
void Kh_resetpassword()//客户修改密码函数
{
loadimage(&kh_resetpassword, L"kh_resetpassword.jpg");
putimage(0, 0, &kh_resetpassword);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)
{
if (msg.x > 81 && msg.x < 365 && msg.y > 71 && msg.y < 134)//鼠标点击特定区域,即“创建账户”按钮所在区域
Kh_register();
if (msg.x > 81 && msg.x < 365 && msg.y > 162 && msg.y < 228)//鼠标点击特定区域,即“用户登录”按钮所在区域
Kh_login();
if (msg.x > 81 && msg.x < 365 && msg.y > 344 && msg.y < 413)//鼠标点击特定区域,即“客户管理”按钮所在区域
{
Kh_gl();
}
if (msg.x > 1239 && msg.x < 1334 && msg.y > 20 && msg.y < 62)//鼠标点击exit按钮
{
loadimage(&kh_exit, L"kh_exit.jpg");
putimage(0, 0, &kh_exit);
Sleep(100);
End();
}
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//即返回按钮
{
Kh_return();
}
if (msg.x > 81 && msg.x < 365 && msg.y > 254 && msg.y < 320)
reset();
}
}
}
}
void Kh_gl()//用户管理界面
{
loadimage(&kh_gl, L"kh_gl.jpg");
putimage(0, 0, &kh_gl);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 81 && msg.x < 365 && msg.y > 71 && msg.y < 134)//鼠标点击特定区域,即“创建账户”按钮所在区域
Kh_register();
if (msg.x > 81 && msg.x < 365 && msg.y > 162 && msg.y < 228)//鼠标点击特定区域,即“用户登录”按钮所在区域
Kh_login();
if (msg.x > 81 && msg.x < 365 && msg.y > 252 && msg.y < 318)//鼠标点击特定区域,即“修改密码”按钮所在区域
Kh_resetpassword();
if (msg.x > 81 && msg.x < 365 && msg.y > 344 && msg.y < 413)//鼠标点击特定区域,即“客户管理”按钮所在区域
{
pd();
}
if (msg.x > 1239 && msg.x < 1334 && msg.y > 20 && msg.y < 62)//鼠标点击exit按钮
{
loadimage(&kh_exit, L"kh_exit.jpg");
putimage(0, 0, &kh_exit);
Sleep(100);
End();
}
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//即返回按钮
{
Kh_return();
}
}
}
}
}
void Kh_gljm()//用户管理界面
{
loadimage(&kh_gljm, L"kh_gljm.jpg");
putimage(0, 0, &kh_gljm);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 80 && msg.x < 365 && msg.y > 92 && msg.y < 159)//鼠标点击特定区域,即“客户信息”按钮所在区域
Kh_gljm1();
if (msg.x > 80 && msg.x < 365 && msg.y > 219 && msg.y < 287)//鼠标点击特定区域,即“新建记录”按钮所在区域
Kh_gljm2();
if (msg.x > 80 && msg.x < 365 && msg.y > 344 && msg.y < 408)//鼠标点击特定区域,即“记录查询”按钮所在区域
Kh_gljm3();
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//鼠标点击返回按钮
Kh();
if (msg.x > 1239 && msg.x < 1334 && msg.y > 20 && msg.y < 62)//鼠标点击exit按钮
{
loadimage(&kh_exit, L"kh_exit.jpg");
putimage(0, 0, &kh_exit);
Sleep(100);
End();
}
}
}
}
}
void Kh_gljm1()//客户信息界面
{
loadimage(&kh_gljm1, L"kh_gljm1.jpg");
putimage(0, 0, &kh_gljm1);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//鼠标点击返回按钮
Kh_gljm();
if (msg.x > 80 && msg.x < 365 && msg.y > 92 && msg.y < 159)//客户信息
inf();
}
}
}
}
void Kh_gljm2()//用户管理界面新建记录
{
loadimage(&kh_gljm2, L"kh_gljm2.jpg");
putimage(0, 0, &kh_gljm2);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//鼠标点击返回按钮
Kh_gljm();
if (msg.x > 80 && msg.x < 365 && msg.y > 219 && msg.y < 287)//新建记录
xjjl();
}
}
}
}
void Kh_gljm3()//用户管理界面,记录查询
{
loadimage(&kh_gljm3, L"kh_gljm3.jpg");
putimage(0, 0, &kh_gljm3);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//鼠标点击返回按钮
Kh_gljm();
if (msg.x > 80 && msg.x < 365 && msg.y > 344 && msg.y < 408)//记录查询
jlcx();
}
}
}
}
void Kh_return()//客户返回界面
{
loadimage(&kh_return, L"kh_return.jpg");
putimage(0, 0, &kh_return);
/*下面是多个按钮的鼠标交互*/
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 21 && msg.x < 103 && msg.y > 613 && msg.y < 688)//鼠标点击返回按钮
Welcome();
}
}
}
}
void End()//程序结束界面
{
loadimage(&end, L"end.jpg");
putimage(0, 0, &end);
}
主函数
#pragma once
#include"tyd.h"
//定义图片
//定义主函数
int main()
{
read();
initgraph(1366, 700);//定义窗口大小
Welcome();
system("pause");
return 0;
}
加ico方法直接在资源里面添加stable后选择导入图标
exe可能无图片的原因,是因为图片与exe不在同一个目录下
②iapp做的项目
开心影视(利用x5内核+两个网页+iapp实现的封装)
软件成品链接
要源码的私发我吧
网站
①领劵网(对接淘宝,阿里巴巴的官方接口,领劵省钱)
②跳蚤市场(因为网页的后台被我玩了后就给删了,所以这里也没有图片了)
微信小程序
明白了怎么搭微信小程序