主頁 > 軟體設計 > 不會C# Winform用戶界面設計?是因為沒有掌握這些控制元件(建議收藏)

不會C# Winform用戶界面設計?是因為沒有掌握這些控制元件(建議收藏)

2021-04-29 14:15:31 軟體設計

文章目錄

  • 6.1 常用控制元件
    • 6.1.1 單選按鈕(RadioButton)
    • 6.1.2 復選框(CheckBox)
    • 6.1.3 框架
      • 1. 面板控制元件Panel
      • 2. 分組框GroupBox
      • 3. TabControl控制元件
    • 6.1.4 應用實體
  • 6. 2 串列框和組合框
    • 6.2.1 串列框(ListBox)
    • 6.2.2 組合框(ComboBox )
    • 6.2.3 應用實體
  • 6.3 用戶互動界面
    • 6.3.1 滾動條和進度條
    • 6.3.2 定時器
    • 6.3.3 選單設計
      • 選單設計概述
      • MenuStrip和ContextMenuStrip
      • 選單項ToolStripMenuItem
      • 彈出選單ContextMenuStrip
    • 6.3.4 滑鼠事件
    • 6.3.5 對話框設計
      • 訊息框
      • 通用對話框
      • 打開檔案和保存檔案
      • 顏色對話框(ColorDialog)
      • 字體對話框(FontDialog)
      • 列印組件
      • 列印設定對話框
      • 列印預覽對話框
      • 列印對話框(PrintDialog)
    • 6.3.6 應用實體
  • 本章小結


6.1 常用控制元件

System.Windows.Forms命名空間中的控制元件

序號控制元件用途
1Button按鈕
2CheckBox復選框
3CheckListBox復選框串列
4ComboBox組合框
5DataGridview顯示一個串列
6DateTimePicker選擇時間和日期
7GroupBox分組框
8HScrollBar水平滾動條
9Label標簽
10LinkLabel超鏈接標簽
11ListBox串列框
12ListView串列
13MonthCalendar月歷控制元件
14NumericUpDown微調按鈕,用于調節數字
15PrctureBox影像控制元件
16PrintPreviewControl列印預覽控制元件
17ProgressBar進度條
18PropertyGrid列出其他物件的屬性的控制元件
19RadioButton單選按鈕
20RichTextBox富文本框控制元件
21StatusBar狀態欄
22TabControl包含Tab選項卡的控制元件
23TextBox文本框
24ToolBar工具列
25ToolTip工具提示
26TrackBar跟蹤條
27TreeView樹視圖
28VScrollBar垂直滾動條

6.1.1 單選按鈕(RadioButton)

在這里插入圖片描述

單選按鈕控制元件是一個能開能關的控制元件,通常由兩個以上的單選按鈕組成選項組,但這些單選按鈕在同一時刻只能選一個,

重要屬性:

序號屬性描述
1Text按鈕上顯示的文本
2Checked表示單選按鈕的狀態(True —— 被選定;False —— 未被選定)

重要事件:

序號事件描述
1Click單擊后,使Checked屬性為True
2CheckedChanged當某個單選按鈕的狀態被發生變化,該事件隨之被觸發

6.1.2 復選框(CheckBox)

重要屬性:

序號屬性描述
1CheckState表示復選框狀態
2Unchecked未選定
3Checked被選定
4Indeterminate不確定

重要事件:

序號事件描述
1Click單擊事件
2CheckedChanged選中狀態改變事件

6.1.3 框架

包括面板控制元件(Panel)分組控制元件(GroupBox)多頁面控制元件(TabControl),先建立框架,然后將各控制元件放置其中,

1. 面板控制元件Panel

面板可以回應Click和DoubleClick事件,但一般不需要撰寫事件程序,

2. 分組框GroupBox

分組控制元件把其他的控制元件組織在一起形成控制元件組,當框架移動時,控制元件可以相應地移動;框架隱藏時,控制元件也一起隱藏,

重要屬性:

