!急问高手C++中,如何完全读入此文本内容,并建立完整的互相联系的class。读完完成多参量复制赋值
!急问高手C++中,如何完全读入此文本内容,并建立完整的互相联系的正确class。读完后再多参量复制赋值
急问高手C++中如何完全读入下列文本文件内容,并完全建立各个class, 和架构记录好各个calss之间的联系, 读完之后再给class中间的多个参量复制值进去。
下面我问的只是一个程序中碰到的初始化问题,希望版主不要锁我的帖子,谢谢。 例子也是为了提问的小例子。
虽然我说的很多,只是程序的一个初始步骤,不知道在c++中怎么样作比较好,所以提问。不是广告。
请不要锁帖。谢谢。
这个文本代表的是 一个物理上面的电路。其中有45个元件互相间连线组成这个电路。
每行的物理意义如下:
比如
U35 = NAND(U68, U67, U66, U65) 等号左右各有一个空格。
等号左边代表的是电路中某个元件 的 输出端的 记号标志 比如U35。 等号右边的“ ( ” 左边的代表这个原件的类型,比如
NAND 类型。 括号中的U68, U67, U66, U65 代表 这个 元件的输入端口有4个分别从 输出端的记号标志为U68, U67, U66, U65
分别连接过来的。“)”代表本元件描述完毕。
请大家注意乍一看好像每个元件只有一个输出端。但是实际上想想看, 由于每个输出端可以连到多个元件输入端。
实际上每个元件的输出端连接到的别的元件的输入端的个数是不固定的。 即下列文本已经给出了每个元件的输入端的个数。
但是每个元件输出端所连接的个数是不固定的。
比如某个 Nand 元件的实际输出端连接数可以是3个,4个或多个,也可能只有一个。
OVERFLW_REG = DFF(U34)
STATO_REG_2_ = DFF(U45)
STATO_REG_1_ = DFF(U36)
STATO_REG_0_ = DFF(U35)
OUTP_REG = DFF(U44)
U34 = AND(STATO_REG_1_, U38, STATO_REG_0_)
U35 = NAND(U68, U67, U66, U65)
U36 = NAND(U57, U55, U56)
U37 = OR(LINE2, LINE1)
U38 = NOT(STATO_REG_2_)
U39 = NOT(STATO_REG_1_)
U40 = NOT(LINE2)
U41 = NOT(LINE1)
U42 = NOT(STATO_REG_0_)
U43 = NAND(STATO_REG_1_, U42)
U44 = NAND(U73, U72)
U45 = NAND(U60, U59)
U46 = NAND(U70, U69)
U47 = NAND(LINE1, LINE2)
U48 = NAND(STATO_REG_2_, U43)
U49 = NOT(U37)
U50 = NAND(U49, U42)
U51 = NOT(U47)
U52 = NOT(U43)
U53 = NAND(U47, U43)
U54 = NAND(STATO_REG_2_, U47)
U55 = NAND(STATO_REG_0_, U39, U47)
U56 = NAND(U52, U54)
U57 = NAND(U62, U61, STATO_REG_2_)
U58 = NOT(U48)
U59 = NAND(U53, U38)
U60 = NAND(U50, U39, STATO_REG_2_)
U61 = NAND(STATO_REG_1_, U49)
U62 = NAND(U37, U42)
U63 = NAND(STATO_REG_0_, U47)
U64 = NAND(U51, U42)
U65 = NAND(U64, U63, U39, U38)
U66 = NAND(U43, U37, STATO_REG_2_)
U67 = NAND(U34, U47)
U68 = NAND(U51, U52)
U69 = NAND(LINE1, U40)
U70 = NAND(LINE2, U41)
U71 = NOT(U46)
U72 = NAND(U58, U71)
U73 = NAND(U46, U48)
每一种类型的元件, 自己本身又有, 电阻, 电容 和 误差参量 3个值要予以赋值初始化。
那么想请问大家,
问题:
在C++中 怎么样从一个文本文件中完整读入上述内容并建立记录起各个互相联系的class, 没有遗漏。 每个元件都是一个单独的class。
即怎样读入, 并为每个元件就是每句话建立一个clas, 并完全建立他们之间的联系。
举个例子:
U35 = NAND(U68, U67, U66, U65)
每个class 要有名字,所以这个class.name 就是U35
其中class的内容要包括 当前元件的输入端 从哪几个元件连接过来 U68, U67, U66, U65,程序算出 输入端的个数, 4个。
这里大家看是不是用数组记录, 比如class.inputname[4]; class.inputno=4. 这些都是程序读取过程中完成。
那么这里的话是用char 来记录个个名字 U68, U67 还是用string或其他的类型呢?
同时与相应的输入class 建立固定的联系。方便以后做各种处理。 当前元件输出端连接到哪些元件, 那么这里是记录对应远见的名字还是地址比较好呢?
然后还要记录,每个元件的输出端连接到哪些元件的输入端, 这里就要在读文件的过程中一个个添加。并记录个数,并不是读了当前句就结束了。 要文件全部读完了才知道 元件的输出端到底连到了哪些输入端。有几个。
这里大家看是不是用数组记录输出端的名字和个数, 比如 class.outputname[]; calss.outputno.
大家看这些个 class.inputname 和class.outputname 数组是用什么类型好呢? 是仅仅记录char 或者string的名字还是 实际上对应数组的指针地址呢?
因为要建立好他们的动态连接方便以后处理问题。
然后每个class 中间还要有 电阻, 电容 ,误差参量等等其他多个参量的位置。 比如说 class.r , class.c, class.f.
文件读取完,互相的联系结构建立好后就要根据各个class的不同类型进行赋值。比如class.typ=NAND; class.typ=NOT.
总而言之就是想问大家,
1,c++中应该怎么样正确的读入这个文件并建立起正确的class 和各个class之间的联系。 请注意每个元件 都可能有多个输入端和多个输出端。 输入端和个数是当前句读完就知道,但是输出端是谁和其个数确是要整个文件读完了之后才能完全知道。
最重要的是我想请问c++中应该用什么命令来正确的读入这个文件的完整内容, 分析然后建立结构。
应该是一个字母一个字母的逐个读入并且逐个分析才对吧。
请给一下这个读文件过程 和 建立完整结构和联系的代码。
2
这个class的成员各个类型使用什么比较好呢?
由于以后也要不停的调用每个class的内容并对他们进行处理, 所以类型要方便处理。
希望能写出各个类型的code。
c++中是不是要先写个 abstract class 呢?
希望能写出个完整的class 看下。
3, 然后就是初始化,文件读完之后,要根据各个class 的不同类型如NAND 和 NOT 进行赋值。
所以这个 class.typ应该用什么类型记录呢?方便根据class 读入的不同类型来进行赋值。 然后由于读取完了之后每个class 都是多参量来进行赋值。即已经有各个类型的多个标准值。要把它们全部复制到 每个元件的类型中来。
那么有什么好的初始化多参量复制语句呢?
希望能详细写出 初始化多参量的赋值复制语句。
4,请问这个每读一行建立一个新的class 的语句应该怎么写呢?new 吗?
又用什么来记录所有的class呢? vector 吗?希望能给出代码。
5,由于有的文件的输出端和输入端也可能全部用数字表示,如果全部是数字表示的话,程序代码要做修改吗?
class的各个成员类型还是一样吗?
比如文本文件的格式也可能如此 23 = OR(13,17,20) 或者是没有等号直接 23 OR(13,17,20) 中间有3个空格
6,上面给的是一个实际的完整的文本文件。大家可以试着跑一下,看是不是可以正确读入。 然后如果说这个文本文件的行数有几百万的话,就是几百万个元件的话,在c++中是不是还是应该这样来读这个文件, 是不是还是这样建立class以及各个class之间的完整联系。 class中各个成员的类型是不是还是这样定呢?
希望能给出扩展性强能适合处理包含几百万个元件的文本的代码。
我最想明白的就是c++中如何一个一个字母的把文件读进来并且分析建立互相联系的class结构。
谢谢大家的帮助。急等高手指教。 非常感谢。