1、图书管理系统以UNIX系统文件部分系统调用为基础设计一个简易的图书管理系统。
要求实现:图书的录入、查询、借阅、清理、统计等功能、还要实现对每天的借阅情况进行统计并打印出统计报表,操作界面要尽量完善。
图书资料信息必须保存在文件中。
2、信号通信与进程控制(l)进程的创建:编写一段程序,使用系统调用fork()创建两个或多个子进程。
当此程序运行时,在系统中有一个父进程和其余为子进程在活动。
(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。
(3)进程通信:①软中断通信;
②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行结果,并分析原因。
(4)软中断的捕获与重定义。
首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
3、管道通信利用UNIX系统提供的管道机制实现进程间的通信。
(1)管道通信。
利用pipe()和lockf()系统调用,编写程序,实现同族进程间的通信。
使用系统调用pipe()建立一条管道线;
创建子进程P1、P2、…。
子进程Pi分别向管道各写信息,而父进程则从管道中读出来自于各子进程的信息,实现进程家族间无名管道通讯。
扩展之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
(2)命名管道通信:利用mkfifo(name,mode)或mknod(name,mode,0)创建一个命名管道,然后利用它和文件部分系统调用实现不同进程间的通信。
改造之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
4、进程间通信(IPC):消息机制(1)消息的创建、发送和接收使用系统调用msgget(),msgsnd(),msgget(),及msgctl()编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为175的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一个消息后显示一句“(server)received”。
3)CLIENT端使用key为175的消息队列,先后发送类型从10到1的消息,然后退出。
最后的一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而实现C/S通讯要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如读取或查询某个文件,或者执行一个shell命令等。
此功能可由设计者自己定义。
在此基础上可以扩展客户端,比如设计一个菜单界面,接收不同的选项,并发送到服务器端,请求对方提供服务。
5、进程间通信(IPC):共享内存机制(1)共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),msgdt(),shmctl(),编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为375的共享区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。
当该字节的值发生变化时,表示收到了信息,并进行处理。
然后再次把它的值设为-1。
如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一次数据后显示“(server)received”。
3)CLIENT端建立一个Key为375的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送请求。
CLIENT随即填入9到0。
期间等待Server端的再次空闲。
进行完这些操作后,CLIENT退出。
CLIENT每发送一次数据后显示“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而形成C/S通讯模式要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如
2024/7/19 3:04:26 918KB 操作系统
1
包含完整的课程设计/大作业文档一份+C语言实现的源码+存储数据文件分别使用了普里姆算法与克鲁斯卡尔算法进行最短路径求解。
内容:求城市之间的光纤网连接的最短电缆长度。
课程设计要求:(1)从文件city.txt中读入一个图,文件city.txt结构如下:第一行为整数m,n,其中m表示城市个数(顶点数),n表示边数;
接着的m行每行都是一个字符串,表示城市名;
接下来的n行每行代表一条边,其格式为“城市名城市名距离”。
(2)要求在所有城市之间建立光纤网,使所用光纤总长度最短。
(3)输出城市建成的光纤网所用光缆的总长及每个连接的长度。
1
首先产生K阶Slepian窗的正交序列。
在MATLAB仿真软件中,实现Multitaper算法的函数为PMTM函数。
PMTM函数使用的方法是改进的周期图法线性和非线性结合。
从内部参数和外部参数的角度分别来说明各个参数的作用及其对频谱估计性能的影响。
调整的参数分别为:Slepian序列的时间带宽积,频率域点数,输入数据及其长度,采样频率等。
通过绘制估计得得频谱图来评判谱估计的性能。
2024/7/12 12:10:40 4KB 谱估计 多窗法 仿真
1
利用二叉树结构实现赫夫曼编/解码器。
基本要求:1、 初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个字符的频度,并建立赫夫曼树2、 建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每个字符的编码输出。
3、 编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的字符串输出。
4、 译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译码,并输出译码结果。
5、 打印(Print):以直观的方式打印赫夫曼树(选作)6、 计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼编码的压缩效果。
测试数据:IlovedataStructure,IloveComputer.IwilltrymybesttostudydataStructure.
2024/7/7 12:54:21 5KB 赫夫曼
1
模糊长度和尺度估计
2024/7/5 19:50:22 2KB 参数估计
1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------IEC-60870-5-104:应用模型是:物理层,链路层,网络层,传输层,应用层物理层保证数据的正确送达,保证如何避免冲突。
(物理层利用如RS232上利用全双工)链路层负责具体对那个slave的通讯,对于成功与否,是否重传由链路层控制(RS4852线利用禁止链路层确认)应用层负责具体的一些应用,如问全数据还是单点数据还是类数据等(网络利用CSMA/CD等保证避免冲突的发生)---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------基本定义:端口号2404,站端为Server控端为Client,平衡式传输,2Byte站地址,2Byte传送原因,3Byte信息地址。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------注:APDU应用规约数据单元(整个数据)=APCI应用规约控制信息(固定6个字节)+ASDU应用服务数据单元(长度可变)---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------APDU长度(系统-特定参数,指定每个系统APDU的最大长度)APDU的最大长度域为253(缺省)。
视具体系统最大长度可以压缩。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------【1个例子】104报文分析BUF序0123456789.10111213141516171819202122M->R:6815100002001E01030001007900000110012413D20A02分析的结果是I(主动上报SOE,主动上报是因为104是平衡式规约)报文头固定为0x68,即十进制104长度15字节(不是6帧的,都是I帧)发送序号=8【控制字节的解析10000200,发送序号:0010H/2=16/2=8】接收序号=1【控制字节的解析10000200,接收序号:0002H/2=2/2=1】0x1E=30即M_SP_TB_1带长时标的单点信息01->SQ:0信号个数:10300->传送原因:[T=0P/N=0原因=3|突发]0100->公共地址:1790000->0x79=121信息体地址:12101->状态:1IV:0NT:0SB:0BL:010012413D20A02->低位10高位01,即0x0110=1*16*16+16=272时标:2002/10/1819:36:00.272
2024/7/5 19:30:53 366KB 104 规约 报文详解
1
霍夫曼编码及香农编码:信源编码主要可分为无失真信源编码和限失真信源编码。
无失真信源编码主要适用于离散信源或数字信号,如文本、表格及工程图纸等信源,它们要求进行无失真地数据压缩,要求完全能够无失真地可逆恢复。
凡是能载荷一定的信息量,且码字的平均长度最短,可分离的变长码的码字集合称为最佳变长码,为此必须将概率大的信息符号编以短的码字,概率小的符号编以长的码字,是的平均码字长度最短,能得到最佳的编码方法主要有:香农,费诺,霍夫曼编码等,实现至少两种无失真信源编码(香农码,哈夫曼码、费诺码)及其编码效率。
2024/7/5 1:23:17 90KB 霍夫曼编码,香农编码
1
模拟实现磁盘调度算法:最短寻道时间优先(SSTF)和扫描(SCAN)算法。
对给出的任意的磁盘请求序列、计算平均寻道长度;
要求可定制磁盘请求序列长度、磁头起始位置、磁头移动方向。
测试:假设磁盘访问序列:98,183,37,122,14,124,65,67;
读写头起始位置:53,方向:磁道增加的方向。
输入此类数据后,程序按照选定的算法,自动给出访问序列,并且算出经过的磁道总数。
2024/7/4 17:41:44 5KB 磁盘调度 SCAN SSTF
1
ngx-input-searchTL;DR:用于输入搜索输入以改善用户体验(UX)的Angular指令。
通过其唯一的输出,您将能够获得与搜索输入相关的良好实践,如:等到用户停止写以执行所需的操作避免对同一流执行操作修剪条件上的空白当条件的长度大于期望的长度时流<inputtype="text"(ngxInputSearch)="doTheSearch($event)"/>如何使用它dummy.component.ts@Component({selector:'dummy-component',templateUrl:'dummy.component.html',})classDummyComponent{doTheSearch($event:Event){conststringEmitted=($event.targetasHTMLInputElement).value;console.log(stringEmitted);
2024/6/28 22:13:04 836KB npm unit-testing angular tdd
1
针对轨迹序列长度不固定的特点,计算轨迹间的距离。
采用K均值算法对轨迹样本进行聚类。
2024/6/26 3:06:23 65KB 聚类
1
共 622 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