作业以及感悟

1、编写一个hello world程序

public class HelloWorld{

// 程序的入口

public static void main(String args[]){

// 向控制台输出信息

System.out.println("我的第一个程序HelloWorld");

在编写Java程序时注意,通常Java中所有的代码必须放在class中, class就是类,上面的程序我们编写了一个叫做HelloWorld的类,而一个类想要执行必须有一个main方法, main方法是程序运行的入口,public static void main(String args[])这句话中除了args这个变量名可以自己定义外,其他的单词不能做任何改变和省略。在main方法中我们输入了一条输出语句System.out.println("欢迎java01班的同学");这句话的目的是向终端也就是显示器输出一条"我的第一个程序HelloWorld"的话。

2、一致一个数组,求子数组之和最大

public class Test

{

static int[] arr = {

1, -2, 3, 10, -4, 7, 2, -5

};// 需要求的数组

static int maxIndex = arr.length - 1;// 数组的最大下标

public static void main(String[] args)

{

findMaxArr2();

System.out.println("\n-------------");

findMaxArr3();

}

static void findMaxArr2()

{

int max = arr[0];// 最大值

int sum;// 求和

int startIndex = 0;

int endIndex = 0;

for (int i = 0; i <= maxIndex; i++)

{

sum = 0;

for (int j = i; j <= maxIndex; j++)

{

sum += arr[j];

if (sum > max)

{

max = sum;

startIndex = i;

endIndex = j;

}

}

}

System.out.println("最大值为:" + max);

printArr(startIndex, endIndex);

}

static void findMaxArr3()

{

int max = arr[0];// 最大值

int sum = 0;// 求和

int startIndex = 0;

int endIndex = 0;

for (int i = 0; i <= maxIndex; i++)

{

if (sum >= 0)

{

sum += arr[i];

}

else

{

sum = arr[i];

startIndex = i;// 最大子数组开始值

}

if (sum > max)

{

max = sum;

endIndex = i;// 最大子数组结束值

}

}

System.out.println("最大值为:" + max);

printArr(startIndex, endIndex);

}

// 根据下标开始结束值,打印数组

static void printArr(int startIndex, int endIndex)

{

for (int i = startIndex; i <= endIndex; i++)

{

System.out.print(arr[i] + " ");

}

}

}

3、字符串操作,讲一个英语句子中的单词颠倒顺序输出 例如 how are you   输出为 you are how

思路:你已经取到了整个字符串,然后通过空格将这个字符串在分割成一个一个的单词放到一个新的数组中,然后把这个新数组反序打印不就行了。程序如下

#include<stdio.h>
int main(void)
{
 char a[200];
 char ch;
 int i,x,y;
 int j;
printf("Enter a sentence:");
 for(i=0;i<200;i++)
 {
  scanf("%c",&a[i]);
  if(a[i]==‘\n‘)
  {
   x=i;
   break;
  }
 }
 ch=a[x-1];
 printf("%c\n",ch);
 //储存终止符
 for(i=0;a[i]!=‘ ‘;i++);
 j=i;
 printf("%d\n",j); 
for(i=0;i<j;i++)
  printf("%c",a[i]);
  printf("%c\n",ch);
 return 0;
}

4,在主窗口中现实一个hollow  world  程序

import java.awt.*;

import java.applet.*;

public class Firstapplet extends Applet {

String s;

public void init() {

s= "hollow  world";

}

public void paint(Graphics g){

g.drawString(s, 70, 80);

}

}

我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。

我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过Hello World ,一开始很多同学不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写? 我刚也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么main方法是这样定义的了。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

时间: 2024-11-06 01:03:38

作业以及感悟的相关文章

初识作业、进程、线程,及感悟

1.作业    程序的实质:为完成任务,有限步骤的集合.在windows中运行时,会将程序分成计算机要操作的集合,即向计算机提交任务的实体.作业的完成需要经过四个过程:作业的提交,作业的收容,作业的执行和作业的完成.         2.进程 一个作业的完成,可能会对应多个相应的进程.进程,既是为完成作业,系统请求资源的基本单位.因此,当电脑内存不够用时,可以关掉不需要的进程,以节省电脑资源.进程,即一个过程,程序的一个数据集运行的过程.进程有自己的虚拟地址空间,包括文本区域(text regi

第三次作业(ABC类代码优化及感悟)

代码优化1:将A类体现出了封装性(BC类同理). 1 package aaa; 2 import java.util.Scanner; 3 //工具类 4 public class Text1 { 5 static int sum; 6 public int count(int start,int end){ 7 int []arr1={-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-1

第三次作业-封装测试感悟

1.角色分工 (1)方俊杰-201306114417:驾驶员 http://www.cnblogs.com/imfjj/ (2)余雅诗-201306114453:领航员 http://www.cnblogs.com/ys1101/ 2.作业内容 (1) 能把计算的功能封装起来,通过测试程序和API 接口测试其简单的加法功能 (2)扩展后,还要支持两个数的减法,乘法,除法 (3)支持小数点.负数 (4)具备界面 (5)进行了报错处理提示 (详情请看我的队友余雅诗的博客http://www.cnbl

课后作业感悟2

动手动脑: EnumTest.java,运行它,分析运行结果?  答: false false true SMALL MEDIUM LARGE 你能得到什么结论?你掌握了枚举类型的基本用法了吗? 答:枚举类型的值赋值时只能引用而不是赋值. 注:枚举类型是引用类型! 枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象.相同的值则引用同一个对象. 可以使用"=="和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,"=="和equals()

五次作业后的感悟

C编程的思索: 遇到一个题,首先想,如果是一个具体的实例,一个具体的数字,会是怎么个情况,然后慢慢寻找规律,发现它們之间的联系,最重要的是思考,想法真的很重要,然后再想,怎么进行编程,怎么写代码,写完后,再带入实例进行验证,进而进行改正和完善. 尤其要注意微小的细节,例如,今天就错在,for()后直接加了个分号,相当于一个空语句,所以,一直执行不出来. 同时,思维要扩散,例如,让输入0-100之间的整数中出现的9的个数,我想到的只有9/19/29/39/49/59/69/79/89/99,只考虑

作业3 阅读《构建之法》后的收获与感悟

读完<构建之法>的1-5章后我才发现这本书把我们软件工程诠释得太好了,有很多精辟的思想和建议在这里,让我看完之后感触颇深,虽然我才看完了前五章,但是我的激情已被点燃,我发现我已经深深爱上这本书了,强烈地好奇心迫使我快点往下看了.可我还是先暂时压制住了我的好奇心,先把读后感写完再看. 第一章:这章主要是讲软件工程的概论,讲述了软件工程的发展史还有起源及其软件工程的特性.这使我开阔了我的视野.让我了解到了软件工程的由来也不是容易的,它经历了好几个阶段.这章让我比较感兴趣的是讲述了软件工程的开发和维

day1作业二:多级菜单

    作业二:多级菜单 1.三级菜单 2.可以次选择进入各子菜单 3.所需新知识点:列表.字典 4.打印b回到上一层 5.打印q退出循环 流程图如下: readme: (1)存储三级菜单的字典;设置标识符active用来循环: (2)生成存储省市的字典,d1 = {1: '河南', 2: '广东', 3: '湖南'}; (3)用户输入查询编码,如果用户输入q退出循环:如果用户输入小于1或大于3则重新输入:输入编码在range(1,4)中,则输出省,并继续循环; (4)生成存储市的字典d2 =

M2事后个人感想(不是个人作业)

M2阶段主要是对我们做的LETS的升级.我们主要在关注.评论.IM和界面几个方面进行的升级.我们按照功能进行了分工,平均是两个人做一个功能.M2阶段和M1阶段就有了很大地不同.因为M1阶段,几乎是我们一块做的开发,所以工程中每个部分都很熟悉,对整体有较好的了解,而M2阶段,完全是新做一个功能,然后融合到原来的工程里面,这就使我对整体工程的把握变少了.应该说这样更符合软件工程的思想,比如到了大公司,我肯定只是做软件的一部分.另一个不同点就是我们M2阶段是以功能为主导,通过实现一个功能来学习一系列的

课后作业,与一周感受

时间挺快的,转眼之间一周过去了,面对所学的课程,心里有点小感悟. 一周可以学很多东西,我从什么都不懂,到现在可以独立制作一些小网页,感觉还是挺有成就感的.课下老师给我们布置了作业"做一个小网站",刚开始做没有头绪,通过对一些成熟网站的参考,也通过老师教给我的排版技术,自己能单独处理一些事情了.从刚入学,对一切的未知,到了解还是挺开心的一个过程.希望以后能熟练吧.在制作过程中不时要翻看笔记还有视频,还要参考老师教给我们的方式方法,感觉自己还是很不熟练的,需要我们课下多加练习 其实我们入门