| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1220 人关注过本帖
标题:[求助]有个程序问问各位
只看楼主 加入收藏
蓝色情调
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-2-22
收藏
得分:0 
本题要求使用链表
就说数据存储懂
怎么样把数据存放
以备查询、删除等操作

此题是软件设计题
不知纯粹的程序设计和软件设计有什么不同
怎样设置界面?????

2006-02-23 12:22
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
界面问题,要看要求这个软件用什么工具编译了。
DOS下的,界面就无非是用户输入命令,执行相应的操作。
VC下的,自己安排啦,很多书上都有类似的界面可以参考。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-23 13:07
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用IT_BoBo在2006-2-23 11:21:00的发言:

面向对象是现在开发软件的核心 跟你老K学的面向程序的C 还是处在不同层的

你想的通 想必也不用问Kai了

的确,我对OOP很没有概念。我的意思是SQL或者其它的,可以看成一个Class


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-02-23 15:25
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
刚起床。。。

你们没有明白我为什么不认同SQL,这个话题暂且不谈,以后再说,要说起来就要说到自由这么一个概念。

来说这道题:
第一,没有必要像7楼所说的搞两个数据类型,relation database(以下简称RDB)之所以这样做,是为了避免数据重复存储的现象。而对于这道题没有这个问题,如果你搞两个数据类型,像7楼里说的(名字,地址) (地址,电话号码),倒是增加了内存的开销,因为地址这个信息被你重复存储了,所以7楼IT_BoBo的建议我不赞同。
第二,我所想到的数据结构和list 有关,又和Vector有关。也就是说,你现在想象一下,你现在有一个很大的容器,容器里放着两个容器,一个容器的类型为list, 其存放每个Element 的地址,另外一个容器的类型为Vector, 其存放Element. 为什么这样做呢?是为了高效的排序。我们来看如果你的数据类型为Vector,当你排序的时候,你怎么做?不管你采用何种排序法,都会出现Element移动的现象,而这个移动就有时间开销,数据为多,数据类型越复杂,移动的时间开销就越大。显然Vector 这个数据类型不行,那么list 呢?list 倒是有一个很大的优点,list 的那个很大的优点就是删除和插入,因为删除和插入对list 来讲就是节点断开和重新连接的问题,你看到了,那个移动现象没有了,那么排序的时候会怎么样呢?排序的时候会有一个copy 的动作,就是说,把某一个节点的内容copy 到一个临时变量,然后删除当前节点,然后将这个临时变量插入到其合适的位置。这个copy 的动作是很不舒服的,尤其对于复杂的数据类型,这个copy 动作将是一个很大的时间开销。那么现在的问题是,有没有可能避免这个copy 动作,回答是没有可能,那么有没有优化的可能?回答是有,那么如何来优化呢? 这就是我这个数据结构做的事情。在Vector里面放的是你的Element,这些Element放进去以后,他们的次序就永远固定了,但是那个list 里面放着每个Element的地址,而地址是一个Integer,现在如果你要对Elemente 排序,当然你排序的还是Vector里面存放的Element,但是他们的次序的变动是那个List里面的地址数据在更改次序,由于采用了List,并且List上面的数据为Integer,那么这个copy的动作就优化到了最极致了,这就是我的想法。我这样的叙述,不知大家能理解否?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-23 16:57
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
我理解啦。老师上课讲的一个例子,和kai讲的差不多。
老师讲的是扑克牌的例子。把生成的扑克牌对象放进数组里,洗牌的时候,洗的是扑克牌对象的下标。发牌也是发的扑克牌的下标。

不过我想问一下,我放指针可不可以呢?

[此贴子已经被作者于2006-2-23 17:11:28编辑过]


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-23 17:02
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
然也,然也。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-23 17:14
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
柳儿,

回答你15楼的问题,放指针当然可以啦,指针是什么?不就是地址数据嘛,就其本质来讲,指针只不过是unsigned integer. 所以放指针当然可以啦,Java 放弃指针从这一点来讲,是一个很大的失策,我在14楼所说的算法用Java 是写不出来的,因为Java没有指针,Java 只有引用,而所谓引用就是对象本身,那就毫无意义了,所以Java将指针砍去,使程序员失去了一个自由度。从这个意义来讲,C/C++ 才是编程语言中最高者。



自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-24 03:29
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
knocker,

