软件体系结构描述语言:C2学校教务系统中教师补课子系统有如下一些基本假设:本系统中有三个基本对象:教师、学生和教务员。
补课基本流程如下:教师(teacher)分别向学生(student)与教务员(dean)发出补课请求makeupClassRequest()、并提供一个教师期望的补课时间与地点的集合preferSetTeacher(time,address),提出一个教师不期望的补课时间与地点集合excludeSetTeacher(time,address)供学生选择。
同时,教师向学生与教务员发出请求获取学生与教务员期望的补课时间地点集合getPerferSet(),获取不喜欢的时间地点集合getExcludeSet(),获取教师所提供的期望补课时间地点集合之外的时间地点集合addPreferSet(),学生与教务员收到教师的补课请求以及相应的参数后,根据自身的情况以及学校课室的使用情况,结合教师所提供的preferSetTeacher(time,address)、excludeSetTeacher(time,address),①从preferSetTeacher(time,address)集合中选取出合适的元组组成学生自己所期望的补课时间与地点集合preferSet(time,address)。
②增加不在excludeSetTeacher(time,address)的时间与地点集合excludeSet(time,address)。
最后将preferSet(time,address)与excludeSet(time,address)发回给教师。
教师接收到学生与教务员返回的集合excludeSet(time,address)后,与excludeSet(time,address)进行“并”(or)计算。
接收到preferRes(time,address)后,与原有的preferSet(time,address)进行“交”(and)计算,然后再与excludeSet(time,address)进行差(subtraction)运算。
教师最后从preferSetTeacher(time,address)集合中选择一个元组作为补课的时间与地点,并通知学生与教务处。
要求:画出该系统基于C2风格的体系结构图利用C2语言描述出教师构件利用C2语言描述出学生构件种用C2语言设计出本系结构中的连接件描述出软件体系结构并设计出一个体系结构的实例,在这个实例中,教师是张三,有学生有a,b,c三人,教务员是李四。
2023/9/10 23:48:41 34KB 软件体系结构描述语言 c2 C2
1
TIME-HARMONICELECTROMAGNETICFIELDS时谐电磁场经典教材作者:RogerF.Harrington目录:ForewordtotheRevisedEdition.Preface.FundamentalConcepts.IntroductiontoWaves.SomeTheoremsandConcepts.PlaneWaveFunctions.CylindricalWaveFunctions.SphericalWaveFunctions.PerturbationalandVariationalTechniques.MicrowaveNetworks.AppendixA:VectorAnalysis.AppendixB:ComplexPermittivities.AppendixC:FourierSeriesandIntegrals.AppendixD:BesselFunctions.AppendixE:LegendreFunctions.Bibliography.Index.
2023/8/31 23:26:50 41.76MB 时谐电磁场 Harrington 英文版
1
源代码:#include#include#include#include#definePI3.1415926/*定义常量*/#defineUP0x4800/*上移↑键:修改时间*/#defineDOWN0x5000/*下移↓键:修改时间*/#defineESC0x11b/*ESC键:退出系统*/#defineTAB0xf09/*TAB键:移动光标*//*函数声明*/intkeyhandle(int,int);/*键盘按键判断,并调用相关函数处理*/inttimeupchange(int);/*处理上移按键*/inttimedownchange(int);/*处理下移按键*/intdigithour(double);/*将double型的小时数转换成int型*/intdigitmin(double);/*将double型的分钟数转换成int型*/intdigitsec(double);/*将double型的秒钟数转换成int型*/voiddigitclock(int,int,int);/*在指定位置显示时钟或分钟或秒钟数*/voiddrawcursor(int);/*绘制一个光标*/voidclearcursor(int);/*消除前一个光标*/voidclockhandle();/*时钟处理*/doubleh,m,s;/*全局变量:小时,分,秒*/doublex,x1,x2,y,y1,y2;/*全局变量:坐标值*/structtimet[1];/*定义一个time结构类型的数组*/main(){intdriver,mode=0,i,j;driver=DETECT;/*自动检测显示设备*/initgraph(&driver,&mode,"");/*初始化图形系统*/setlinestyle(0,0,3);/*设置当前画线宽度和类型:设置三点宽实线*/setbkcolor(0);/*用调色板设置当前背景颜色*/setcolor(9);/*设置当前画线颜色*/line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*画主体框架的边直线*//*arc(intx,inty,intstangle,intendangle,intradius)*/arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12);/*画主体框架的边角弧线*/setcolor(15);outtextxy(300,53,"CLOCK");/*显示标题*/setcolor(7);rectangle(342,72,560,360);/*画一个矩形,作为时钟的框架*/setwritemode(0);/*规定画线的方式。
mode=0,则表示画线时将所画位置的原来信息覆盖*/setcolor(15);outtextxy(433,75,"CLOCK");/*时钟的标题*/setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10);/*绘制电子动画时钟下的数字时钟的边框架*//*绘制数字时钟的时分秒的分隔符*/setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;j+=7){setlinestyle(0,0,3);circle(i,j,1);/*以(i,y)为圆心,1为半径画圆*/}setcolor(15);line(424,315,424,325);/*在运行电子时钟前先画一个光标*//*绘制表示小时的圆点*/for(i=0,m=0,h=0;i<=11;i++,h++){x=100*sin(
2023/8/25 8:11:27 142KB c语言实现电子时钟 课程设计
1
使用python实现了PSO算法优化LSTM参数,包括time_step,batch_size,learningrate和cell_size等
2023/8/21 4:51:04 12KB 机器学习 LSTM 太阳能发电预测
1
纯人工翻译中文版本,STM32CubeMX用户手册中文版,STM32CubeMX用户手册中文版UM1718-翻译版.菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。
这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。
说到freeRTOS,这里就多说两句。
全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。
不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。
关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。
只要代码合理访问全局变量可以不加保护的。
因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。
源码较少,这里就不过多介绍。
关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。
阅读源码可以找到相关宏配置。
不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。
如果有freeRTOS相关问题,可以留言给我。
废话说多了点哈,继续我们的STM32CubeMX。
下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。
到官网下载STM32CubeMX,并安装。
1:芯片选型打开STM32CubeMX,我们点击newproject,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。
空白的一般默认只有一个。
下图是我勾选以太网的截图。
上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。
除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。
我们选择其中一个的单片机后。
右上部分给我们提供了完美的支持。
第一个选项提供了改cpu的特性,我们可以大概的了解选中的cpu资源。
第二个选项提供该cpu框图,截图图片太大,这里就不截图了。
第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。
第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。
第五个选项提供了芯片购买途径,这个每个人自己选择吧。
第六个选项开始工程,芯片选好了,就可以开始工程。
2:设定芯片。
芯片选好后,可以开始设定芯片。
这就是软件工程师的好帮手呀。
比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。
如下图:上面我选了标准的MII接口。
很多人可能就不理解,你勾了个以太网,咋报错了。
老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。
告诉你他们不能使用了。
还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。
比如我们还要给它个外部时钟。
我们勾选时钟即可,响应的时钟脚就会分配出来。
如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择:软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。
选择时钟设置页面(clockconfiguration)时钟轻松设定,如下图,简单明了,不过多解释了:时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。
就不多举例了,比如网络功能里面设置mac地址等。
3:生产初始化代码经过上面的图形化设定,我们可以直接生产初始化代码。
省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。
点击project下面的生成代码选项。
输入工程名(根据你项目需要起名),这里我就随便输入一个名字。
设定好相关参数。
点击ok即可。
顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。
生成后打开文件夹内容如下:上图的inc和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。
src文件夹文件如下:打开熟悉的ma
2023/8/19 21:31:32 11.41MB stm32 仿真
1
J2000坐标系转换WGS84坐标系代码。
代码使用MATLAB编写。
%计算J2000坐标系转换WGS84坐标系的旋转矩阵。
目前暂未考虑地球极移矩阵输入参数:JD_time:儒略日期输出参数:W:WGS84坐标系与J2000.0坐标系的转换矩阵
2023/8/17 1:47:42 1KB J2000,WGS84
1
iOS旧版应用下载v5.0By:Time丨Brand.zip
2023/8/16 7:03:21 6.91MB ios itunes
1
appid:="************" apikey:="***********88" curtime:=strconv.FormatInt(time.Now().Unix(),10) param:=make(map[string]string) param["engine_type"]="sms16k" param["aue"]="raw" tt,_:=json.Marshal(param) base64_param:=base64.StdEncoding.EncodeToString(tt) w:=md5.New() io.WriteString(w,apikey+curtime+base64_param) checksum:=fmt.Sprintf("%x",w.Sum(nil)) body,_:=ioutil.ReadFile("./ceshi.pcm") base64_audio:=base64.StdEncoding.EncodeToString(body) data:=url.Values{} data.Add("audio",string(base64_audio)) res_body:=data.Encode() client:=&http.Client{} req,_:=http.NewRequest("POST","http://api.xfyun.cn/v1/service/v1/iat",strings.NewReader(res_body)) req.Header.Set("X-Appid",appid) req.Header.Set("Content-Type","application/x-www-form-urlencoded") req.Header.Set("X-Param",base64_param) req.Header.Set("X-CheckSum",checksum) req.Header.Set("X-Curtime",curtime) response,_:=client.Do(req) deferresponse.Body.Close() resp_body,_:=ioutil.ReadAll(response.Body) fmt.Print(string(resp_body))
2023/8/8 21:12:27 1KB 科大讯飞 go语言 语音转写
1
黎明编辑器(LimEditor)是由JAVA语言编写,仿EditorPlus界面,实现了文件的新建、打开、保存、另存为、退出、撤消、重做、设置字体(包括颜色和字号、风格等)、剪切、复制、粘贴、删除、查找(及查找下一个)、替换(替换全部)、转到(GoTo..)、全选(SelectAll)、时间/日期(Time/Date)、自动换行(WordWrap)、字体(包括样式和大小)、状态栏、帮助主题、关于等功能,并集成了web2.0时代一些实用的工具,如HTML和JS互相转换,HTML和XML的相互转换,各种编码的互换,RGB颜色与网页十六进制颜色的互换,MD5加密,一些简单的图片处理;
内置计算器、取色器、所见即所得的网页编辑器、画图工具、数据库浏览器,支持从目录树区拖曳至编辑区或直接双击的方式打开文件,具有提醒,定时任务,视力保护等设置。
2023/8/5 14:56:16 1.91MB java 编辑器 源码
1
一款可以模拟BLE蓝牙的beacon信号的APP。
BeaconSimulatorThisapptransformsyourAndroiddeviceintoavirtualBLEbeaconadvertiserandtransmitter.Youcancreateyourowncollectionofbeaconconfigurationsandusethemanytime,anywhere,toemulateaphysicalbeacon.
2023/8/1 3:34:45 1.47MB beacon simula 广播 BLE
1
共 118 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