99国产精品久久久久久久成人热,色哟哟一区二区在线观看视频,鱼缸,人妻精品久久无码区

首頁 > 熱門提問 > 功能界面設(shè)計

功能界面設(shè)計

提問

問題
列表

  • 什么軟件可以畫出房子的裝修效果圖

    查看答案>>

  • 用JAVA編程設(shè)計一個銀行賬戶類,其中包括以下內(nèi)容,并用字符界面模擬存款和取款過程。

    查看答案>>

  • 簡要描述系統(tǒng)概要設(shè)計包括哪些方面的架構(gòu)

    查看答案>>

  • Dreamweaver軟件是什么?它的主要功能有什么?

    查看答案>>

  • 人機界面交互設(shè)計基本原則是什么

    查看答案>>

  • 用java編寫了一個模擬計算器的界面設(shè)計,怎么實現(xiàn)運算功能呢

    查看答案>>

  • 界面設(shè)計用什么軟件

    查看答案>>

  • 界面設(shè)計師需遵循哪些原則

    查看答案>>

什么軟件可以畫出房子的裝修效果圖

感覺還是酷家樂的軟件好用。1.全新的3D操作界面,環(huán)繞場景設(shè)計,看清每一處細(xì)節(jié)。2.單元柜模塊化操作,自定義參數(shù)設(shè)置。3.種類齊全的柜體模型,支持復(fù)雜結(jié)構(gòu),包括圓弧柜、轉(zhuǎn)角柜、切角柜,輕松應(yīng)對各類櫥柜需求。4.一鍵替換柜體材質(zhì)、配件樣式,據(jù)整體風(fēng)格設(shè)計屬于你的櫥柜。5.無需復(fù)雜繪制,一鍵生成臺面、腳線、頂線,各式線條造型和材質(zhì)隨意選擇。
0 有幫助 展開

用JAVA編程設(shè)計一個銀行賬戶類,其中包括以下內(nèi)容,并用字符界面模擬存款和取款過程。

