是否有任何用于绘制Petri网并从中生成任何源代码的软件?源代码可以是任何已知的编程语言......
稍微不太理想的选择是输出一个文件,其中只有基于文本的文件中的Petri网图形的描述,采用某种开放格式,如XML或任何其他数据语言.然后我可以自己编写代码生成器,但至少我想避免gui/graph开发部分;))
谢谢
假设我们有一个要写的文本,可以转换为"大写或小写",并可以"左,中,右"打印.
writeInUpperCaseAndCentered(char *str){//..}
writeInLowerCaseAndCentered(char *str){//..}
writeInUpperCaseAndLeft(char *str){//..}
and so on...
Run Code Online (Sandbox Code Playgroud)
VS
write( char *str , int toUpper, int centered ){//..}
Run Code Online (Sandbox Code Playgroud)
VS
writeComplex (char *str)
{
// analize str and perhaps some global variables and
// (under who knows what rules) put it center/left/right and upper/lowercase
}
Run Code Online (Sandbox Code Playgroud)
也许还有其他选择..(并欢迎)
问题是:
对于这种(经常性)三难问题,是否有任何良好实践或经验/学术建议?
我通常做的是结合"特定情况"实现,内部(我的意思是不在标题中)一般常见的多参数函数,只实现用例,隐藏丑陋的代码,但我不知道是否有一种我不知道的更好的方式.这种事情让我意识到为什么发明OOP.
这是一个描述问题的最小例子:
假设从SQLiteDB读取表并将其存储在Java Collection对象中
idRecord | Data (table stored at DB)
1 One
2 Two
3 Three
4 Four
Run Code Online (Sandbox Code Playgroud)
并通过一个sqlite jdbc库:
Map objTable = new HashMap(); //...添加一些jdbc的东西,我们在objTable中获得了DBTable的副本
然后,如果对象被修改,那么就是.
idRecord | Data (modified table stored at objTable)
2 Two
4 FourModified
5 Five
Run Code Online (Sandbox Code Playgroud)
(id 1和3被删除,2个保持不变,4个被修改,5个被添加)
如何使用DB更新/合并对象表?
为什么我要合并而不是简单地将对象保存到表中?
我认为,如果表足够大,那么如果只修改了其中一些记录,那么编写所有记录就没有任何意义.
删除整个DBtable并在(危险的同时)循环中,遍历对象以写入新表.
在第二个java obj中读取DBtable,然后比较两者(使用某种合并alghoritm)并将操作(ADD,DELETE,MODIFY)直接应用于DB.(我会接受推荐的那种比较算法)
编辑:首先 不要创建集合,直接从DB读取和写入,始终通过JDBC传递查询
其他更好的方法
Thanks4Reading
尝试过这个
int 主函数(无效){
整数a[10];a[20]=5;
}
gcc -Wall -O2 main.c
它没有给我任何警告...
这是Windows(mingw)中的gcc,我无法检测到这种边界限制错误
如何告诉编译器检查它?mingw可以做到吗?
谢谢
int类型的变量据称是"一个机器类型的字长",但在嵌入式系统中,8位微处理器的C编译器使用16位的int!(对于无符号字符为8位)然后对于更多位,int表现正常:在16位微型int中也是16位,在32位微型int中是32位等.
那么,有没有一种标准的方法来测试它,比如BITSIZEOF(int)?
比如"sizeof"就是字节而是比特.
这是我的第一个想法
register c=1;
int bitwidth=0;
do
{
bitwidth++;
}while(c<<=1);
printf("Register bit width is : %d",bitwidth);
Run Code Online (Sandbox Code Playgroud)
但是它需要c作为int,并且在8位编译器中通常使用int作为16位,因此它给出了16作为结果,似乎没有使用"int"作为"寄存器宽度"的标准,(或者它不是尊敬的)
为什么我要检测它?假设我需要许多需要少于256个值的变量,因此它们可以是8,16,32位,但是使用正确的大小(与内存和寄存器相同)将加速并节省内存,如果这不是在代码中决定,我必须为每个架构重新编写函数
编辑 阅读完答案后,我找到了这篇好文章
http://embeddedgurus.com/stack-overflow/category/efficient-cc/page/4/
我将引用结论(加粗)
因此,底线是这样的.如果您想开始编写高效,可移植的嵌入式代码,您应该采取的第一步是开始使用C99数据类型"最少"和"快速".如果你的编译器不符合C99,那就 一直抱怨 - 或者改变供应商.如果您进行此更改,我认为您会对代码大小和速度的改进感到惊喜.
以下是我的MySQL表.我想从我的表中选择一个特定范围的值hello.
name age job gender
A 33 dgfd m
b 44 gdfg f
c 21 jhkh m
e 23 etertr m
Run Code Online (Sandbox Code Playgroud)
我如何选择年龄在20-30岁之间的男性.
SELECT hello.*
WHERE hello.age='20-30' AND hello.gender='m';
Run Code Online (Sandbox Code Playgroud) 此代码可以检查是否已弃用类
@Deprecated
public classRetentionPolicyExample{
public static void main(String[] args){
boolean isDeprecated=false;
if(RetentionPolicyExample.class.getAnnotations().length>0){
isDeprecated= RetentionPolicyExample.class
.getAnnotations()[0].toString()
.contains("Deprecated");
}
System.out.println("is deprecated:"+ isDeprecated);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如何检查是否有任何变量注释为已弃用?
@Deprecated
Stringvariable;
我比较了gcc汇编程序的输出
do{
//some code
}while(0);
Run Code Online (Sandbox Code Playgroud)
同
do{
//some code
break;
}while(1);
Run Code Online (Sandbox Code Playgroud)
输出是相等的,有或没有优化,但..
一直都是这样吗?
没有实验可以证明理论,它们只能证明它们是错误的
我在一些帮助文件和src文档中看到了很多这些图表
他们叫什么?还有其他(用于相同目的)已知图表吗?

有这个有品位的课程
public abstract class CakeSkill
{
//..
boolean cherry=false;
private void finalMandatoryTouch()
{
cherry=true;
}
abstract public void cook();
}
Run Code Online (Sandbox Code Playgroud)
扩展它的类就像是
class Cheff extends CakeSkill
{
//..
void cook()
{
//..Secret recipe
}
}
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用,
finalMandaroryTouch()没有被调用,那么没有蛋糕会以樱桃结束.
[编辑]
这可能是一个解决方案
class MemoriousCheff extends CakeSkill
{
//..
void cook()
{
//..Secret recipe
finalMandatoryTouch();
}
}
Run Code Online (Sandbox Code Playgroud)
但要求:
[/编辑]
这会很棒!(但没有Java)如果可以这样做的话
abstract public void cook()
{
@implementedMethod
finalMandatoryTouch();
}
Run Code Online (Sandbox Code Playgroud)
如何实现这个有用的功能?
非常感谢你
c ×4
java ×3
annotations ×1
arguments ×1
automation ×1
boundary ×1
break ×1
c++ ×1
collections ×1
deprecated ×1
diagram ×1
diagramming ×1
do-while ×1
embedded ×1
function ×1
jdbc ×1
mingw ×1
mysql ×1
optimization ×1
orm ×1
petri-net ×1
reflection ×1
select ×1
sql ×1
sqlite ×1
while-loop ×1