如何为C语言新手创建漂亮图形界面(包含源代码和完整文件示例)
最编程
2024-02-21 08:35:30
...
/************************************************************************
程序名:日程管理系统
版本号:2.0
程序功能:1)设计学生端口和教师端口,学生端学生自我管理,教师端教师监督管理
2)注册、登录账号,修改密码
3)添加、修改、删除、显示日程
4)文件自动保存
5) 精美界面,界面友好,交互性强
6)系统会进行自动保存
7)登录后退出需要重新登录
************************************************************************/
/*对库函数的定义*/
#include <graphics.h> // 引用图形库头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include <conio.h>
#include<tchar.h>
/*宏定义*/
#define NUMBER 100//定义可容纳(学生/教师)的用户数量
#define MANAGELENGTH 30//定义事件长度(包含时间)
#define STRLENGTH 30//定义用户名长度
#define NUMLENGTH 12//定义密码长度
/*定义图片*/
IMAGE welcome;//欢迎界面
IMAGE welcome_button;//ENTER按钮
IMAGE startup;//初始界面
IMAGE stu1;//学生端初始
IMAGE stu1_return;
IMAGE stu1_exit;
IMAGE stu_register;//学生端:创建账户
IMAGE stu_logon;//学生端:学生登录
IMAGE stu_resetpassword;//学生端:修改密码
IMAGE stu_schedulemanagement1;//学生端:日程管理界面1
IMAGE stu_schedulemanagement2;//学生端:日程管理界面2
IMAGE stu_schedulemanagement2_return;
IMAGE stu_schedulemanagement2_exit;
IMAGE teacher1;//教师端初始
IMAGE teacher1_return;
IMAGE teacher1_exit;
IMAGE teacher_register;//教师端:创建账户
IMAGE teacher_logon;//教师端:教师登录
IMAGE teacher_resetpassword;//教师端:修改密码
IMAGE teacher_schedulemanagement1;//教师端:日程管理界面1
IMAGE teacher_schedulemanagement2;//教师端:日程管理界面2
IMAGE teacher_schedulemanagement2_return;
IMAGE teacher_schedulemanagement2_exit;
IMAGE createschedule;//学生端:创建日程
IMAGE resetschedule;//学生端:修改日程
IMAGE finishedcondition;//学生端:完成状态
IMAGE setstuschedule;//教师端:设定学生日程
IMAGE resetstuschedule;//教师端:修改学生日程
IMAGE checkfinishedcondition;//教师端:查看完成状态
IMAGE end;//结束界面
/*全局变量*/
int nStudentNum = 0;//注册的学生编号(从0开始)(同时也代表着注册人数)
int nTeacherNum = 0;//注册的教师编号 (第一个注册的用户编号为0)
int nStuFlag = 0;//定义判断学生是否登录的标志变量
int nTeacherFlag = 0;//定义判断教师是否登录的标志变量
int studentnum;//定义登录的学生编号
int teachernum;//定义登录的教师编号
/*定义学生结构体数组*/
struct student
{
wchar_t szName[STRLENGTH];//定义学生用户名
wchar_t password1[NUMLENGTH];//定义学生账户密码
wchar_t password2[NUMLENGTH];//定义学生二次输入密码
int nSerialNum;//定义学生序号(从1开始)
int nManagement = 0;//定义学生的日程事件数
wchar_t Management1[10][MANAGELENGTH];//定义存储该学生设定的初始时间字符数组 设定一个学生最多设定10个事件
wchar_t Management2[10][MANAGELENGTH];//定义存储该学生设定的截止时间字符数组
wchar_t Management3[10][MANAGELENGTH];//定义存储该学生设定的日程内容字符数组
wchar_t FinishStatus[10][MANAGELENGTH];//定义每个学生设定的日程的完成状态
}stu[NUMBER];
/*定义教师的结构体数组*/
struct teacher
{
wchar_t szName[STRLENGTH];//定义教师用户名
wchar_t password1[NUMLENGTH];//定义教师账户密码
wchar_t password2[NUMLENGTH];//定义教师二次输入密码
int nSerialNum;//定义老师序号(从1开始)
}teacher[NUMBER];
/*函数声明***********************************************/
/*欢迎界面函数*/
void Welcome(FILE *fp);
/*文件保存函数*/
void SaveFile(FILE *fp);
/*一级主菜单函数*/
void Select_MainMenu(FILE *fp);
/*二级菜单函数*/
//二级菜单学生端目录显示
void OutputStu_SecondMenu(FILE *fp);
//二级菜单教师端目录显示
void OutputTeacher_SecondMenu(FILE *fp);
//二级菜单:学生创建账户
void Stu_Register(FILE *fp);
// 二级菜单:学生登录
void Stu_Logon();
//二级菜单:学生修改密码
void Stu_ResetPassword(FILE *fp);
//二级菜单:学生日程管理
void Stu_ScheduleManagement(FILE *fp);
//二级菜单:教师创建账户
void Teacher_Register(FILE *fp);
//二级菜单:教师登录
void Teacher_Logon();
//二级菜单:教师修改密码
void Teacher_ResetPassword(FILE *fp);
//二级菜单:教师对学生日程管理
void Teacher_ScheduleManagement(FILE *fp);
/*二级菜单结束*/
/*三级菜单*/
//三级菜单:新建日程
void CreateSchedule(FILE *fp);
//三级菜单:修改日程
void ResetSchedule(FILE *fp);
//三级菜单:完成状态
void FinishedCondition(FILE *fp);
//三级菜单:设定学生日程
void SetStuSchedule(FILE *fp);
//三级菜单:修改学生日程
void ResetStuSchedule(FILE *fp);
//三级菜单:查看学生完成状态
void CheckFinishedCondition();
/*三级菜单结束*/
/*函数声明结束********************************************/