import java.util.Scanner;public class ZH { private String zh;//賬戶 private String password;//密碼 private String openTime;//開戶時間 private String sfz;//身份證號 private double je;//存款金額 public String getZh() {  return zh; } public void setZh(String zh) {  this.zh = zh; } public String getPassword() {  return password; } public void setPassword(String password) {  this.password = password; } public String getOpenTime() {  return openTime; } public void setOpenTime(String openTime) {  this.openTime = openTime; } public String getSfz() {  return sfz; } public void setSfz(String sfz) {  this.sfz = sfz; } public double getJe() {  return je; } public void setJe(double je) {  this.je = je; }  //存款方法 public void ck(double je){  this.je=this.je+je;//存入的金額加上原有的金額 }  //取款方法 public void qk(double je){  if(je>this.je){//取款金額大于余額   System.out.println("存款余額不足");  }else{   this.je=this.je-je;//原有的金額減去取出的金額  } } public static void main(String[] args) {  ZH zh = new ZH();//初始化一個賬戶信息  zh.setJe(10000.0);//向zh賬戶添加余額  zh.setOpenTime("2013.12.3");//向zh賬戶添加開發(fā)時間  zh.setPassword("123456");//向zh賬戶添加密碼  zh.setSfz("123456789");//向zh賬戶添加身份證  zh.setZh("zhangsan");//向zh賬戶添加賬號  System.out.println("歡迎光臨模擬銀行");  Scanner scan = new Scanner(System.in);  int count=0;//記錄輸入錯誤的次數(shù)  while(1==1){//循環(huán)   System.out.println("請輸入賬號");   String zhm=scan.next();   System.out.println("請輸入密碼");   String mm=scan.next();   if(zhm.equals(zh.getZh()) && mm.equals(zh.getPassword())){//輸入的信息與zh賬戶信息的密碼和賬號一致    while(1==1){     System.out.println("當(dāng)前余額為:"+zh.getJe()+"元。請選擇操作:1.存款;2.取款;3.退出(只能輸入數(shù)字)");     String cz=scan.next();     switch (Integer.parseInt(cz)) {     case 1:      System.out.println("請輸入存款金額(輸入小數(shù))");      double ckje=scan.nextDouble();      zh.ck(ckje);      System.out.println("實施存款:"+ckje+"元,當(dāng)前余額為"+zh.getJe()+"元");      break;     case 2:      System.out.println("請輸入取款金額(輸入小數(shù))");      double qkje=scan.nextDouble();      zh.qk(qkje);      System.out.println("實施取款:"+qkje+"元,當(dāng)前余額為"+zh.getJe()+"元");      break;     case 3:      break;     default:      System.out.println("暫無此功能");//輸入1或者2、3以外的操作      break;     }     if("3".equals(cz)){      break;     }    }    System.out.println("退出操作");    break;   }else{        if(count>=3){     System.out.println("已輸入錯誤三次,賬號被鎖");     break;//結(jié)束循環(huán)    }else{     System.out.println("賬號或密碼錯誤,請重新輸入");     count++;//錯誤一次count+1     continue;//進(jìn)入下次循環(huán)    }   }  }   }}
0 有幫助? 展開

簡要描述系統(tǒng)概要設(shè)計包括哪些方面的架構(gòu)

在需求明確、準(zhǔn)備開始編碼之前,要做概要設(shè)計,而詳細(xì)設(shè)計可能大部分公司沒有做,有做的也大部分是和編碼同步進(jìn)行,或者在編碼之后。因此,對大部分的公司來說,概要設(shè)計文檔是唯一的設(shè)計文檔,對后面的開發(fā)、測試、實施、維護(hù)工作起到關(guān)鍵性的影響。一、問題的提出概要設(shè)計寫什么?概要設(shè)計怎么做?如何判斷設(shè)計的模塊是完整的?為什么說設(shè)計階段過于重視業(yè)務(wù)流程是個誤區(qū)?以需求分析文檔還是以概要設(shè)計文檔來評估開發(fā)工作量、指導(dǎo)開發(fā)計劃準(zhǔn)確?結(jié)構(gòu)化好還是面向?qū)ο蠛??以上問題的答案請在文章中找。二、概要設(shè)計的目的將軟件系統(tǒng)需求轉(zhuǎn)換為未來系統(tǒng)的設(shè)計;逐步開發(fā)強壯的系統(tǒng)構(gòu)架;使設(shè)計適合于實施環(huán)境,為提高性能而進(jìn)行設(shè)計;結(jié)構(gòu)應(yīng)該被分解為模塊和庫。三、概要設(shè)計的任務(wù)制定規(guī)范:代碼體系、接口規(guī)約、命名規(guī)則。這是項目小組今后共同作戰(zhàn)的基礎(chǔ),有了開發(fā)規(guī)范和程序模塊之間和項目成員彼此之間的接口規(guī)則、方式方法,大家就有了共同的工作語言、共同的工作平臺,使整個軟件開發(fā)工作可以協(xié)調(diào)有序地進(jìn)行??傮w結(jié)構(gòu)設(shè)計:功能(加工)->模塊:每個功能用那些模塊實現(xiàn),保證每個功能都有相應(yīng)的模塊來實現(xiàn);模塊層次結(jié)構(gòu):某個角度的軟件框架視圖;模塊間的調(diào)用關(guān)系:模塊間的接口的總體描述;模塊間的接口:傳遞的信息及其結(jié)構(gòu);處理方式設(shè)計:滿足功能和性能的算法用戶界面設(shè)計;數(shù)據(jù)結(jié)構(gòu)設(shè)計:詳細(xì)的數(shù)據(jù)結(jié)構(gòu):表、索引、文件;算法相關(guān)邏輯數(shù)據(jù)結(jié)構(gòu)及其操作;上述操作的程序模塊說明(在前臺?在后臺?用視圖?用過程?······)接口控制表的數(shù)據(jù)結(jié)構(gòu)和使用規(guī)則其他性能設(shè)計。四、概要設(shè)計寫什么結(jié)構(gòu)化軟件設(shè)計說明書結(jié)構(gòu)(因篇幅有限和過時嫌疑,在此不作過多解釋)任務(wù):目標(biāo)、環(huán)境、需求、局限;總體設(shè)計:處理流程、總體結(jié)構(gòu)與模塊、功能與模塊的關(guān)系;接口設(shè)計:總體說明外部用戶、軟、硬件接口;內(nèi)部模塊間接口(注:接口≈系統(tǒng)界面)數(shù)據(jù)結(jié)構(gòu):邏輯結(jié)構(gòu)、物理結(jié)構(gòu),與程序結(jié)構(gòu)的關(guān)系;模塊設(shè)計:每個模塊“做什么”、簡要說明“怎么做”(輸入、輸出、處理邏輯、與其它模塊的接口,與其它系統(tǒng)或硬件的接口),處在什么邏輯位置、物理位置;運行設(shè)計:運行模塊組合、控制、時間;出錯設(shè)計:出錯信息、處錯處理;其他設(shè)計:保密、維護(hù);OO軟件設(shè)計說明書結(jié)構(gòu)1 概述系統(tǒng)簡述、軟件設(shè)計目標(biāo)、參考資料、修訂版本記錄這部分論述整個系統(tǒng)的設(shè)計目標(biāo),明確地說明哪些功能是系統(tǒng)決定實現(xiàn)而哪些時不準(zhǔn)備實現(xiàn)的。同時,對于非功能性的需求例如性能、可用性等,亦需提及。需求規(guī)格說明書對于這部分的內(nèi)容來說是很重要的參考,看看其中明確了的功能性以及非功能性的需求。這部分必須說清楚設(shè)計的全貌如何,務(wù)必使讀者看后知道將實現(xiàn)的系統(tǒng)有什么特點和功能。在隨后的文檔部分,將解釋設(shè)計是怎么來實現(xiàn)這些的。2 術(shù)語表對本文檔中所使用的各種術(shù)語進(jìn)行說明。如果一些術(shù)語在需求規(guī)格說明書中已經(jīng)說明過了,此處不用再重復(fù),可以指引讀者參考需求說明。3 用例此處要求系統(tǒng)用用例圖表述(UML),對每個用例(正常處理的情況)要有中文敘述。4 設(shè)計概述4.1 簡述這部分要求突出整個設(shè)計所采用的方法(是面向?qū)ο笤O(shè)計還是結(jié)構(gòu)化設(shè)計)、系統(tǒng)的體系結(jié)構(gòu)(例如客戶/服務(wù)器結(jié)構(gòu))以及使用到的相應(yīng)技術(shù)和工具(例如OMT、Rose)4.2 系統(tǒng)結(jié)構(gòu)設(shè)計這部分要求提供高層系統(tǒng)結(jié)構(gòu)(頂層系統(tǒng)結(jié)構(gòu)、各子系統(tǒng)結(jié)構(gòu))的描述,使用方框圖來顯示主要的組件及組件間的交互。最好是把邏輯結(jié)構(gòu)同物理結(jié)構(gòu)分離,對前者進(jìn)行描述。別忘了說明圖中用到的俗語和符號。4.3 系統(tǒng)界面各種提供給用戶的界面以及外部系統(tǒng)在此處要予以說明。如果在需求規(guī)格說明書中已經(jīng)對用戶界面有了敘述,此處不用再重復(fù),可以指引讀者參考需求說明。如果系統(tǒng)提供了對其它系統(tǒng)的接口,比如說從其它軟件系統(tǒng)導(dǎo)入/導(dǎo)出數(shù)據(jù),必須在此說明。4.4 約束和假定描述系統(tǒng)設(shè)計中最主要的約束,這些是由客戶強制要求并在需求說明書寫明的。說明系統(tǒng)是如何來適應(yīng)這些約束的。另外如果本系統(tǒng)跟其它外部系統(tǒng)交互或者依賴其它外部系統(tǒng)提供一些功能輔助,那么系統(tǒng)可能還受到其它的約束。這種情況下,要求清楚地描述與本系統(tǒng)有交互的軟件類型以及這樣導(dǎo)致的約束。實現(xiàn)的語言和平臺也會對系統(tǒng)有約束,同樣在此予以說明。對于因選擇具體的設(shè)計實現(xiàn)而導(dǎo)致對系統(tǒng)的約束,簡要地描述你的想法思路,經(jīng)過怎么樣的權(quán)衡,為什么要采取這樣的設(shè)計等等。5 對象模型提供整個系統(tǒng)的對象模型,如果模型過大,按照可行的標(biāo)準(zhǔn)把它劃分成小塊,例如可以把客戶端和服務(wù)器端的對象模型分開成兩個圖表述。在其中應(yīng)該包含所有的系統(tǒng)對象。這些對象都是從理解需求后得到的。要明確哪些應(yīng)該、哪些不應(yīng)該被放進(jìn)圖中。所有對象之間的關(guān)聯(lián)必須被確定并且必須指明聯(lián)系的基數(shù)。聚合和繼承關(guān)系必須清楚地確定下來。每個圖必須附有簡單的說明。6 對象描述在這個部分?jǐn)⑹雒總€對象的細(xì)節(jié),它的屬性、它的方法。在這之前必須從邏輯上對對象進(jìn)行組織。你可能需要用結(jié)構(gòu)圖把對象按子系統(tǒng)劃分好。為每個對象做一個條目。在系統(tǒng)對象模型中簡要的描述它的用途、約束(如只能有一個實例),列出它的屬性和方法。如果對象是存儲在持久的數(shù)據(jù)容器中,標(biāo)明它是持久對象,否則說明它是個臨時對象(transient object)。對每個對象的每個屬性詳細(xì)說明:名字、類型,如果屬性不是很直觀或者有約束(例如,每個對象的該屬性必須有一個唯一的值或者值域是有限正整數(shù)等)。對每個對象的每個方法詳細(xì)說明:方法名,返回類型,返回值,參數(shù),用途以及使用的算法的簡要說明(如果不是特別簡單的話)。如果對變量或者返回值由什么假定的話,Pre-conditions和Post-conditions必須在此說明。列出它或者被它調(diào)用的方法需要訪問或者修改的屬性。最后,提供可以驗證實現(xiàn)方法的測試案例。7 動態(tài)模型這部分的作用是描述系統(tǒng)如何響應(yīng)各種事件。一般使用順序圖和狀態(tài)圖。確定不同的場景(Scenario)是第一步,不需要確定所有可能的場景,但是必須至少要覆蓋典型的系統(tǒng)用例。不要自己去想當(dāng)然地創(chuàng)造場景,通常的策略是描述那些客戶可以感受得到的場景。7.1 場景(Scenarios)對每個場景做一則條目,包括以下內(nèi)容:場景名:給它一個可以望文生義的名字場景描述:簡要敘述場景是干什么的以及發(fā)生的動作的順序。順序圖:描述各種事件及事件發(fā)生的相對時間順序。7.2 狀態(tài)圖這部分的內(nèi)容包括系統(tǒng)動態(tài)模型重要的部分的狀態(tài)圖??赡苣阆霝槊總€對象畫一個狀態(tài)圖,但事實上會導(dǎo)致太多不期望的細(xì)節(jié)信息,只需要確定系統(tǒng)中一些重要的對象并為之提供狀態(tài)圖即可。8 非功能性需求五、概要設(shè)計怎么做結(jié)構(gòu)化軟件設(shè)計方法:詳細(xì)閱讀需求規(guī)格說明書,理解系統(tǒng)建設(shè)目標(biāo)、業(yè)務(wù)現(xiàn)狀、現(xiàn)有系統(tǒng)、客戶需求的各功能說明;分析數(shù)據(jù)流圖,弄清數(shù)據(jù)流加工的過程;根據(jù)數(shù)據(jù)流圖決定數(shù)據(jù)處理問題的類型(變換型、事務(wù)型、其他型);通過以上分析,推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖;對初始結(jié)構(gòu)圖進(jìn)行改進(jìn)完善:所有的加工都要能對應(yīng)到相應(yīng)模塊(模塊的完整性在于他們完成了需求中的所有加工),消除完全相似或局部相似的重復(fù)功能(智者察同),理清模塊間的層次、控制關(guān)系,減少高扇出結(jié)構(gòu),隨著深度增大扇入,平衡模塊大小。由對數(shù)據(jù)字典的修改補充完善,導(dǎo)出邏輯數(shù)據(jù)結(jié)構(gòu),導(dǎo)出每種數(shù)據(jù)結(jié)構(gòu)上的操作,這些操作應(yīng)當(dāng)屬于某個模塊。確定系統(tǒng)包含哪些應(yīng)用服務(wù)系統(tǒng)、客戶端、數(shù)據(jù)庫管理系統(tǒng);確定每個模塊放在哪個應(yīng)用服務(wù)器或客戶端的哪個目錄、哪個文件(庫),或是在數(shù)據(jù)庫內(nèi)部建立的對象。對每個篩選后的模塊進(jìn)行列表說明。對邏輯數(shù)據(jù)結(jié)構(gòu)進(jìn)行列表說明。根據(jù)結(jié)構(gòu)化軟件設(shè)計說明書結(jié)構(gòu)對其他需要說明的問題進(jìn)行補充說明,形成概要設(shè)計說明書。OO軟件設(shè)計方法:在OOA基礎(chǔ)上設(shè)計對象與類:在問題領(lǐng)域分析(業(yè)務(wù)建模和需求分析)之后,開始建立系統(tǒng)構(gòu)架。第一步是抽取建立領(lǐng)域的概念模型,在UML中表現(xiàn)為建立對象類圖、活動圖和交互圖。對象類就是從對象中經(jīng)過“察同”找出某組對象之間的共同特征而形成類:對象與類的屬性:數(shù)據(jù)結(jié)構(gòu);對象與類的服務(wù)操作:操作的實現(xiàn)算法;對象與類的各外部聯(lián)系的實現(xiàn)結(jié)構(gòu);設(shè)計策略:充分利用現(xiàn)有的類;方法:繼承、復(fù)用、演化;活動圖用于定義工作流,主要說明工作流的5W(Do What、Who Do、When Do、Where Do、Why Do)等問題,交互圖把人員和業(yè)務(wù)聯(lián)系在一起是為了理解交互過程,發(fā)現(xiàn)業(yè)務(wù)工作流中相互交互的各種角色。第二步是構(gòu)建完善系統(tǒng)結(jié)構(gòu):對系統(tǒng)進(jìn)行分解,將大系統(tǒng)分解為若干子系統(tǒng),子系統(tǒng)分解為若干軟件組件,并說明子系統(tǒng)之間的靜態(tài)和動態(tài)接口,每個子系統(tǒng)可以由用例模型、分析模型、設(shè)計模型、測試模型表示。軟件系統(tǒng)結(jié)構(gòu)的兩種方式:層次、塊狀層次結(jié)構(gòu):系統(tǒng)、子系統(tǒng)、模塊、組件(同一層之間具有獨立性);塊狀結(jié)構(gòu):相互之間弱耦合系統(tǒng)的組成部分:問題論域:業(yè)務(wù)相關(guān)類和對象(OOA的重點);人機界面:窗口、菜單、按鈕、命令等等;數(shù)據(jù)管理:數(shù)據(jù)管理方法、邏輯物理結(jié)構(gòu)、操作對象類;任務(wù)管理:任務(wù)協(xié)調(diào)和管理進(jìn)程;
1 有幫助 展開

