#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>//引用图形库头文件
#include <conio.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>
//定义图片
IMAGE zcd;//主菜单
IMAGE zcd_b;//主菜单点击效果
IMAGE gncd;//功能菜单
IMAGE zj_b;//增加功能点击效果
IMAGE sc_b;//删除功能点击效果
IMAGE xg_b;//修改功能点击效果
IMAGE cx_b;//查询功能点击效果
IMAGE px_b;//排序功能点击效果
IMAGE tj_b;//统计功能点击效果
IMAGE dy_b;//打印功能点击效果
IMAGE dq_b;//读取功能点击效果
IMAGE bc_b;//保存功能点击效果
IMAGE tc_b;//退出点击效果
IMAGE sc;//删除功能界面
IMAGE sc_xh;//按学号删除点击效果
IMAGE sc_xm;//按姓名删除点击效果
IMAGE sc_fh;//删除界面返回点击效果
IMAGE xg;//修改功能界面
IMAGE xg_xh;//修改学号点击效果
IMAGE xg_xm;//修改姓名点击效果
IMAGE xg_sx;//修改数学成绩点击效果
IMAGE xg_yy;//修改英语成绩点击效果
IMAGE xg_wl;//修改物理成绩点击效果
IMAGE xg_c;//修改C语言成绩点击效果
IMAGE xg_fh;//修改界面返回点击效果
IMAGE cx;//查询功能界面
IMAGE cx_xh;//按学号查询点击效果
IMAGE cx_xm;//按姓名查询点击效果
IMAGE cx_fh;//查询界面返回点击效果
IMAGE px;//排序功能界面
IMAGE px_sx;//按数学成绩排序点击效果
IMAGE px_yy;//按英语成绩排序点击效果
IMAGE px_wl;//按物理成绩排序点击效果
IMAGE px_c;//按C语言成绩排序点击效果
IMAGE px_fh;//排序界面返回点击效果
IMAGE px2;//排序二级界面
IMAGE px2_sx;//升序排序点击效果
IMAGE px2_jx;//降序排序点击效果
IMAGE px2_fh;//排序二级界面返回点击效果
IMAGE tj;//统计功能界面
IMAGE tj_sx;//统计数学成绩点击效果
IMAGE tj_yy;//统计英语成绩点击效果
IMAGE tj_wl;//统计物理成绩点击效果
IMAGE tj_c;//统计C语言成绩点击效果
IMAGE tj_fh;//统计界面返回点击效果
IMAGE dy;//打印功能界面
IMAGE dy_fh;//打印功能界面返回点击效果
IMAGE xg1;//修改方式选择界面
IMAGE xg1_xh;//按学号修改点击效果
IMAGE xg1_xm;//按姓名修改点击效果
IMAGE xg1_fh;//修改方式选择界面返回点击效果
IMAGE tc;//退出界面
//定义学生结构体
typedef struct student//代表学生信息的结构体
{
wchar_t num[10];//学号
wchar_t name[10];//姓名
wchar_t shuxue[10];//数学成绩
wchar_t yingyu[10];//英语成绩
wchar_t cyuyan[10];//c语言成绩
wchar_t wuli[10];//物理成绩
struct student* next;//链表指针
}stu;
//函数声明
void menu(stu *head);//主菜单
void function(stu *head);//功能菜单
stu* initstu();//初始化链表
void addstu(stu* head);//增加学生信息
void deletestu(stu* head);//删除学生信息
void xgstu(stu* p,stu *head);//修改学生信息
void xgstu1(stu* head);
void searchstu(stu* head);//查询学生信息
void sortstu(stu* head);//排序主界面
void sortstu1(stu* head);//数学成绩排序
void sortstu2(stu* head);//英语成绩排序
void sortstu3(stu* head);//物理成绩排序
void sortstu4(stu* head);//C语言成绩排序
void tjstu(stu* head);//统计学生信息
void printstu(stu* head);//打印学生信息
void readstu(stu* head);//读取学生信息
void savestu(stu* head);//保存学生信息
int Wchar2Char(char* charStr, const wchar_t* wcharStr);//wchar_t转化为char
int Char2Wchar(wchar_t* wcharStr, const char* charStr); //char转化为wchar_t
//wchar_t与char的互化(摘自csdn,原文链接:https ://blog.csdn.net/bailang_zhizun/article/details/80348282)
int Wchar2Char(char* charStr, const wchar_t* wcharStr) //wchar_t转化为char
{
int len = WideCharToMultiByte(CP_ACP, 0, wcharStr, wcslen(wcharStr), NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, wcharStr, wcslen(wcharStr), charStr, len, NULL, NULL);
charStr[len] = '\0';
return len;
}
int Char2Wchar(wchar_t* wcharStr, const char* charStr) //char转化为wchar_t
{
int len = MultiByteToWideChar(CP_ACP, 0, charStr, strlen(charStr), NULL, 0);
MultiByteToWideChar(CP_ACP, 0, charStr, strlen(charStr), wcharStr, len);
wcharStr[len] = '\0';
return len;
}
//主菜单函数
void menu(stu *head)
{
loadimage(&zcd, _T("zcd.jpg"));
putimage(0, 0, &zcd);
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 774 && msg.x < 1024 && msg.y > 536 && msg.y < 647)//鼠标点击特定区域,即进入系统按钮所在区域
{
loadimage(&zcd_b, _T("zcd_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &zcd_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
function(head);
}
}
}
}
}
//功能菜单函数
void function(stu *head)
{
loadimage(&gncd, _T("gncd.jpg"));
putimage(0, 0, &gncd);
MOUSEMSG msg;//定义变量,保存鼠标消息
FlushMouseMsgBuffer();// 清空鼠标消息缓冲区,避免无效鼠标信息带入到正式判断中
while (true) // 主循环,循环监听鼠标信息
{
while (MouseHit()) //监听鼠标信息;当有鼠标消息的时候执行,可检测连续的鼠标信息
{
msg = GetMouseMsg();//获取鼠标消息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息;鼠标左键按下
{
if (msg.x > 865 && msg.x < 1028 && msg.y > 35 && msg.y < 121)//鼠标点击特定区域,即“退出”所在区域
{
loadimage(&tc_b, _T("tc_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &tc_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
loadimage(&tc, _T("tc.jpg"));//导入退出界面
putimage(0, 0, &tc);//显示退出界面
}
if (msg.x > 214 && msg.x < 409 && msg.y > 172 && msg.y < 275)//鼠标点击特定区域,即“增加学生信息”所在区域
{
loadimage(&zj_b, _T("zj_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &zj_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
addstu(head);
function(head);
}
if (msg.x > 501 && msg.x < 697 && msg.y > 172 && msg.y < 275)//鼠标点击特定区域,即“删除学生信息”所在区域
{
loadimage(&sc_b, _T("sc_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &sc_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
deletestu(head);
}
if (msg.x > 783 && msg.x < 979 && msg.y > 172 && msg.y < 275)//鼠标点击特定区域,即“修改学生信息”所在区域
{
loadimage(&xg_b, _T("xg_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &xg_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
xgstu1(head);
}
if (msg.x > 214 && msg.x < 408 && msg.y > 359 && msg.y < 461)//鼠标点击特定区域,即“查询学生信息”所在区域
{
loadimage(&cx_b, _T("cx_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &cx_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
searchstu(head);
}
if (msg.x > 501 && msg.x < 695 && msg.y > 359 && msg.y < 461)//鼠标点击特定区域,即“排序学生信息”所在区域
{
loadimage(&px_b, _T("px_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &px_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
sortstu(head);
}
if (msg.x > 784 && msg.x < 978 && msg.y > 359 && msg.y < 461)//鼠标点击特定区域,即“统计学生信息”所在区域
{
loadimage(&tj_b, _T("tj_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &tj_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
tjstu(head);
}
if (msg.x > 784 && msg.x < 978 && msg.y > 525 && msg.y < 628)//鼠标点击特定区域,即“保存学生信息”所在区域
{
loadimage(&bc_b, _T("bc_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &bc_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
savestu(head);
function(head);
}
if (msg.x > 502 && msg.x < 695 && msg.y > 525 && msg.y < 628)//鼠标点击特定区域,即“读取学生信息”所在区域
{
loadimage(&dq_b, _T("dq_b.jpg"));//导入橙色按钮图片
putimage(0, 0, &dq_b);//显示橙色按钮图片
Sleep(100);//延时,降低CPU占用率,并且做到点击效果
readstu(head);
function(head);
}
if (msg.x > 213 && msg.x < 409 && msg.y > 526 && msg.y < 629)//鼠标点击特定区域,即“打印学生信息”所在区域
{
loadimage
程序员张小妍
- 粉丝: 1w+
- 资源: 3691
最新资源
- ssm高校专业信息管理系统设计与实现+jsp.zip
- cruise纯电动汽车、增程混动汽车仿真模型,simulink联合仿真,模型均亲自搭建 提供整车模型及策略模型
- ssm高校实验室管理系统的设计与实现+vue.zip
- ssm高校教师科研信息展示网站+jsp.zip
- ssm高校社团管理系统+vue.zip
- ssm高校工会提案管理信息系统的设计与开发+jsp.zip
- ssm端游账号销售管理系统+jsp.zip
- ssm房屋租售网站的设计与实现+jsp.zip
- ssm电子竞技管理平台的设计与实现+jsp.zip
- ssm电动车租赁网站+jsp.zip
- ssm电脑配件销售系统的设计与实现+jsp.zip
- 火电厂协调仿真机,可以方便调试pid参数,观看曲线,对调整pid参数有很大帮助
- ssm单位人事管理系统+jsp.zip
- ssm大学生就业信息管理系统+jsp.zip
- ssm大学学术交流论坛+vue.zip
- ssm大学生创新创业平台项目管理子系统设计与实现+jsp.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