北京一家公司的题,谁看完谁哭~求高手~超级撒分
This test is designed to test your skills, and style in the Java programming language. The test
should be done in Java 5. There are only two requirements for you solution to this test: 1. it must
work as described 2. we must be able to compile it. Since this test is designed to test you skills and
knowledge in the Java programming language, make sure that you apply good coding pratices and
object oriented design to your solution. The solution must be sent to npiguet@cognosense.com. The
result file must contain the source code of your solution, as well as a readme file explaining how to
run it. Include the detailed steps required to compile your solution in the readme file (this includes
the javac command, the libraries to import etc...).
Good Luck!
Problem : Calculator application
Write a command line application that takes a mathematical expression as input and prints
the result to the console.
The mathematical expression should be read from a file. The expression can use integer
numbers only (but the result can be a floating number), and the only supported operators are +, -, *,
/. The expression can use parentesis "(" and ")" to group operations. The * and / operators have the
priority on the + and – operators.
Sample input file:
2 + 3 * (4+5) – 4/5
Sample console output:
2 + 3 * (4+5) – 4/5 = 28.2
Typical application usage:
java -jar calc.jar input.txt
The exact EBNF grammar for the acceptable input expressions is the following
Expression EBNF grammar:
expression = term (operator expression)?
term = number | '(' expression ')'
number = (('-')? non_zero_number (non_zero_number | '0')*) | '0'
non_zero_number = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
operator = '*' | '/' | '+' | '-'
Feel free to transform this grammar to an equivalent one if you feel the need to. If you do,
please include the modified grammar in your classes' documentation.
问题点数:100、回复次数:38Top
1 楼zuguanqun(小群)回复于 2006-11-21 14:21:57 得分 0
jf
见英语就头疼Top
2 楼jackxing(Jack)回复于 2006-11-21 14:25:30 得分 0
faint~Top
3 楼bitan()回复于 2006-11-21 14:25:38 得分 0
把算术表达式改成逆波兰式再进行计算就行了。
Top
4 楼zeyuphoenix()回复于 2006-11-21 14:25:59 得分 0
看到英文就死了!!!1Top
5 楼liufei8463(武汉小兵)回复于 2006-11-21 14:42:26 得分 0
就是喊你按他要求用EBNF语法 写个计算器撒Top
6 楼sg552(:))回复于 2006-11-21 14:43:58 得分 0
大概翻译了一下,本人译的不好,请楼下的朋友纠正:
本测试是为了测试您的编程技巧和风格,本测试应该在JAVA5下完成,您只须解决两个问题:
1。它必须能按要求运行
2。我们必须能编译它
因为本测试是为了测试您在JAVA语言领域的技巧和知识,请务必在答案中使用好的代码practices(不知道这个词如何意译,实践?请楼下补充)和面向对象设计。请将答案发送到 npiguet@cognosense.com ,请附上您的程序源代码,以及一个readme文件,里面说明如何使用您的程序和编译程序的详细步骤(包括JAVAC命令,编译需要导入的包等等)。
祝好运!
题目: 计算应用。
输入一条数学表达式的命令,程序可以输出结果。该表达式可以从一个文件中读取,并且只能使用整数(但是结果可以使用浮点数),并且只支持下面几个运算符:+ - * / 可以使用小括号"(",")"来确定优先关系,*, /运算优先于+ ,- 运算。
输入示例:
2 + 3 * (4+5) – 4/5
输出的结果示例:
2 + 3 * (4+5) – 4/5 = 28.2
典型的用法:
java -jar calc.jar input.txt
输入文件中表达式的精确的EBNF文法是:(译注:扩展的巴科斯-诺尔范式 Extended Backus-Naur Form,EBNF )
expression = term (operator expression)?
term = number | '(' expression ')'
number = (('-')? non_zero_number (non_zero_number | '0')*) | '0'
non_zero_number = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
operator = '*' | '/' | '+' | '-'
需要的话您完全可以把上面的语法转换成等价的表达式,如果您做了转换,那么请在您的程序中附加转换后的语法。
Top
7 楼sxnucseven(*)回复于 2006-11-21 14:44:42 得分 0
控制台程序,计算器吗?
输入规则还给了个正则表达式?
我英语不好,Jf。Top
8 楼sxnucseven(*)回复于 2006-11-21 14:46:34 得分 0
译注:扩展的巴科斯-诺尔范式 Extended Backus-Naur Form,EBNF
---------------------------------------------
不理解这个,还以为是个正则表达式呢。Top
9 楼sg552(:))回复于 2006-11-21 14:47:24 得分 0
按照我的理解,只要能根据一个输入的字符串,按照合适的方法解析,然后输出运算结果就可以了。建议楼主使用 StringTokenizer。很容易了。
上面E文原文中,废话多,而且还有若干语法错误。貌似里面的人对JAVA的理解也只是停留在C/S的时代。
什么公司啊,没事不建议楼主去了。考这么无聊的题Top
10 楼malligator(十步之内没有我的爱人)回复于 2006-11-21 14:48:10 得分 0
1、100分不够多呀!不能叫超级的:)
2、英文也不是很难呀。我这四级水平都能看懂了。
3、编程也不会让一个懂些编译原理的人晕的。只不过如果没有弄过的话会有些费事罢!码就没有了,楼主要工作就自己动手吧Top
11 楼sg552(:))回复于 2006-11-21 14:49:28 得分 0
大家也不用考虑那个EBNF了。
都是废话来的。出考题的人为了卖弄自己的知识罢了。
楼主按照小学的数学知识来弄就可以了。Top
12 楼malligator(十步之内没有我的爱人)回复于 2006-11-21 14:51:39 得分 0
sg552(:)“什么公司啊”
不是有邮箱么?:)Top
13 楼sxnucseven(*)回复于 2006-11-21 14:53:36 得分 0
数据结构上有原题,是讲 栈 的时候用的例子Top
14 楼sg552(:))回复于 2006-11-21 14:55:20 得分 0
哦,看了他的主页了。 不过没看懂! -_-Top
15 楼iwlk(http://www.ChinaFedora.cn/ fedora论坛)回复于 2006-11-21 15:14:29 得分 0
看到英文就死了!!!1
Top
16 楼zhuixun5506(>> narsil)回复于 2006-11-21 15:37:39 得分 0
我看着也觉得不太难,西电出的那本java基础教程上有个很类似的例题,不过要求中要用到编译原理中的好多知识,哎,忘记的差不多了,
祝楼主好运!Top
17 楼ilovemilk(zhu)回复于 2006-11-21 15:37:42 得分 0
接分了,Top
18 楼hdhmail2000(禅剑飞雪)回复于 2006-11-21 15:46:04 得分 0
应该不是了。不过确实有点bt,需要去读取txt文件的,对于多数借助工具的,到这里就over了。
大家注意看这个:
java -jar calc.jar input.txt
Top
19 楼hdhmail2000(禅剑飞雪)回复于 2006-11-21 15:46:51 得分 0
以后要多多加强手写代码了,呵呵Top
20 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-21 16:02:25 得分 0
接分先~~Top
21 楼gzpoplar(poplar)回复于 2006-11-21 16:11:42 得分 0
markTop
22 楼ccddtomato()回复于 2006-11-21 16:22:27 得分 0
看了真头疼 我是那种很有编程天赋的人 但是不认识字啊 痛苦Top
23 楼changchunren520()回复于 2006-11-21 16:25:48 得分 0
哭了...大家有没有能解决点的思路啊??写上点也行啊.要不下面的人没有头绪啊! @_@大家谈论吧!Top
24 楼qwertxp(上车的乘客请做好下车准备)回复于 2006-11-21 16:32:15 得分 0
理解是理解了,ebnf是什么飞机!?Top
25 楼buyaowen(失业中,请勿打扰)回复于 2006-11-21 17:04:53 得分 0
那些EBNF找本编译原理看看就会了
其实就是读入数据做计算,用逆波兰表达式,这个赵数据结构
怎么感觉这个题是对应届毕业生的呢?Top
26 楼hdhmail2000(禅剑飞雪)回复于 2006-11-21 18:00:08 得分 0
确实是考逆波兰表达式和txt文件操作
几年前考程序员的时候学过了
忘了Top
27 楼freelyl(飞翔)回复于 2006-11-21 18:13:09 得分 0
出这个题招人的人是SB....Top
28 楼jicken_woo(黑夜里你留下的轮廓,指引我-------不寂寞---------------)回复于 2006-11-21 18:27:51 得分 0
语言和技术哪个重要?
都重要?
应该是.Top
29 楼For_suzhen(不懂装懂)回复于 2006-11-21 18:29:42 得分 0
顶你个肺阿Top
30 楼renmasheshou(狼狗)回复于 2006-11-21 18:46:14 得分 0
强!Top
31 楼skychuifeng(吹风)回复于 2006-11-21 18:55:38 得分 0
我英文不好,死了
jfTop
32 楼kaoloveting(甲克虫)回复于 2006-11-21 20:04:57 得分 0
我每次笔试,卷子都被收回去了,
害我想带出来研究都不行
你们是怎么可以弄出来的啊??????????????Top
33 楼zhangkunls(小憨)回复于 2006-11-21 20:09:05 得分 0
没哭Top
34 楼cl55(CL)回复于 2006-11-21 20:14:22 得分 0
问题不是老外写的,读起来很不舒服。Top
35 楼jxncjjg()回复于 2006-11-21 20:14:38 得分 0
本人以超低价格提供计算机方面的视频教程、电子书籍教程、程序源代码光盘刻录服务(DVD或CD)。有志于从事IT工作的朋友,需要以低成本购置学习资料的朋友可以与本人取得联系,并以最快的速度(快递)送到你的手中。所有的资料都是经过本人精心挑选过的经典教程,视频教程大部分都是国内IT知名专家、学者亲自讲解,绝对物超所值。
联系电话:13576145612(短信佳)贾先生
电子邮箱:ncncldjjg@126.com
QQ:108410943
最好手机短信联系。
=====计算机视频教程目录=====
1、Oracle9iOCP(Oracle认证专家DBA)视频教程 中国IT认证实验室高级讲师主讲 大小:25CD(重点推荐)
2、VC++6.0开发详解视频教程 孙鑫主讲 大小:6CD(重点推荐)
3、java语言详解视频教程 孙鑫主讲 大小:12CD(重点推荐)
4、java语言开发技术详解视频教程 张孝详主讲 大小:21CD(重点推荐)
5、C语言视频教程 某高校教授主讲 大小:5CD
6、C#与.NET视频教程 洪恩主讲 大小:1CD
7、SQL语言详解 某高校教授主讲 大小:1CD(重点推荐)
8、数据挖掘 某高校教授主讲 大小:2CD
9、SQL Server2000视频教程 某高校教授主讲 大小:3CD(重点推荐)
10、UNIX系统视频教程 某高校教授主讲 大小:3CD(重点推荐)
11、MCSE(微软认证系统工程师)认证实录视频教程 北京科海讲师主讲 大小:11CD(重点推荐)
12、网页设计二剑客(flash、firework2000) 台湾IT讲师主讲 大小:2CD
13、PhotoShop7视频教程 国内知识专家主讲 大小:1CD(重点推荐)
14、AutoCAD2000视频教程 某企业专业讲师主讲 大小:3CD
15、3DMAX5视频教程 北京某3D工作室主讲 大小:8CD(重点推荐)
16、离散数学视频教程 大小:3CD
17、线性代数视频教程 大小:3CD
18、概率论与数理统计 大小:6CD
19、高等数学视频教程 大小:10CD
20、设计模式视频教程 国内知名C++、.NET专家主讲 大小:1CD(重点推荐)
21、BIOS设置视频教程 大小:1CD
22、互联网原理 某高校教授主讲 大小:1CD
23、清华大学网络多媒体教程(19门功课) 大小:13CD
23、VC++知识库(海量实用VC++技术文章) 大小:2CD(重点推荐)
24、加密与解密从入门到精通多媒体教程 大小:2CD(重点推荐)
=====程序源代码目录=====
1、某铁路大型信息管理系统源代码(PB8+Oracle8)(重点推荐)
2、ASP与ASP.NET实例源代码(超过300个实例,8CD)
3、商务之星(C#语言)
4、DOS6.0源代码
5、C# SharpDevelop源代码(C#开发语言)
6、电驴源代码(C++语言)
=====计算机书籍目录(高达4G容量)=====
一、<程序员杂志>
2004年程序员杂志
2005年程序员杂志
2004年CSDN开发高手
程序员超级开发宝典
二、3DMAX类
3DMAX7中文帮助文档
三、ASP与ASP.NET类
亲密接触ASP.NET全书
ASP.NET编程精彩百例
ASP.NET各式设计基础篇
ASP.NET高级编程
ASP.NET深入编程
四、C#、.NET类
C#完全手册
展现C
C#高级编程
C#设计模式
C#语言参考
Microsoft.NET框架程序设计(修订版)
Microsoft.NET框架程序设计中文版
Microsoft.Net_Framework
五、C、C++类
C++编程实例详解
C程序设计语言(新版)
C语言解析教程
C语言四本经典书籍
C程序设计语言
C和指针
C陷阱与缺陷
C专家编程
SDK路报
微软C编程精粹
C&C++电子杂志
C++STL程序员开发指南
嵌入式系统的C程序设计
纯C论坛电子杂志
C语言编程百例
高质量C++编程指南
C Primer Plus 4th Edition
C Primer Plus 5th Edition
The C programming Language(英文)
经典C程序100例
六、Delphi类
Delphi6集成开发环境
Delphi7高效数据库程序设计
Delphi下深入Windows核心编程
Delphi_demo
Delphi5开发人员指南
delphi7视频教程
delphi串口通信编程
delphi高手突破
试题试卷生成系统实例源码
七、java类
java程序设计技巧1001例
java大全
java语言程序设计
java语言教程
java语言入门
java语言与其程序设计范例
跟我学javaScript编程
javaScript从入门到精通
javascript程序开发手册
javascript中文教程
八、Linux类
Linux内核完全注释
process_manage_linux
九、Oracle类
Oracle初学者指南
Oracle实用大全
Oracle数据库Web开发指南
轻松掌握Oracle8数据库开发
oracle8安装注意事项
十、PhotoShop类
PhotoShot7百例
PhotoShot7经典实例教程
PhotoShot7入门与提高
PhotoShot7自学手册
PhotoShot教程
PhotoShot照相馆的故事
PhotoShot5.5
3DMAX与Photoshop结合
十一、PowerBuilder类
pb8.0参考手册
pb及数据库文档资料
pb技巧
pb技术文档
pb实例
pb消息详解
pb运行库
pb相关源代码
pb中的MSCOM32_OCX串吕编程
十二、SQL Server2000类
SQL Server2000精华
SQL Server2000编程员指南
SQL Server2000开发指南
十三、SQL类
SQL21天自学通
十四、VB类
VB6控件参考手册
VB6程序员指南
VB6循序渐进教程
VB6语言参考手册
VB.NET面向对象的实现
Access_2003_VBA程序员参考书
VBA_hight
vba01
vbalang
vba_office
vb_net学习教程
word2000VBA一册通
十五、VC++与MFC类
MFC编程实例
深入浅出MFC简体中文版
VC++MFC简明教程
VC++6.0内幕(第四版)
VC++6.0内幕(第五版)
VC++从入门到精通
VC文献101
VC知识库
MS VSUAL C++ 6 RUN-TIME LIBRARY REFERENCE 运行库手册
MS VSUAL C++ 6 TEMPLATE LIBRARIES REFERENCE 模板库手册
MS VSUAL C++ 6.0 LANGUAGE REFERENCE`S GUIDE 语言手册
MS VSUAL C++ 6.0 MFC LIBRARY REFERENCE 类库参考手册 (1)
MS VSUAL C++ 6.0 MFC LIBRARY REFERENCE 类库参考手册 (2)
MS VSUAL C++ 6.0 PROGRAMMER`S GUIDE 程序员指南
Visual C++_Turbo C串口通信编程实践
深入浅出 MFC_华中理 工_简体版
CSDN_vc2004
Visual C++ 6.0 数据库编程大全.pdf
Visual C++ 6.0 用户界面制作技术与应用实例.pdf
十六、Win32API类
APIhelp
api详解
win32apiFORvb
WindowsApi指南英文版
新编Windows_API_参考大全
新编WINDOWS之API
新编Windows API参考大全
十七、Windows编程原理、程序设计方法类
com技术内幕
com技术纵横谈
windows2000SERVER中文教程
自己动手写操作系统
内核启动
操作系统引导
WINDOWS核心编程
Windows的SHELL
Win32多线程程序设计_侯捷
FAT32文件系统向导
匈牙利命名法规范
WINDOWS网络编程技术
microsof系统错误代码
windows2000+iis入侵图解教程
windows环境下32位汇编语言程序设计(罗云彬)随书源码
windows环境下的设备驱动程序设计
设备驱动程序开发大全
WINDOWS程序员使用指南(二)----MICROSOFT基本类库
WINDOWS程序员使用指南(三)----OLE_DD
WINDOWS程序员使用指南(四)----资源
WINDOWS程序员使用指南(五)----OBJECT WINDOWS库
24小时学程序设计
win95开发手册_繁体版
Windows Sockets 规范及应用网络编程接口
Windows 应用程序设计原理、方法、技术
windows(SDK)程序设计
Windows编程指南
WINDOWS核心编程
vc++高级程序设计
windows脚本技术
Windows深入剖析(初始化篇)
windows深入剖析内核篇
windows网络编程二版英文
win32API大全
windows程序设计第五版
windowsC#编程
vc++高级程序设计
windows脚本技术编程核心
windows网络编程技术1
十八、汇编语言类
ASM汇编
crack全集
win32汇编语言
www.aogosoft.com汇编
x86保护模式系列教程
汇编语言(罗云彬)
看雪学院
罗云彬的汇编教程
十九、计算机操作技术、技巧
ghost教程
Windows XP 激活彻底攻略
Windows XP 技巧汇集电子书 1.01
电脑报2002年合订本
电脑报十年珍藏版
电脑高手2002电子版(1-10)
电脑技巧3000
跟我学装电脑
光盘刻录60招
计算机故障速查手册
软件工程精萃
无盘工作站2000终端全攻略(CHM)
硬盘低级格式化全攻略
硬盘数据恢复入门教程 - 龙心阁 - BlogBus_com.files
硬盘数据抢修实例分析
注册表实用手册
注册表实用手册 v2.7.3
注册表使用大全
DOS高手速成
Fdisk隐藏参数开关大全
菜鸟宝典---菜鸟不菜,只因看了菜鸟宝典
电脑应用文章精华
用Fdisk隐藏参数 解决硬盘分区问题
二十、其它类
Installshield简明教程
MICROSOFT ODBC 3.0 程序员参考及SDK指南
PowerDesignerbook
UML建模核心技术
标准建模语言UML教程
软件工程精萃
数据仓库
新版高级程序员电子书籍(pdg版)
药店进销存经营流程描述
installshield教程
PowerDesigner数据库建模技术
vchome_datastruct
磁盘引导扇区解释
加密与解密(第二版)段钢
软件工程思想
软盘绝对扇区读写C源代码
系统引导过程分析
二十一、数据结构与算法类
C++编程金典(第3版)
C常用算法程序集
C高级参考手册
Javasjjg_2nd_xpbook_.com
递归论
计算机常用算法
计算机算法导论
计算机算法基础
计算机算法设计与分析_苏德富等
深入dos编程
数据结构习题集
数据结构与算法-面向对象的C++设计模式
算法设计与分析_王晓东
Windows系统文件中文详解
二十二、网络类
html语言
modem技术全集
MODEM技术文档
TCPIP技术大全
WINDOWS网络编程技术
winsock
防火墙技术指南
UDP穿透NAT的原理与实现
Top
36 楼marvelboy123()回复于 2006-11-21 22:33:13 得分 0
靠,这哪里是公司啊!Top
37 楼liang8305(换工作的时间到了...)回复于 2006-11-21 22:38:13 得分 0
主要是不懂那个什么波兰表达式罢了Top
38 楼YapEro([::q^-^p::])回复于 2006-11-22 09:15:11 得分 0
这是数据结构中讲堆栈时用的例子,找本数据结构基本都会有这个例子Top