Dreamweaver軟件是什么?它的主要功能有什么?

  Adobe Dreamweaver,簡稱“DW”,中文名稱 "夢想編織者",是美國MACROMEDIA公司開發(fā)的集網(wǎng)頁制作和管理網(wǎng)站于一身的所見即所得網(wǎng)頁編輯器,DW是第一套針對專業(yè)網(wǎng)頁設(shè)計師特別發(fā)展的視覺化網(wǎng)頁開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺限制和跨越瀏覽器限制的充滿動感的網(wǎng)頁?! 」δ埽航柚蚕硇陀脩艚缑嬖O(shè)計,在AdobeCreativeSuite4的不同組件之間更快、更明智地工作。使用工作區(qū)切換器可以從一個工作環(huán)境快速切換到下一個環(huán)境?! 【唧w功能:  1、利用AdobeDreamweaverCS6軟件中改善的FTP性能,更高效地傳輸大型文件。更新的“實時視圖”和“多屏幕預(yù)覽”面板可呈現(xiàn)HTML5代碼,使您能檢查自己的工作?! ?、自適應(yīng)網(wǎng)格。使用響應(yīng)迅速的CSS3自適應(yīng)網(wǎng)格版面,來創(chuàng)建跨平臺和跨瀏覽器的兼容網(wǎng)頁設(shè)計。利用簡潔、業(yè)界標(biāo)準(zhǔn)的代碼為各種不同設(shè)備和計算機開發(fā)項目,提高工作效率。直觀地創(chuàng)建復(fù)雜網(wǎng)頁設(shè)計和頁面版面,無需忙于編寫代碼?! ?、改善FTP性能。利用重新改良的多線程FTP傳輸工具節(jié)省上傳大型文件的時間。更快速高效地上傳網(wǎng)站文件,縮短制作時間。  4、Catalyst集成。AdobeBusinessCatalyst集成,使用Dreamweaver中集成的BusinessCatalyst面板連接并編輯您利用AdobeBusinessCatalyst(需另外購買)建立的網(wǎng)站。利用托管解決方案建立電子商務(wù)網(wǎng)站?! ?、增強型jQuery移動支持。使用更新的jQuery移動框架支持為iOS和Android平臺建立本地應(yīng)用程序。建立觸及移動受眾的應(yīng)用程序,同時簡化您的移動開發(fā)工作流程?! ?、更新的PhoneGap支持。更新的AdobePhoneGap支持可輕松為Android和iOS建立和封裝本地應(yīng)用程序。通過改編現(xiàn)有的HTML代碼來創(chuàng)建移動應(yīng)用程序。使用PhoneGap模擬器檢查您的設(shè)計?! ?、CSS3轉(zhuǎn)換。將CSS屬性變化制成動畫轉(zhuǎn)換效果,使網(wǎng)頁設(shè)計栩栩如生。在您處理網(wǎng)頁元素和創(chuàng)建優(yōu)美效果時保持對網(wǎng)頁設(shè)計的精準(zhǔn)控制?! ?、更新的實時視圖。使用更新的“實時視圖”功能在發(fā)布前測試頁面?!皩崟r視圖”現(xiàn)已使用最新版的WebKit轉(zhuǎn)換引擎,能夠提供絕佳的HTML5支持。  9、CSS3/HTML5支持。通過CSS面板設(shè)置樣式,該面板經(jīng)過更新可支持新的CSS3規(guī)則。設(shè)計視圖現(xiàn)支持媒體查詢,在您調(diào)整屏幕尺寸的同時可應(yīng)用不同的樣式。使用HTML5進(jìn)行前瞻性的編碼,同時提供代碼提示和設(shè)計視圖渲染支持?! ?
