QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: whlvme

编程大赛(试刊号)——计算器出来啦

[复制链接]
发表于 2003-7-9 09:30:32 | 显示全部楼层
[quote:35e17d864c="sjinny"]晕,我看你们都没好好看我的程序~~
我这个程序根本没那么高级~~~
应该这样操作:
求1+2-3=?
<运行>
1<回车>
+<回车>
2<回车>
-<回车>
3<回车>
=<回车>  //如果这里输入的是小写字母e的话,就会打印结果并退出
目前还有个bug,在进行过一次计算后,得再输入一个数,再输入e才能退出~
抛砖引玉嘛~~~~~~~~~ [/quote]
这些都只是界面问题啦 关键是健壮
回复

使用道具 举报

 楼主| 发表于 2003-7-9 12:34:00 | 显示全部楼层
周末我也來寫一個計算器,實現簡單算術計算器的完整功能。
回复

使用道具 举报

发表于 2003-7-9 15:05:34 | 显示全部楼层
晕,你们的要求太高了,我这只是临时写出来教网友编程的例子,怎么能体现我的水平呢?~~~     

要说类的运用,看看这个项目,是我的程序,在Red hat 8.0下用Kdevelop开发,使用了OpenGL和glut,语言是C++,不过只有里面的my3Dgui是实际开发了的项目,其他垃圾不要管
http://gro.clinux.org/projects/myworld/
回复

使用道具 举报

发表于 2003-7-9 23:17:42 | 显示全部楼层
看来我也要来参加了
呵呵
whlvme
公社论坛秘书长
做的好能不能任命我做版主哦(呵呵,要不想混到5颗星我要灌多少水阿,而且我本性不喜欢灌水的,别砸我阿
对于表达式,可以先把中序表达式转换成后序或者前序再计算,就比较容易了,
不过我想看看
whlvme
公社论坛秘书长
大mm怎么实现的?
回复

使用道具 举报

 楼主| 发表于 2003-7-10 00:20:29 | 显示全部楼层
当然可以。先看你的表现啦。谁能激活编程版的气氛,为Magic Linux研发培养人才,为成立应用软件研发部聚集人才,我就重用谁了。
回复

使用道具 举报

发表于 2003-7-10 01:09:27 | 显示全部楼层
大家看这样好不好,也不要搞什么大赛了,我是很想学习编程的。可惜就没有进入科班学习的机会,所以很难学的系统。我出个主意,我们搞个培训班,好不好,秘书长负责出题目。

同意的举手哦。:)
回复

使用道具 举报

发表于 2003-7-10 09:36:38 | 显示全部楼层
whlvme, 你应该当老师,哄小孩子有一套啊
我还是回头写我的编辑器,原来的界面刷新问题太多了,看来只好推翻重新来了。附带说一下curses怎么有这种怪毛病:
比如函数a调用了b
a(){
  b(xxx);
}
只有wrefresh放在函数b里面才会刷新指定的窗口
但如果这样做
a(){
  b(xxx);
  wrefresh(xxx)
}
这个窗口的刷新区域就不会包括和别的窗口覆盖的部分??
简直玩死我了
回复

使用道具 举报

发表于 2003-7-10 14:36:01 | 显示全部楼层
我说先把计算器的问题搞定OK?因为这是个可以简单也可以复杂的问题,简单了就像我那样的程序,复杂了可以用到栈之类的数据结构~
这样有弹性的问题很适合用来讨论,因为进入的门槛比较低~
回复

使用道具 举报

发表于 2003-7-10 15:12:35 | 显示全部楼层
实现256位的2个数相加?各位试试!
回复

使用道具 举报

发表于 2003-7-10 16:36:41 | 显示全部楼层
用long int类型可以吗?
回复

使用道具 举报

发表于 2003-7-10 16:39:43 | 显示全部楼层
[quote:8909082451="sjinny"]用long int类型可以吗? [/quote]
不是计算机中的位,是日常生活中的位.
如,100000,这是6位.
回复

使用道具 举报

发表于 2003-7-10 18:02:57 | 显示全部楼层
实现256位的2个数相加?各位试试

早就做过这样的模板类了 记得还是课堂作业...
回复

使用道具 举报

 楼主| 发表于 2003-7-10 18:52:41 | 显示全部楼层
關於做一個複雜的計算器的思路,我有兩個想法:
1、運用二叉樹處理運算優先級問題。用scanf輸入一個算術表達式,然後把所有的操作數放到二叉樹中(優先級越高,所在節點越深),從樹葉開始計算,直到根節點。
2、先將算術表達式編譯為偉代碼,然後執行偉代碼進行計算,中間數據則存放到棧中。類似Java虛擬機。

第一種架構可以解決複雜的決策和工程應用問題,第二種方案則偉編譯器開發、虛擬機開發、程序語言開發打基礎。
回复

使用道具 举报

 楼主| 发表于 2003-7-10 19:07:55 | 显示全部楼层
[quote:a9f92b3600="wsm"]whlvme, 你应该当老师,哄小孩子有一套啊
[/quote]
真的嗎?幫我推薦一個啊。
回复

使用道具 举报

发表于 2003-7-11 01:00:14 | 显示全部楼层
[quote:23bca7eab7="whlvme"]關於做一個複雜的計算器的思路,我有兩個想法:
1、運用二叉樹處理運算優先級問題。用scanf輸入一個算術表達式,然後把所有的操作數放到二叉樹中(優先級越高,所在節點越深),從樹葉開始計算,直到根節點。
2、先將算術表達式編譯為偉代碼,然後執行偉代碼進行計算,中間數據則存放到棧中。類似Java虛擬機。

第一種架構可以解決複雜的決策和工程應用問題,第二種方案則偉編譯器開發、虛擬機開發、程序語言開發打基礎。[/quote]
我觉得第一种的复杂度有点高
因为要构造一颗树,构造树应该类似构造huffman树吧
一遍或两遍scan应该是不能完成的吧,应该会用到递归的

我在努力实现你说的第二种方法。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 06:10 , Processed in 0.092939 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表