资源描述
毕业实习日志
2017年2月20日 周一
今天是校内毕业实习的第一天,今天领导的主要工作是统计多少人参加校内实习,由于有一部分人未能按时到校,所以今天我们被安排到机房自行安排自己的事情。我今天主要在网上查找与我毕业设计相关的知识,确切是找一些实现特定功能的代码,例如,按钮的样式如何定义,对话框如何定义及对话框的类型。此外设计了一下所需数据库的元素,为实习过后的毕设铺好路。之所以选择校内实习,是因为不必要到处去找工作。另外,等待考研成绩也是一原因,并且我认为我的专业知识还是远远的不够,找一份较好的相关专业的工作不是多么的容易,我可以用找工作到处应聘的时间拿来学习。过去不可追,不会就是不会,耐下心来学习点东西,不急于一时的找工作。
2017年2月21日 周二
在等待实习正式上课,所以这一天我拥有完全的自由。关于课程设计,我一直有个困惑没有解决,就是如何实现学生请假追踪这个功能,期间一直在想这个问题。终于,皇天不负有心人,通过网上的查询,我了解了如何利用用户登录的IP地址来去确定用户所处的地理位置。此外,也可以利用第三方,比如:百度地图就提供了共享的位置定位接口,通过一段代码就可以容易实现此项定位功能。接近这一天的结束,我回顾了一下我之前学的如何进行数据显示的分页功能,为接下来的课程设计打下厚实的基础。
附今天所查根据IP求地理位置的代码:
public class URLT {
public static void main(String[] args) throws IOException {
String strURL =
"
System.out.println(getURLContents(strURL));
}
public static String getURLContents(String strURL) {
StringBuffer sb = new StringBuffer();
try {
URL url = new URL(strURL);
URLConnection connection = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) connection;
System.setProperty(".client.defaultConnectTimeout","150000");
System.setProperty(".client.defaultReadTimeout", "150000");
httpConn.setRequestMethod("GET");// 设置请求为POST方法
connection.setDoOutput(true);// 可以输出
InputStreamReader isr = new InputStreamReader(httpConn
.getInputStream(), "GBK");
BufferedReader br = new BufferedReader(isr);
String temp;
while ((temp = br.readLine()) != null) {
temp = temp.trim();
if (temp != null && temp.length() > 0) {
sb.append(temp);
}
}
br.close();
isr.close();
} catch (Exception e) {
System.out.println("Error 1" + e.getMessage());
}
return sb.toString();
}}
2017年2月22日 周三
今天正式由来自青云的一位老师给我们讲授关于MyEclipse的Java项目的创建,及一系列的Java功能的实现:
JFrame:创建窗体的功能;
具体实现: JFrame frame=new JFrame();
frame.setTitle("河南城建学院");
frame.setSize(500,500);
frame.setVisible(true);
JButton:创建按钮的功能;
具体实现:JButton button =new JButton();
button.setText("发送");
Container con=frame.getContentPane();
con.add(button);
JTextArea:创建文本区的功能;
具体实现:JTextArea eArea = new JTextArea();
eArea.setRows(2);
eArea.setSize(10, 20);
Container con=frame.getContentPane();
Con.add(eArea);
GridLayout:网格布局的功能;
具体实现:con.setLayout(new GridLayout(10,3));
FlowLayout:线性布局的功能:
具体实现:
Container container=frame.getContentPane();
container.setLayout(new FlowLayout(FlowLayout.LEFT));
BorderLayout:方位布局的功能;
具体实现:
.......
container.setLayout(new BorderLayout());
container.add(button5,BorderLayout.CENTER);
......
JPanel:一般轻量级容器。
具体实现:
JPanel jPanel=new JPanel();
jPanel.setLayout(new FlowLayout());
jPanel.add(jLabel);
jPanel.add(textArea);
jPanel.add(button3);
另外,我测试了一下,利用用户登陆了地的IP地址获得真实地址的Java代码,结果是我模棱两可,还是不够了解这个功能的实现的具体方法,有待进一步的去学习,再测试。
2017年2月24日 周五
新的一天,新的内容:
JRadioButton:实现单选按钮的功能;
具体实现:JRadioButton button1 = new JRadioButton();
JRadioButton button2 = new JRadioButton();
Button1.setText(“男”);
Button2.setText(“女”);
ButtonGroup group = new ButtonGroup();
group.add(buttton1);
group.add(button2);
JComboBox:实现下拉框的功能;
具体实现:
String [] str={“A”,”B”,”C”,”D”,”E”,”F”};
JComboBox comboBox=new JComboBox(str);
在学习了这两个知识点之后,再结合前几天学习的知识点,我们老师给布置了一个小的项目:个人信息的采集。
具体实现功能为:在一个页面的上半部分中创建姓名文本区,性别单选按钮,出生年月下拉框,提交按钮等,然后当填写好上半部分信息之后,点击提交,把所有内容按类别显示在下半部分的文本区中。
本人认为对以上功能的实现,虽然都是用这几天学习的内容来做,但必然是“一千个人,一千个哈姆雷特”的效果。对于我来说,这个项目不是很陌生,在其他地方曾经实现过这类的功能。所以刚一开始我的思路就很清晰,对于这几天学过的东西,我都用上了,但对于一些值得获取我是真的不太了解,还好有百度,不懂问度娘,在百度大数据的帮助下,我完成了老师布置项目的制作。先不说代码质量咋样,外观,功能都已经实现。此外我在做好此项目的基础上,有修饰了一下UI界面,因为在用户方便,UI体验是一个很重要的事情。
2017年2月27日 周一
第二周实习的第一天,新的一周新的开始,今天我们的实习老师带着我们开始了HTML的学习。HTML是一个超文本标记语言,标准通用标记语言下的一个应用,在这个时期尤其的流行。
今天我们使用例子来讲述HTML,我们的第一个例子是:利用video控件,自制一个简单的播放器,另外需要我们自己添加几个按钮来对video控件进行一些操作。在这里我们用到JavaScript方面的知识:定义一个函数的方法,以及document相关的方法。例如视频的播放/暂停功能,附部分功能代码如下:
<video id=video width=400 height=300
src="vido/mov_bbb.mp4" >
var myvideo = document.getElementById("video");
function playPause(){
if(myvideo.paused){
myvideo.play();
}
else{
myvideo.pause();
}
}
Video控件还有,width,height等等属性,合理的利用这些,我们可以达到一个很好的UI显示效果。
今天第二个例子是实现对p标签的文字,在运行时一个一个的弹出的效果,这里我们用到了onload方法,innerHTML方法,以及一个timer自动刷新效果,附一部分代码如下:
timer=setInterval(function(){
s.innerHTML=story.innerHTML.substring(0,i);
i++;
if(s.innerHTML==story.innerHTML){
clearInterval(timer);};
},500);
2017年2月28日 周二
今天我们实现了我所知道的第二种文字弹出方法,大体上是利用不同时刻文本框的显示长度,功能实现代码如下:
@keyframes textwidth{0%{ width:0px; }
100%{width:800px; } }
此时文字如果超过文本框是不能显示的,且不允许换行,具体功能实现代码如下:white-space:nowrap; overflow:hidden;
文字弹出期间,文本框右边框一直处于闪烁状态,光标闪烁功能实现代码为:
animation:shanshuo 0.8s infinite,textwidth 10s steps(800);
/*光标闪烁函数*/@keyframes shanshuo{
50%{ border-color:transparent; //transparent表示透明;
} }
下午老师带领我们学习了,音乐播放器的制作,主要使用audio控件调用一段音乐,代码如下:
<audio id=music src="music/music.mp3"></audio>
此外我们给音乐加上了随音乐播放而随之旋转的图片,这里我们使用前几天学的style以及JavaScript功能,具体代码如下:
<style type="text/css">
img{...border-radius:80%;} ...
@keyframes xuanzhuan{
from{transform:rotate(0deg);}
to{transform:rotate(360deg);}}
.stop {animation-play-state: paused;}
</style>
<script type="text/javascript">
function start(){
var img = document.getElementById("img");
var music = document.getElementById("music");
if(music.paused){music.play();
img.classList.remove('stop');
img.style.animation="xuanzhuan 10s linear infinite" ;}}
function pause(){
var img = document.getElementById("img");
var music = document.getElementById("music");
img.classList.add('stop');
if(music.played)music.pause();}
function next(){
var img = document.getElementById("img");
var music = document.getElementById("music");
img.src="img/black.jpg";
music.src="music/Animals.mp3";
start();} </script>
2017年3月1日 周三
今天上午的实例简约但不简单,主要是先实现一个颜色的组合,加一些不同颜色,形状为椭圆的边框,阴影什么的,具体代码如下:
border-radius:30%;/*椭圆效果,如果为50%则为圆形*/
box-shadow:0 0 0 10px green,0 0 0 20px black;
transition:all 5s;
其次,再利用函数实现颜色块旋转的功能,具体所用代码如下:
div:hover{
background-color:pink;
transform:rotate(360deg);
}
下午开始发福利了,我们的目标是实现把几张美女图片层叠在一块区域的效果,此时不同图片的旋转角度是不同的,方便能够用鼠标选中,并当鼠标移到图片上面时,这个图片放大,带阴影并放到最上层。具体实现效果部分代码如下:
img{ ...
box-shadow:5px 5px 4px rgba(50,50,50,0.4);
...
}
.pic1{ transform:rotate(-10deg); }
.pic2{ transform:rotate(15deg); }
.pic3{ transform:rotate(25deg); }
img :hover{
transform:rotate(0deg) scale(1.2);/*等比放大1.2倍*/
box-shadow:15px 15px 30px rgba(50,50,50,0.8);
z-index:1;/*更改z轴顺序*/
}
2017年3月2日 周四
今天我们要制作个小游戏,大体上是:两张十分相似的图片,用一张作为我们要找的,另一张为干扰项。当我们点击对的那张时,分数加一,图片个数遵循N2原则,时间限制为60秒。在上午我们有个很重要的任务是完成当点击开始按钮之前,界面所有的操作是都是不可使用的,只有当点击开始按钮之后,游戏界面的一些操作才可以操作,在这里我们主要给开始按钮界面一个游戏界面的大小,利用覆盖半透明实现效果。部分主要代码如下:
#menu{ width:1000px;
height:600px;
margin:10px auto;
background-color:rgba(0,0,0,0.6);
...}
完成了以上UI及简单地功能实现,我们下午开始了游戏功能的具体实现,具体的思路就是当点击开始后,秒数自动倒计时:
var interval=setInterval(function(){...
time=time-1;
timef.innerHTML="剩余时间 "+time+" 秒";
},1000);
之后,显示图片,每点对一次,分数加一,图片个数按num=row*row增加,这里row等于点对的个数加一,一直循环如此,之后变为10*10的游戏界面。具体代码实现如下:
function addpic(){...
for(var i=0;i<num;i++){
var img=document.createElement("img");
img.src="images/1.png";
img.style.width=1000/row+"px";
img.style.height=550/row+"px";
gamef.appendChild(img);}
var randomnum = Math.floor(Math.random()*num);
var fzm= gamef.children[randomnum];
fzm.src="images/2.png";
fzm.onclick=fzmonclick; }
function fzmonclick(){
score=score+1;
scoref.innerHTML="分数:"+score;
gamef.innerHTML="";
addpic(); }
2017年3月3日 周五
实习老师带领我们学习的最后一天,本以为我们实习的时间为三周,最后才知道就两周的时间。两周就这样不知不觉的过去了,每天早起去学习新的知识,慢慢成了一种享受。通过这两周的实习我发现,我们计算机专业并不是别人说的整天敲代码的那么无聊,无聊是因为那些人知道的太少,其实当你真正投入到其中时就会发现无穷的乐趣。当网页上一个一个的效果在你手里呈现时,你就会觉得无比的快乐。
今天也没有闲着,我们通过java scrip中tool Tip功能实现鼠标放到一个文字上面时,显示出一个解释框。基本思路是将介绍的文字写入代码,但运行时,每段文字的介绍语句是隐藏的,为了不影响原来文字的排列,应该使用posotion:relative;的属性,但当鼠标移到文字上面是,隐藏的文字显示出来。具体实现代码如下:
span{
position:relative;
width:240px;
}
.tooltip{
position:absolute;
opacity:0;
color:rgba(0,0,0,1);
top:1em;
border-radius:20px;
background:rgba(255,255,255,1);
box-shadow:0 0 20px rgba(0,255,0,0.8);
}
span:hover{
color:rgba(133,101,168,0.8);
box-shadow:0 0 10px rgba(255,0,0,1);
background:rgba(255,255,255,0);
transition:all 0.5s ease-in-out;
}
span:hover .tooltip{
opacity:1;
}
展开阅读全文