2014级软件工程专业《专业见习》报告姓名:班级:学号:执行学期:成绩评定:□优□良□中□及格□不及格任课教师:2015年7月3日《专业见习》报告班级姓名学号一、见习目的为了今后的工作需要,为了接触广阔的社会,丰富我们的知识和人生阅历,去与我们专业相关的工作场所见习是一个很好的办法。
马克思主义唯物辩证法的一个最为显着的特点就是强调物的实践性。
这次见习的主要目的是使我们对本专业密切相关的一些工作做进一步的了解。
二、见习要求在课堂上我们学到的一般都是纯理论的知识点,所以,借此机会,我们要把所学的知识理论和在学习过程中所遇到的有关专业方面的疑难点与此次较为宝贵的见习实践相结合,真正做到学以致用,并要在实际见习实践中充分对软件工程这个专业有进一步的认识和了解。
此外,个人希望能通过此次见习活动对自己的未来职业有一个初步的认识和了解。
三、见习过程和内容见习地点:南京东软实训基地见习内容:工作人员向我们介绍了东软公司的发展历程、主营业务、业务范围、各分基地的大致情况及主要经办过的工程。
经过一天的学习,我们大致了解了企业里的一些运营模式,之后我们一起参观了企业里的一些公司,对于一些员工的工作分工做到了能说出一二来。
我们上了一周的java企业课程培训,主要目的是让我们更加理解企业里的一些具体工作案例,以便于我们更快的了解企业运行,而我们目前是大一下半学期,还有近两年的时间来完善自身,为我们将来的工作实习打下坚实的基础。
通过讲解。
我们知道了一些java的基本情况:1.平台无关性平台无关性是指Java能运行于不同的平台。
Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。
使用Java编写的程序能在世界范围内共享。
Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。
2.安全性Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。
Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。
Java对程序提供了安全管理器,防止程序的非法访问。
3.面向对象Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。
类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。
程序员只需把主要精力用在类和接口的设计和应用上。
Java提供了众多的一般对象的类,通过继承即可使用父类的方法。
在Java 中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。
Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object 类,Object类功能强大,经常会使用到它及其它派生的子类。
4.分布式Java建立在扩展TCP/IP网络平台上。
库函数提供了用HTTP和FTP协议传送和接受信息的方法。
这使得程序员使用网络上的文件和使用本机文件一样容易。
5.健壮性Java致力于检查程序在编译和运行时的错误。
类型检查帮助检查出许多开发早期出现的错误。
Java自己操纵内存减少了内存出错的可能性。
Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。
并且Java 还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。
6.解释型我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。
Java不像C或C++,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。
字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。
7.动态java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。
C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。
Java 去掉了C++语言中的指针运算、结构、typedefs、#define、需要释放内存等功能,减少了平常出错的50%,让Java的语言功能很精炼。
而且,因为Java很小,所以整个解释器只需215K的RAM,并增加了一些很有用的功能,如自动收集碎片。
Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。
Java处理数据方式和用对象接口处理对象数据方式一样。
Java与C和C++直接相关.Java继承了C的语法,Java 的对象模型是从C++改编而来的.现代程序设计始于C,而后过渡到C++,现在则是JAVA.通过大量的继承,JAVA提供了一个强大的,可以更好地利用已有成果的,逻辑一致的程序设计环境,并且增加了在线环境需求的新功能.或许最重要的一点在于,由于它们的相似性,C,C++和JAVA为专业程序员定义了一个统一的概念架构.程序员从其中的一种语言转到另一种语言时,不会遇到太大的困难。
作为目前企业最流行的一种计算机编程语言,java在企业里的地位是毋庸置疑的。
这是一门强大的语言,电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。
Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。
之后的几天,我们一共学习了三个项目:月亮、十个小球、像素鸟。
每个案例由简到繁,一步一步的让我们学会了java编程思想、指令的规范性、严谨到不能错一个字符。
程序本身不怎么重要,重要的是编程的想法,你对于这个项目本身是如何构思的,这将是决定这个程序的发展的重要基础。
同时,我们也了解了英语的重要性,因为编程从头到尾都是由英语编的,甚至整个软件也是全英文的,这也让我们对英语有了更大的动力。
三个项目的详细源代码在报告的最后。
四、见习总结与体会通过本次实习,我大致了解了企业里对于编程人员的一些需求,同时也更加明白了现实中残酷的丛林法则,在见习过程中,我充分的了解到实践的重要性。
通过学习,对自己专业有了更为详尽而深刻的了解,也是对学校所学知识的巩固与运用。
从这次实践中,我体会到了实际的工作与书本上的知识是有一定距离的,并且需要进一步的学习。
只有把学到的理论知识和具体的实践工作相结合,我们才能更好的为公司乃至社会服务。
我们现在欠缺的主要是两点:(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。
(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。
而我觉得解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。
项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据Java 的研究和实践经验总结,选择项目的时候要注意以下方面: 1:项目不能太大,也不能太小这个要根据项目练习的阶段,练习的时间,练习的目标来判断,不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。
2:项目不能脱离实际应用系统,项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。
因为培训的时间有限,必须让我们尽快地融入到实际项目的开发当中去。
任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。
3:项目应能覆盖所学的主要知识点学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了!五、源代码://月亮package Ev1;;public class M1 {public static void main(String[] args) throws InterruptedException {JFrame jframe=new JFrame();jframe.setTitle("星星");MyJPanel mjp=new MyJPanel();jframe.add(mjp);jframe.setSize(700,800);jframe.setVisible(true);//显示画布//jframe.setLocationRelativeTo(null);jframe.setDefaultCloseOperation(3);mjp.movesun();mjp.movesun1();}}class MyJPanel extends JPanel{int[] xx;int[] yy;int a;int b;int i;public MyJPanel(){a=120;b=150;i=0;xx=new int[150];yy=new int[150];Random rm=new Random();for (int i = 0; i < xx.length; i++) {xx[i]=rm.nextInt(700);yy[i]=rm.nextInt(800);}}@Override//右击source/verrpublic void paint(Graphics g) {// TODO Auto-generated method stubsuper.paint(g);Font font=new Font("宋体",Font.BOLD,10); //设置字体,粗细,大小g.setFont(font);this.setBackground(Color.black); //画布颜色g.setColor(Color.yellow);//设置画笔颜色for(int i=0;i<xx.length;i++){g.drawString("*",xx[i],yy[i]);}g.setColor(Color.yellow);g.fillArc(a, b,70,70,0,360); //设置坐标,大小,起始角度,角度g.setColor(Color.black);g.fillArc(a+25,b ,70,70,0,360);}void movesun(){new Thread(){ //定义一个线程,并且启动//右击source/ov@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();while(true){a++;b--;if(a>=700||b<=0){b=800;}repaint();try {Thread.sleep(20);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}.start();}void movesun1(){new Thread(){ //定义一个线程,并且启动//右击source/ov@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();while(true){yy[i]++;if(yy[i]>=800){yy[i]=0;}i++;if(i>=150){i=0;try {Thread.sleep(50);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}.start();}}//十个小球package Ev1;public class ball {int x,y; //坐标int r; //半径int speed; //速度int way; //方向Color color; //颜色JPanel jpanel; //画纸public static final int LEFT_UP=0;public static final int LEFT_DOWN=1;public static final int RIGHT_UP=2;public static final int RIGHT_DOWN=3;public ball(){ }public ball(int x,int y,int r,int speed,int way,Color color,JPanel jpanel){ this.x=x;this.y=y;this.r=r;this.speed=speed;this.way=way;this.color=color;this.jpanel=jpanel;}void move(){switch(way){case LEFT_UP:x=x-speed;y=y-speed;if(x<=0)way=RIGHT_UP;if(y<=0)way=LEFT_DOWN;break;case LEFT_DOWN:x=x-speed;y=y+speed;if(x<=0)way=RIGHT_DOWN;if(y>=jpanel.getHeight()-2*r)way=LEFT_UP;break;case RIGHT_UP:x=x+speed;y=y-speed;if(x>=jpanel.getWidth()-2*r)way=LEFT_UP;if(y<=0)way=RIGHT_DOWN;break;case RIGHT_DOWN:x=x+speed;y=y+speed;if(x>=jpanel.getWidth()-2*r)way=LEFT_DOWN;if(y>=jpanel.getHeight()-2*r)way=RIGHT_UP;break;}}}package Ev1;public class BallJFrame {public static void main(String[] args) throws InterruptedException{ JFrame k = new JFrame();BallJPanel p = new BallJPanel();k.add(p);k.setTitle("小球");k.setSize(700,800);k.setDefaultCloseOperation(3);k.setVisible(true);p.ballrun();}}package Ev1;public class BallJPanel extends JPanel{ball[] ball;Random rm;Color co;BallJPanel() throws InterruptedException{rm = new Random();ball=new ball[10];for (int i = 0; i < ball.length; i++) {int way=rm.nextInt(4);int a=rm.nextInt(256);int b=rm.nextInt(256);int c=rm.nextInt(256);int x=rm.nextInt(600);int y=rm.nextInt(700);int r=rm.nextInt(50)+1;int speed=rm.nextInt(10)+1;co=new Color(a,b,c);ball[i]=new ball(x,y,r,speed, way, co,this);}}@Override//右击source/verrpublic void paint(Graphics g) {// TODO Auto-generated method stubsuper.paint(g);this.setBackground(Color.BLACK);//g.setFont(font);this.setBackground(Color.yellow); //画布颜色for (int i = 0; i < ball.length; i++){g.setColor(ball[i].color);g.fillArc(ball[i].x, ball[i].y, ball[i].r*2, ball[i].r*2, 0, 360); //坐标,半径,大小,起始角度,全角度}}void ballrun(){new Thread(){@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();for( ; ; ){for (int i = 0; i < ball.length; i++) {ball[i].move();}repaint(); //刷屏try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}}}}.start();}}//像素鸟package birdfly03;public class Birdgame03 {public static void main(String[] args) throws IOException, InterruptedException {JFrame jf =new JFrame();jf.setSize(432,670);MyJPanel03 mjp=new MyJPanel03();jf.add(mjp);jf.setTitle("小鸟,我让你飞!!!");jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mjp.action();}}class MyJPanel03 extends JPanel{int score;BufferedImage backgroundimage;BufferedImage gameoverimage;BufferedImage startimage;boolean gameover;boolean started;Bird03 bird;Ground ground;Column column1,column2;public MyJPanel03() throws IOException{score=0;backgroundimage=ImageIO.read(getClass().getResource("bg.png"));gameoverimage=ImageIO.read(getClass().getResource("gameover.png"));startimage=ImageIO.read(getClass().getResource("start.png"));gameover=false;started=false;bird=new Bird03();ground =new Ground();column1=new Column(1);column2=new Column(2);}@Overridepublic void paint(Graphics g) {// TODO Auto-generated method stubsuper.paint(g);g.drawImage(backgroundimage,0,0,null);Graphics2D g2=(Graphics2D)g;g2.rotate(-bird.aphan,bird.x,bird.y);g.drawImage(bird.image,bird.x-bird.width/2,bird.y-bird.height/2,null);g2.rotate(bird.aphan,bird.x,bird.y);Font font=new Font("宋体",Font.BOLD,50);g.setFont(font);g.drawString(""+score, 20, 40);g.drawImage(ground.image,ground.x,ground.y,null);g.drawImage(column1.image,column1.x-column1.width/2,column1.y-column1.height/2,null);g.drawImage(column2.image,column2.x-column2.width/2,column2.y-column2.height/2,null);if(gameover){g.drawImage(gameoverimage,0,0,null);}if(!started){g.drawImage(startimage,0,0,null);}}public void action() throws InterruptedException{MouseListener l =new MouseAdapter(){@Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stubsuper.mousePressed(e);if(gameover){try {bird=new Bird03();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}try {ground=new Ground();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}try {column1=new Column(1);} catch (IOException e2) {// TODO Auto-generated catch blocke2.printStackTrace();}try {column2=new Column(2);} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}score=0;gameover=false;started=false;}else{started=true;bird.startfly();}}/*public void MousePressed(MouseEvent e) throws IOException{ try{if(gameover){bird=new Bird03();ground=new Ground();column1=new Column(1);column2=new Column(2);score=0;gameover=false;started=false;}else{started=true;bird.startfly();}}catch(Exception ex){ex.printStackTrace();}}*/};addMouseListener(l);while(true){if(!gameover){if(started){bird.step();column1.step();column2.step();}bird.fly();ground.step();if(bird.x==column1.x||bird.x==column2.x){score++;}}if(bird.hit(column1)||bird.hit(column2)||bird.hit(ground)){ gameover=true;}repaint();Thread.sleep(1000/60);}}}class Bird03{int x,y;int size;double v0;double speed;BufferedImage image;double g;double t;double aphan;int index;double s;int width;int height;BufferedImage[] images;public Bird03() throws IOException{image=ImageIO.read(getClass().getResource("0.png"));x=200;y=280;g=4;t=0.25;v0=20;speed=v0;size=40;index=0;s=0;aphan=0;width=image.getWidth();height=image.getHeight();images=new BufferedImage[8];for (int i = 0; i < images.length; i++) {images[i]=ImageIO.read(getClass().getResource(i+".png"));}}void step(){double v0=speed;s=v0*t-g*t*t/2;y=y-(int)s;double v=v0-g*t;speed=v;aphan= Math.atan(s/8);}void fly(){index++;image=images[(index/12)%8];}void startfly(){speed=v0;}public boolean hit(Ground ground){boolean hit= y+size/2>ground.y;if(hit){y=ground.y-size/2;aphan=-3.1415026/2;}return hit;}public boolean hit(Column column){if(x>column.x-column.width/2-size/2 &&x<column.x+column.width/2+size/2){//检测是否在缝隙中if(y>column.y-column.gap/2+size/2 &&y<column.y+column.gap/2-size/2){return false;}return true;}return false;}/*if(x>column.x-column.width/2-size/2&&x<column.y+column.width/2+size/2){if(y<column.y+column.gap/2-size/2&&y>column.y-column.gap/2+size/2){return false;}return true;}return false;}*/}class Column{BufferedImage image;int x,y;int dis;int width;int gap;int height;public Column(int n) throws IOException{image=ImageIO.read(getClass().getResource("column.png"));dis=245;x=550+(n-1)*dis;gap=144;Random random=new Random();y=random.nextInt(218)+132;width=image.getWidth();height=image.getHeight();}void step(){x--;if(x==-width/2) {x=2*dis-width/2;Random rm= new Random();y=rm.nextInt(218)+132;}}}class Ground{int x,y;BufferedImage image;public Ground() throws IOException{x=0;y=500;image=ImageIO.read(getClass().getResource("ground.png"));}void step(){x--;if(x==-432) x=0;}}。