本文目录一览:
- 1、大一软件新生一枚 有点疑惑 大一上学期稀里糊涂的学了C 下学期自学了JAVA 目前打算接触一下HTML 望解惑
- 2、一元钱分成1分,2分,5分,一共有多少种分发儿?用c语言程序做
- 3、用objective-c语言实现一个消息中心(NSnotificationcenter)功能
- 4、c语言:老师给十个小孩分发糖果,第一个和第二个小孩各分一块糖,
大一软件新生一枚 有点疑惑 大一上学期稀里糊涂的学了C 下学期自学了JAVA 目前打算接触一下HTML 望解惑
软件工程专业大一都会学一个学期的C,大二会学习C++与java。 老弟,请你记住,这三门语言里面一定要精通一门,别什么都去学。软件工程重要的几科是:计算机算法、数据结构(特别重要)、操作系统、计算机网络、分布式系统。这几科理论一定要认真听课,一定要掌握好,它们决定了你日后的路能走多远,至于上面的编程语言都只是他们的实现,学习那种语言由你自己决定,如果你学的是java或者是C++,那么还要精通“设计模式”以及“面向对象理论”。下面是我学习java的路线图。
1.首先找一本简单的教材,先对java有个基本的认识(大概看那么半个月就差不多了,随便下载一本入门的书就行了)
2.然后推荐你看java核心技术,分为上下两卷,已经是第八版了,大概有一千六七百页;当 你看完后,基本的java知识已经掌握了(记住,一定要多练习啊)(但是要弄懂,呵呵,至少看个三四遍吧,这两本书只要能搞懂70%就很不错了)
3.这个时候可以看看thinking in java中文名"java编程思想",这本书写的比较难,如果看完了,而且懂了,那么证明java水平到达了一个中等的层次;(去参加面试的时候问的那些java知识完全可以应付过来了)(或者可以先看下面的书,边看thinking in java这本书,这样也是可以的,而且学习的效率应该会高些)
4.然后java就会分方向,j2me(手机编程),已经过时了;j2ee方向(Web编程),先学html,javaScript,css(这些书多得数不清),然后就学servlet、jsp还有tomcat服务器,《jsp应用开发详解》(入门) 《Servlet与JSP核心编程》(核心) 《Tomcat与Java Web开发技术详解》这几本书还不错,然后就可以学习SSH
5.学习数据库理论、JDBC(最好能够学好oracle),学习struts的时候建议从struts1开始学起《精通Struts基于MVC的Java Web设计与开发》,然后就可以学习struts2《Struts2权威指南》,接下来学习Hibernate《精通Hibernate:Java对象持久化技术详解》,最后学习Spring《spring2.0技术手册》和EJB《Enterprise JavaBeans, 2nd Edition》(提示:只要java基础学得好,这些东西都会学得很快)
6.这个时候就要把注意力放在设计模式(做应用特别重要),数据结构和计算机算法上面来了,设计模式可以先看深入浅出设计模式 然后再看java与模式, 数据结构可以看清华大学严慰敏老师写的那本教材;计算机算法要了解基本的排序,如果时间充裕可以看那个算法导论。 (设计模式,数据结构和算法才是真正的精髓,光看懂还不行的,一定要多练习多思考) ,理论上来说,5万行以上的代码量可以看懂设计模式,20万行以上可以运用设计模式 (第一个重点)
7.等掌握前面的这些知识之后,推荐看effective java,这本书是目前java领域公认的高级书籍。在项目中肯定会遇到一些前端的知识,那么得精通javascript、Ajax,JavaScript权威指南(入门), JavaScript高级程序设计(进阶),这两本书弄懂了,那么学习jquery和extjs都会很快的深入浅出ExtJS和《锋利的jQuery》。
8.学习SSH源码,里面的思想太多太有用了。不要心急,不要图快,所有的书要一本本的慢慢看,多看几遍(一本书看上个四五遍,就可以成高手,呵呵)。
9.java基础(j2se)的重点有:继承、多态、流、线程、网络编程、反射、集合、数据库连接、泛型、JNI技术、分布式技术还有解析xml也是很重要的,如果你想学android手机编程,那么SWING和AWT要熟悉一下。《Google+Android开发入门与实战》(入门) 《Google Android SDK开发范例大全》(深入)(建议把android当作业余爱好,把web编程当作主攻方向,因为j2ee包含了大量框架知识),书很多,可以自己去搜。多想 多看 多练才是王道,不要相信什么培训机构,这些都没啥用,真正学好只能靠自己。
10.面向对象思想+java基础(j2se)+数据结构+设计模式+计算机算法为核心,本科生什么都可以不学好,唯独这几科一定要学好,切记切记!(第二个重点)
11.学完以上的知识,可以做一个ERP系统了,不过这些都还只停留在Web application阶段,这里也是本科生与研究生的分水岭!
12.互联网的制高点是Web Service,前端是J2EE+移动终端(Android、IOS、黑梅),后端是linux操作系统。
12.那么如何将大量的服务器集成呢?如何把一个工作分为多个任务分发给多个服务器来处理呢?如何将解决多个服务器之间通信的问题呢?如何解决服务器之间高并发的问题呢?
如何建立一个Web Service提供接口让外界调用呢?(这些都是研究生学习的内容)
13.深入理解计算机网络、操作系统、分布式系统的原理知识。学习RMI、JMS、《JAVA消息服务》,《JAVA并发编程实践》对这些问题都有一个初步的介绍与实现
14.学习linux操作系统《鸟哥的私房菜》
15.学习处理服务器端的海量数据,云计算等知识 《Hadoop权威指南》
16.集成系统的时候,有可能上游企业用的是其他的语言,那么你还得去学另外的语言。
17.掌握一门脚本语言,比如ruby
18.软件工程的名言 “什么是专业?专业就是你比别人花更多的时间!”(多花时间) “最好的最厉害的招式就是没有招式!”(设计模式的最高境界)
一元钱分成1分,2分,5分,一共有多少种分发儿?用c语言程序做
#includestdio.h
int main(void)
{
int i,j,k,s=0; //i为1分硬币,j为2分硬币,k为5分硬币
for(i=1;i100;i++)
for(j=1;j50;j++)
for(k=1;k20;k++)
if(5*k+2*j+i==100)
{
printf("%d\t%d\t%d\n",i,j,k);
s++;
}
printf("s=%d",s);
}
用objective-c语言实现一个消息中心(NSnotificationcenter)功能
对象之间进行通信最基本的方式就是消息传递,在Cocoa中提供Notification
Center机制来完成这一任务。其主要作用就是负责在任意两个对象之间进行通信。使用方法很简单,如下几个步骤即可:
假设A与B之间进行通信,B来触发事件,A接受该事件,并作出响应。
1)
A编写自定义的消息响应函数update
2)
A向消息中心注册,[NSNotificationCenter
defaultCenter]
addObserver:
self
selector:@selector(update)
name:@"update"
object:nil]
3)
B触发事件[[NSNotificationCenter
defaultCenter]
postNotificationName:@"update"
object:nil]
每一个进程都有一个默认的NSNotificationCenter,可以通过类方法defaultCenter获取该消息中心的实例。消息中心可以处理同一进程中不同对象之间的消息。如果要在同一台机器上进行进程间的通信,需要使用NSDistributedNotificationCenter。
消息中心以同步的方式将消息分发到所有的观察者中,换言之,直到所有的观察者都收到消息并处理完毕以后,控制权才会回到调用者的手里。如果需要异步的处理消息,需要使用通知队列NSNotificationQueue。
在多线程程序中,通知会被分发到每一个发起消息的线程中,这可能与观察者注册时所在的线程已经不是同一线程。
实例:
@implementation
TestClass
-
(void)
dealloc
{
//
If
you
don't
remove
yourself
as
an
observer,
the
Notification
Center
//
will
continue
to
try
and
send
notification
objects
to
the
deallocated
//
object.
[[NSNotificationCenter
defaultCenter]
removeObserver:self];
[super
dealloc];
}
-
(id)
init
{
self
=
[super
init];
if
(!self)
return
nil;
//
Add
this
instance
of
TestClass
as
an
observer
of
the
TestNotification.
//
We
tell
the
notification
center
to
inform
us
of
"TestNotification"
//
notifications
using
the
receiveTestNotification:
selector.
By
//
specifying
object:nil,
we
tell
the
notification
center
that
we
are
not
//
interested
in
who
posted
the
notification.
If
you
provided
an
actual
//
object
rather
than
nil,
the
notification
center
will
only
notify
you
//
when
the
notification
was
posted
by
that
particular
object.
[[NSNotificationCenter
defaultCenter]
addObserver:self
selector:@selector(receiveTestNotification:)
name:@"TestNotification"
object:nil];
return
self;
}
-
(void)
receiveTestNotification:(NSNotification
*)
notification
{
//
[notification
name]
should
always
be
@"TestNotification"
//
unless
you
use
this
method
for
observation
of
other
notifications
//
as
well.
if
([[notification
name]
isEqualToString:@"TestNotification"])
NSLog
(@"Successfully
received
the
test
notification!");
}
@end
c语言:老师给十个小孩分发糖果,第一个和第二个小孩各分一块糖,
#include stdio.h
#include math.h
float GetSweets(int seqNum){
if(seqNum 1)
{
return 0;
}
else if(seqNum%2 == 0){
return pow(3.0,(seqNum/2 -1));
}
else
{
return pow(2.0,(seqNum/2));
}
}
int main(void)
{
printf("第九个孩子得到:%d 个糖果\n",(int)GetSweets(9));
printf("第十个孩子得到:%d 个糖果\n",(int)GetSweets(10));
return 0;
}
试试看行不行。我调用了下pow来算幂次方。哥们,函数已经写好了,你修改下参数不就得到结果了...看来你是真不会写程序啊....sorry啊,哥们儿,一个整除和取余弄混了,你再试下。