版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2025年大二vb上機題庫及答案一、簡易科學計算器設計1.界面要求:創(chuàng)建Windows窗體,包含1個文本框(Name屬性為txtDisplay,Text屬性初始為空,ReadOnly屬性設為True),16個按鈕(0-9數(shù)字鍵、小數(shù)點鍵"."、四則運算符"+""-""×""÷"、取模鍵"%"、等號鍵"="、清除鍵"CE"、退格鍵"←")。按鈕排列為4行5列,數(shù)字鍵按常規(guī)計算器布局,運算符列于右側(cè)。2.功能要求:數(shù)字鍵與小數(shù)點鍵:點擊時向txtDisplay追加輸入(小數(shù)點僅允許輸入1次)。運算符鍵:記錄當前輸入的數(shù)值和運算符,清空txtDisplay以接收下一數(shù)值(支持連續(xù)運算,如"3+5×2"應計算為13而非16)。等號鍵:根據(jù)記錄的運算符和數(shù)值執(zhí)行計算,結(jié)果顯示在txtDisplay(處理除零錯誤,彈出提示框"除數(shù)不能為零")。清除鍵CE:清空txtDisplay和所有記錄的中間值。退格鍵←:刪除txtDisplay最后一位字符(若為空則無操作)。取模鍵%:計算兩數(shù)取模(僅整數(shù)有效,非整數(shù)輸入時提示"取模僅支持整數(shù)")。答案:```vbPublicClassCalculatorDimnum1AsDouble,num2AsDoubleDimcurrentOpAsString=""DimhasDotAsBoolean=FalsePrivateSubNumButton_Click(senderAsObject,eAsEventArgs)Handlesbtn0.Click,btn1.Click,...,btn9.ClickDimbtnAsButton=senderIftxtDisplay.Text="0"ThentxtDisplay.Text=btn.TextElsetxtDisplay.Text+=btn.TextEndIfEndSubPrivateSubbtnDot_Click(senderAsObject,eAsEventArgs)HandlesbtnDot.ClickIfNothasDotThentxtDisplay.Text+="."hasDot=TrueEndIfEndSubPrivateSubOpButton_Click(senderAsObject,eAsEventArgs)HandlesbtnAdd.Click,btnSub.Click,btnMul.Click,btnDiv.Click,btnMod.ClickIftxtDisplay.Text<>""Thennum1=Double.Parse(txtDisplay.Text)currentOp=DirectCast(sender,Button).TexttxtDisplay.Clear()hasDot=FalseEndIfEndSubPrivateSubbtnEqual_Click(senderAsObject,eAsEventArgs)HandlesbtnEqual.ClickIftxtDisplay.Text<>""AndAlsocurrentOp<>""Thennum2=Double.Parse(txtDisplay.Text)TrySelectCasecurrentOpCase"+":num1+=num2Case"-":num1-=num2Case"×":num1=num2Case"÷":Ifnum2=0ThenThrowNewDivideByZeroException()num1/=num2Case"%":Ifnum1<>Math.Floor(num1)OrElsenum2<>Math.Floor(num2)ThenMessageBox.Show("取模僅支持整數(shù)")ReturnEndIfnum1=num1Modnum2EndSelecttxtDisplay.Text=num1.ToString()currentOp=""hasDot=(txtDisplay.Text.Contains("."))CatchexAsDivideByZeroExceptionMessageBox.Show("除數(shù)不能為零")txtDisplay.Clear()num1=0:num2=0:currentOp="":hasDot=FalseEndTryEndIfEndSubPrivateSubbtnCE_Click(senderAsObject,eAsEventArgs)HandlesbtnCE.ClicktxtDisplay.Clear()num1=0:num2=0:currentOp="":hasDot=FalseEndSubPrivateSubbtnBack_Click(senderAsObject,eAsEventArgs)HandlesbtnBack.ClickIftxtDisplay.Text.Length>0ThentxtDisplay.Text=txtDisplay.Text.Substring(0,txtDisplay.Text.Length1)hasDot=txtDisplay.Text.Contains(".")EndIfEndSubEndClass```二、學提供績統(tǒng)計與排序系統(tǒng)1.界面要求:窗體包含1個多行文本框(txtInput,用于輸入學生姓名和三科成績,格式示例:"張三,85,90,78"),1個"導入數(shù)據(jù)"按鈕(btnImport),1個列表框(lstResult,顯示排序后的學生信息),1個"按總分排序"按鈕(btnSort),1個"統(tǒng)計分析"按鈕(btnStats),3個標簽(lblAvgChinese、lblAvgMath、lblAvgEnglish,顯示各科平均分)。2.功能要求:導入數(shù)據(jù):點擊btnImport時,讀取txtInput內(nèi)容,按行分割,每行用逗號分割為姓名、語文、數(shù)學、英語成績(驗證成績是否為0-100的整數(shù),否則提示"無效成績:XXX")。按總分排序:將學生數(shù)據(jù)按總分降序排列,結(jié)果顯示在lstResult(格式:"姓名語文數(shù)學英語總分")。統(tǒng)計分析:計算并顯示各科平均分(保留2位小數(shù))。答案:```vbPublicClassScoreAnalyzerStructureStudentPublicNameAsStringPublicChineseAsIntegerPublicMathAsIntegerPublicEnglishAsIntegerPublicTotalAsIntegerEndStructureDimstudentsAsNewList(OfStudent)PrivateSubbtnImport_Click(senderAsObject,eAsEventArgs)HandlesbtnImport.Clickstudents.Clear()Dimlines()AsString=txtInput.LinesForEachlineInlinesIfline.Trim()=""ThenContinueForDimparts()AsString=line.Split(","c)Ifparts.Length<>4ThenMessageBox.Show("格式錯誤:"&line)ContinueForEndIfDimsAsNewStudents.Name=parts(0).Trim()IfNotInteger.TryParse(parts(1),s.Chinese)OrElses.Chinese<0OrElses.Chinese>100ThenMessageBox.Show("無效語文成績:"&line)ContinueForEndIfIfNotInteger.TryParse(parts(2),s.Math)OrElses.Math<0OrElses.Math>100ThenMessageBox.Show("無效數(shù)學成績:"&line)ContinueForEndIfIfNotInteger.TryParse(parts(3),s.English)OrElses.English<0OrElses.English>100ThenMessageBox.Show("無效英語成績:"&line)ContinueForEndIfs.Total=s.Chinese+s.Math+s.Englishstudents.Add(s)NextMessageBox.Show("數(shù)據(jù)導入完成,共"&students.Count&"條有效記錄")EndSubPrivateSubbtnSort_Click(senderAsObject,eAsEventArgs)HandlesbtnSort.ClickIfstudents.Count=0ThenMessageBox.Show("請先導入數(shù)據(jù)")ReturnEndIflstResult.Items.Clear()Dimsorted=students.OrderByDescending(Function(s)s.Total).ToList()ForEachsInsortedlstResult.Items.Add($"{s.Name}{s.Chinese}{s.Math}{s.English}{s.Total}")NextEndSubPrivateSubbtnStats_Click(senderAsObject,eAsEventArgs)HandlesbtnStats.ClickIfstudents.Count=0ThenMessageBox.Show("請先導入數(shù)據(jù)")ReturnEndIfDimsumChinese=students.Sum(Function(s)s.Chinese)DimsumMath=students.Sum(Function(s)s.Math)DimsumEnglish=students.Sum(Function(s)s.English)lblAvgChinese.Text="語文平均分:"&(sumChinese/students.Count).ToString("F2")lblAvgMath.Text="數(shù)學平均分:"&(sumMath/students.Count).ToString("F2")lblAvgEnglish.Text="英語平均分:"&(sumEnglish/students.Count).ToString("F2")EndSubEndClass```三、圖書借閱信息管理系統(tǒng)(數(shù)據(jù)庫版)1.界面要求:使用Access數(shù)據(jù)庫(文件路徑:D:\Library.accdb),包含"圖書表"(字段:ISBN(主鍵,文本)、書名(文本)、作者(文本)、庫存量(整數(shù)))和"借閱表"(字段:借閱ID(自動編號)、ISBN(文本)、讀者姓名(文本)、借閱日期(日期/時間)、應還日期(日期/時間))。窗體包含:圖書管理區(qū):文本框txtISBN、txtTitle、txtAuthor、txtStock;按鈕btnAddBook(添加圖書)、btnUpdateBook(更新圖書信息)、btnDeleteBook(刪除圖書,僅當庫存量為0時允許刪除)。借閱管理區(qū):組合框cboISBN(綁定圖書表ISBN)、txtReader、dtpBorrow(日期選擇器,默認當前日期)、dtpReturn(日期選擇器,默認當前日期+30天);按鈕btnBorrow(借書,庫存量≥1時扣減庫存并添加借閱記錄)、btnReturn(還書,根據(jù)借閱ID查找記錄,恢復庫存并標記已還)。數(shù)據(jù)顯示區(qū):DataGridView(dgvBooks,顯示圖書表)、dgvBorrow(顯示未還借閱記錄)。答案:```vbImportsSystem.Data.OleDbPublicClassLibraryManagerDimconnStrAsString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=D:\Library.accdb"PrivateSubForm_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadLoadBooks()LoadBorrowRecords()BindISBNCombo()EndSubPrivateSubLoadBooks()UsingconnAsNewOleDbConnection(connStr)conn.Open()DimcmdAsNewOleDbCommand("SELECTFROM圖書表",conn)DimadapterAsNewOleDbDataAdapter(cmd)DimdtAsNewDataTable()adapter.Fill(dt)dgvBooks.DataSource=dtEndUsingEndSubPrivateSubLoadBorrowRecords()UsingconnAsNewOleDbConnection(connStr)conn.Open()DimcmdAsNewOleDbCommand("SELECTFROM借閱表WHERE實際還書日期ISNULL",conn)DimadapterAsNewOleDbDataAdapter(cmd)DimdtAsNewDataTable()adapter.Fill(dt)dgvBorrow.DataSource=dtEndUsingEndSubPrivateSubBindISBNCombo()UsingconnAsNewOleDbConnection(connStr)conn.Open()DimcmdAsNewOleDbCommand("SELECTISBNFROM圖書表",conn)DimreaderAsOleDbDataReader=cmd.ExecuteReader()cboISBN.Items.Clear()Whilereader.Read()cboISBN.Items.Add(reader("ISBN").ToString())EndWhileEndUsingEndSubPrivateSubbtnAddBook_Click(senderAsObject,eAsEventArgs)HandlesbtnAddBook.ClickIftxtISBN.Text=""OrElsetxtTitle.Text=""ThenMessageBox.Show("ISBN和書名不能為空")ReturnEndIfUsingconnAsNewOleDbConnection(connStr)conn.Open()DimcheckCmdAsNewOleDbCommand("SELECTCOUNT()FROM圖書表WHEREISBN=?",conn)checkCmd.Parameters.AddWithValue("?",txtISBN.Text)IfCInt(checkCmd.ExecuteScalar())>0ThenMessageBox.Show("ISBN已存在")ReturnEndIfDiminsertCmdAsNewOleDbCommand("INSERTINTO圖書表(ISBN,書名,作者,庫存量)VALUES(?,?,?,?)",conn)insertCmd.Parameters.AddWithValue("?",txtISBN.Text)insertCmd.Parameters.AddWithValue("?",txtTitle.Text)insertCmd.Parameters.AddWithValue("?",txtAuthor.Text)insertCmd.Parameters.AddWithValue("?",txtStock.Text)insertCmd.ExecuteNonQuery()LoadBooks()EndUsingEndSubPrivateSubbtnBorrow_Click(senderAsObject,eAsEventArgs)HandlesbtnBorrow.ClickIfcboISBN.SelectedItemIsNothingOrElsetxtReader.Text=""ThenMessageBox.Show("請選擇ISBN并輸入讀者姓名")ReturnEndIfUsingconnAsNewOleDbConnection(connStr)conn.Open()'檢查庫存量DimstockCmdAsNewOleDbCommand("SELECT庫存量FROM圖書表WHEREISBN=?",conn)stockCmd.Parameters.AddWithValue("?",cboISBN.SelectedItem.ToString())DimstockAsInteger=CInt(stockCmd.ExecuteScalar())Ifstock<1ThenMessageBox.Show("庫存不足")ReturnEndIf'扣減庫存DimupdateStockCmdAsNewOleDbCommand("UPDATE圖書表SET庫存量=庫存量-1WHEREISBN=?",conn)updateStockCmd.Parameters.AddWithValue("?",cboISBN.SelectedItem.ToString())updateStockCmd.ExecuteNonQuery()'添加借閱記錄DiminsertBorrowCmdAsNewOleDbCommand("INSERTINTO借閱表(ISBN,讀者姓名,借閱日期,應還日期)VALUES(?,?,?,?)",conn)insertBorrowCmd.Parameters.AddWithValue("?",cboISBN.SelectedItem.ToString())insertBorrowCmd.Parameters.AddWithValue("?",txtReader.Text)insertBorrowCmd.Parameters.AddWithValue("?",dtpBorrow.Value)insertBorrowCmd.Parameters.AddWithValue("?",dtpReturn.Value)insertBorrowCmd.ExecuteNonQuery()LoadBooks()LoadBorrowRecords()EndUsingEndSubEndClass```四、圖形繪制與動畫演示1.界面要求:窗體包含1個畫布(PictureBox,Name為picCanvas,Size設為500x500),1個"開始動畫"按鈕(btnStart),1個"停止動畫"按鈕(btnStop),1個跟蹤條(TrackBar,Name為trbSpeed,Min=1,Max=10,Value=5,用于控制動畫速度)。2.功能要求:點擊btnStart時,在picCanvas中繪制一個紅色圓形(半徑20),使其從左上角(0,0)開始,以每秒trbSpeed10像素的速度向右下方移動(方向角45度),遇到邊界時反彈(水平和垂直方向速度反向)。點擊btnStop時,停止動畫。拖動trbSpeed時,實時調(diào)整動畫速度。答案:```vbPublicClassAnimationForm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)例會制度
- 中轉(zhuǎn)站污水處理制度
- 專家培訓制度
- 浙江中考歷史三年(2023-2025)真題分類匯編專題05 世界史非選擇題(解析版)
- 2025-2030中國減振器總成市場深度解析與行業(yè)需求規(guī)模預測研究報告
- 2025至2030中國智慧物流園區(qū)自動化設備配置標準與投資回報周期研究
- 2025至2030生物醫(yī)藥產(chǎn)業(yè)市場發(fā)展分析及前景趨勢與創(chuàng)新投資機會研究報告
- 2025-2030中國戶內(nèi)開關(guān)箱市場未來建設及競爭格局預測分析研究報告
- 2025至2030中國鍍鋅鋼板市場消費需求及競爭格局研究報告
- 2025至2030禮品包裝行業(yè)數(shù)字化轉(zhuǎn)型與智能化發(fā)展研究報告
- 2026福建能源石化集團校招面筆試題及答案
- 華東理工大學2026年公開招聘工作人員46名備考題庫及參考答案詳解
- 云南師大附中2026屆高三高考適應性月考卷(六)歷史試卷(含答案及解析)
- 2025桐梓縣國土空間規(guī)劃城市年度體檢報告成果稿
- ISO-26262功能安全培訓
- 2025浙江杭州錢塘新區(qū)建設投資集團有限公司招聘5人備考筆試試題及答案解析
- 智能家居銷售培訓課件
- 2025-2026學年小學蘇少版(2024)新教材一年級上冊美術(shù)期末測試卷及答案
- 2025-2026學年北師大版六年級數(shù)學上冊期末測試卷及答案
- 不同類型休克的床旁超聲鑒別診斷策略
- 企業(yè)ESG審計體系構(gòu)建-洞察及研究
評論
0/150
提交評論