软件与服务外包学院
课程综合实训报告
软件与服务外包学院
二〇##年十二月
一、 实训目的
1.考核对Java语法的理解和掌握程度,以及运用Java面向对象的概念和设计方法,Java界面设计、异常处理和JAVA JDBC连接数据库等Java核心技术的编码能力和分析、设计能力;
2.提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼了分析解决实际问题的能力,提高适应实际,实践编程的能力;
3.培养在项目开发中团队合作精神、创新意识及自学能力。
二、 实训内容
一.系统功能描述以及需求描述
项目名称 :办公用品管理系统
系统功能 :(1)、用户登录(2)、用户注册(3)、管理员登陆
(4)、信息查找(5)、信息修改(6)、信息删除
(7)、信息添加(8)、查看历史记录
具体功能描述:
1.用户、管理员、部门管理员登陆界面。
2.用户登陆界面登陆成功后下设查看个人信息和申请历史记录的功能。
3.部门管理员登陆界面登陆成功后下处理申领物品是否通过。
4.系统管理员查看和修改所有用品。
2.使用技术说明
Java面向对象的概念和设计方法,Java界面设计、异常处理和JAVA JDBC连接数据库、Java中字符串的处理和数组的使用、Java中Swing中高级组件的使用(表格、菜单和单选框)和Swing中界面的美化设计(图片的插入和字体颜色和大小)
3.数据库设计
界面设计;
1.登陆界面
注册界面:
信息修改界面:
信息删除界面:
5.主要代码及特殊问题解决方法(调试过程中解决的问题)
用户登录界面主要代码
待审核界面主要代码:
已审核界面主要代码:
import java.awt.*;
import java.net.URL;
import javax.swing.*;
public class yishenqing extends JFrame{
//已申请商品的界面
JFrame jf;
JTextArea jta;
JLabel jl;
JScrollPane sp;
JLabel jl1;
ImageIcon icon;
public yishenqing(){
jf=new JFrame();
jf.setSize(300, 300);
jf.setLocation(300, 100);
jf.setIconImage(new ImageIcon("t4.jpg").getImage());
Container con=jf.getContentPane();
con.setLayout(null);
//****************
jl1=new JLabel();
URL url=login.class.getResource("t4.jpg");
icon = new ImageIcon(url);
jl1.setIcon(icon);
jl1.setOpaque(true);
jl1.setBounds(0,0, 450,350);
//*******************
jta=new JTextArea();
sp=new JScrollPane(jta);
sp.setBounds(20, 80, 250, 150);
jl=new JLabel("已申请的用品:");
jl.setBounds(20, 20, 100, 30);
//jta.setBounds(20, 80, 250, 150);
con.add(jl);
con.add(sp);
con.add(jl1);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
public static void main(String[] a){
yishenqing a1=new yishenqing();
}
}
删除用品界面代码:
package officesupplies;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Drop extends JFrame{
//删除用品的界面
JFrame jf;
JLabel jl1;
JTextField jtf1;
JButton jb1;
JLabel jl;
ImageIcon icon;
public Drop(){
jf=new JFrame("删除用品");
jf.setSize(400, 200);
jf.setLocation(300, 100);
jf.setIconImage(new ImageIcon("t4.jpg").getImage());
Container con=jf.getContentPane();
con.setLayout(null);
//*****************
jl=new JLabel();
URL url=login.class.getResource("t4.jpg");
icon = new ImageIcon(url);
jl.setIcon(icon);
jl.setOpaque(true);
jl.setBounds(0,-20, 450,350);
//******************
jl1=new JLabel("用品编号:");
jtf1=new JTextField();
jb1=new JButton("确定");
jl1.setBounds(80, 50, 80, 30);
jtf1.setBounds(150, 50, 100, 30);
jb1.setBounds(120, 120, 80, 30);
jb1.setBackground(Color.orange);
con.add(jl1);
con.add(jtf1);
con.add(jb1);
con.add(jl);
jf.setVisible(true);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Drop d=new Drop();
}
}
三、 实训测试结果
实现了预期的基本功能,但在编码中也遇到了很不本来可以避免的问题。比如输入法有时候忘记切换,基础不牢固,也会出现语法错误,好在java编译器可以发现很多错误,大大的提高了编写代码,测试代码的时间。
四、 实训总结
本次实训课题办公用品管理系统主要以管理系统为模板,编写办公用品管理系统。充分利用了Java语言程序设计中的信息查找、删除、添加、修改功能。使用Swing程序设计编写出相应的登陆、注册等界面,并且实现了Java语言程序与数据库的连接。
虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对Java有了全新的认识,在实践 能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。除此以外,我知道了什么叫团队,怎样和团队分工合作;同时我还学 会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这也是第一次让我亲身感受到理论与实际的相结合,让我大开眼界。在这次实训中,我了解了自己的不足,知道了自己努力的方向。对所学的JAVA 知识整合成了体系,使知识掌握的更加牢固本次实训将所学的Java语言与数据库充分的连接起来,并且 做到了团队合作编写项目。充分考验每一个人的Java语言编程能力和团队合作能力。
五、 指导教师评语
六、 实训成绩:
实训指导老师签名:
年 月 日
姓 名:
学 号:
班 级:
指导教师:
完成日期:
1
设 计 要 求
2
第一章 功能介绍 ............................................................................................................................. 4
1.1功能描述 ............................................................................................................................ 4
1.2 功能特点 ........................................................................................................................... 5
第二章 系统的设计实现 ................................................................................................................. 6
2.1 结构设计 ........................................................................................................................... 6
2.2 设计实现 ........................................................................................................................... 7
2.2.1 具体实现.............................................................................................. 7
2.2.2 代码实现.............................................................................................. 9
总 结 .............................................................................................................................................. 12
参考文献......................................................................................................................................... 13 3
电蚊香软件设计说明书
第一章 功能介绍
1.1功能描述
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的电蚊香就是基于谷歌Android手机平台的应用软件。
人类可以听见的声音频率非常有限,约在20~20000HZ,而蚊子也有其可听见的声音频率,如果能播放一段声音让蚊子厌恶,导致蚊子远离,而人类又听不见,那么电蚊香的程序理论就可能实现了。
这个电蚊香程序,既是实验以手机喇叭以蚊子讨厌的频率播放,并让这个播放声音的工作放在后台Service当中,并在Activity里设计一个开关按钮可以启动与关闭防蚊声音的播放,由于播放声音的程序是在Service里执行,所以即便关闭了Acitivity,声音仍会持续,为了提醒自己请将防蚊装置的开关图标显示于Notification Bar当中。
关于声音文件,存放在资源文件里面的位置如下,你可以把驱蚊的声音换成自己喜欢的音乐,但是一般用MP3格式的音乐,用于实验。
本项目是一款基于Android手机平台的应用软件,使Android手机拥有个性的多媒体软件,使手机显得更生动灵活化,与人们更为接近,使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。
4
1.2 功能特点
传统的电蚊香,是利用一个烤箱,然后把特制的驱蚊药片放在烤箱上,从而达到一个驱除蚊子等害虫的效果,这种电蚊香不仅费电而且对人类的身体会产生有害的影响,如果长期使用会导致自己的免疫能力下降,鼻子失灵等后遗症,后果严重的可能导致癌症等可怕的疾病,这种手机版的电蚊香,从根本解决了此问题。
随着手机功能的不断发展,各种应用程序应运而生,为了能提高自己的JAVA水平和结合时代的发展,所以选择了现今比较流行的安卓软件设计作为题目,因为安卓是以JAVA为基础的系统,所以两门科目具有关联。
而且安卓比JAVA更具有现在社会的流通性。一般在学校夏天的时候学校不让使用喷雾器杀虫剂和各种蚊香,这样容易引起火灾,并且存在安全隐患,然而夏天的时候又需要开窗,所以宿舍蚊子都比较低,设计这个手机版的电蚊香不仅解决了蚊虫叮咬的麻烦,还不存在安全隐患,而且安卓手机比较常见,每个同学都可以用,用法简单,等等各种特点。
这个蚊虫驱蚊系统里面的音乐是可以随时更换的,有的时候可以去除,其他的动物比如蟑螂等,还有一些自己厌恶的蚊虫,可以上网找到其他动物讨厌的声音放到里面效果比较明显。
如果经常更换内置音乐还可以使使用效果更加明显,因为有一些蚊子可能会对声音产生抗体,经常更换音乐效果更佳,因为此程序设计简单,更换声音也很简单,所以可以做到随时修改,随时使用的灵活作用,这就是安卓程序的灵活之处。
5
第二章 系统的设计实现
2.1 结构设计
Android程序=Activity+xml+res+string.xml Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 Android结构其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗,一个活动中的Activity就是在 foreground模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止,甚至被系统清除。View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类,ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMapAndroid是以Linux为核心的手机操作平台,作为一款开放式操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序。
利用安卓程序的灵活性可以使电蚊香比较好的发挥自己的功能,并且死机情况较少,可以延长自己手机的使用寿命。Activity与Service之间失去焦点关联,所以为了随时取得访问开关的状态,这里将防蚊开关的FLAG设定为SharePreferences(press), 使之在Service里判断防蚊开关之后,开始播放声音、如果一旦发现防蚊开关为关闭,则停止播放声音。
6
2.2 设计实现
2.2.1 具体实现
电蚊香软件的界面就是如下图,为了给用户足够的空间把软件的菜单设置为menu菜单,因为才但不常用,并且作为这个界面menu菜单是最适合的选择。主界面的Menu菜,如下图2所示。
图1. 电蚊香软件的主界面 图2.主界面menu菜单
当点击离开的时候自动退出电蚊香软件,并且关闭声音,这样可以使用户不需要电蚊香的时候关闭电蚊香可以达到省电的目的。
7
1、电蚊香关闭界面
图3 图4
在图3当想在打开电蚊香,关闭电蚊香时,可以选在此功能,这样可以在开启电蚊香的时候关闭声音。进入图4这个页面的时候如果选择缺点则可以离开电蚊香程序,选择取消的时候可以返回到电蚊香用用界面继续使电蚊香工作。
8
2.2.2 代码实现
图5 图6
当开启到这个电蚊香开启的时候内置音乐必须开始播放而在OFF关闭的时候为了达到省电的效果必须让这个内置音乐叨叨关闭的效果如图6。因为本程序要涉及到播放声音这个功能,所以必须要内置一个声音播放器,一达到驱蚊的效果,此图是本程序的主观界面,Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,如下代码:
@Override
Public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.play_rack);}
该方法主要执行界面的初始化操作,Activity有个设置布局的方法: 9
Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为play_rack。
下面为play_rack.xml布局文件代码结构如下: <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout> <LinearLayout ></LinearLayout> <SeekBar></SeekBar> <LinearLayout></LinearLayout>
</AbsoluteLayout>
图7
当电蚊香想实现多种声音播放的功能时如图7这样(因为这样可以降低蚊子对此电蚊香的抵抗力比较推荐这种方法),就是用了这种办法本程序用了两个音乐:Android的线程的开始是通过Handler类来进行的,Handler类是线程与线程之间通信的桥梁,实现Runnable接口会实现里面的run方法,当线程开始的时候,Runnable中的run方法会向Handler发一个Message消息,这样,Handler类就可以接收到run方法发送过来的不同的消息进行不同的代码处理。这样就达到了各线程之间的通信。要启动一个线程调用Handler的方法postDelayed(Runnable,1000)表示线程睡眠时间是1000ms 。
myService继承自Service
Public class myservice extends Service
{
Private Sering my_prefs="Mosepre";
Priavte NotificationManager notManager;
Private int notiid=99;
Prvate mediaplayer myplayer;
}
10
此处的Myservice类继承自servic类,在servic的哦你create()时,通过
Shardpreferenceer的手法驱除防蚊开关的F拉个(0为关闭;1为启动),接着让服务处理Notificatinon及播放防蚊声音事件。
建立点击Notification留言条时 会运行activity
Intent notifyIntent=new Inter(this,dianwenxiang.class);
建立Notifyintent.seflage作为设置递延运行的(Intent.flag
activtty_new_task);
建立Pending inter activity并且设置相关参数
设置pendingIntent appIntent=pendingintent.getActivity并发出默认声音 myNoti.setlatesteventionf(this,"防蚊服务启动",icontext,appintent)
AlertDialog.Builder(EX10_08.this)
.setTitle("Message")
.setMessage("确定要离开吗?")
.setPositiveButton("确定",
此处代码为界面控制代码当这个代码点击确定或者点击离开后,就会自动退出这个程序并且关闭声音,电蚊香也就自动关闭了。
11
总 结
经过一些实际测试之后,会影响防蚊效果的因素有以下;声音声音太过小声,设偶记喇叭因扩大声波而衰减频率、蚊子的适应性等,所以在总结的地方可当成一个实验主题,研究手机喇叭播放声音衰减率、是否采用多个声音文件、随机播放不同频率的片段、导致让蚊子在短时间内达到适应性等、这些都是改良此程序或制作为贴身“防蚊”工具的必须研究路程,还有一个问题:在后台服务里持续播放这些高频率MP3(即使人类听不见),手机会在两个小时里没电。
本来以为软件开发是一件很简单的事情,只是动动脑动动手编些程序而已,通过这次亲自动手做改变了我的看法。做软件其实是一个很复杂而艰苦的工作,其中有很多的技巧和无奈,比如需求的分析是软件开发成功的前提条件,如果做不好将导致整个项目的失败,这也是目前国内乃至世界上软件开发失败的一个主要原因之一。
设计让我们把平时在书本上的理论知识得到了升华,对目前流行的软件开发方法和手段,有了一定的认识,丰富了软件开发的经验,提高了编制程序的水平,Tomcat、jsp、Sql server数据库以及NetBeans的使用增加了我的知识面。
通过这次设计,我感觉到平时学的知识是在遇到真正问题的时候往往是远远不够的,它需要我们通过之前所掌握的方法进行必要的充实和更新,这样才能更好的应用于实践,实践出真知,现在我能够清晰地认识到实践对于能力提高的重要性与必要性。
总结一下,本次设计让我学到了很多对我将来有用的东西,不仅是理论上的更多的是实践上的。同时也让我看到了自己的差距,要想在以后的工作中游刃有余,还需要更多的努力
12
参考文献
[1] 郭宏志. Android应用开发详解 电子工业出版社 20xx年5月,第一版
[2] 孙卫琴. Tomcat与JavaWeb开发 电子工业出版社 20xx年2月,第二版
[3] 赵松涛. SQL Server2000系统管理与应用开发 20xx年2月人民邮电出版 第一
版
[4] 吴玉亮译. NetBeans IDE 中文版用户指南 机械工业出版社 20xx年3月,第一版
[5] 高翔,何立军. JSP动态网站开发技术与实践. 电子工业出版社 20xx年4月,二版
13 第
信息工程学院
《Java项目实训》实践环节考核报告单
2011-2012学年度第一学期期末
排课编号:
批阅日期: 年 月 日
14
辽宁建筑职业学院Java高级应用实训报告课题名称婚庆公司网站专业软件技术班级xxxxxxxxxx学号姓名xxxx指导教师xxx二O…
实习报告一、实习时间20xx.01.08--20xx.05.18二、实习地点无锡NIIT软件服务外包实训基地三、实习目的进一步了解…
设计地点:软件三机房专业:计算机网络技术指导教师:***班级:20XX级计网班设计:***设计时间:20XX.12.31-20XX…
软件学院实训报告实训项目班级学号姓名上课时间教师签名实训报告详细内容包括一实训每日报告113一通过这节课我学到了1通过继承线程类T…
石河子大学《大学生创业培训》结课论文姓名:王鑫班级:机电学院09工业(1)班学号:20xx092754随着社会经济的不断发展和社会…
一周的C#编程实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!首先,在实训中的第一步是编写功能较为单一的小程序,虽然是小…
计算机实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西不懂呢!这是我大学以来第三次实训,每次实训我都感觉学到了…
创业培训感想——读万卷书,不如行万里路;行万里路,不如名师指路!短短的一个月的时间就这么稍纵即逝,在这次创业培训中我学到了不少课堂…
商务谈判实训心得姓名:卢超学号:0965123116班级:营销一班商务谈判实训心得经过一周的商务谈判实训,感悟很多,小组呼啦圈比赛…