源代码编译和调试共40页文档
- 格式:ppt
- 大小:2.59 MB
- 文档页数:40
C>EDIT MYFILE.ASM<CR>C>MASM MYFILE.ASM<CR>Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981,1988.All rights reserved.Object filename [MYFILE.OBJ]: <CR>Source listing [NUL.LST]: MYFILE.LST<CR>Cross-reference [NUL.CRF]: <CR>47962 + 413345Bytes symbol space free0 Warning Errors0 Severe ErrorsC>LINK MYFILE.OBJ<CR>Microsoft (R) Overlay Linker Version 3.64Copyright (C) Microsoft Corp 1983-1988. All rights reserved.Run File [MYFILE.EXE]: <CR>List File [NUL.MAP]:<CR>Libraries [.LIB]: <CR>LINK : warning L4021: no stack segmentC>MYFILE<CR>利用debug调试宏汇编程序debug.exe是DOS系统自带的汇编调试软件,debug命令是DOS的内部命令,只要进入DOS系统在任何目录下都可以运行。
debug调试程序有多种命令,可以显示修改内存、汇编、反汇编、单步运行程序,中断运行程序等,是调试汇编程序的常用工具。
调试步骤:首先编写源程序,可以用任何文本文字(不带格式符)编辑系统编写源程序,如Windows 下的记事本,在这里我们一般使用DOS下的文本编辑器edit.exe,与debug.exe一样,edit也是DOS系统的内部命令,在任何目录下都可以运行。
TC论坛rainshine原创,转载麻烦各位带上原创作者名字……谢谢。
为防沉,一部分内容回复可见。
首先打开TC,主界面左上方有调试栏。
分别给大家解释下每个按钮的功能——运行:以调试模式运行脚本。
单步调试:脚本运行遇到断点后,单击此按钮可以一条语句一条语句地执行,每执行一条语句就会暂停。
过程调试:脚本运行遇到断点后,单击此按钮可以让脚本继续执行下去,直到遇到下个断点才停下。
停止调试:以调试模式运行脚本时,单击此按钮可以结束进程,退出脚本。
新建/删除断点:编写脚本时,在某个语句上加个断点。
删除所有断点:顾名思义,把此文件中添加的所有的断点都删除掉。
上面提到了一个名词:断点。
什么是断点呢,从脚本源码编辑框看,就是个小小的黄圈圈。
在代码左边、行数右边的地方单击鼠标就可以添加一个断点。
脚本在运行过程中(调试模式,生成为exe文件运行是不会有断点的,以下均为调试模式运行),实际上是在执行一行一行的源码,当执行到有断点的语句时(准确地说是执行此语句前,举个例子:这段代码给a=20添加了一个断点,程序运行到此行的时候就会停下来,此刻a的值是10不是20,也就是说,a=20还未执行。
),就会暂停下来。
此时我们可以看到TC界面下方的输出栏里:。
单击,可以看到此刻程序内所有变量的具体值:。
右击某个变量,在弹出的菜单中可以复制它的数值(例如第一个变量:" programming! by_rainshine.")。
也可以单击“复制整行”将此变量的所有信息写入剪贴板(例如:网络应用字符串字符型" programming! by_rainshine.")。
而单击“十六进制显示”,可以将“整型”的变量以16进制的方式显示出来:。
如果某个变量是数组,,单击一下右边的数值,就出现一个下拉框,单击右边的小箭头,就能看到数组所有元素的值啦。
当变量很多时,或者在分析整个代码的时候,看表格找变量值是很不方便的。
实验二程序的编译与调试第一部分配置本地计算机与虚拟机的通讯一、配置本地计算机的vmnet1网络接口1、由开始→控制面→网络连接2、双击VMware Network Adapter VMnet1接口→在“VMware Network Adapter VMnet1”状态对话框中选择属性按钮3、在“VMware Network Adapter VMnet1”属性对话框中双击“Internet协议(TCP/IP)”→出现“Internet协议(TCP/IP)属性”对话框例:若VMnet1的IP地址为:10.64.254.77子网掩码为:255.255.255.0那么:虚拟机中Linux设置的IP地址必须是:10.64.254.xx其中xx表示:1~254二、配置虚拟机1、打开虚拟机,但不要执行Power on this virtual machine→而是双Network Adapter2、在出现的“Virtual Machine Setting”对话框中确保选中“Host-only”选项→确定按钮3、选择“Power on this virtual machine”启动虚拟机三、配置Linux网络接口的IP地址1、使用root用户登录linux操作系统后,执行netconfig命令,将linux计算机IP地址设置为与本地计算机的VMnet1网络接口的IP地址处于同一网段,设置完成后输入reboot重启linux操作系统例:若VMnet1的IP地址为:10.64.254.77子网掩码为:255.255.255.0那么:虚拟机中Linux设置的IP地址必须是:10.64.254.xx其中xx表示:1~2542、在本地计算由http://202.204.125.59/~gaobao/下载ssh_pshell,打开ssh_pshell连接虚拟机,以root 用户登录第二部分gcc编译器的使用作业:编译如下程序,并填写程序的输出结果:1、源代码---Pointer.c#include <stdio.h>int main(){int a = 100, b = 200;int *p1 = &a, *p2 = &b;printf(“%d, %d\n”,a,b);printf(“%d,%d\n”,*p1, *p2);printf(“%x,%x\n”,&a,&a);printf(“%x,%x\n\n”,p1,p2);*p1 = *p1*3;Printf(“%d\n”,a);Printf(“%d\n\n”,*p1);p1 = &b;printf(“%x\n”,p1);printf(“%x\n”,p2);return 0;}2、编译:#gcc –o pointer pointer.c3、执行#./point(二)、运行结果需要的技能0、vi编辑器的使用Vi是广泛应用于各种unix和Linux系统中的文本编辑器,它是标准的Linux文本编辑程序。
TC论坛rainshine原创,转载麻烦各位带上原创作者名字……谢谢。
为防沉,一部分内容回复可见。
首先打开TC,主界面左上方有调试栏。
分别给大家解释下每个按钮的功能——运行:以调试模式运行脚本。
单步调试:脚本运行遇到断点后,单击此按钮可以一条语句一条语句地执行,每执行一条语句就会暂停。
过程调试:脚本运行遇到断点后,单击此按钮可以让脚本继续执行下去,直到遇到下个断点才停下。
停止调试:以调试模式运行脚本时,单击此按钮可以结束进程,退出脚本。
新建/删除断点:编写脚本时,在某个语句上加个断点。
删除所有断点:顾名思义,把此文件中添加的所有的断点都删除掉。
上面提到了一个名词:断点。
什么是断点呢,从脚本源码编辑框看,就是个小小的黄圈圈。
在代码左边、行数右边的地方单击鼠标就可以添加一个断点。
脚本在运行过程中(调试模式,生成为exe文件运行是不会有断点的,以下均为调试模式运行),实际上是在执行一行一行的源码,当执行到有断点的语句时(准确地说是执行此语句前,举个例子:这段代码给a=20添加了一个断点,程序运行到此行的时候就会停下来,此刻a的值是10不是20,也就是说,a=20还未执行。
),就会暂停下来。
此时我们可以看到TC界面下方的输出栏里:。
单击,可以看到此刻程序内所有变量的具体值:。
右击某个变量,在弹出的菜单中可以复制它的数值(例如第一个变量:" programming! by_rainshine.")。
也可以单击“复制整行”将此变量的所有信息写入剪贴板(例如:网络应用字符串字符型" programming! by_rainshine.")。
而单击“十六进制显示”,可以将“整型”的变量以16进制的方式显示出来:。
如果某个变量是数组,,单击一下右边的数值,就出现一个下拉框,单击右边的小箭头,就能看到数组所有元素的值啦。
当变量很多时,或者在分析整个代码的时候,看表格找变量值是很不方便的。
汇编语言的编译、调试实验日期:20124202.1. 1实验目的1、熟练掌握编写汇编语言源程序的基本方法和基本框架。
2、学会编写顺序结构和简单分支的汇编语言程序3、掌握汇编语言的上机过程。
2. 1 . 2实验内容假设有一组数据:5,-4 , 0, 3, 100, -51,请编一程序,判断:每个数是否大于0? 等于0?还是小于0,将判断结果存放在数组后的连续单元中。
即:1 「当X > 0Y= J 0 当X = 0 -1 当X < 02. 1 . 3实验要求1、实验前准备①分析题目,将程序中的原始数据和最终结果的存取方式确定好。
②写出算法或画出流程图。
③写出源程序。
④对程序结果进行分析,并准备好上机调试过程。
2、编写完整的汇编语言程序,要求在编辑软件下(如: EDIT)写程序,通过汇编(MASM、连接(LINK)生成执行文件,跟踪调试(DEBUG。
2. 1 . 4编程提示①首先将原始数据(5, -4 , 0, 3, 100, -51、装入起始地址为XX的字节存储单元中。
②将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。
③其中判断部分可采用CMP旨令,得到一个分支结构,分别存放判断结果“0” “1 ”“-1 ”④程序中存在一个循环结构,循环6次。
⑤参考程序流程图,如图2-12. 1 . 5实验报告1、调试说明上机调试的情况:上机调试步骤,调试过程中所遇到的问题是如何解决的。
对调试过程中的问题进行分析,对执行结果进行分析。
2、画出程序框图3、写出程序清单和执行过程。
4、谈实验体会及对汇编语言上机过程的理解。
源代码编译【实验名称】:源代码编译【实验环境】:RedhatA:192.168.18.1 255.255.255.0Windows Xp:192.168.18.100 255.255.255.0 网关:192.168.18.1 【实验目标】:1. 重新编译安装2.iptables编译安装【实验步骤】:重新编译安装RedhatA:1.修改内存为512MB2..取消多余模块(nfslock)-----ntsysv3.挂载光盘:Layer7.isoMount /dev/cdrom /media/4.跳转到src下解压文件释放内核源码包,Cd /usr/srctar zxvf /media/linux-2.6.28.10.tar.gztar zxvf /media/netfilter-Laryer7-v2.22.tar.gz5. 合并并打补丁Cd linux-2.6.28.10/patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch6.配置内核编译参数cp /boot/config-2.6.18-164.el5 .config7.在源码目录中执行―make menuconfig‖命令⑴选择networking support -→⑵选择networking options-→⑶选择networking packet filtering framwork -→⑷选择Core netfilter configuration-→①<M>netfilter connection traceking support②<M>laryer7③<M>―time‖ match support④<M>"string" match support⑤<M>"connlimit" match support"⑥<M>―iprange‖ address range match support⑦<M>―state‖ match support⑧<M>"mac" address match support⑨选择exit后退⑸选择IP netfilter configuration①选择<M>IPv4 connection tracking support (require for NAT)”②<M>Full NAT③选择exit退出并保存(YES)8.编译内核的模块文件、执行程序--------make9.安装编译好的模块文件-----执行make modules__install 命令查看配置:ll /lib/ modulesll /lib/ modules/2.6.28.10/ll /boot10.安装编译好的内核执行程序-----执行make install 命令11.查看配置----cat /etc/grup.conf12.重启(reboot)长按“↓”选择linux-2.6.28.1013.以root登录,用命令:uname –r 查看版本重新编译安装iptables工具RedhatA:1.挂载光盘Layer7.iso拷贝iptables文件和layer7文件到根下cp /media/iptables-1.4.7.tar.bz2 。
(1),error: error reading file 'C:\CCStudio_v3.3\MyProjects\ad\cc_build_Debug.log': file too short>> Compilation failure(2),undefined first referencedsymbol in file--------- ----------------FS$$MPYC:\CCStudio_v3.3\MyProjects\cputimer\Debug\DSP28_CpuTimers.objFS$$TOLC:\CCStudio_v3.3\MyProjects\cputimer\Debug\DSP28_CpuTimers.obj>> error: symbol referencing errors - './Debug/cputimer.out' not built解决:将rts2800.lib项目连接的库改成rts2800_ml.lib(3),Can't Run Target CPU: Can't write to data memory 0x950, check memory config [-2184] Can't Run Target CPU: Can't write to data memory 0x951, check memory config [-2184]Can't Run Target CPU: Can't write to data memory 0x952, check memory config [-2184]Can't Run Target CPU: Can't write to data memory 0x953, check memory config [-2184]Can't Run Target CPU: Can't write to data memory 0x954, check memory config [-2184]解决:// On TMX samples, to get the best performance of on chip RAM blocks M0/M1/L0/L1/H0 internal// control registers bit have to be enabled. The bits are in Device emulation registers./* DevEmuRegs.M0RAMDFT = 0x0300;DevEmuRegs.M1RAMDFT = 0x0300;DevEmuRegs.L0RAMDFT = 0x0300;DevEmuRegs.L1RAMDFT = 0x0300;DevEmuRegs.H0RAMDFT = 0x0300;*/直接删掉就行,那段代码是测试版为了提高性能的代码,到正式版的时候地址被保留,再加上的话就出错了(4),编译错误declaration may not appear after executable statement in block系统初始化前没有进行变量的定义如下例:InitSysCtrl();unsigned int temp=0x0001; unsigned int i,j;(5),编译警告:last line of file ends without a newline解决:将光标移到提示告警的代码最后一行(有代码的那一行),然后按住del键,直到确定下面没有回车行,最后回车一下或多下即可。
实验2汇编源程序编写与汇编、调试四、实验结论1. 实验任务1使⽤任意⼀款⽂本编辑器,编写8086汇编源程序ex1.asm。
源代码如下:assume cs:codecode segmentmov ax,0b810hmov ds,axmov byte ptr ds:[0],1mov byte ptr ds:[1],1mov byte ptr ds:[2],2mov byte ptr ds:[3],2mov byte ptr ds:[4],3mov byte ptr ds:[5],3mov byte ptr ds:[6],4mov byte ptr ds:[7],4mov ah,4chint 21hcode endsend 要求:使⽤8086汇编程序编写、汇编、链接、运⾏、调试⽅法,对ex1.asm进⾏汇编、链接、运⾏,使⽤debug⼯具调试可执⾏⽂件。
1)ex1.asm源代码(使⽤⽂本编辑器):2)使⽤masm、link⼯具汇编、链接的命令⾏及运⾏结果截图:3)给出使⽤debug调试的截图①进⼊debug调试环境,通过r命令查看当前寄存器的状态由上图的DS=075A,可知PSP的地址为075A:0。
使⽤d命令查看程序段前缀PSP所占的256个字节,截图如下:②结合可执⾏⽂件加载后,可知寄存器CX的值为0031H,使⽤u命令精确反汇编截图③使⽤g命令执⾏到line16退出执⾏之前,操作截图如下:2. 实验任务2使⽤任意⼀款⽂本编辑器,编写8086汇编源程序ex2.asm。
源代码如下:; ex2.asmassume cs:codecode segmentmov ax, 0b810hmov ds, axmov bx, 0mov ax, 101Hmov cx, 4s: mov [bx], axadd bx, 2add ax, 101Hloop smov ah, 4chint 21hcode endsend 要求:使⽤8086汇编程序编写、汇编、链接、运⾏、调试⽅法,对ex2.asm进⾏汇编、链接、运⾏,使⽤debug⼯具调试可执⾏⽂件。
C语言编译与调试
源文件为hello.c
一:
预处理阶段:——E预处理处理以#开头的指令,包含
1文件包含,<stdio.h>或”xxxx.h”
2宏定义,#define
3条件编译。
#if
二:
编译阶段:将预处理后的文件编译成汇编语言文件。
同时进行词法和语法分析,找出不符合的东西,并给出错误、警告,或终止消息。
-S
三:
汇编阶段:将用汇编语言写的源程序转换成二进制形式的目标代码。
-c
四:
连接阶段:解决外部符号访问地址问题,将有关目标文件彼此相连,使其能够被操作系统装入执行的可执行文件。
有静态和动态链接两种。
gcc -E hello.c -o hello.e 预处理-e ,–o保存为hello.e
gcc -S hello.e -o hello.s 编译–S ,
gcc -c hello.s 汇编-c,默认生成.o结尾的二进制文件,
(vim hello.o :%!xxd 查看,:%!xxd -r 退出,)
gcc hello.o -o hello 链接。
2.5 程序的编译、运行和调试(1)2.5.1 编译和运行应用程序开发的最后一步就是编译、运行,检查程序错误,并提供用户最终可使用的程序。
Delphi 7提供了两种方法对程序进行编译:(1)使用Project菜单中的Compile命令。
该命令编译当前项目中所有修改过的文件(自上次生成执行文件以来),生成可执行的EXE文件。
如果使用项目组,且要编译项目组中的所有项目,使用Compile All Projects命令。
(2)使用Project菜单中的Build命令。
该命令编译当前项目中的所有文件,生成可执行的EXE文件,而不管这些文件修改没有。
如果使用项目组,且要编译项目组中所有项目,使用Build All Projects命令。
Delphi 7编译器在生成EXE文件时,遵循下列规则:(1)项目文件(.DPR)每次都要被编译。
(2)如果一个单元的源代码自上次编译后修改过,该单元就要再编译。
单元编译后,会生成一个带有.DCU扩展名的文件。
(3)如果Delphi不能定位一个单元的源代码,则那个单元不被编译。
(4)如果一个单元的interface(接口)部分被修改,则所有使用到该单元的单元都要被重新编译。
(5)如果一个单元连接了一个OBJ文件,则OBJ文件一旦被修改,该单元也要被编译。
(6)如果一个单元包含一个Include文件,则Include文件一旦被修改,该单元也要被修改。
为了显示编译进度和结果,可以选择Tools菜单中Environment Options命令,在对话框中选择Preferences选项卡,从中选择Show compile progress(显示编译进度)选项。
如图2.21所示。
如果程序编译成功,单击OK按钮,关闭编译对话框。
如果遇到错误,Delphi 7在代码编辑器的状态行报告错误,并把光标定位在包含错误代码的程序行上。
出错后的窗体界面如图2.22所示。
要运行程序,可以使用Run菜单中的Run命令,或单击加速条上的Run按钮。
J a v a固定资产管理系统源代码(共40页)-本页仅作为预览文档封面,使用时请删除本页-;import public class user_land extends JFrame implements ActionListener{static Connection conn=null;static Statement stat=null;static ResultSet rs=null;static String url="jdbc:;DatabaseName=_Property";static String user="sa";static String password="";JPanel p1,p2,p3,p4,p5;JLabel lbl1,lbl2,lbl3,lbl4;JTextField txt_name;JPasswordField txt_pwd;JButton btn1,btn2,btn3;static{try{("");}catch(Exception e){"加载驱动失败");();}}public user_land(){("固定资产及设备用户登录");p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p5=new JPanel();lbl1=new JLabel("欢迎登录");lbl2=new JLabel("用户名:");lbl3=new JLabel("密码:");lbl4=new JLabel();txt_name=new JTextField(10);txt_pwd=new JPasswordField(10);btn1=new JButton("登录");btn2=new JButton("清空");btn3=new JButton("退出");(lbl2);(txt_name);(lbl3);(txt_pwd);(btn1);(btn2);(btn3);(lbl4);(new GridLayout(5,1));(p1);(p2);(p3);(p4);(p5);(400, 300, 400, 300);(EXIT_ON_CLOSE);(true);quals("")==true)&&().equals("")==false))("登录失败,用户名不能为空");if(().equals("")==false)&&().equals("")==true))("登录失败,密码不能为空");if(().equals("")==true)&&().equals("")==true))("登录失败,用户名/密码不能为空");if(is_Property()){newSys_interface().show();}elseif(().equals("")==false)&&().equals("")==false))("登录失败,用户名/密码错误");}}(this);how();}});(this);(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {new user_land().show();}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new Pass_word().show();}});(new ActionListener(){public void actionPerformed(ActionEvente) {(0);}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new loan_prop_manage().show();}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new property_Info().show();}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new prop_info_select().show();}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new Loan_prop_select().show();}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new back_prop_select ().show();}});(new ActionListener(){public void actionPerformed(ActionEvent e) {new about().show();}});(200,200,500,400);(EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {how();}};import import import .*;import import .*;import import import import importimport import import import importpublic class loan_prop_manage extends JFrame implements ActionListener{Vector<Vector> data=null;DefaultTableModel model = null;Connection conn=null;Statement stat=null;ResultSet rs1=null;JTable loan_prop=null;JLabel label;JTextField text;JTextField txt01,txt02,txt03,txt04,txt05,txt06;JPanel p1=null,p2=null,p3=null,p4,p5,p6,p7,p8,p9,p10;Choice c1=null,c2=null;JLabellb1=null,lb2=null,lb3=null,lb4=null,lb5=null,lb6=null;JButton btn_ok=null;JButton btn_exit=null;JButton btn_fresh=null;JButton btn_save=null;JButton btn_del=null;Vector<String> columnName=new Vector();public loan_prop_manage(){text=new JTextField();("资产编号");("资产名称");("资产型号");("借出时间");("借出数量");("借出人");p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p5=new JPanel();p6=new JPanel();p7=new JPanel();p8=new JPanel();p9=new JPanel();p10=new JPanel();lb1=new JLabel("资产编号");lb2=new JLabel("资产名称");lb3=new JLabel("资产型号");lb4=new JLabel("借出时间");lb5=new JLabel("借出数量");lb6=new JLabel("借出人");txt01=new JTextField(8);txt02=new JTextField(8);txt03=new JTextField(8);txt04=new JTextField(8);txt05=new JTextField(8);txt06=new JTextField(8);c1=new Choice();c2=new Choice();text=new JTextField(5);("资产编号");("=");btn_ok=new JButton("确定");btn_exit=new JButton("退出");btn_fresh=new JButton("刷新");btn_save=new JButton("保存");btn_del=new JButton("删除");(new JLabel("查询字段"));(c1);(new JLabel("运算符"));(c2);(new JLabel("输入数据"));(text);(btn_ok);(btn_exit);("请操作"));(lb1);(txt01);(lb2);(txt02);(lb3);(txt03);(lb4);(txt04);(lb5);(txt05);(lb6);(txt06);(btn_fresh);(btn_save);(btn_del);(new GridLayout(3, 2));(p3);(p4);(p5);(p6);(p7);(p8);loan_prop=new JTable(),columnName);model = new DefaultTableModel(getDate(),columnName);(new JScrollPane(loan_prop));(new GridLayout(4, 1));(p1);(p9);(p2);(p10);(400,300,500,400);(EXIT_ON_CLOSE);("资产借出管理");(new ActionListener(){public void actionPerformed(ActionEvent arg0){try{("");conn=("jdbc:;DatabaseName=_property","sa","");stat=();String sql="insert into loan_info (prop_name,prop_type,loan_time,loan_num)"+"values('"+()+"','"+()+"',' "+()+"','"+()+"')";(sql);DefaultTableModel mod= new DefaultTableModel(getDate(),columnName);(mod);();();}catch(Exception e){}try{if(rs1!=null){();}if(stat!=null){();}if(conn!=null){();}}catch(Exception e2){"关闭失败");();}}});(new ActionListener(){public voidactionPerformed(ActionEvent e) {DefaultTableModel dtb=new DefaultTableModel(selectDate(),columnName);(dtb);();();}});/*(new ActionListener(){public void actionPerformed(ActionEventarg0){}});*/(this);(new ActionListener(){public void actionPerformed(ActionEventarg0){DefaultTableModel mod = new DefaultTableModel(getDate(),columnName);(mod);();();}});().addListSelectionListener(new ListSelectionListener(){public voidvalueChanged(ListSelectionEvent e){(new ActionListener(){public void actionPerformed(ActionEvent arg0){try{int j= ();("");conn=("jdbc:;DatabaseName=_property","sa","");stat=();String sql1="delete from loan_info where prop_id="+""+(j).get(0)+"";(sql1);}catch(Exception ee){}finally{try{if(rs1!=null){();}if(stat!=null){();}if(conn!=null){();}}catch(Exception e2){"关闭失败");();}}DefaultTableModel mod = newDefaultTableModel(getDate(),columnName);(mod);();();}});}});().addListSelectionListener(new ListSelectionListener(){public voidvalueChanged(ListSelectionEvent e){int i= ();(i).get(0).toString());((String)(i).get(1));((String)(i).get(2));(i).get(3).toString());(i).get(4).toString());(i).get(5).toString());}});}public Vector selectDate(){data=new Vector<Vector>();try{("");conn=("jdbc:;DatabaseName=_property","sa","");stat=();int x=().trim());how();}public void actionPerformed(ActionEvent e) {;import class Loan_prop_select extends JFrame implements ActionListener{Connection conn=null;Statement stat=null;ResultSet rs=null;JTable table=null;JLabel label;JTextField text;JButton btn_ok=null,btn_exit=null;JPanel p1=null,p2=null;Vector<String> columnName=new Vector();public Loan_prop_select(){("资产借出查询");("流水号");("资产编号");("借用人");("借出数量");("借出时间");p1=new JPanel();p2=new JPanel();text=new JTextField();text=new JTextField(5);btn_ok=new JButton("查询");btn_exit=new JButton("退出");(new JLabel("资产编号"));(text);(btn_ok);(btn_exit);("数据查询"));(this);table=new JTable(),columnName);(new BorderLayout());(p1,;(new JScrollPane(table),;(400,300,500,400);(EXIT_ON_CLOSE);(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {DefaultTableModel dtm=new DefaultTableModel(selectDate(),columnName);(dtm);();();}});}public Vector selectDate(){Vector<Vector> data=new Vector<Vector>();try{("");conn=("jdbc:;DatabaseName=_property","sa","");stat=();int x=().trim());how();}public void actionPerformed(ActionEvent e) {;import class back_prop_select extends JFrame implements ActionListener {Vector<Vector> data=null;DefaultTableModel model=null;Connection conn=null;Statement stat=null;ResultSet rs=null;JPanel pa1,pa2;JButton btn1,btn2;JTable tab=null;JTextField tex=null;JTextField txt1,txt2,txt3,txt4,txt5;JLabel lab1,lab2,lab3;Vector columnName=new Vector(); public back_prop_select(){("流水号");("资产编号");("借用人");("借用数量");("借用时间");("归还数量");("归还时间");pa1=new JPanel();pa2=new JPanel();btn1=new JButton("确定");btn2=new JButton("退出");lab1=new JLabel("查询字段:");lab2=new JLabel("借用人");tex=new JTextField(5);tab=new JTable(),columnName);txt1=new JTextField(10);txt2=new JTextField(10);txt3=new JTextField(10);txt4=new JTextField(10);txt5=new JTextField(10);(lab1);(lab2);(tex);(btn1);(btn2);(tab);model = new DefaultTableModel(getDate(),columnName);tab=new JTable(model);("查询参数"));(new JScrollPane(tab));("资产归还查询");(new BorderLayout());(pa1,;(new JScrollPane(tab));(300,200,500,300);(EXIT_ON_CLOSE);ddListSelectionListener(new ListSelectionListener(){public voidvalueChanged(ListSelectionEvent e) {int x=();((String)(x).get(0));((String)(x).get(1));((String)(x).get(2));((String)(x).get(3));(x).get(4).toString());}});*/ddListSelectionListener(new ListSelectionListener(){public void valueChanged(ListSelectionEvent e) {int x=();((String)(x).get(0));((String)(x).get(1));((String)(x).get(2));(x).get(3).toString());}});*/(this);}public Vector getDate(){Vector<Vector> data=new Vector<Vector>();try{("");conn=("jdbc:;DatabaseName=Property","sa","123");stat=();rs=("select * from loan_Info");while()){Vector al=new Vector();("loan_id"));("prop_id"));("u_id"));("loan_time"));("loan_num"));(al);}}catch(Exception e){}finally{rim()+"'";rs=(lab1);while()){Vector back=new Vector();("loan_id"));("prop_id"));("u_id"));("loan_time"));("loan_num"));(back);}}catch(Exception e){}finally{how();}public void tableChanged(TableModelEvent e) {}public void actionPerformed(ActionEvent e) {(false);}};import .*;import .*;import .*;import class property_Info extends JFrame implements ActionListener {Connection conn=null;Statement stat=null;ResultSet rs=null;JPanel p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12;JButton b1,b2,b3,b4,b5;JLabel l1,l2,l3,l4,l5,l6,l7,l8,l9,l10;JTextField t1,t2,t3,t4,t5,t6,t7,t8,t9,text_show;JTable table=null;JComboBox cob;String sql;Vector<String> columnName=new Vector();public property_Info(){p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p5=new JPanel();p6=new JPanel();p7=new JPanel();p8=new JPanel();p9=new JPanel();p10=new JPanel();p11=new JPanel();p12=new JPanel();b1=new JButton("刷新");b2=new JButton("存盘");b3=new JButton("退出");b4=new JButton("删除");b5=new JButton("确定");l1=new JLabel("产品编号");l2=new JLabel("产品名称");l3=new JLabel("产品类型");l4=new JLabel("产品总量");l5=new JLabel("产品价格");l6=new JLabel("产品厂商");l7=new JLabel("购买日期");l8=new JLabel("出产日期");l9=new JLabel("购买人"); l10=new JLabel("产品名称");t1=new JTextField(10);t2=new JTextField(10);t3=new JTextField(10);t4=new JTextField(10);t5=new JTextField(10);t6=new JTextField(10);t7=new JTextField(10);t8=new JTextField(10);t9=new JTextField(10);text_show=new JTextField(10);("产品编号");("产品名称");("产品类型");("产品总量");("产品价格");("产品厂商");("购买时间");("出厂日期");("购买人");cob = new JComboBox();(l2);(t2);(l3);(t3);(l4);(t4);(l5);(t5);(l6);(t6);(l7);(t7);(l8);(t8);(l9);(t9);(p4);(p5);(p6);(p7);(p8);(p9);(p10);(p11);(b1);(b2);(b3);(b4);(l10);("产品编号"); ("产品名称"); ("产品类型");(cob);(text_show);(b5);(p12);(p1);(p2);(p3);table=new JTable(),columnName);(new FlowLayout());(new GridLayout(4,1));(new FlowLayout());(new GridLayout(4,2));(new JScrollPane(table));(400,400,600,400);(true);("资产信息管理表");(EXIT_ON_CLOSE);(new ActionListener() {public void actionPerformed(ActionEvent arg0) {oString();int y=().trim());;importpublic class prop_info_select extends JFrame implements ActionListener{Connection conn=null;Statement stat=null;ResultSet rs=null;JTable table=null;JLabel label;JTextField text;JButton btn_ok=null,btn_exit=null;JPanel p1=null,p2=null;Choice c1=null,c2=null;public static void main(String[] args) {new prop_info_select().show();}Vector<String> columnName=new Vector();public prop_info_select(){("资产设备信息情况查询");(0, 0, 500, 300);(new FlowLayout());JTable prop_info=null;("设备编号");("设备名称");("设备型号");("设备数量");("库存数量");("设备价格");("出厂商家");("生产时间");("购买时间");("购买者");p1=new JPanel();p2=new JPanel();c1=new Choice();c2=new Choice();text=new JTextField();;text=new JTextField(5);("设备编号");("=");btn_ok=new JButton("确定");btn_exit=new JButton("取消");(new JLabel("查询字段"));(c1);(new JLabel("运算符"));(c2);(new JLabel("数量"));(text);(btn_ok);(btn_exit);("查询数据"));(new ActionListener() {public void actionPerformed(ActionEvent arg0) {DefaultTableModel dtm=new DefaultTableModel(selectDate(),columnName);(dtm);();();}});(this);table=new JTable(),columnName);(new BorderLayout());(p1,;(new JScrollPane(table),;(400,300,500,400);(EXIT_ON_CLOSE);}public Vector selectDate(){Vector<Vector> data=new Vector<Vector>();try{("");conn=("jdbc:;DatabaseName=_property","sa","");stat=();int x=().trim());how();}}how();}}注:本系统由第四小组共同完成。