序號屬性描述
1Text給分組框加一個標題,使用戶了解分組框的用途

3. TabControl控制元件

TabControl控制元件很像一個卡片盒或一組檔案標簽,將一些相關內容組織在一個選項卡中,在同一個視窗區域通過選擇標簽轉換顯示不同的選項卡,

TabControl可以回應Click和DoubleClick事件,但該控制元件只是用來做界面的切換,很少對它們的事件進行處理 ,

6.1.4 應用實體

【例6-1】撰寫計算機選課程式

課程有三個等級,第一門課是基礎課,第二門課是語言課,都為限選,第三門應用課是任選課,學生每選一門課,學生的選課情況立即顯示在下面的多行文本框中,

在這里插入圖片描述

6. 2 串列框和組合框

6.2.1 串列框(ListBox)

串列框可顯示多個選項供用戶選擇,不能直接修改其中的內容,如果選項的數量超過可顯示的區域,串列框會自動地增加滾動條,

在這里插入圖片描述

ListBox控制元件常用的屬性

(1) Items

Items是一個集合,是ArrayList類物件 ,

在這里插入圖片描述

Items中選項的序號是從0開始的,

Items屬性既可以在設計狀態設定,也可以在程式中設定,

(2) SelectionMode

設定用戶是否能夠在串列項中做多個選擇
None:不允許選擇;
One:只能單選而不允許有多項選擇;
MultiSimple:允許有簡單的多項選擇;
MultiExtended:允許有擴展式多項選項,即用戶使用“Shif+單擊”或“Shift+方向鍵”,可以將先前的選項擴展到當前選項,使用“Ctrl+單擊” 可以進行各項選擇,

(3) SelectedIndex

表示在程式運行時被選定的項的序號,只能在程式中設定或參考,

在這里插入圖片描述

如果未選中任何選項,則SelectedIndex為-1,

(4) SelectedItem

串列中選中的字串,如允許多選,該屬性回傳選擇的索引號最小的條目,如一個也沒選,該值為空,

(5) SelectedItems

獲取包含 ListBox 中當前選定項的集合,

(6) MultiColumn

ListBox是否支持多列,如果設定為True,則串列框支持多列顯示,默認為False,

(7) Sorted

程式運行期間串列框或組合框的選項是否按字母表順序排序,如果Sorted為True,則選項按字母表順序顯示

ListBox控制元件常用的方法

(1) Items.Add