0 有幫助? 展開

人機界面交互設(shè)計基本原則是什么

1.在同一用戶界面中,所有的菜單選擇、命令輸入、數(shù)據(jù)顯示和其他功能應(yīng)保持分割的一致性;2.對所有可能造成損害的動作,堅持要求用戶確認(rèn)。對用戶出錯采取寬容的態(tài)度;3.人機界面應(yīng)該能對用戶的決定做出及時的響應(yīng),最大可能減少擊鍵次數(shù)、縮短鼠標(biāo)移動距離;4.人機界面應(yīng)提供上下文敏感的求助系統(tǒng);5.合理劃分并高效使用顯示屏;6.保證信息的顯示方式和數(shù)據(jù)輸入方式的協(xié)調(diào)一致。
1 有幫助? 展開

用java編寫了一個模擬計算器的界面設(shè)計,怎么實現(xiàn)運算功能呢

view sourceprint?import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; /** * 一個計算器,與Windows附件自帶計算器的標(biāo)準(zhǔn)版功能、界面相仿。 但還不支持鍵盤操作。 */ public class Calculator extends JFrame implements ActionListener { /** 計算器上的鍵的顯示名字 */ private final String[] KEYS = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" }; /** 計算器上的功能鍵的顯示名字 */ private final String[] COMMAND = { "Backspace", "CE", "C" }; /** 計算器左邊的M的顯示名字 */ private final String[] M = { " ", "MC", "MR", "MS", "M+" }; /** 計算器上鍵的按鈕 */ private JButton keys[] = new JButton[KEYS.length]; /** 計算器上的功能鍵的按鈕 */ private JButton commands[] = new JButton[COMMAND.length]; /** 計算器左邊的M的按鈕 */ private JButton m[] = new JButton[M.length]; /** 計算結(jié)果文本框 */ private JTextField resultText = new JTextField("0"); // 標(biāo)志用戶按的是否是整個表達(dá)式的第一個數(shù)字,或者是運算符后的第一個數(shù)字 private boolean firstDigit = true; // 計算的中間結(jié)果。 private double resultNum = 0.0; // 當(dāng)前運算的運算符 private String operator = "="; // 操作是否合法 private boolean operateValidFlag = true; /** * 構(gòu)造函數(shù) */ public Calculator() { super(); // 初始化計算器 init(); // 設(shè)置計算器的背景顏色 this.setBackground(Color.LIGHT_GRAY); this.setTitle("計算器"); // 在屏幕(500, 300)坐標(biāo)處顯示計算器 this.setLocation(500, 300); // 不許修改計算器的大小 this.setResizable(false); // 使計算器中各組件大小合適 this.pack(); } /** * 初始化計算器 */ private void init() { // 文本框中的內(nèi)容采用右對齊方式 resultText.setHorizontalAlignment(JTextField.RIGHT); // 不允許修改結(jié)果文本框 resultText.setEditable(false); // 設(shè)置文本框背景顏色為白色 resultText.setBackground(Color.WHITE); // 初始化計算器上鍵的按鈕,將鍵放在一個畫板內(nèi) JPanel calckeysPanel = new JPanel(); // 用網(wǎng)格布局器,4行,5列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素 calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3)); for (int i = 0; i < KEYS.length; i++) { keys[i] = new JButton(KEYS[i]); calckeysPanel.add(keys[i]); keys[i].setForeground(Color.blue); } // 運算符鍵用紅色標(biāo)示,其他鍵用藍(lán)色表示 keys[3].setForeground(Color.red); keys[8].setForeground(Color.red); keys[13].setForeground(Color.red); keys[18].setForeground(Color.red); keys[19].setForeground(Color.red); // 初始化功能鍵,都用紅色標(biāo)示。將功能鍵放在一個畫板內(nèi) JPanel commandsPanel = new JPanel(); // 用網(wǎng)格布局器,1行,3列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素 commandsPanel.setLayout(new GridLayout(1, 3, 3, 3)); for (int i = 0; i < COMMAND.length; i++) { commands[i] = new JButton(COMMAND[i]); commandsPanel.add(commands[i]); commands[i].setForeground(Color.red); } // 初始化M鍵,用紅色標(biāo)示,將M鍵放在一個畫板內(nèi) JPanel calmsPanel = new JPanel(); // 用網(wǎng)格布局管理器,5行,1列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素 calmsPanel.setLayout(new GridLayout(5, 1, 3, 3)); for (int i = 0; i < M.length; i++) { m[i] = new JButton(M[i]); calmsPanel.add(m[i]); m[i].setForeground(Color.red); } // 下面進(jìn)行計算器的整體布局,將calckeys和command畫板放在計算器的中部, // 將文本框放在北部,將calms畫板放在計算器的西部。 // 新建一個大的畫板,將上面建立的command和calckeys畫板放在該畫板內(nèi) JPanel panel1 = new JPanel(); // 畫板采用邊界布局管理器,畫板里組件之間的水平和垂直方向上間隔都為3象素 panel1.setLayout(new BorderLayout(3, 3)); panel1.add("North", commandsPanel); panel1.add("Center", calckeysPanel); // 建立一個畫板放文本框 JPanel top = new JPanel(); top.setLayout(new BorderLayout()); top.add("Center", resultText); // 整體布局 getContentPane().setLayout(new BorderLayout(3, 5)); getContentPane().add("North", top); getContentPane().add("Center", panel1); getContentPane().add("West", calmsPanel); // 為各按鈕添加事件偵聽器 // 都使用同一個事件偵聽器,即本對象。本類的聲明中有implements ActionListener for (int i = 0; i < KEYS.length; i++) { keys[i].addActionListener(this); } for (int i = 0; i < COMMAND.length; i++) { commands[i].addActionListener(this); } for (int i = 0; i < M.length; i++) { m[i].addActionListener(this); } } /** * 處理事件 */ public void actionPerformed(ActionEvent e) { // 獲取事件源的標(biāo)簽 String label = e.getActionCommand(); if (label.equals(COMMAND[0])) { // 用戶按了"Backspace"鍵 handleBackspace(); } else if (label.equals(COMMAND[1])) { // 用戶按了"CE"鍵 resultText.setText("0"); } else if (label.equals(COMMAND[2])) { // 用戶按了"C"鍵 handleC(); } else if ("0123456789.".indexOf(label) >= 0) { // 用戶按了數(shù)字鍵或者小數(shù)點鍵 handleNumber(label); // handlezero(zero); } else { // 用戶按了運算符鍵 handleOperator(label); } } /** * 處理Backspace鍵被按下的事件 */ private void handleBackspace() { String text = resultText.getText(); int i = text.length(); if (i > 0) { // 退格,將文本最后一個字符去掉 text = text.substring(0, i - 1); if (text.length() == 0) { // 如果文本沒有了內(nèi)容,則初始化計算器的各種值 resultText.setText("0"); firstDigit = true; operator = "="; } else { // 顯示新的文本 resultText.setText(text); } } } /** * 處理數(shù)字鍵被按下的事件 * * @param key */ private void handleNumber(String key) { if (firstDigit) { // 輸入的第一個數(shù)字 resultText.setText(key); } else if ((key.equals(".")) && (resultText.getText().indexOf(".") < 0)) { // 輸入的是小數(shù)點,并且之前沒有小數(shù)點,則將小數(shù)點附在結(jié)果文本框的后面 resultText.setText(resultText.getText() + "."); } else if (!key.equals(".")) { // 如果輸入的不是小數(shù)點,則將數(shù)字附在結(jié)果文本框的后面 resultText.setText(resultText.getText() + key); } // 以后輸入的肯定不是第一個數(shù)字了 firstDigit = false; } /** * 處理C鍵被按下的事件 */ private void handleC() { // 初始化計算器的各種值 resultText.setText("0"); firstDigit = true; operator = "="; } /** * 處理運算符鍵被按下的事件 * * @param key */ private void handleOperator(String key) { if (operator.equals("/")) { // 除法運算 // 如果當(dāng)前結(jié)果文本框中的值等于0 if (getNumberFromText() == 0.0) { // 操作不合法 operateValidFlag = false; resultText.setText("除數(shù)不能為零"); } else { resultNum /= getNumberFromText(); } } else if (operator.equals("1/x")) { // 倒數(shù)運算 if (resultNum == 0.0) { // 操作不合法 operateValidFlag = false; resultText.setText("零沒有倒數(shù)"); } else { resultNum = 1 / resultNum; } } else if (operator.equals("+")) { // 加法運算 resultNum += getNumberFromText(); } else if (operator.equals("-")) { // 減法運算 resultNum -= getNumberFromText(); } else if (operator.equals("*")) { // 乘法運算 resultNum *= getNumberFromText(); } else if (operator.equals("sqrt")) { // 平方根運算 resultNum = Math.sqrt(resultNum); } else if (operator.equals("%")) { // 百分號運算,除以100 resultNum = resultNum / 100; } else if (operator.equals("+/-")) { // 正數(shù)負(fù)數(shù)運算 resultNum = resultNum * (-1); } else if (operator.equals("=")) { // 賦值運算 resultNum = getNumberFromText(); } if (operateValidFlag) { // 雙精度浮點數(shù)的運算 long t1; double t2; t1 = (long) resultNum; t2 = resultNum - t1; if (t2 == 0) { resultText.setText(String.valueOf(t1)); } else { resultText.setText(String.valueOf(resultNum)); } } // 運算符等于用戶按的按鈕 operator = key; firstDigit = true; operateValidFlag = true; } /** * 從結(jié)果文本框中獲取數(shù)字 * * @return */ private double getNumberFromText() { double result = 0; try { result = Double.valueOf(resultText.getText()).doubleValue(); } catch (NumberFormatException e) { } return result; } public static void main(String args[]) { Calculator calculator1 = new Calculator(); calculator1.setVisible(true); calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 萬分感謝,雖然我已經(jīng)交了作業(yè),還是感覺很厲害的
0 有幫助? 展開

界面設(shè)計用什么軟件

  要看你是從事網(wǎng)站界面設(shè)計還是軟件界面設(shè)計。網(wǎng)站界面設(shè)計,必須了解一些簡單的html、div、css樣式表等基本語言;軟件界面設(shè)計,就要了解其產(chǎn)品所用的是什么工具做的,軟件和硬件的兼容性問題(性能問題)。對于設(shè)計軟件,常用的有photoshop、網(wǎng)頁3劍客、UIDesigner等。      但是吧,這其實僅僅是皮毛,真正要設(shè)計出來東西,我覺得還是找專業(yè)人吧。例如北京的智加設(shè)計,我們?nèi)ツ旰退麄兒献鬟^。智加真的挺不錯,團(tuán)隊大概在百人左右,他們會針對每個品牌的實際情況整合出一套量身定做的方案,你可以去他們網(wǎng)站看看,還有很多案例。
