第一篇:實驗三GUI編程
實驗三GUI編程
一、實驗目的:
1、了解Java系統圖形用戶界面的基本工作原理和界面設計的步驟
2、了解圖形用戶界面的事件響應機制.3、掌握圖形用戶界面各種常用的基本組件的使用方法及其事件響應.4、掌握圖形用戶界面各種布局策略的設計與使用.二、實驗時間:
三、實驗地點:
四、實驗內容與步驟:
(1)創建一用戶登錄界面,接受用戶輸入的帳號和密碼,給三次輸入機會。
(2)編寫成人身高和體重檢查程序。
要求:身高和體重在兩個不同的文本框中輸入,性別在單選鈕中選擇。
按確定后顯示標準體重和身材比例評價。附:
國際上常用的人的體重計算公式,以及身材比例計算(比較適合東方人)標準體重=(身高cm-100)x0.9(kg)
標準體重(女)=(身高cm-100)x0.9(kg)-2.5(kg)
正常體重:標準體重+-(多少)10%.
超重:大于標準體重10%小于標準體重20%.
輕度肥胖:大于標準體重20%小于標準體重30%.
中度肥胖:大于標準體重30%小于標準體重50%.
重度肥胖:大于標準體重50%以上
(3)實現一個模擬手機的圖形用戶界面,包括一個顯示區和一個鍵盤區,顯示區用來顯示數字和信息,鍵盤區包括0~9,10個數字鍵和“發送”、“清零”、“關機”三個命令鍵。當用戶按數字鍵時,相應的數字回顯在顯示區上;當用戶按“清零”鍵時,顯示區的數字清空;當用戶按“發送”鍵時,顯示區中出現當前的號碼和“撥號中......”的信息;當用戶按關機鍵時“正在關機......”。
第(1)用Application編程,(2)(3)用Applet編程。
五、實驗結果分析:
第二篇:java GUI圖形化界面編程總結
GUI(Graphical User Interface)圖形化界面編程總結 Java.Awt:Abstract Window ToolKit(抽象窗口工具包)Javax.Swing:
圖形化界面基本設置:
設置窗體大小:setSize(長,寬);
設置窗體位置:setLocation(距離左,距離上);setBounds(長,寬,距離左,距離上);設置布局:setLayout(new FlowLayout()); 使窗體可見:setVisible(true); 事件監聽機制:
事件監聽機制的特點: 1,事件源。2,事件。3,監聽器。4,事件處理。
事件源:就是awt包或者swing包中的那些圖形界面組件。事件:每一個事件源都有自己特有的對應事件和共性事件。
監聽器:將可以觸發某一個事件的動作(不只一個動作)都已經封裝到了監聽器中。
以上三者,在java中都已經定義好了。直接獲取其對象來用就可以了。
我們要做的事情是,就是對產生的動作進行處理
Eg:編寫程序,練習圖形化界面編程!import java.awt.*;import java.awt.event.*;import java.io.*;class MyWindowDemo { private Frame f;private TextField tf;private Button but;private TextArea ta;
private Dialog d;private Label lab;private Button okBut;
MyWindowDemo(){ init();} public void init(){ f = new Frame(“my window”);f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());tf = new TextField(60);but = new Button(“轉到”);ta = new TextArea(25,70);d = new Dialog(f,“提示信息-self”,true);d.setBounds(400,200,240,150);d.setLayout(new FlowLayout());lab = new Label();okBut = new Button(“確定”);d.add(lab);d.add(okBut);f.add(tf);f.add(but);f.add(ta);myEvent();f.setVisible(true);} private void myEvent(){
okBut.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){
d.setVisible(false);} });d.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){
d.setVisible(false);} });
tf.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ENTER)
showDir();} });
} but.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){
showDir();
} });f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){
System.exit(0);
} });private void showDir(){ String dirPath = tf.getText();
File dir = new File(dirPath);
if(dir.exists()&& dir.isDirectory()){ ta.setText(“");String[] names = dir.list();for(String name : names){
ta.append(name+”rn“);} } else
{
String info = ”您輸入的信息:“+dirPath+”是錯誤的。請重輸“;
lab.setText(info);
d.setVisible(true);
} }
public static void main(String[] args){
new MyWindowDemo();} }
菜單:
MenuBar 菜單整體;Menu 包含于MenuBar中;MenuItem包含于Menu中!以上3個關系添加用add();
將MenuBar放進Frame中用setMenuBar();
FileDialog.LOAD:打開的mode FileDialog.Save:保存的mode 練習:一個簡易的記事本 /** 寫一個關于記事本的小程序 @author田建 @version v1.1 */
import java.awt.*;import java.awt.event.*;import java.io.*;class MyMenuDemo { private Frame f;private TextArea ta;private MenuBar mb;private Menu me;private MenuItem miNew,miSave,miLoad;private File file;
private FileDialog openDia,saveDia;
MyMenuDemo(){
init();}
public void init(){
f=new Frame(”田建--記事本“);
f.setBounds(300,100,650,600);
ta=new TextArea();
//ta.setBounds(302,105,400,300);//f.setLayout(new FlowLayout());//為什么設置成了流式布局之后再設置文本區域沒有效果
mb=new MenuBar();
me=new Menu(”文件(F)“);
miNew=new MenuItem(”新建“);
miSave=new MenuItem(”保存(S)“);
miLoad=new MenuItem(”打開(O)“);
mb.add(me);
me.add(miNew);
me.add(miLoad);
me.add(miSave);
f.setMenuBar(mb);
f.add(ta);
openDia=new FileDialog(f,”打開文件“,FileDialog.LOAD);
saveDia=new FileDialog(f,”保存文件“,FileDialog.SAVE);
myEvent();
f.setVisible(true);
}
public void myEvent(){
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
miLoad.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
openDia.setVisible(true);
String dirPath=openDia.getDirectory();
String fileName=openDia.getFile();
if(dirPath==null||fileName==null)
return;
ta.setText(”“);
file=new File(dirPath,fileName);
try
{
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null)
{
ta.append(line+”rn“);
}
bufr.close();
}
catch(IOException ex)
{
throw new RuntimeException(”讀取失敗“);
}
}
});
miSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDia.setVisible(true);
String dirPath=saveDia.getDirectory();
String fileName=saveDia.getFile();
if(dirPath==null||fileName==null)
return;
file=new File(dirPath,fileName);
}
try
{
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bufw.write(text);
bufw.close();
}
catch(IOException ex)
{
throw new RuntimeException(”");
}
} });
} public static void main(String[] args){
new MyMenuDemo();}
} 打jar包的過程:
1、編譯包 jar –cvf jar名 包名
2、寫一個文件main-class: 包名.類名【加個回車】
3、jar –cvfm jar名 文件名 包名
配置jar執行的過程:
工具---文件夾選項---文件類型---新建---文件擴展名jar 然后確定----高級----修改圖標-----open------javaw的路徑—jar即可!
第三篇:實驗三 單片機串行口編程(最終版)
仲愷農業工程學院實驗報告紙
信息學院(院、系)專業班組單片機原理及接口技術課實驗三單片機串行口編程
一、實驗目的1、掌握單片機串行口的工作方式;
2、掌握單片機串行口的編程方法。
二、實驗內容
1、學習單片機串行口的工作方式、初始化以及應用等;
2、利用單片機串行口編寫程序在超級終端輸出輸入相應信息并根據輸入的信息驅動開發板上的蜂鳴器按一定規律工作。
三、實驗設備
1、STC單片機開發板;
2、PC機以及串口線。
四、實驗步驟
參考實驗指導書。
五、實驗總結
第四篇:實驗三 Struts2框架編程-實驗報告紙
南京信息工程大學 實驗(實習)報告
實驗(實習)名稱 Struts2框架編程 實驗(實習)日期 得分 指導教師 院 計軟 專業 計科 年級 2013級 班次 3 姓名 張文嬌 學號 20131308081
1.實驗目的:
1)掌握Struts2框架和工作流程。2)熟悉Struts標簽庫的使用。
3)掌握Struts 2攔截器的原理,并能進行相關設置和編程。4)了解和掌握文件上傳等功能實現
2.實驗內容:
1)采用Struts2框架,創建三個JSP頁面(hello.jsp、welcome.jsp)和一個Action實現類(StrutsAction),并對web.xml和Struts.xml進行必要配置,實現用戶登錄功能的處理。(參考教材3.1節)
2)采用Struts2相關技術,實現“學生綜合管理系統”的“添加學生信息”功能(具體需求詳見教材3.7所述)
3.實驗步驟
{對每個實驗題目進行簡要步驟描述,包括源碼和實驗結果截圖} 1)
1.啟動MyEclips 8.5 2.創建web project項目命名為FirstStruts2 3.添加支持包 4.配置web.xml
5.在工程中創建LoginAction.jsp import dao.CustomerDAO;public class LoginAction {
private String name;private String password;/**在此方法里實現業務邏輯處理*/ public String execute()throws Exception {
CustomerDAO dao=new CustomerDAO();boolean boo=dao.check(name, password);if(boo)return “success”;
} else return “error”;public String getName(){ return name;} public void setName(String name){ this.name = name;} public String getPassword(){ return password;} public void setPassword(String password){this.password = password;} } 6.配置struts.xml文件
第五篇:實驗三_LINUX的C語言編程
實驗三 LINUX的C語言編程
要求:
1、請查閱資料,掌握vi編輯器的基本使用,包括兩種不同模式的區別,如何在兩種模式之間切換,以及常用的編輯命令等;
2、使用vi編寫一個c程序,要求該程序通過命令行接收用戶的輸入,其輸入參數為FreeBSD系統中的任意文本文件,接收輸入后,c程序讀取該文件內容,并打印在屏幕上。編輯好后,存為.c文件(如a.c),使用gcc編譯該文件,運行結果文件。
3、詳細記錄學習的內容和實驗的整個過程,包括用到的vi命令,c程序源代碼,gcc命令,以及執行結果文件的命令等;
4、對整個實驗過程進行分析總結,給出詳細步驟;
一:vi編輯器的使用
vi 的兩種命令模式;
Command(命令)模式,用于輸入命令; Insert(插入)模式,用于插入文本;
Visual(可視)模式,用于視化的的高亮并選定正文;
Command 模式是vi或vim的默認模式,如果我們處于其它命令模式時,要通過ESC鍵切換過來。
當我們按ESC鍵后,接著再輸入:號時,vi會在屏幕的最下方等待我們輸入命令; 文件的保存和退出 :w 保存;
:w filename 另存為filename; :wq!保存退出;
:wq!filename 注:以filename為文件名保存后退出; :q!不保存退出;
:x 應該是保存并退出,功能和:wq!相同 光標移動
j 向下移動一行; k 向上移動一行; h 向左移動一個字符; l 向右移動一個字符;
插入模式(文本的插入)i 在光標之前插入; a 在光標之后插入;
I 在光標所在行的行首插入; A 在光標所在行的行末插入;
o 在光標所在的行的上面插入一行; O 在光標所在的行的下面插入一行;
s 刪除光標后的一個字符,然后進入插入模式; S 刪除光標所在的行,然后進入插入模式; 文本內容的刪除操作 x 一個字符;
#x 刪除幾個字符,#表示數字,比如3x; dw 刪除一個單詞;
#dw 刪除幾個單詞,#用數字表示,比如3dw表示刪除三個單詞; dd 刪除一行;
#dd 刪除多個行,#代表數字,比如3dd 表示刪除光標行及光標的下兩行; 恢復修改及恢復刪除操作; u 撤消修改或刪除操作;
查找
/SEARCH 注:正向查找,按n鍵把光標移動到下一個符合條件的地方; ?SEARCH 注:反向查找,按shift+n 鍵,把光標移動到下一個符合條件的 替換
:s /SEARCH/REPLACE/g 注:把當前光標所處的行中的SEARCH單詞,替換成REPLACE,并把所有SEARCH高亮顯示;
:%s /SEARCH/REPLACE 注:把文檔中所有SEARCH替換成REPLACE;
:#,# s /SEARCH/REPLACE/g 注:#號表示數字,表示從多少行到多少行,把SEARCH替換成REPLACE;
二:編寫程序和編譯程序
先在home文件夾下建立test文件夾,用于自己的程序開發。
根據題目要求編寫相應程序:
編寫完程序后保存。
使用gcc命令編譯時發現如下問題:
后來上網查找后發現FreeBSD默認不再使用GCC構建,使用Clang/LIVM替代GCC作為默認的C/C++編譯器。
于是使用clang命令進行編譯如下:
得到輸出文件后,再新建一個test.txt文件用于測試。然后執行可執行文件:./a.out
由上可以看出,在執行編譯命令后我并沒有指定輸出文件的類型和名稱,a.out為默認輸出的名稱和類型,可以使用clang a.c –o test來生成不同類型和名稱的輸出文件。另外看到提示是輸入文件的路徑,如果是當前文件下的文件,則可以只輸入文件的相對路徑,如果在別的文件夾下則需要輸入文件的絕對路徑。如使用#cp /home/test/test.txt /home/test2.txt復制一個文件到別的目錄后讀取。測試如下:
三:程序源代碼
#include
char path[20];//文件路徑字符串
char msg[100];//讀入數據緩存區
printf(“please enter the path of your filern”);//輸出提示
scanf(“%s”,path);//獲取文件路徑
file = fopen(path);//打開文件
while(fgets(msg,sizeof(masg)-1,file)!=NULL)//逐行讀取文件 直到文件末 { printf(“%s”,msg);//輸出讀取到的文件內容 } fclose(file);//關閉文件 return 0;//返回 } 四:實驗總結和分析
本次實驗首次使用vi編輯器編寫了一段代碼,并成功的編譯并運行。首先說一下vi編輯器的使用感受,和window不太一樣,它有不同的模式,只有在特定的模式下才能執行相應的命令或者操作。而且我發現了另一個很好用的ee編輯器,使用這個編輯器可以很方便的進行文件的操作,主要是它有很豐富的提示。但是為什么vi編輯器是大家常談的呢?主要是vi編輯器體積小巧,功能強大,雖然在大的系統工程方面不太好用,但是正常的使用來說還是足夠的,幾乎所有的類似操作系統都會裝有這一編輯器,學會vi編輯器的使用可以使自己在沒有別的編輯器的情況下還能進行文件的編輯和系統的配置。這樣對于日后的開發有很大的好處。另外在發現FreeBSD中沒有安裝gcc時,我嘗試過給器安裝一個gcc編輯器,但是卻失敗了,截圖如下(圖1),希望通過后面的學習安裝上去。
圖1:安裝gcc編譯器失敗
另外我又進行了多文件結構的和多控制臺的測試。就是通過多個控制臺分別編寫多個文件,最后統編譯鏈接成一個可執行文件,這樣可以大致模仿出ADE的編輯環境,進行多個文件的編寫。