当前位置: 首页 > news >正文

如何制作自己的作品集网站oa系统费用报销流程

如何制作自己的作品集网站,oa系统费用报销流程,用python写一个简单的网页,android网站开发视频教程1 curses介绍 1.1 背景介绍 curses是一个用于文本终端屏幕控制和处理的库,广泛应用于 Unix 和类 Unix 系统(如 Linux 和 macOS)。它允许开发者创建基于文本的用户界面(TUI),支持窗口管理、颜色处理、键盘…

1 curses介绍

1.1 背景介绍

curses是一个用于文本终端屏幕控制和处理的库,广泛应用于 Unix 和类 Unix 系统(如 Linux 和 macOS)。它允许开发者创建基于文本的用户界面(TUI),支持窗口管理、颜色处理、键盘输入等功能。

Linux/Unix 编程给人的感觉就比较"cool"一点,好像 Linux 编程都是在黑黑的终端下进行的。确实是这样,许多 Linux 高手都喜欢在终端方式下工作,熟悉了一些命令以后,这样的工作方式效率还是很高的。但是长久地看着黑黑的屏幕难免让人感到厌倦,有没有一种工具能让我们在 Linux 下编出好看的图形呢?答案是肯定的,它就是 curses!

curses 的名字起源于"cursor optimization",即光标优化。它最早由有美国伯克利大学的 Bill Joy 和 KenArnold 编写的,用来处理一个游戏 rogue 的屏幕显示。后来贝尔实验室的 Mark Horton 在 System III Unix中重新编写了 curses。现在几乎所有的 Unix/Linux 操作系统都带了 curses 函数库,curses 也加入了对鼠标的支持,一些菜单和面板的处理。可以说,curses 是 Linux 终端图形编程的不二选择(比如著名的文字编辑器 vi 就是基于 curses 编的)。

1.2 系统安装

uptech@uptech-virtual-machine:~/桌面/project/build$ sudo apt-get install libncurses5-dev

1.3 makefile系统调用

  1. 包含头文件: curses.h
  2. 编译时应加上链接语句-lcurses,如:gcc temp.c -o temp -lcurses

1.4 cmake 系统调用

添加头文件路径、添加curses的库

find_package(Curses REQUIRED)
include_directories(${Curses_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME}${OpenCV_LIBS}  # 链接 OpenCV#    Threads::Threads  # 链接多线程库pthreadcurses
)

1.5 常见的函数

在这里插入图片描述

1.6基本使用步骤

初始化:使用 initscr() 初始化 curses 环境。关闭回显:调用 noecho() 禁止输入字符自动回显。启用特殊键:使用 keypad(stdscr, True) 启用特殊键处理。刷新屏幕:通过 refresh() 更新屏幕显示。结束:调用 endwin() 恢复终端原始状态并退出

2 游戏设计

2.1 初始化工作

参考以下代码,进行初始化操作就行。

  initscr();   // 初始化屏幕cbreak();    // 禁用缓存,,使输入字符立即传递给程序,而不需要等待回车键noecho();    // 关闭输入回显,户输入的字符不会显示在屏幕上。keypad(stdscr, TRUE); // make keys work,启用特殊键  启用特殊键(如方向键、功能键等)的处理curs_set(0); // hide cursortimeout(100);  // 阻塞等待时间,getch 等待100msint xmax;int ymax;getmaxyx(stdscr, ymax, xmax);  // 获取屏幕长度和宽度,是一个宏定义,不是函数enum Direction dir = RIGHT;

2.2 创建蛇、食物

创建蛇的单向链表,食物的单向链接

  Board* create_board(PointList* snake, PointList* foods, int xmax, int ymax) {Board* board = malloc(sizeof(*board));board->foods = foods;board->snake = snake;board->xmax = xmax;board->ymax = ymax;return board;
}void add_new_food(Board* board) {PointList* new_food;do {new_food = create_random_cell(board->xmax, board->ymax);} while(list_contains(new_food, board->foods) || list_contains(new_food, board->snake));new_food->next = board->foods;board->foods = new_food;
}Board* board = create_board(create_snake(), NULL, xmax, ymax);int i;for (i = 0; i < 6; i++) {add_new_food(board);}

