2025年大二vb上机题库及答案_第1页
2025年大二vb上机题库及答案_第2页
2025年大二vb上机题库及答案_第3页
2025年大二vb上机题库及答案_第4页
2025年大二vb上机题库及答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年大二vb上机题库及答案一、简易科学计算器设计1.界面要求:创建Windows窗体,包含1个文本框(Name属性为txtDisplay,Text属性初始为空,ReadOnly属性设为True),16个按钮(0-9数字键、小数点键"."、四则运算符"+""-""×""÷"、取模键"%"、等号键"="、清除键"CE"、退格键"←")。按钮排列为4行5列,数字键按常规计算器布局,运算符列于右侧。2.功能要求:数字键与小数点键:点击时向txtDisplay追加输入(小数点仅允许输入1次)。运算符键:记录当前输入的数值和运算符,清空txtDisplay以接收下一数值(支持连续运算,如"3+5×2"应计算为13而非16)。等号键:根据记录的运算符和数值执行计算,结果显示在txtDisplay(处理除零错误,弹出提示框"除数不能为零")。清除键CE:清空txtDisplay和所有记录的中间值。退格键←:删除txtDisplay最后一位字符(若为空则无操作)。取模键%:计算两数取模(仅整数有效,非整数输入时提示"取模仅支持整数")。答案:```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("取模仅支持整数")ReturnEndIfnum1=num1Modnum2EndSelecttxtDisplay.Text=num1.ToString()currentOp=""hasDot=(txtDisplay.Text.Contains("."))CatchexAsDivideByZeroExceptionMessageBox.Show("除数不能为零")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```二、学提供绩统计与排序系统1.界面要求:窗体包含1个多行文本框(txtInput,用于输入学生姓名和三科成绩,格式示例:"张三,85,90,78"),1个"导入数据"按钮(btnImport),1个列表框(lstResult,显示排序后的学生信息),1个"按总分排序"按钮(btnSort),1个"统计分析"按钮(btnStats),3个标签(lblAvgChinese、lblAvgMath、lblAvgEnglish,显示各科平均分)。2.功能要求:导入数据:点击btnImport时,读取txtInput内容,按行分割,每行用逗号分割为姓名、语文、数学、英语成绩(验证成绩是否为0-100的整数,否则提示"无效成绩:XXX")。按总分排序:将学生数据按总分降序排列,结果显示在lstResult(格式:"姓名语文数学英语总分")。统计分析:计算并显示各科平均分(保留2位小数)。答案:```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("无效数学成绩:"&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("数据导入完成,共"&students.Count&"条有效记录")EndSubPrivateSubbtnSort_Click(senderAsObject,eAsEventArgs)HandlesbtnSort.ClickIfstudents.Count=0ThenMessageBox.Show("请先导入数据")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("请先导入数据")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="数学平均分:"&(sumMath/students.Count).ToString("F2")lblAvgEnglish.Text="英语平均分:"&(sumEnglish/students.Count).ToString("F2")EndSubEndClass```三、图书借阅信息管理系统(数据库版)1.界面要求:使用Access数据库(文件路径:D:\Library.accdb),包含"图书表"(字段:ISBN(主键,文本)、书名(文本)、作者(文本)、库存量(整数))和"借阅表"(字段:借阅ID(自动编号)、ISBN(文本)、读者姓名(文本)、借阅日期(日期/时间)、应还日期(日期/时间))。窗体包含:图书管理区:文本框txtISBN、txtTitle、txtAuthor、txtStock;按钮btnAddBook(添加图书)、btnUpdateBook(更新图书信息)、btnDeleteBook(删除图书,仅当库存量为0时允许删除)。借阅管理区:组合框cboISBN(绑定图书表ISBN)、txtReader、dtpBorrow(日期选择器,默认当前日期)、dtpReturn(日期选择器,默认当前日期+30天);按钮btnBorrow(借书,库存量≥1时扣减库存并添加借阅记录)、btnReturn(还书,根据借阅ID查找记录,恢复库存并标记已还)。数据显示区: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时,实时调整动画速度。答案:```vbPublicClassAnimationForm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论