首页
关于
Search
1
中兴2.5G光猫F7607p/G7615折腾
529 阅读
2
itv源地址
237 阅读
3
网盘相关参数获取
229 阅读
4
PS3游戏合集
141 阅读
5
创造球会2002
127 阅读
公共服务
游戏分享
PC
PS1
PS2
PS3
Switch
FC/SFC
Wii/U/NGC/N64
MD/SS/DC
软件资源
学习资料
操作系统
工业软件
学习园地
人工智能
程序设计
数据库
虚拟化
容器
运维
登录
Search
Tom
累计撰写
22
篇文章
累计收到
8
条评论
首页
栏目
公共服务
游戏分享
PC
PS1
PS2
PS3
Switch
FC/SFC
Wii/U/NGC/N64
MD/SS/DC
软件资源
学习资料
操作系统
工业软件
学习园地
人工智能
程序设计
数据库
虚拟化
容器
运维
页面
关于
搜索到
22
篇与
的结果
2024-10-10
C语言流程控制(条件判断与循环)
1. if 语句基本用法:if语句用于在程序中根据条件执行不同的操作。它会检查一个布尔表达式,如果表达式为真,代码块将被执行;否则,跳过代码块。语法结构:if (条件) { // 当条件为真时执行的代码 } else if (条件2) { // 如果第一个条件为假且条件2为真,执行此代码块 } else { // 如果前面的条件都不成立,执行此代码块 } #include <stdio.h> int main() { int score; printf("请输入你的成绩:"); scanf("%d", &score); if (score >= 90) { printf("成绩为A\n"); } else if (score >= 80) { printf("成绩为B\n"); } else if (score >= 70) { printf("成绩为C\n"); } else if (score >= 60) { printf("成绩为D\n"); } else { printf("成绩为F\n"); } return 0; } 2. switch 语句基本用法:switch语句用于处理多个条件选择,尤其适合当你需要检查一个变量的多个可能值时。switch语句中的case标签匹配变量的具体值,如果找到匹配项,执行对应的代码。语法结构:switch (变量) { case 值1: // 当变量的值等于值1时执行的代码 break; case 值2: // 当变量的值等于值2时执行的代码 break; ... default: // 当变量的值没有匹配的case时执行的代码 } #include <stdio.h> int main() { int day; printf("请输入一个数字(1-7):"); scanf("%d", &day); switch (day) { case 1: printf("今天是星期一\n"); break; case 2: printf("今天是星期二\n"); break; case 3: printf("今天是星期三\n"); break; case 4: printf("今天是星期四\n"); break; case 5: printf("今天是星期五\n"); break; case 6: printf("今天是星期六\n"); break; case 7: printf("今天是星期天\n"); break; default: printf("输入无效,请输入1到7之间的数字。\n"); } return 0; } 3. 嵌套条件判断基本用法:嵌套条件判断是指在一个if或else if代码块中再包含另一个if语句。这种结构用于处理多重条件情况,但嵌套层数不宜过多,以免程序难以维护和理解。语法结构:if (条件1) { if (条件2) { // 当条件1和条件2都为真时执行的代码 } else { // 当条件1为真但条件2为假时执行的代码 } } else { // 当条件1为假时执行的代码 } #include <stdio.h> int main() { int year; printf("请输入年份:"); scanf("%d", &year); if (year % 4 == 0) { if (year % 100 == 0) { if (year % 400 == 0) { printf("%d 是闰年。\n", year); } else { printf("%d 不是闰年。\n", year); } } else { printf("%d 是闰年。\n", year); } } else { printf("%d 不是闰年。\n", year); } return 0; }
2024年10月10日
38 阅读
0 评论
1 点赞
2024-09-09
数据库知识要点
MySQL简介MySQL是一个关系型数据库管理系统(RDBMS),以其高效、易用、开源等优点广泛应用于Web开发、数据存储和管理等领域。数据库的基本概念数据库:数据的有序集合,可以看作一个电子化的文件柜。表:数据库的基本存储结构,由行(记录)和列(字段)组成。字段:表的列,每一列有一个名称,指定了数据的类型。记录:表中的一行数据。-- 创建数据库 CREATE DATABASE school; -- 使用数据库 USE school; 数据类型数值类型:INT, FLOAT, DOUBLE, DECIMAL等。字符类型:CHAR, VARCHAR, TEXT等。日期和时间类型:DATE, TIME, DATETIME, TIMESTAMP等。布尔类型:BOOLEAN,通常用TINYINT(1)实现。-- 创建学生表,包含不同数据类型 CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, score DECIMAL(5, 2), birth_date DATE );基本表操作创建表:使用CREATE TABLE语句。修改表:使用ALTER TABLE语句,可以增加、删除、修改字段。删除表:使用DROP TABLE语句删除整个表结构和数据。-- 添加新字段 ALTER TABLE students ADD COLUMN email VARCHAR(100); -- 修改字段 ALTER TABLE students MODIFY COLUMN age TINYINT; -- 删除字段 ALTER TABLE students DROP COLUMN email; -- 删除表 DROP TABLE students; 插入数据使用INSERT INTO语句将数据插入到表中,可以插入单条或多条记录。-- 插入单条记录 INSERT INTO students (name, age, score, birth_date) VALUES ('张三', 18, 85.50, '2005-09-01'); -- 插入多条记录 INSERT INTO students (name, age, score, birth_date) VALUES ('李四', 17, 90.00, '2006-08-15'), ('王五', 18, 78.00, '2005-07-20'); 查询数据基本查询:使用SELECT语句查询表中的数据。条件查询:WHERE子句用于筛选记录。排序:ORDER BY用于按指定列排序。分组:GROUP BY用于对查询结果进行分组。分页:LIMIT用于限制查询结果的数量。-- 查询所有学生 SELECT * FROM students; -- 条件查询,查找年龄大于17的学生 SELECT * FROM students WHERE age > 17; -- 按成绩降序排序 SELECT * FROM students ORDER BY score DESC; -- 分组统计各年龄的学生数量 SELECT age, COUNT(*) AS count FROM students GROUP BY age; -- 分页查询,获取前两条记录 SELECT * FROM students LIMIT 2; 更新数据使用UPDATE语句更新表中的数据,需要结合WHERE子句指定更新条件。-- 更新学生成绩 UPDATE students SET score = 88.50 WHERE name = '张三'; -- 批量更新,将所有学生年龄增加1岁 UPDATE students SET age = age + 1; 删除数据使用DELETE语句删除表中的记录,谨慎使用WHERE子句,否则会删除整张表的数据。-- 删除指定学生 DELETE FROM students WHERE name = '李四'; -- 删除所有记录(不删除表结构) DELETE FROM students; 常用函数字符串函数:CONCAT(), UPPER(), LOWER(), SUBSTRING()等。数学函数:ABS(), ROUND(), CEIL(), FLOOR()等。日期函数:NOW(), CURDATE(), DATE_ADD(), DATEDIFF()等。聚合函数:COUNT(), SUM(), AVG(), MIN(), MAX()等。-- 使用字符串函数将姓名拼接 SELECT CONCAT(name, '同学') AS new_name FROM students; -- 数学函数,取绝对值 SELECT ABS(-10) AS absolute_value; -- 日期函数,计算两个日期之间的天数 SELECT DATEDIFF('2024-09-01', '2024-08-01') AS days_diff; -- 聚合函数,计算平均成绩 SELECT AVG(score) AS avg_score FROM students; 联合查询(JOIN)在关系型数据库中,连表查询(Join)是用来从多个表中提取数据的操作。主要的连表方式有三种:内连接(INNER JOIN)、左连接(LEFT JOIN) 和 右连接(RIGHT JOIN)。每种连接方式的区别在于它们对匹配和不匹配数据的处理方式。区别内连接(INNER JOIN)只返回两个表中符合连接条件的匹配记录。如果没有匹配的记录,结果中不会包含这些记录。左连接(LEFT JOIN)返回左表的所有记录,以及左表中每条记录对应的右表的匹配记录。如果左表中的记录在右表中没有匹配,结果中该记录的右表字段为 NULL。右连接(RIGHT JOIN)返回右表的所有记录,以及右表中每条记录对应的左表的匹配记录。如果右表中的记录在左表中没有匹配,结果中该记录的左表字段为 NULL。示例表格表 1: students(学生信息表)student_idnameclass_id1Alice1012Bob1023Charlie1034DavidNULL表 2: classes(班级信息表)class_idclass_name101Mathematics102Science104Literature查询及结果1. 内连接(INNER JOIN)SELECT students.name, classes.class_name FROM students INNER JOIN classes ON students.class_id = classes.class_id;结果:nameclass_nameAliceMathematicsBobScience说明:仅返回 students.class_id 和 classes.class_id 匹配的记录。Charlie 和 David 的记录因为没有匹配的 class_id,被排除。2. 左连接(LEFT JOIN)SELECT students.name, classes.class_name FROM students LEFT JOIN classes ON students.class_id = classes.class_id;结果:nameclass_nameAliceMathematicsBobScienceCharlieNULLDavidNULL说明:返回 students 表的所有记录。Charlie 和 David 的 class_name 为 NULL,因为没有匹配的 class_id。3. 右连接(RIGHT JOIN)SELECT students.name, classes.class_name FROM students RIGHT JOIN classes ON students.class_id = classes.class_id;结果:nameclass_nameAliceMathematicsBobScienceNULLLiterature说明:返回 classes 表的所有记录。class_id = 104 的记录没有匹配的学生,name 为 NULL。总结表格操作返回的数据INNER JOIN两表中满足条件的匹配记录LEFT JOIN左表的所有记录 + 匹配的右表记录 (无匹配填 NULL)RIGHT JOIN右表的所有记录 + 匹配的左表记录 (无匹配填 NULL)这种不同的连接方式根据查询需求使用,可以灵活提取数据。索引定义:索引用于提高查询效率,可以在表的列上创建索引。类型:PRIMARY KEY(主键索引)、UNIQUE(唯一索引)、INDEX(普通索引)。创建与删除索引:使用CREATE INDEX和DROP INDEX语句。-- 创建索引 CREATE INDEX idx_name ON students (name); -- 查询使用索引 SELECT * FROM students WHERE name = '张三'; -- 删除索引 DROP INDEX idx_name ON students; 视图定义:视图是基于SQL查询结果的虚拟表,不存储实际数据。优点:简化复杂查询、提高数据安全性。创建与删除视图:使用CREATE VIEW和DROP VIEW语句。-- 创建视图 CREATE VIEW student_view AS SELECT name, age FROM students WHERE age >= 18; -- 查询视图 SELECT * FROM student_view; -- 删除视图 DROP VIEW student_view; 存储过程定义:存储过程是存储在数据库中的一组SQL语句,可以接收参数并执行复杂的逻辑。优点:提高代码重用性、封装逻辑、减少与数据库的交互次数。创建与调用存储过程:使用CREATE PROCEDURE和CALL语句。-- 创建存储过程 DELIMITER // CREATE PROCEDURE GetStudentByAge(IN min_age INT) BEGIN SELECT * FROM students WHERE age >= min_age; END // DELIMITER ; -- 调用存储过程 CALL GetStudentByAge(18);
2024年09月09日
54 阅读
1 评论
1 点赞
2024-09-09
C语言知识要点
C语言简介C语言是一种结构化的、过程化的编程语言,广泛用于系统软件开发,如操作系统、编译器等。其特点是简洁、高效,能直接操作硬件,是学习编程的基础语言之一。基本语法程序结构:C语言程序由头文件、主函数main()和其他函数组成。注释://用于单行注释,/ ... /用于多行注释。标识符:变量、函数名、常量名的命名规则,必须以字母或下划线开头。#include <stdio.h> int main() { // 单行注释 printf("Hello, World!\n"); // 输出Hello, World! return 0; }数据类型基本数据类型:int(整数),float(浮点数),double(双精度浮点数),char(字符)。修饰符:signed、unsigned、short、long可修饰基本数据类型。枚举类型:定义一组命名常量,增加代码可读性。#include <stdio.h> int main() { int a = 10; // 整型 float b = 5.5; // 浮点型 char c = 'A'; // 字符型 enum Day {MON, TUE, WED}; // 枚举类型 enum Day today = MON; printf("整数: %d, 浮点数: %.1f, 字符: %c, 枚举: %d\n", a, b, c, today); return 0; }运算符与表达式算术运算符:+, -, *, /, %(取模)。关系运算符:==, !=, <, >, <=, >=。逻辑运算符:&&(与),||(或),!(非)。位运算符:&, |, ^, ~, <<, >>。赋值运算符:=, +=, -=, *=, /=, %= 等。自增自减运算符:++, --。 #include <stdio.h> int main() { int a = 10, b = 20; int sum = a + b; // 算术运算 int isEqual = (a == b); // 关系运算 printf("和: %d, 相等: %d\n", sum, isEqual); // 输出和与相等结果 return 0; } 控制结构条件语句:if, else, switch。循环语句:while, do...while, for。跳转语句:break, continue, goto。#include <stdio.h> int main() { int num = 5; // if 语句 if (num > 0) { printf("正数\n"); } else { printf("非正数\n"); } // for 循环 for (int i = 0; i < 5; i++) { printf("计数: %d\n", i); } // switch 语句 switch (num) { case 1: printf("数字是 1\n"); break; case 5: printf("数字是 5\n"); break; default: printf("其他数字\n"); } return 0; }数组数组是相同数据类型元素的集合,可以是单维、二维或多维数组。#include <stdio.h> int main() { int numbers[5] = {1, 2, 3, 4, 5}; // 定义一维数组 int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}}; // 定义二维数组 printf("一维数组的第一个元素: %d\n", numbers[0]); printf("二维数组的元素: %d\n", matrix[1][2]); // 输出 6 return 0; }字符串C语言没有专门的字符串类型,字符串本质上是字符数组,以\0(空字符)结尾。#include <stdio.h> int main() { char str[] = "Hello"; printf("字符串: %s\n", str); return 0; }函数定义和调用:函数用于将代码模块化,避免重复代码,提高可维护性。参数传递:C语言支持按值传递和按地址传递。#include <stdio.h> // 函数定义 int add(int x, int y) { return x + y; } int main() { int result = add(10, 20); // 函数调用 printf("函数结果: %d\n", result); return 0; }指针定义:指针是存储变量地址的变量。指针与数组:指针可以操作数组,甚至可以作为函数参数来传递数组。空指针与悬空指针:必须正确初始化指针,避免野指针和悬空指针。#include <stdio.h> int main() { int a = 10; int *p = &a; // 定义指针并指向变量 a 的地址 printf("变量的值: %d, 指针指向的值: %d\n", a, *p); return 0; }结构体定义结构体:结构体是将不同类型数据组合在一起的用户自定义数据类型。结构体数组:结构体也可以形成数组,用于存储多个类似结构的数据。#include <stdio.h> // 定义结构体 struct Student { char name[20]; int age; float score; }; int main() { struct Student student1 = {"张三", 18, 89.5}; // 初始化结构体 printf("学生姓名: %s, 年龄: %d, 分数: %.2f\n", student1.name, student1.age, student1.score); return 0; } 文件操作文件指针:FILE *用于文件操作。基本操作:fopen, fclose, fread, fwrite, fprintf, fscanf等函数。#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "w"); // 打开文件进行写操作 if (fp != NULL) { fprintf(fp, "Hello, file!"); // 写入文件 fclose(fp); // 关闭文件 printf("文件操作成功\n"); } else { printf("文件打开失败\n"); } return 0; }
2024年09月09日
25 阅读
0 评论
1 点赞
2024-03-15
远程服务
产品1 - 远程(控制各种电脑,手机等)/ 远程控制单位电脑等设备随时随地访问任何设备一款功能齐全的远程桌面应用。支持 Windows、macOS、Linux、iOS、Android、Web 等多个平台。支持 VP8 / VP9 / AV1 软件编解码器和 H264 / H265 硬件编解码器。完全掌控数据,轻松自建。P2P 连接,端到端加密。在 Windows 上可以非管理员不安装运行,根据需要在本地或远程提升权限。我们崇尚简单,尽一切可能让它简单。产品2 - 内网穿透(将没有公网的设备端口映射出来,方便互联)/ nas,lot等设备控制1.协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理...2.全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务3.控制全面,同时支持服务端和客户端控制4.https集成,支持将后端代理和web服务转成https,同时支持多证书5.操作简单,只需简单的配置即可在web ui上完成其余操作6.展示信息全面,流量、系统信息、即时带宽、客户端版本等7.扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)8.域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能9.服务端支持多用户和用户注册功能需要以上服务, 联系我们详询
2024年03月15日
34 阅读
0 评论
0 点赞
2024-03-07
中兴2.5G光猫F7607p/G7615折腾
telnet root、Zte521跳过ITMS注册电信固件和联通固件部分省份没注册ITMS服务器的话会劫持所有DNS请求的结果到192.168.1.1,使用如下命令手动欺骗ITMS注册结果,解决刷完后打开任意网页自动跳转LOID注册页面。sendcmd 1 DB set PDTCTUSERINFO 0 Status 0sendcmd 1 DB set PDTCTUSERINFO 0 Result 1sendcmd 1 DB save修改超级密码:修改超级帐号:sendcmd 1 DB set DevAuthInfo 0 User XXXXXX修改超级密码:sendcmd 1 DB set DevAuthInfo 0 Pass XXXXXX修改用户限制:sendcmd 1 DB p CltLmtsendcmd 1 DB set CltLmt 8 Max 20 (修改最大用户数为20,可以改成其他数目,最大数目不超过255)sendcmd 1 DB set CltLmt 8 Enable 0sendcmd 1 DB save修改Mac地址、SN等:查看系统参数信息:setmac show2修改格式:setmac 1 [ID] [内容]如修改PONMAC命令为:setmac 1 32769 MAC地址关闭TR069与定时上报功能:sendcmd 1 DB p MgtServer #查看一下当前的电信远程控制sendcmd 1 DB set MgtServer 0 URL http://127.0.0.1 把服务器 URL 改掉sendcmd 1 DB set MgtServer 0 Tr069Enable 0 sendcmd 1 DB set MgtServer 0 PeriodicInformEnable 0sendcmd 1 DB save删除定制版WiFi名字前缀(CMCC, ChinaNet):sendcmd 1 DB set WLANCfg 0 ESSIDPrefix #设置2.4G的ssid前缀为空 sendcmd 1 DB set WLANCfg 4 ESSIDPrefix #设置5G的ssid前缀为空 sendcmd 1 DB save关闭下行光口和WiFi关闭:ip link set mini-olt downrmmod opticalrmmod mtlkrmmod mtlkroot开启:insmod /kmodule/optical.koinsmod /kmodule/mtlkroot.koinsmod /kmodule/mtlk.ko查看固件版本和编译日期:hexdump -C -s 0x180 -n 128 /dev/mtd7 输出kernel分区的固件版本号和编译日期部分,移动联通为mtd7和mtd8,电信为mtd9和mtd10。00000180 5a 58 48 4e 20 46 37 36 30 37 50 20 55 4e 49 20 |ZXHN F7607P UNI |00000190 56 32 2e 30 2e 36 50 31 4e 32 00 00 00 00 00 00 |V2.0.6P1N2......|000001a0 01 00 00 00 00 48 08 00 40 00 54 04 7e f2 f6 49 |.....H..@.T.~..I|000001b0 00 00 7e 02 00 00 d6 01 17 07 c4 96 00 00 00 00 |..~.............|000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|000001d0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 |................|000001e0 8d a4 a1 c0 32 30 32 32 30 35 31 36 32 32 35 32 |....202205162252|000001f0 34 33 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |43..............|00000200查看硬件配置信息:cat /proc/capability/boardinfosystem:LINUXcpufac:ZXICcpumod:ZX2791322gwlmod:INTEL5gwlmod:INTELcpufre:1100MHZcpunum:4flshcap:256MBddrcap:512MB参考文章1、https://zhuanlan.zhihu.com/p/6720713582、https://www.right.com.cn/forum/thread-8281055-1-1.html
2024年03月07日
529 阅读
0 评论
0 点赞
1
2
...
5