2.3 显示移动策略选择

while(true) {clear();  // 将整个萤幕清除(请注意配合 refresh() 使用)display_points(board->snake, ACS_BLOCK);  // 显示蛇display_points(board->foods, ACS_DIAMOND);  // 显示食物refresh();   // 刷新屏幕,使之前的所有更改生效。dir = get_next_move(dir);enum Status status = move_snake(board, dir);if (status == FAILURE) break;}

2.4 关闭屏幕

 endwin();   //  退出 curses 模式,恢复终端的原始状态。

2.5 显示效果

在这里插入图片描述

3 简单显示界面

3.1 简单应用代码

#include <curses.h>int main() {// 初始化 cursesinitscr();              // 初始化屏幕cbreak();               // 禁用行缓冲,直接读取输入noecho();               // 关闭输入回显keypad(stdscr, TRUE);   // 启用特殊键(如方向键)// 打印欢迎信息printw("Hello, Curses!\n");printw("Press any key to exit...\n");refresh();              // 刷新屏幕以显示内容// 等待用户输入getch();                // 获取用户输入的字符// 结束 curses 模式endwin();               // 恢复终端原始状态return 0;
}

3.2 显示界面

在这里插入图片描述

4 总结

实际项目案例,以下是一些使用 curses 开发的实际项目:

vim 和 nano:

流行的文本编辑器,使用 curses 实现界面和交互。

htop:

系统监控工具,使用 curses 实时显示系统状态。

tmux:

终端复用工具,使用 curses 管理多个终端窗口。

Nethack:

经典的 Roguelike 游戏,使用 curses 实现图形界面和交互。

ncurses 自带的演示程序:

例如 testcurs,展示了 curses 的各种功能。

适用于终端应用程序、游戏、系统监控工具等场景,是开发高效、轻量级命令行工具的重要工具库。尽管功能受限,但在合适的场景下,curses 仍然是一个非常强大且实用的工具。

http://www.dtcms.com/a/603695.html

相关文章:

  • 高中教学网站深圳做h5网站的公司
  • 贵阳网站制作建设养殖网站 模板
  • 甘肃建设厅网站执业注册中心丝瓜app官网下载安装io
  • 网站开发现在用什么公司网站怎么免费建
  • asp一个空间建多个网站系统湖南建设人力资源网和报考平台
  • 网站编程设计培训培训网站建设
  • 保定网站建设咨询北京企业建站公司
  • 气象网站建设的自查报告百度开发者大会
  • 做网站怎么插音乐循环百度sem
  • 先做网站后备案吗湛江h5建站
  • 网站设计咨询网络营销是什么的组成部分
  • 大航母网站建设流程局域网wordpress
  • 宁夏网站建设中2017常用的网站
  • 网站开发ckplayer加载失败情感导师在线咨询服务
  • 即墨网站建设哪家好网站导航栏
  • nginx网站开发电子商务网页设计总结
  • 唐山做网站公司云电脑平台哪个免费
  • 个人建站建设策划书的推广与运营
  • 专业服务网站建设共享门店新增跑腿距离计算优化
  • 网站图片如何做水印网页设计创意书
  • 邙山网站建设辽宁营商环境建设网站
  • 做鞋原料网站优量汇广告平台
  • 企业建设网站有用么企业宣传网站公司
  • 外部调用wordpress站点文章网上营销集成
  • 汽车4s店网站模板太原seo建站
  • 会展相关网站的建设情况网站访问量突然增加
  • C++——this指针
  • 衡水网站建设衡水网站建设中国建设银行官方网站k宝驱动
  • 网站建设后运维合同宝塔在wordpress安装redis
  • 高端大气网站模板建设一个网站的好处