小编sto*_*oud的帖子

软件更新的设计模式

有人知道软件更新的任何设计模式吗?具体来说,我想要一个将旧文件/设置转换为最新版本的模式.

我能想到的最好的解决方案是有一套关于如何从每个版本转换到下一个版本的规则(例如v1.0到v1.1,v1.1到v1.2,......).然后,要将文件/设置转换为最新版本,您将按顺序运行所有转换规则.

这并不是一种非常优雅的做事方式 - 有更好的方法吗?

(对于上下文,我正处于Win8 Metro应用程序的早期规划/设计阶段)

提前致谢

design-patterns auto-update updates

10
推荐指数
1
解决办法
3121
查看次数

如何用gnuplot创建一个3d极坐标图

我正在调查麦克风的频率响应.

为了帮助分析它们,我编写了一个程序,它将输出:到达角度,频率(Hz)和给定角度和频率(dB)的响应.

我写了一个gnuplot脚本,将所有这些数据绘制成一个三维图形: gnuplot图

gnuplot的代码是:

set xlabel "Arrival Angle (degrees)" font "arial,8"
set ylabel "Frequency (Hz)" font "arial,8"
set zlabel "Gain (dB)" font "arial,8"

set grid lc rgbcolor "#BBBBBB"

set xrange[-180:180]
set yrange[0:20000]
set zrange[-60:0]

unset key
set view 30,56,0.98

splot 'freq.dat' u 1:2:3 with pm3d
Run Code Online (Sandbox Code Playgroud)

我知道这有点不寻常,但我想做的是,在一个三维极坐标图上代表这一点,但我无法弄清楚如何去做.下面的(糟糕)绘图显示了我一直试图实现的那种东西: 最终的目标

任何人都能指出我正确的方向吗?

提前致谢.戴夫.


2013年4月26日更新

我一直在玩,并创建了一个更新的脚本:

reset
set title "3D version using cylindrical coordinate system"
set ticslevel 0.0
set view 30,56,0.98
set angles degrees
set mapping cylindrical
set parametric
set zrange[-60:0]
unset key
splot 'freqResp.dat' u …
Run Code Online (Sandbox Code Playgroud)

3d graph gnuplot polar-coordinates

8
推荐指数
0
解决办法
9567
查看次数

Makefile包含源文件的不同编译器标志

如何在Makefile中为不同的源文件使用不同的编译器标志?例如,我想要一个Makefile来生成:

g++ -c -COMPILER_FLAGS_1   -g source1.cpp -o source1.o

g++ -c -COMPILER_FLAGS_2   -g source2.cpp -o source2.o
g++ -c -COMPILER_FLAGS_2   -g source3.cpp -o source3.o
g++ -c -COMPILER_FLAGS_2   -g source4.cpp -o source4.o

g++ -c -COMPILER_FLAGS_3   -g source5.cpp -o source5.o
g++ -c -COMPILER_FLAGS_3   -g source6.cpp -o source6.o
g++ -c -COMPILER_FLAGS_3   -g source7.cpp -o source7.o

g++ -g -o output source1.o source2.o source3.o source4.o source5.o source6.o source7.o 
Run Code Online (Sandbox Code Playgroud)

目前我有大约20个源文件(并且预计会增长),因此易于维护的文件会很好.

提前致谢.

c++ gcc makefile g++

4
推荐指数
1
解决办法
6640
查看次数

Ada受保护的类型

我在Ada中有一个包含程序和功能的简单包.我想把所有的功能和程序都放在受保护的类型中.

例如,对于一个简单的.adb文件

package body Pack is

  procedure procedure1 (B : in out Integer) is
  begin
    B := new Integer;
  end procedure1;

  procedure procedure2 (B: in out Integer) is
  begin
    B.Cont(B.First-1) := 1;
  end procedure2;

  function procedure3 (B : Integer) return Boolean is
  begin
    return B.First = B.Last;
  end procedure3;

end pack;
Run Code Online (Sandbox Code Playgroud)

或者简单的.ads

package body Pack is

   procedure procedure1 (B : in out Integer);

   procedure procedure2 (B: in out Integer);

   function procedure3 (B : Integer) return Boolean;

end pack;
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?

procedure function ada

1
推荐指数
1
解决办法
2303
查看次数