0 有幫助? 展開

界面設(shè)計師需遵循哪些原則

一、確保界面的清晰性。 界面設(shè)計的清晰性原則,主要表現(xiàn)在界面圖標(biāo)的風(fēng)格統(tǒng)一,內(nèi)容主題明確,功能指向性強等方面。 二、保留界面約定俗成(用戶習(xí)慣)的功能。 這是指在界面的設(shè)計過程中,設(shè)計師不能一味地求變,求新。有些已經(jīng)約定俗成的功能,或者用戶已經(jīng)習(xí)慣使用的某個功能,是必須保留的。否則,拿到一款手機,里面的應(yīng)用全部都是新的,都是用戶從未體驗過的。 三、確保界面風(fēng)格的整體一致性。 可以說,手機是一個小型的電腦,正因為其小,用戶在體驗時,更能站在高處看到細(xì)微之處。如果移動端界面的設(shè)計風(fēng)格不統(tǒng)一,比如字體不一致、顏色搭配不一致、結(jié)構(gòu)不一致、布局不一致,用戶在使用,很容易出現(xiàn)混亂的感覺。 四、保證界面設(shè)計的美觀度。 這一點,自然不用多說。美是人們熱愛一切事物的起源,美的事物,總是能夠吸引人的關(guān)注。移動端的界面設(shè)計亦如此。一款不論外觀還是界面設(shè)計都非常精美、精致的手機,顯然它的銷量不會低;如果用戶體驗度再高一點的話,那么,這款手機一定賺足了口碑和市場。 五、充分考慮頁面的響應(yīng)速度。 設(shè)計師們可千萬不可泛泛地認(rèn)為,移動端頁面的響應(yīng)速度是開發(fā)考慮的事情,跟界面設(shè)計無關(guān)。如果這么想,那就大錯特錯了。一款手機設(shè)計完成后,開發(fā)固然重要,可開發(fā)也是基于設(shè)計師的方案進(jìn)行的。
0 有幫助? 展開
img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動力姐姐微信

img
img

TOP