物件.Items.Add(選項):把一個選項加入串列框
例如:ListBox1.Items.Add(“王濤")

(2) Items.Remove

物件. Items.Remove (選項):從串列框中洗掉指定的項
例如:ListBox1.Items.Remove (“李明")

(3)Items.Insert

物件.Insert(Index,Item):在串列框中插入指定的項,Index表示在串列框中插入的位置,
例如:ListBox1.Insert(4,”趙明”)

(4) Items.Clear

物件.Items.Clear:用于清除串列框的所有專案
例如:ListBox1.Items.Clear

6.2.2 組合框(ComboBox )

組合框是文本框和串列框組合而成的控制元件,可以在文本框輸入字符,其右側有一個向下的箭頭,單擊此箭頭可以打開一個串列框,可以從串列框中選擇希望輸入的內容,它有三種不同型別:

在這里插入圖片描述

ComboBox控制元件常用的屬性

? Items:同串列框
? Sorted:同串列框
? SelectedItem:同串列框
? SelectedIndex:同串列框
? MaxDropDownItems:下拉串列能顯示的最大條目數(1~100),如果實際條目數大于此數,將出現滾動條,

ComboBox控制元件常用的事件

Click、DoubleClick
SelectedIndexChanged:在 SelectedIndex 屬性更改后發生

6.2.3 應用實體

【例6-2】撰寫選課程式,

利用串列框和組合框增加和洗掉相關課程,并統計學時數,

在這里插入圖片描述

6.3 用戶互動界面

用戶界面的作用是負責管理與用戶之間的互動,向用戶顯示資料,從用戶處獲得資料,解釋由用戶操作所引發的事件,并幫助用戶查看任務的進度,

6.3.1 滾動條和進度條

滾動條(ScrollBar)通常附在表單上協助觀察資料或確定位置,也可作為資料輸入工具,滾動條有水平(HScrollBar)和垂直(VScrollBar)兩種,

進度條(ProgressBar)用來指示事務處理的進度,

在這里插入圖片描述

滾動條的主要屬性

(1)Value屬性:Value值的大小決定了滾動條中滑塊的位置,反過來滑塊的位置也影響值的大小,
在程式中使用該屬性的語法如下:
Object.value[=number]

(2)Minimum(最小值)屬性:將滑塊移到滾動條的最左端或最上端時,滾動條的屬性值達到最小,默認值為0,

(3)Maxinum(最大值)屬性:將滑塊移到滾動條的最右端或最下端時,滾動條的屬性值達到最大,默認值為100,

(4) Smallchange(小變化)屬性:當用滑鼠在滾動條端點的某一箭頭上單擊時,屬性值就相應地增加或減少,屬性的設定值是用戶每單擊一次滑鼠,屬性增加或減少的量,

(5)Largechange(大變化)屬性:當用滑鼠在滾動條端點與滑塊之間的任一位置單擊時,屬性值就相應地大幅增加或減少,屬性的設定值是用戶每單擊一次滑鼠,屬性增加或減少的量,

滾動條的事件

(1)ValueChanged事件當通過 Scroll 事件或以編程方式更改Value屬性時發生,
(2)Scroll事件在通過滑鼠或鍵盤操作移動滾動框后發生,

進度條

在這里插入圖片描述

ProgressBar(進度條)控制元件使用矩形方塊從左至右顯示某一程序的行程情況,

屬性:

(1)Maximum/Minimum:讀取或設定進度條的最大/小計數值,
(2)Value用于讀取或設定進度條的當前計數值,

在對ProgressBar編程時,必須先確定Value屬性上限,例如,下載檔案,可將Maximum設定為檔案長度,在該檔案下載程序中,將Value屬性設定為檔案已經下載的位元組數,
進度條的常用事件

Click、MouseDown和MouseMove

【例6-3】滾動條和進度條應用,

用水平滾動條來設定參與運算的序列的長度,用進度條顯示不同長度序列的處理進度不同

在這里插入圖片描述

6.3.2 定時器

定時器以一定的時間間隔產生Tick事件,

屬性:

Enabled:為False時定時器不產生Tick事件
Interval:觸發Tick事件的間隔,單位ms

事件:

定時器控制元件只有一個Tick事件
產生Tick事件條件:
Enabled=True; Interval>0

方法:
Start、Stop

【例6-4】實時時鐘,

在這里插入圖片描述

6.3.3 選單設計

選單設計概述

選單有下拉式選單和彈出選單(背景關系選單),下拉式選單的組成結構:

在這里插入圖片描述

選單設計概述

VS2008 .NET的選單類包括:

MenuStrip,ToolStrip,ContextMenuStrip,StatusStrip四種控制元件,

MenuStrip為選單條,ToolStrip為工具條,

ContextMenuStrip是快捷選單,StatusStrip是狀態條

MenuStrip和ContextMenuStrip

MenuStrip控制元件的圖示:

在這里插入圖片描述

ContextMenuStrip控制元件的圖示,
在這里插入圖片描述

熱鍵:當按住ALT鍵后,再按頂級選單項的熱鍵字符,可以打開該頂級選單項的彈出選單,如 “編輯(E)”

快捷鍵 :用戶可以不打開主選單,只要按住Ctrl鍵不放,再按快捷鍵字符

MenuStrip的常見屬性

在這里插入圖片描述

AllowItemReorder:默認值為False,當更改該屬性值為True時,按下ALT鍵的同時可以用滑鼠拖動各選單項以調整其在選單欄上的左右位置,

Dock屬性:指示選單欄在表單中出現的位置,默認值為Top,

GripStyle屬性::是否顯示選單欄的指示符,即縱向排列的多個凹點,默認值為Hidden,當更改該屬性值為Visible時,顯示位置由GripMargin屬性指定,

Items:用于編輯選單欄上顯示的各選單項,單擊Items屬性后“…”按鈕,彈出“項集合編輯器”對話框 ,

ShowItemToolTips :是否顯示MenuStrip的工具提示,

Stretch:指示只是MenuStrip是否在其容器中從一端拉伸到另一端,

MenuStrip的常用事件

ItemClicked:當單擊選單欄上各主選單項時觸發的操作,

LayoutCompleted:當選單欄上各主選單項的排列順序發生變化之后觸發的操作,使用該事件時,AllowItemReorder屬性必須設為True,即當程式運行時,按下Alt鍵重新排列選單欄上各主選單項的順序之后觸發該事件,

選單項ToolStripMenuItem

屬性:

Name:選單項的名字,
Checked:指示選單項是否被選中,默認值為False,
CheckOnClick:決定單擊選單項時是否使其選中狀態發生改變,默認值為false,即單擊選單項不會影響其Checked屬性,
CheckState:指示選單項的狀態,與復選框CheckBox控制元件的CheckState屬性相同,共有3個屬性值:Checked,Unchecked和Indeterminate,
DisplayStyle:指示選單項上的顯示內容,共有4個屬性值:None,Text,Image和ImageAndText,默認值為ImageAndText,
DropDownItems:單擊該屬性后的“…”按鈕,調出“項集合編輯器”對話框,以此編輯該選單項對應的子選單中的各選單項,
Image:指定在該選單項上顯示的圖示,
ImageScaling:指定是否調整圖示大小,默認屬性值為SizeToFit,即調整圖示大小以適應選單項,該屬性的另一個屬性值為None,即不調整圖示大小,
ShortCutKeys:為選單項指定快捷鍵,單擊該屬性后的下拉按鈕,出現設定頁面,用于設定選單項的快捷組合鍵,該屬性的默認值為None,

在這里插入圖片描述

ShowShortCutKeys:指示是否在選單項上顯示快捷鍵,默認值為True,即在選單項上按照ShortCutKeys屬性的設定顯示快捷鍵,
Text屬性:指示選單項標題,
ToolTipText屬性:控制元件的ToolTip文本,

事件:

Click事件:單擊選單項時觸發,
DropDownClosed:關閉選單項的子選單時觸發的操作,
DropDownItemClicked:單擊選單項的子選單中任何一項時觸發的操作,
DropDownOpened:選單項的子選單打開之后觸發的操作,
DropDownOpening:打開選單項的子選單時觸發的操作,

彈出選單ContextMenuStrip

屬性:

AllowTransparency:是否能調整表單的不透明度,
AutoClose:是否能在不激活時自動關閉,
AutoSize:是否能自動調整大小,
DefaultDropDownDirection:控制元件的顯示方向,
DisplayRectangle:獲取顯示區域的矩形,
DropShadwnEnabled:是否顯示三維陰影的值,
Items:獲取ToolStrip的所有子項,
LayoutStyle:是否子項的顯示方式,
Opacity:確定表單的不透明度,
OwnerItem:為此 ToolStripDropDown 所有者的 ToolStripItem,
Region:與 ToolStripDropDown 關聯的視窗區域,
ShowCheckMargin:是否在 ToolStripMenuItem 的左邊緣顯示選中標記的位置,
ShowImageMargin:是否在 ToolStripMenuItem 的左邊緣顯示影像的位置,
SourceControl:獲取上一個使此 ContextMenuStrip 被顯示的控制元件,
TextDirection:指定項上的文本繪制方向,

創建主選單

【例6-5】文本編輯器,

在這里插入圖片描述

創建彈出選單

主選單通過表單的MainMenuStrip屬性設定其主選單,
彈出選單可以通過表單中物件的ContextMenuStrip屬性設定某個彈出選單系結到此物件,
給文本框tbContent系結彈出選單:
tbContent.ContextMenuStrip = ContextMenuStrip1;

6.3.4 滑鼠事件

MouseDown:如果滑鼠位于控制元件區域,按下滑鼠按鍵,
MouseUp:如果滑鼠位于控制元件區域,抬起滑鼠按鍵,
MouseMove:如果滑鼠在控制元件區域移動,
MouseEnter:滑鼠進入控制元件區域,
MouseLeave:滑鼠離開控制元件區域,

滑鼠事件處理函式一般有兩個引數:

object sender:產生該事件的物件的屬性Name的值,例如,為Form1的MouseDown事件增加事件函式,單擊Form1,第一個引數sender代表Form1物件,

System.Windows.Forms.MouseEventArgs e:代表事件的一些資訊,事件不同,所代表的資訊也不相同,滑鼠按下事件處理函式中,e.X為發生事件時滑鼠位置的x坐標,e.Y為發生事件時滑鼠位置的y坐標,e.Button為MouseButtons.Left,表示單擊了滑鼠左鍵等等,Right和Middle則分別代表右鍵和中間鍵,e.Clicks為滑鼠單擊的次數,如果大于2次,則為雙擊,

滑鼠事件應用

【例6-6】在表單中的指定區域,單擊或雙擊滑鼠左鍵或右鍵,用Label控制元件顯示滑鼠的事件和位置,

在這里插入圖片描述

6.3.5 對話框設計

在圖形用戶界面中,對話框是一種特殊的表單,向用戶顯示資訊,獲得用戶的回應 ,

在C#.NET中,對話框根據其用途可以分為訊息框、通用對話框和列印組件三大類,

訊息框

C#中通過MessageBox類實作訊息框的定義,

MessageBox.Show(“歡迎!”);
MessageBox.Show("大家晚上好!","問候");
MessageBox.Show("是否繼續?","警告", MessageBox Buttons.YesNoCancel);

在這里插入圖片描述

C#中通過MessageBox類實作訊息框的定義,

MessageBox.Show("程式發生錯誤!","警告", MessageBoxButtons. RetryCancel, MessageBoxIcon.Warning);
MessageBox.Show("程式發生錯誤!","警告", MessageBoxButtons. RetryCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton. Button2);

在這里插入圖片描述

通用對話框

利用通用對話框類控制元件可在表單上創建打開檔案、保存檔案、顏色、字體、列印設定、列印預覽等對話框,

在這里插入圖片描述

通用對話框控制元件繼承了System.Windows.Forms. CommonDialog類,.NET Framewrek中提供了多個常用的對話框控制元件和對應的類,

打開檔案和保存檔案

屬性:
Filter:字串型別,選擇在對話框中顯示的檔案型別,
Filter="純文本檔案(.txt)|.txt|所有檔案(.)|.
FilterIndex:表示打開對話框后,對話框的檔案型別(T)下拉串列編輯框的下拉串列中首先被選中的項的索引號,

可以在設計階段在屬性視窗修改屬性FilterIndex和Filter,也可在程式中用下列陳述句修改:

openFileDialog1.Filter="純文本檔案(*.txt)|*.txt|所有檔案(*.*)|*.*"
openFileDialog1.FilterIndex=1
序號屬性用途
1FileName用戶選取的檔案的路徑和檔案名
2InitialDirectory打開對話框首先顯示該屬性指定的檔案夾中的檔案Font 在對話框顯示的字體
3CheckPathExists在對話框回傳之前,檢查指定路徑是否存在
4DefaultExt如果用戶未指定擴展名,自動增加屬性指定的檔案擴展名
5RestoreDirectory控制對話框在關閉之前是否恢復當前目錄
6ShowHelp啟用“幫助”按鈕
7Title將顯示在對話框標題欄中的字符
8ValiDateNames控制對話框檢查檔案名中是否不含有無效的字符或序列

事件:

FileOk:用戶點擊“打開”或“保存”按鈕時要處理的事件,
HelpRequest:當用戶點擊“幫助”按鈕時要處理的事件,

方法:

ShowDialog():打開對話框,根據方法的回傳值確定用戶單擊了那個按鈕,如回傳

DialogResult.Cancle,用戶單擊了忽略按鈕,如回傳DialogResult.OK,用戶單擊了打開或保存按鈕,

Reset():將所有屬性重新設定為默認值,

顏色對話框(ColorDialog)

屬性
Color:用來設定和獲取用戶選定的顏色,

字體對話框(FontDialog)

屬性:

序號屬性用途
1ShowColor控制是否顯示顏色選項
2AllowScriptChange是否顯示字體的字符集 Font 在對話框顯示的字體
3AllowVerticalFonts是否可選擇垂直字體
4Color在對話框中選擇的顏色
5FontMustExist字體不存在時是否顯示錯誤
6MaxSize可選擇的最大字號
7MinSize可選擇的最小字號
8ScriptsOnly指示對話框是否允許為所有非OEM 和Symbol 字符集以及ANSI 字符集選擇字體
9ShowEffects是否顯示下劃線、洗掉線、字體顏色選項
10ShowHelp是否顯示“幫助”按鈕

事件:

Apply:點擊“應用”按鈕時要處理的事件,
HelpRequest:點擊“幫助”按鈕時要處理的事件,

方法:
ShowDialog():打開對話框,
Reset():將所有屬性重新設定為默認值,

列印組件

PrintDocument類

是用于完成列印的類,

屬性DocumentName:字串型別,記錄列印檔案時顯示的檔案名,

方法Print:開始檔案的列印,

事件BeginPrint:在呼叫Print方法后,在列印檔案的第一頁之前發生,
事件PrintPage:需要列印新的一頁時發生,
事件EndPrint:在檔案的最后一頁列印后發生,

列印步驟:
創建PrintDocument組件的物件 ,

使用頁面設定對話框PageSetupDialog設定頁面列印方式,這些設定作為要列印的所有頁的默認設定,使用列印對話框PrintDialog設定對檔案進行列印的列印機的引數,

呼叫PrintDocument.Print方法來實際列印檔案 ,

事件處理:

引發事件:BeginPrint、PrintPage、EndPrint ,其中每列印一頁都引發PrintPage事件,列印多頁,要多次引發PrintPage事件,

程式員應為這3個事件撰寫事件處理函式,BeginPrint事件處理函式進行列印初始化,一般設定在列印時所有頁的相同屬性或共用的資源,例如所有頁共同使用的字體、建立要列印的檔案流等,PrintPage事件處理函式負責列印一頁資料,EndPrint事件處理函式進行列印善后作業,

列印設定對話框

用戶使用此對話框能夠設定紙張大小(型別)、紙張來源、縱向與橫向列印、上下左右的頁邊距等,

pageSetupDialog1.Document=printDocument1;
pageSetupDialog1.ShowDialog();

在這里插入圖片描述

列印預覽對話框

printPreviewDialog1.Document=printDocument1;
printPreviewDialog1.ShowDialog();

列印對話框(PrintDialog)

首先設定其屬性Document為指定的PrintDocument類物件,打開PrintDialog對話框后,修改的設定將保存到PrintDocument類的物件中,當用戶點擊“確定”按鈕后呼叫PrintDocument類的Print()方法實作列印,

在這里插入圖片描述

6.3.6 應用實體

【例6-7】文本編輯器的實作

實作一個類似于Windows寫字板的程式,

在這里插入圖片描述

本章小結

常用控制元件

單選按鈕、復選框、框架、串列框、組合框、滾動條、進度條、定時器

選單設計

MenuStrip和ContextMenuStrip

對話框

訊息框MessageBox、通用對話框CommonDialog 、列印組件

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/281312.html

標籤:其他

上一篇:開發8年程式員:你是不是瘋了,為什么位元組跳動的Offer都不要了?

下一篇:STL--vector模擬實作

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more