看来我该跟你讲讲语言自由度这样一个概念了。什么叫语言的自由度?这个概念对于语言的设计者来讲是很重要的,如果没有这个概念,你还是可以设计语言的,但是我敢保证那样的语言必然没有生命力。那么什么是自由呢?顾名思义,自由意味着你有了表达思想的很大自由性,这句话听起来好像跟没说一样,那我从另一角度来讲,所谓自由性,意味着没有束缚性,换句话讲,自由性是相对于束缚性来讲的,如果一门语言对你表达思想的束缚性越小,那么它的自由性就越高。就好像你手里捏了块泥,你可以随心所欲的捏出各种造型。

从武学的角度来讲,所谓自由性,就是说,招式是无形的,重要的在于需要,而不是刻意地去套套路,到了这个境界,已经没有什么拳的种类的意义了,如果你还是局限于某种拳,那么就差远喽。

C/C++ 真是一门自由的语言,这里所说的自由是说这门语言给了你一个表达思想的自由性,它不局限你的表达方式,也就是说,你不必以某种固定的方式来阐述你的算法。而我们来看SQL,当你有了一个算法后,你必须去找一个SQL的表达形式,这就是SQL对你有了一个束缚性,一个热爱自由的人是不能容忍这样的束缚的,他必须站出来说 "不". 这就好比,当这个世界有不公正的时候,一个有正义感的人必须站出来反对它。

人类文明的进步真是在这样自我批评的过程中向前迈步,如果没有人站出来对恶势力说"不",那么人类就将生活在一个邪恶的世界中。同样,如果没有人站出来对一个错误的进程说不,那么错误的进程将一直维持下去。

我感觉到,SQL有重大的缺陷,是一种不自由的语言,必须有其他语言取代它。

对自由的追求,换来的是多样性,或者说复杂性,但是我们不能因为复杂性的存在而放弃对自由的追求或者说刻意去束缚自由。



自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-24 04:07
IT_BoBo
Rank: 1
等 级:新手上路
帖 子:623
专家分:0
注 册:2005-11-1
收藏
得分:0 
以下是引用kai在2006-2-24 4:07:00的发言:
knocker,

看来我该跟你讲讲语言自由度这样一个概念了。什么叫语言的自由度?这个概念对于语言的设计者来讲是很重要的,如果没有这个概念,你还是可以设计语言的,但是我敢保证那样的语言必然没有生命力。那么什么是自由呢?顾名思义,自由意味着你有了表达思想的很大自由性,这句话听起来好像跟没说一样,那我从另一角度来讲,所谓自由性,意味着没有束缚性,换句话讲,自由性是相对于束缚性来讲的,如果一门语言对你表达思想的束缚性越小,那么它的自由性就越高。就好像你手里捏了块泥,你可以随心所欲的捏出各种造型。

从武学的角度来讲,所谓自由性,就是说,招式是无形的,重要的在于需要,而不是刻意地去套套路,到了这个境界,已经没有什么拳的种类的意义了,如果你还是局限于某种拳,那么就差远喽。

C/C++ 真是一门自由的语言,这里所说的自由是说这门语言给了你一个表达思想的自由性,它不局限你的表达方式,也就是说,你不必以某种固定的方式来阐述你的算法。而我们来看SQL,当你有了一个算法后,你必须去找一个SQL的表达形式,这就是SQL对你有了一个束缚性,一个热爱自由的人是不能容忍这样的束缚的,他必须站出来说 "不". 这就好比,当这个世界有不公正的时候,一个有正义感的人必须站出来反对它。

人类文明的进步真是在这样自我批评的过程中向前迈步,如果没有人站出来对恶势力说"不",那么人类就将生活在一个邪恶的世界中。同样,如果没有人站出来对一个错误的进程说不,那么错误的进程将一直维持下去。

我感觉到,SQL有重大的缺陷,是一种不自由的语言,必须有其他语言取代它。

对自由的追求,换来的是多样性,或者说复杂性,但是我们不能因为复杂性的存在而放弃对自由的追求或者说刻意去束缚自由。


Kai 你现在那个国家 好崇拜你 什么时候让咱菜鸟见见其庐山真面目

你对自由的追求度应该是在国外养成的吧

因为感觉国内程序员对自由度的追求都过于理论化 有点类似于形式 甚至可说是束缚 并不是真正的自由

PS:你不用对老K说教 就他那性子 就算他听的进也要跟你对着出 感觉还真是未成年

如果以后有机会 会向你讨教一下开发方面的问题 现在也转行做程序了


……吹、吹、吹个大气球,吹大了气球玩球球……
2006-02-24 10:22
快速回复:[求助]有个程序问问各位
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020911 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved