建立C++语言关键字的哈希表,统计在每个源程序中C++关键字出现的频度?

问题描述:针对某个单位电话号码簿,设计一个哈希表,并完成相应的建表和查表程序。 基本要求:设每个记录有下列数据项:电话号码、用户名、住址。从键盘输入各记录,以用户名为关键字建立哈希表,哈希函数用除留取余数法构造,采用线性探测法解决冲突。可以插入、查找、删除并显示给定用户名的记录,并计算查找长度, 哈希表保存到文件中,并能从文件中读取数据。 测试数据:取某个单位电话号码簿中的30个记录。 提高要求: (1)将电话号码薄以文件形式保存到盘上,能够按用户名和电话号码两种形式建立哈希表并实现插入、查找、删除表中元素的功能。 (2)对于相同的哈希函数,采用两种或两种以上的处理冲突的方法,如线性探测法和拉链法,比较不同的处理冲突的方法平均查找长度的变化。测试时,采用同一组测试数据,分别用不同的方法处理冲突,记录并输出各自的平均查找长度。 (3)设计图形用户界面

先说一个观察到的现象:一个应届毕业生不论其上学时学过什么语言,只要肯努力,一般在项目里做一个月后,基本可以具有自己写点小东西的能力了。当然这时候写的东西谈不上好,不过基本算得上入门,可以做到基本语法没问题,不会被IDE的使用卡住。

从个人学习编程语言的经验来看,学习过程中最大的问题是:没有实际项目经验的新手过渡在意对编程语言的语法学习,不停的啃书本,肯德头晕眼花。一个类的成员函数就有无数的门道:重载、覆盖、虚函数、纯虚函数等等。看完觉得可神奇了了,然后不断咒骂怎么搞得这么复杂,吃饱了撑的。

程序语言是用来解决实际问题的,是一种思维表达。语法只是附属品,只是计算机这个电子设备的使用方法。不论看了多少遍使用方法,最后还是要落到使用计算机这个环节。不看一下别人怎么用,自己再实践一下,使用方法永远是纸面上的几个字,永远不知道为啥有这么多的功能,比如那些重载、覆盖、虚函数、纯虚函数显然不是没事儿找事儿硬发明的,每一样都是要解决一个实际问题,当你了解他们为了什么而存在的时候,自然你会觉得“呦,还不错哦”。

举个不太恰当的例子,写代码和写作文一样。当没写过作文前,觉得写作文很难,不知道如何开始。当用大白话写完第一篇作文的时候,觉得写作文也还行,也还能写。写第一篇作文的时候一定很在意语法,当用大白话偶尔夹杂“一望无际”、“万里无云“这种美妙词汇写几篇记叙文后,会觉得写作文也就是那么一会儿事儿。虽然读过几篇大师作品以后再看自己写的还是觉得挺恶心的,不过好歹可以写作文了,至少写个日记门没问题。也许再经过不断修炼,自己也能成为辞藻华美的大师。

题主现在遇到的问题是怎么能开始写大白话的程序。

我的建议是,学习编程要从“抄”和“改”开始。你可以没吃过猪肉,但你得先见过猪跑。你可以没写过作文,但你要想写作文得先读过文章,然后摘抄人家的文章,把“小红”改成“小明”,把“买冰棍儿”改成“买糖球”等。改几篇之后自然就有感觉了,觉得自己也可以把“小红买冰棍”的故事,改成“小明买糖球并帮妈妈买了酱油”,再改成“小明骑自行车买糖球并帮妈妈买了酱油”,再改成“小明骑自行车买糖球并帮妈妈买了酱油,路上碰到了小红”,再改成“小明骑自行车买糖球并帮妈妈买了酱油,路上碰到了小红,对小红说晚上一起写作业吧”。

从Copy和Paste开始不是什么罪过。

第一步:放下书本,找一个设计优秀的C++代码库或者应用程序。可以是一个小型的引擎(例如Ogre的超早期版本、一个网络库),或者是你感兴趣的其它领域的优秀代码(例如一个简易的IM程序)。一定是大家认可的,设计优秀的代码。

第二步:自己拿这个库仿照已有代码写一些真的有趣的应用程序。这些好的代码库一般都有简单Tutorials,按着Tutorials一步一步的跟着写,学会调试,然后不断扩展。比如如果是Ogre你就写一个超小型游戏,如果是网络库你就写一个小型IM。

第三步:在你写的足够多以后就去看看代码库本身的代码和设计,遇到不会的就翻书就问别人。

第四步:拿起书本,找那基本大家公认的“解决实际问题”的C++书来看,比如Effective C++那些,但不要看C++ Primer这种大部头,这种是“工具书”,有问题去查,没问题就放那放着。这时候你经过第一步已经对C++语法基本熟悉了,并且经过第二步你会碰到一些实际问题,所以看一些解决实际问题的东西会很有效率,认识也会很深。

第五步:按着上面看书看到的知识,去修改第二步自己写的东西。

第六步:如果还有时间就按着你的想法去修改一开始你看到的那个库,把它改成属于你的库。这一步很可能是失败的,也是有始无终的,但拆过优秀的东西才能真正明白别人写的为啥优秀。这个过程学习的不止于C++还有设计和专业知识。

一般实习生进公司不用2个月C++至少写点小程序没问题,原因就是他终于开始写了,而不是继续看书!

不推荐一开始就看书特别是大部头的书,因为对基本的东西都没什么认识,人家说的能解决什么问题也不知道,看了也是白看。

这里强调的是要开始写代码,并不是说一点基础知识都没有就开始写。我觉得大学课本能看懂就可以开始写代码了。

我要回帖

更多关于 java语言规定的关键字 的文章

 

随机推荐