图书管理系统 数据结构先导课暨C语言大作业复习 | JorbanS
问题描述
读取给定的图书文件book.txt中的信息(book.txt中部分图书信息如下图所示),完成一个图书信息管理系统,该系统的各个功能模块要求利用菜单选项进行选择。
系统功能要求
图书浏览
读取book.txt中的文件信息并依次输出所有图书信息(书号、书名、价格),包括文件前两行的标题说明信息。
图书统计
统计book.txt中的图书总数n并输出。
图书插入
根据指定的位置i(1≤i≤n+1)和给定的一本图书信息,将该图书插入到位置i,并将变化后的图书信息回写到book.txt。
图书删除
根据指定的位置i(1≤i≤n),删除该位置上的图书信息,并将变化后的图书信息回写到book.txt。
图书查找
① 按位置进行查找:根据输入的位置i(1≤i≤n),查找位置i上的图书信息并输出;
② 按书名进行查找:根据输入的书名,查找该图书的信息并输出(如果有多本,则全部输出)。
价格更新
将价格小于45元的图书价格提高20%,价格大于等于45元的图书价格提高10%,将修改后的图书信息重新写入新文件book-newprice.txt中。
价格排序
按图书价格升序排序,将排序后的图书信息重新写入新文件book-newsort.txt中。
逆序存储
将book.txt中的全部图书逆序存储(即最后一本置于原第一本位置)写入新文件book-newinverse.txt中。
【数据结构要求】
图书数据类型的定义需要采用数据结构教材(参考文献[1])24页中的顺序表类型定义方式,如下所示。
算法实现要求
正确性
在合理的数据输入下,能够在有限的运行时间内得到正确的结果。
可读性
程序结构清晰,易于理解,程序要求具有规范的缩进格式,关键语句添加适当的注释,变量或函数名等标识符按照见名知义的原则命名。
健壮性
当输入的数据非法时,能适当地做出正确反应或进行相应处理,而不会产生一些莫名其妙的输出结果。例如,查找不到时给出“图书不存在,查找失败”的提示,插入或删除位置非法时给出“指定位置非法”的提示等。
高效性
分析每个算法的时间复杂度和空间复杂度,并确保时间高效和空间高效。
任务选做要求
基于链式存储结构实现上述所有功能,即将图书数据类型的定义改为数据结构教材(参考文献[1])29页中的链表类型定义方式,如下所示。
具体实现时需要将上述定义中的ElemType改为如下定义的Book类型取可,即每一本图书作为链表的一个结点。
typedef struct //图书信息定义
{ char no[20]; //图书ISBNchar name[50]; //图书名字float price; //图书价格
} Book;
参考文献
[1] 严蔚敏, 李冬梅, 吴伟民.数据结构(C语言版)(第2版)双色版.人民邮电出版社, 2021.
[2] 李冬梅, 田紫微.数据结构习题解析与实验指导(第2版).人民邮电出版社, 2022.
[3] C语言教程. https://www.runoob.com/cprogramming/c-tutorial.html.
以下是笔者在同目录下文件 book.txt 生成的随机数据,便于调试
9781334512350 程序设计艺术 89.90
9781344656791 数据库原理 95.80
9781355712402 网络安全入门 99.70
9781366856813 C++高级编程 105.60
9781377912454 深度学习研究 110.50
9781388056865 大数据分析 104.40
9781399112466 游戏开发秘籍 89.30
9781400256917 移动应用设计 97.20
9781411312478 云服务架构 108.10
9781422456929 人工智能未来 115.00
9781433512480 系统集成方法 98.90
9781444656931 前端开发进阶 88.80
9781455712492 3D图形编程 119.70
9781466856943 VR技术实践 129.60
9781477912504 物联网技术 104.50
9781488056955 编译原理简介 95.40
9781499112516 数字设计基础 86.30
9781500256967 软件工程方法 107.20
9781511312528 IT项目管理 96.10
9781522456979 企业网络解决方案 112.00
9781533512530 运算放大器设计 93.90
9781544657011 深度学习框架 92.80
9781555712562 微处理器原理 101.70
9781566857063 数据挖掘技术 109.60
9781577912594 网络编程入门 106.50
9781588057105 机器人技术 105.40
9781599112656 嵌入式系统设计 104.30
9781600257157 量子计算概论 102.20
9781611312678 分布式系统原理 103.10
9781622457109 电路设计基础 101.00
9781633512670 软件测试方法 100.90
9781644657151 无线通信技术 99.80
9781655712712 系统分析与设计 98.70
9781666857253 开源软件应用 97.60
9781677912754 高性能计算 96.50
9781688057305 网站开发实践 95.40
9781699112856 编程语言概览 94.30
9781700257357 安全编程技巧 93.20
9781711312858 计算机图形学 92.10
9781722457409 操作系统原理 91.00
9781733512950 软件架构设计 89.90
9781744657491 互联网金融 88.80
9781755712952 区块链技术 87.70
9781766857493 人工智能伦理 86.60
9781777913054 量子机器学习 85.50
9781788057505 虚拟现实技术 84.40
9781799113156 云计算安全 83.30
9781800257557 网络协议分析 82.20
9781811313058 数据中心设计 81.10
9781822457609 大数据存储 80.00
完整 c o d e code code
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <stdlib.h>
#define cls system("cls")
#define endl puts("")
#define title(x) printf("========%s========\n", x)
#define DIR "./book.txt"
#define DIR_NewPrice "./book-newprice.txt"
#define DIR_Inverse "./book-newinverse.txt"
#define DIR_Sort "./book-newsort.txt"typedef struct {char no[20], name[50];float price;
} Book;typedef struct LNode {Book data;struct LNode* next;
} *LinkList;LinkList InitList();
int Read(LinkList L, int Type); // Type = 0 头插法, Type = 1 尾插法
void Write(LinkList L, int Type); // 写入文件
// Type = 0 代表源文件
// Type = 1 代表逆序存储的文件
// Type = 2 代表存储更新的价格
// Type = 3 代表存储按价格顺序的文件
void StoreInverse(LinkList L); // 逆序存储
void Output(LinkList L, int count); // 所有图书输出到屏幕
int Add(LinkList L, int count); // 新增图书
int Erase(LinkList L, int count); // 移除图书
int SearchByID(LinkList L, int count); // 按索引搜索
int SearchByName(LinkList L, int count); // 按书名搜索
void Search(LinkList L, int count); // 搜索
void Update(LinkList L); // 更新书的价格
void Edit(LinkList L, int count); // 图书管理
void Sort(LinkList L, int count); // 按价格排序
void CannotOpenFile(); // 报错:无法打开文件
void CannotCloseFile(); // 报错:无法关闭文件
void CannotAllocateMemory(); // 报错:无法分配内存int main(void) {while (true) {LinkList L = InitList();int count = Read(L, 1);if (count == -1) return 0;int op;do {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t0 > 退出系统");puts("\t\t1 > 图书列表");puts("\t\t2 > 图书管理");puts("\t\t3 > 查找图书");puts("\t\t4 > 逆序存储");puts("\t\t5 > 价格升序");endl;title("==========================================");scanf("%d", &op);} while (op < 0 || op > 6);switch (op) {case 0: // 退出系统cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t\t已退出系统");endl;title("==========================================");return 0;break;case 1: // 图书列表Output(L, count);puts("输入任意并回车返回主界面");int op;scanf("%d", &op);break;case 2: // 图书管理Edit(L, count);break;case 3: // 查找图书Search(L, count);break;case 4: // 逆序存储StoreInverse(L);break;case 5: // 按价格升序Sort(L, count);break;}}return 0;
}void CannotOpenFile() {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t无法打开文件!");endl;title("==========================================");Sleep(1000);}void CannotCloseFile() {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t无法关闭文件!");endl;title("==========================================");Sleep(1000);}void CannotAllocateMemory() {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t无法分配内存!");endl;title("==========================================");Sleep(1000);}LinkList InitList() {LinkList L = (LinkList)malloc(sizeof(LNode));if (L == NULL) {CannotAllocateMemory();exit(-1);}L->next = NULL;return L;}int Read(LinkList L, int Type) {FILE* fpRead;if ((fpRead = fopen(DIR, "r")) == NULL) {CannotOpenFile();fclose(fpRead);exit(-1);}LinkList last;if (Type == 1) last = L; // 尾插法记录末节点int count = 0;while (!feof(fpRead)) {count ++;LinkList elem = (LinkList)malloc(sizeof(LNode));fscanf(fpRead, "%s%s%f\n", elem->data.no, elem->data.name, &elem->data.price);if (!Type) { // 头插法elem->next = L->next;L->next = elem;} else { // 尾插法last->next = elem;elem->next = NULL;last = elem;}}if (fclose(fpRead)) {CannotCloseFile();exit(-1);}return count;}void Write(LinkList L, int Type) {FILE* fpWrite;if (Type == 0) fpWrite = fopen(DIR, "w");else if (Type == 1) fpWrite = fopen(DIR_Inverse, "w");else if (Type == 2) fpWrite = fopen(DIR_NewPrice, "w");else fpWrite = fopen(DIR_Sort, "w");if (fpWrite == NULL) {CannotOpenFile();exit(-1);}for (LinkList elem = L->next; elem != NULL; elem = elem->next) {float Now = elem->data.price;if (Type == 2) {if (Now < 45) Now *= 1.2;else Now *= 1.1;}fprintf(fpWrite, "%s %s %.2f\n", elem->data.no, elem->data.name, Now);}if (fclose(fpWrite)) {CannotCloseFile();exit(-1);}}void StoreInverse(LinkList L) {LinkList L2 = (LinkList)malloc(sizeof(LNode));L2->next = NULL;Read(L2, 0);Write(L2, 1);cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t已完成逆序存储");endl;title("==========================================");Sleep(1000);}void Output(LinkList L, int count) {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;printf("一共索引到 %d 条图书记录\n", count);endl;puts("索引 \tISBN\t\t书名\t\t定价");int cnt = 1;for (LinkList elem = L->next; elem != NULL; elem = elem->next, cnt ++) {printf("%2d %s %-18s %5.2lf\n", cnt, elem->data.no, elem->data.name, elem->data.price);}endl;printf("一共索引到 %d 条图书记录\n", count);endl;title("==========================================");}int Add(LinkList L, int count) {int pos;do {Output(L, count);printf("请输入数字 1 ~ %d,作为插入的位置:", count + 1);scanf("%d", &pos);} while (pos < 1 || pos > count + 1);LinkList tmp = (LinkList)malloc(sizeof(LNode));printf("ISBN:");scanf("%s", tmp->data.no);printf("书名:");scanf("%s", tmp->data.name);printf("定价:");scanf("%f", &tmp->data.price);int cnt = 1;for (LinkList elem = L; elem != NULL; elem = elem->next, cnt ++) {if (cnt == pos) {tmp->next = elem->next;elem->next = tmp;break;}}Write(L, 0);return count + 1;
}int Erase(LinkList L, int count) {int pos;do {cls;Output(L, count);endl;printf("请输入数字 1 ~ %d,作为删除的位置:", count);scanf("%d", &pos);} while (pos < 1 || pos > count);int cnt = 1;for (LinkList elem = L->next; elem != NULL; elem = elem->next, cnt ++) {if (cnt == pos) {char c[20];do {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("索引 \tISBN\t\t书名\t\t定价");printf("%2d %s %-18s %5.2lf\n", cnt, elem->data.no, elem->data.name, elem->data.price);title("==========================================");endl;printf("是否确定删除索引第 %d 本书?(Y/N):", pos);scanf("%s", c);} while (c[0] != 'Y' && c[0] != 'N');if (c[0] == 'N') return count;elem->next = elem->next->next;break;}}Write(L, 0);return count - 1;
}int SearchByID(LinkList L, int count) {int pos;do {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;printf("请输入数字 1 ~ %d,作为查找的位置:", count);scanf("%d", &pos);} while (pos < 1 || pos > count);return pos;
}int SearchByName(LinkList L, int count) {char Name[60];int cnt;while (true) {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;printf("请输入书名以查找:");scanf("%s", Name);cnt = 1;for (LinkList elem = L->next; elem != NULL; elem = elem->next, cnt ++) {if (!strcmp(elem->data.name, Name)) return cnt;}if (Name[0] == 'q') return -1;if (cnt == count + 1) {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t未查找到相关书名");endl;title("==========================================");Sleep(1000);break;}}return -1;
}void Search(LinkList L, int count) {int op;do {cls;title(" 查找图书 ");endl;puts("\t0 > 返回");puts("\t1 > 按索引查找");puts("\t2 > 按书名查找");endl;title("==========");scanf("%d", &op);} while (op < 0 || op > 2);int pos;switch (op) {case 0:return;break;case 1:pos = SearchByID(L, count);break;case 2:pos = SearchByName(L, count);break;}if (pos == -1) return;int cnt = 1;for (LinkList elem = L->next; elem != NULL; elem = elem->next, cnt ++) {if (cnt == pos) {cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("找到了以下书满足搜索条件:");endl;puts("索引 \tISBN\t\t书名\t\t定价");printf("%2d %s %-18s %5.2lf\n", cnt, elem->data.no, elem->data.name, elem->data.price);endl;title("==========================================");endl;puts("输入任意并回车返回主界面");int op;scanf("%d", &op);return;}}
}void Update(LinkList L) {Write(L, 2);cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t已完成价格更新");endl;title("==========================================");Sleep(1000);}void Edit(LinkList L, int count) {int op;do {cls;title(" 图书管理 ");endl;puts("\t0 > 返回");puts("\t1 > 新增图书");puts("\t2 > 删除图书");puts("\t3 > 更新价格");endl;title("==========");scanf("%d", &op);} while (op < 0 || op > 3);switch (op) {case 0:return;break;case 1:count = Add(L, count);break;case 2:count = Erase(L, count);break;case 3:Update(L);break;}
}void Swap(LinkList A, LinkList B) { // 交换数据Book C;C = B->data;B->data = A->data;A->data = C;}void Sort(LinkList L, int count) {LinkList L3 = (LinkList)malloc(sizeof(LNode));L3->next = NULL;LinkList last = L3;for (LinkList elem = L->next; elem != NULL; elem = elem->next) {LinkList New = (LinkList)malloc(sizeof(LNode));New->data = elem->data;last->next = New;New->next = NULL;last = New;}for (LinkList i = L3->next; i->next != NULL; i = i->next) // 冒泡排序for (LinkList j = i->next; j != NULL; j = j->next)if (i->data.price > j->data.price) Swap(i, j);Write(L3, 3);cls;title(" 安徽工业大学图书馆计算机图书采购管理系统 ");endl;puts("\t\t已完成按价格升序");endl;title("==========================================");Sleep(1000);}
相关文章:
图书管理系统 数据结构先导课暨C语言大作业复习 | JorbanS
问题描述 读取给定的图书文件book.txt中的信息(book.txt中部分图书信息如下图所示),完成一个图书信息管理系统,该系统的各个功能模块要求利用菜单选项进行选择。 系统功能要求 图书浏览 读取book.txt中的文件信息并依次输出所…...
python 爬虫的开发环境配置
1、新建一个python项目 2、在控制台中分别安装下面三个包 pip install requests pip install beautifulsoup4 pip install selenium/ 如果安装时报以下错误: raise ReadTimeoutError(self._pool, None, "Read timed out.") pip._vendor.urllib3.exceptio…...
技术架构图是什么?和业务架构图的区别是什么?
技术架构图是什么? 技术架构图是一种图形化工具,用于呈现软件、系统或应用程序的技术层面设计和结构。它展示了系统的各种技术组件、模块、服务以及它们之间的关系和交互方式。技术架构图关注系统内部的技术实现细节,以及各个技术组件之…...
数据增强
一、数据增强 当你训练一个机器学习模型时,你实际做工作的是调参,以便将特定的输入(一副图像)映像到输出(标签)。我们优化的目标是使模型的损失最小化, 以正确的方式调节优化参数即可实现这一目…...
【Unity】2D 对话模块的实现
对话模块主要参考 【Unity教程】剧情对话系统 实现。 在这次模块的构建将基于 unity ui 组件 和 C#代码实现一个从excel 文件中按照相应规则读取数据并展示的逻辑。这套代码不仅能实现正常的对话,也实现了对话中可以通过选择不同选项达到不同效果的分支对话功能。 …...
laravel安装初步使用学习 composer安装
一、什么是laravel框架 Laravel框架可以开发各种不同类型的项目,内容管理系统(Content Management System,CMS)是一种比较典型的项目,常见的网站类型(如门户、新闻、博客、文章等)都可以利用CM…...
【VS插件】VS code上的Remote - SSH
【VS插件】VS code上的Remote - SSH 目录 【VS插件】VS code上的Remote - SSH获得Linux服务器或者Linux系统的IP地址下载插件远程登录注意如果Linux虚拟机系统无法连接成功可能是没有开启ssh服务优势 作者:爱写代码的刚子 时间:2023.9.12 前言࿱…...
TensorFlow 02(张量)
一、张量 张量Tensor 张量是一个多维数组。与NumPy ndarray对象类似,tf.Tensor对象也具有数据类型和形状。如下图所示: 此外,tf.Tensors可以保留在GPU中。TensorFlow提供了丰富的操作库 (tf.add,tf.matmul,tf.linalg.inv等),它们…...
513. 找树左下角的值
代码链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路: 万金油层次遍历,保存每一层的第一个元素返回就行了 我的代码: /*** Definition for a binary tree node.* struct TreeNode {* …...
量化:基于支持向量机的择时策略
文章目录 参考机器学习简介策略简介SVM简介整体流程收集数据准备数据建立模型训练模型测试模型调节参数 参考 Python机器学习算法与量化交易 利用机器学习模型,构建量化择时策略 机器学习简介 机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。…...
成功解决Selenium 中116版本的chromedriver找不到问题
Selenium 中的Google(谷歌浏览器)最新版本chromedriver 文章目录 Selenium 中的Google(谷歌浏览器)最新版本chromedriver1.当前作者的谷歌浏览器版本2.当前驱动官网的最新版本3.当不想降低浏览器版本继续使用谷歌浏览器的办法 1.当…...
PYQT常用组件--方法汇总
QTimeEdit timeEdit是Qt框架中的一个时间编辑器控件,它提供了以下常用方法: setTime(QTime time): 设置时间编辑器的时间为指定的QTime对象。time(): 返回时间编辑器的当前时间,返回一个QTime对象。setDateTime(QDateTime dateTime): 设置时…...
Linux系统编程(一):文件 I/O
参考引用 UNIX 环境高级编程 (第3版)黑马程序员-Linux 系统编程 1. UNIX 基础知识 1.1 UNIX 体系结构(下图所示) 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境,通常…...
OSM+three.js打造3D城市
对于我在 Howest 的研究项目,我决定构建一个 3D 版本的 Lucas Bebber 的“交互式讲故事的动画地图路径”项目。我将使用 OSM 中的矢量轮廓来挤出建筑物的形状并将它们添加到 3js 场景中,随后我将对其进行动画处理。 一、开发环境 为了使用 Node 和 npm 包,我选择使用 Vite…...
02JVM_垃圾回收GC
二、垃圾回收GC 在堆里面存放着java的所有对象实例,当对象为“死去”,也就是不再使用的对象,就会进行垃圾回收GC 1.如何判断对象可以回收 1.1引用计数器 介绍 在对象中添加一个引用计数器,当一个对象被其他变量引用时这个对象…...
ARM Linux DIY(八)USB 调试
前言 V3s 带有一个 USB 接口,将其设置为 HOST 或 OTG 模式,这样可以用来接入键盘、鼠标等 USB 外设。 USB 简介 USB 有两种设备:HOST 和 USB 功能设备。 在 USB2.0 中又引入了一个新的概念 OTG,即设备角色可以动态切换。 切换方…...
编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
系列文章目录 编程小白的自学笔记十三(python办公自动化读写文件) 编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二) 编程小白的自学笔记十一(python爬虫入门三Selenium的使用实例详解) …...
MySQL使用Xtrabackup备份到AWS存储桶
1.安装Xtrabackup cd /tmp wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-28/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm yum -y localinstall percona-xtrabackup-80-8.0.33-28.1.el7.x86…...
(高阶)Redis 7 第11讲 BIGKEY 优化篇
面试题 问题答案如何在海量数据中查询某一固定前缀的Keyscan生产环境如何限制 keys */FLUSHDB/FLUSHALL 等危险命令,防止误删误用# 修改配置文件 rename-command keys "" rename-command flushdb "" rename-command flushall ""如何使用MEMORY U…...
一阶差分和二阶差分概念及其举例
一阶差分和二阶差分概念及其举例 目录 一阶差分和二阶差分概念及其举例1、一阶差分1.1 概念1.2 举例 2、二阶差分2.1 概念2.2 举例 1、一阶差分 1.1 概念 一阶差分是指对一个数列中的每个元素,计算其与其前一个元素之差的操作。 1.2 举例 举例来说,对…...
使用自定义注解和SpringAOP捕获Service层异常,并处理自定义异常
目录 一 自定义异常二 自定义注解三 注解切面处理类四 使用 一 自定义异常 /*** 自定义参数为null异常*/ public class NoParamsException extends Exception {//用详细信息指定一个异常public NoParamsException(String message){super(message);}//用指定的详细信息和原因构…...
Kotlin(六) 类
目录 创建类 调用类 类的继承------open 构造函数 创建类 创建类和创建java文件一样,选择需要创建的目录New→Kotlin File/Class Kotlin中也是使用class关键字来声明一个类的,这一点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功…...
蓝桥杯官网练习题(灌溉)
题目描述 小蓝负责花园的灌溉工作。 花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。 小蓝可以控制一个按钮同时打开所有的出水管,打开时,有出水管的位置可以被认为已经灌溉好。 每经过一分钟,水就会向四面扩展…...
数据结构:树的概念和结构
文章目录 1. 树的概念2. 树的结构3. 树的相关概念4. 树的表示孩子表示法双亲表示法孩子兄弟表示法 5. 树在实际中的应用5. 树在实际中的应用 1. 树的概念 树是一种非线性的数据结构,它是由 n (n > 0)个有限结点组成一个具有层次关系的. 把它叫做树是因为它看起来像一棵倒挂的…...
【GIS】栅格转面报错:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型
问题: 栅格转面(矢量)时,ArcGIS窗口显示:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型. 原因: 栅格转面时输入的栅格数据集的字段必须是整型. 解决办法: 使用Spatial Analyst中的转为整型工具,将栅格数据转为整型后再进行栅格转面的操作…...
32 WEB漏洞-文件操作之文件下载读取全解
目录 介绍利用获取数据库配置文件文件名,参数值,目录符号 涉及案例:Pikachu-文件下载测试-参数Zdns-文件下载真实测试-功能点小米路由器-文件读取真实测试-漏洞RoarCTF2019-文件读取真题复现-比赛百度杯2017二月-Zone真题复现-比赛拓展 下载和读取都差不…...
Linux之history、tab、alias、命令执行顺序、管道符以及exit
目录 Linux之history、tab、alias、命令执行顺序、管道符以及exit history历史命令 格式 参数 修改默认记录历史命令条数 案例 案例1 --- 显示history历史记录中出现次数最高的top10 案例2 --- 增加history显示的时间信息 命令与文件名补全 --- tab 命令别名 格式 案…...
vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享
VCOMP100.DLL 是由微软打造的动态链接库,它对于一些图形密集型应用,例如Photoshop,以及多款知名游戏如巫师3的运行至关重要。 如果操作系统在启动应用程序时无法找到此vcomp100.dll,则会出现vcomp100.dll丢失或未找到错误。 如果D…...
Vue3自定义指令(directive)
文章目录 前言一、Vue3指令钩子函数二、自定义指令的两种方式1.局部使用例子1:鉴权例子2:拖拽 2.全局使用例子1:监听宽高指令例子2:监听是否出现在视口 总结 前言 此文章主要讲了vue3中自定义指令的使用,以及一些WebA…...
大数据课程L9——网站流量项目的实时业务处理代码
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握网站流量项目的SparkStreaming代码; ⚪ 掌握网站流量项目的HBaseUtil代码; ⚪ 掌握网站流量项目的MysqlUtil代码; ⚪ 掌握网站流量项目的LogBean代码; ⚪ 掌握网站流量项目的To…...
广东免费建站公司/南京百度推广
2816. Troywar loves Maths ★★☆ 输入文件:Troy_1.in 输出文件:Troy_1.out 简单对比 时间限制:1 s 内存限制:256 MB 【题目描述】 众所周知,Troywar总是不好…...
做动态网站必学/广告推广网站
💥 项目专栏:【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据 前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目…...
网站开发学哪种语言/今日最新消息新闻报道
用CSS的expression判断表达式设置input样式,简单,轻量级。缺点在于expression判断表达式FireFox是不支持的。致命的是只能区分出一个(例如例子中就只能区分出text文本框),不要试图设置多个…代码:复制代码代码如下:www.52CSS.comi…...
工信部查网站备案/app下载推广
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1263 Accepted Submission(s): 754 Problem Descriptionm 堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出…...
住房城乡建设部网站通报/在线crm网站建站
(转自佳明妈) 一、校验数字的js正则表达式 1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字ÿ…...
盖州网站优化/网站开发的公司
一面 一面就做了一道算法题,要求两小时内完成,给了长度为N的有重复元素的数组,要求输出第10大的数。典型的TopK问题,快排算法搞定。 算法题要注意的是合法性校验、边界条件以及异常的处理。另外,如果要写测试用例&am…...