C语言图形界面开发(演示视频、完整代码文件)

这篇具有很好参考价值的文章主要介绍了C语言图形界面开发(演示视频、完整代码文件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要面向想做出图形界面的C语言初学者

C语言初学者开始都是在黑白控制台上开发一些小程序,实现一些小功能,因为基础的C语言可视化效果比较差,所展示的都是黑白的字符和数字,比较单调乏味。一些大学的计算机类专业学生,大一学习C语言,学习基础语法和算法,通过平台刷题提高自己编程能力,一般不专门学习图形化编程,期中或者期末可能会有开发一个小游戏或者小系统(如学生成绩管理系统、银行管理系统、日程管理系统等)的任务。这时如果在实现基本功能的情况下做出优美的图形界面,会比较出彩并且会有满满的成就感。

C语言图形化编程

一、环境准备

操作系统:windows 10
编译环境:VS 2017
图形库:EasyX_20190415(beta)

下载链接
VS 2017: 微软官网
EasyX图形库:EaxyX官网

下面介绍一下EasyX:
EasyX 是针对 C++ 的图形库,可以帮助 C语言或C++语言初学者快速上手图形和游戏编程,比如用编译环境和EasyX图形库可以轻松画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,或者导入一张图片,可以练习图形学的各种算法,等等。
如何安装:
需要先下载安装好编译环境VS2017,然后再下载安装EasyX图形库,安装时选择安装在Visual C++2017目录下即可。
c语言图形化编程,C,c语言,EasyX,图形库

二、程序运行截图

欢迎界面
c语言图形化编程,C,c语言,EasyX,图形库
系统初始界面
c语言图形化编程,C,c语言,EasyX,图形库
学生端
c语言图形化编程,C,c语言,EasyX,图形库
教师端
c语言图形化编程,C,c语言,EasyX,图形库

三、部分源码展示

下面是代码的头文件、宏定义、函数声明部分。完整源码请在下方获取

 /************************************************************************
程序名:日程管理系统
版本号: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();

/*三级菜单结束*/

/*函数声明结束********************************************/

四、完整文件

程序中要多次用到图形库的函数,建议刚接触的初学者查看EasyX安装时附带的官方帮助文档,也可以参考我的源代码。但是考虑到帮助文档内容较少,对函数的用法介绍较少,EasyX图形库详细函数用法介绍文档和完整代码文件可以添加微信获取:baili0299

注:如果有特别需要,可以微信私我获取ppt、开发文档、用户手册、演示视频等配套资料。

五、要点

1、创建项目:新建-项目-空项目-右键“源文件”-添加-新建项-C++文件
2、编码字符集:unicode字符集
c语言图形化编程,C,c语言,EasyX,图形库
3.将图片资源直接导入到所命名的文件夹中,注意不要将图片打包文件夹后再放入,要直接将图片导入对应文件夹。

4.解决方案配置有两种选择:debug和release,程序编译后会生成对应的文件,如debug文件夹,将图片资源导入该文件夹就可以直接运行文件夹内的可执行文件,否则无法运行,release同理。

5.信息存储用的C语言文件模块,相信可以解决大多数C语言初学者的难题。

六、最后的话

本文不谈高深的技术,只介绍了最基础的基于EasyX图形库的C语言图形化编程,比较简单适合初学者,但是学好了同样可以开发出非常棒的程序。当时刚接触C语言和图形界面时不知从何下手,后来发现EasyX这个简单好用的库,没有找到很多详细的文章和博客。自己看EaxyX帮助文档和一些源码学到了一些东西,最后写出了这个日程管理系统,于是决定将我学到的东西和写的程序分享给大家,没有多好,希望给大家一个参考,衷心的希望本文可以对大家有所帮助,欢迎大家留言呀。文章来源地址https://www.toymoban.com/news/detail-765837.html

到了这里,关于C语言图形界面开发(演示视频、完整代码文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5区域入侵检测【附完整代码以及视频演示】

    一、前期准备: 首先你需要有一份yolov5的官方源码,并且能够找到其中的detect.py文件即可。 在检测过程中,有些项目不需要我们检测所有的区域,比如禁止区域的入侵检测,只需要检测制定规划出来的区域就可以。例如下图所示这样,在网上随便找的一段视频,这是其中的

    2024年02月11日
    浏览(40)
  • 【Python自然语言处理+tkinter图形化界面】实现智能医疗客服问答机器人实战(附源码、数据集、演示 超详细)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ QA问答是Question-and-Answer的缩写,根据用户提出的问题检索答案,并用用户可以理解的自然语言回答用户,问答型客服注重一问一答处理,侧重知识的推理。 从应用领域视角,可将问答系统分为限定域问答系统和开放域问

    2023年04月12日
    浏览(67)
  • C语言300行代码实现扫雷(可展开+可标记+可更改困难级别+内附图形界面版本)

    扫雷是一个经典的游戏,是一个益智类小游戏,在80、90年代曾风靡一时,当然现在也是十分受欢迎; 废话不多说; 让我们来了解一下如何用C语言去实现它吧!!!(❁´◡`❁) 运行环境:VS2019 图形化界面版本 先实现一个初级版本的: 1、我们得有一个9*9的棋盘; 2、我们在棋

    2024年01月25日
    浏览(41)
  • 在任意手机上使用带有图形化界面(GUI)的完整Linux

    我们已经在之前的一些文章中学会了如何在任意已ROOT的手机上使用Linux,包括Kali Linux。不过,有很多手机无法被ROOT。所以,我们还可以通过在手机上运行x86_64系统的方式在未ROOT的手机上使用更加完整的Linux,而我们已经尝试了Kali。我们还用同样的方法实现了在手机上使用

    2024年04月16日
    浏览(34)
  • C语言编写图形界面

    使用的是VSCode + MinGW; VSCode配置C语言的环境就不讲了,具体可以看一下这篇文章:VSCode配置C语言环境 先说一下本篇文章编译的条件吧。 本篇文章需要编译器链接Windows GDI32库,所以如果你用的是VSCode+MinGW,就需要修改task.json文件,使其在链接的时候,链接Window GDI32库。 修改

    2024年02月11日
    浏览(34)
  • C语言实战 - 贪吃蛇(图形界面)

    由于本人精力有限,暂时先把素材和代码放上,等以后有空再补教程。 目录 效果预览 准备工作 EasyX图形库 音频素材 代码编写 Transfer.h文件 game.cpp文件 main.c文件 先来看一下最终成品效果 贪吃蛇图形界面 这个贪吃蛇项目是基于EasyX图形库写的,所以需要安装一个easy图像库,

    2024年02月05日
    浏览(43)
  • matlab中cell数组的介绍及操作(包含完整代码案例演示)

    Cell数组是MATLAB中一种常用的数据类型,可以存储任意类型的元素,包括数字、字符、逻辑值、结构体等等。我将从专业角度介绍MATLAB中的Cell数组,包括其定义、创建、访问和操作等方面。 在MATLAB中,Cell数组可以用花括号“{}”表示,也可以用函数“cell”创建。例如: % 用花

    2024年02月08日
    浏览(36)
  • C语言实战 - 扫雷(图形界面-鼠标操作)

    目录 最终效果预览 预备内容 相关说明 相关教程 用到的知识 EasyX图形库的下载 思路 源代码 最后   在学习如何编写扫雷程序之前,我们先来看一下最终写成代码的演示效果 扫雷视频素材   虽然这是C语言的实战项目,但由于easyx图形库需要在C++环境下才能运行,所以在写代

    2024年02月09日
    浏览(38)
  • C++ 图形界面学习效果及代码

    2024年01月18日
    浏览(33)
  • 基于Opencv和Python的车道线检测系统(带UI界面),附演示视频和下载链接

    在自动驾驶中,让汽车保持在车道线内是非常重要的,所以这次我们来说说车道线的检测。我们主要用到的是openCV, numpy, matplotlib几个库。主要包括下面这么几个步骤: 图像加载; 图像预处理:图片灰度化,高斯滤波; Cany边缘检测; 感兴趣区域检测; 霍夫直线检测 ; .直线

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包