VB课程设计-学生成绩处理系统
VB课程设计-学生成绩处理系统

长江大学Yangtze universityVB课程设计实习报告专业班级﹕储运11001学生学号﹕201007078学生姓名﹕彭壮班级序号﹕16指导老师﹕冯翠丽完成时间﹕2011-12—22一.设计题目学生成绩管理系统二.设计思路从文本中读取文件数据,利用VB的顺序结构,选择结构,循环结构编写程序代码,最终将各代码写入界面设计中的各菜单下.三.程序实现的目标本程序将实现从文本中读取数据,赋值数据,运算数据,实现对学生的加权平均值,名次,全班每门课的分数段,不及格同学名单,优等生名单等运算,并写入文件。
四.程序设计框图五。
运行结果原始成绩课程学分原始成绩和原始课程学分文件读取原始课程文件加权平均分成绩排名每门课程的班级平均分加权平均分分布每门课程及分布成绩条优等生名单不及格学生名单成绩查询系统按姓名查找示例﹕按学号查找示例﹕按名次查找示例﹕六.源程序模块代码:Type xscjbxh As Stringxm As Stringcj(1 To5)AsIntegeraver As SinglemcAs IntegerEndTypeType kechen编号AsInteger课程名As String学分As SingleEnd TypePublic stu() As xscjbPublic ke() AskechenPublicN%, M%,Zxf%Public str As String窗体代码:①Form1:Public Function space1(ByVal sssAs String)Dimx%x =InStr(sss, "")DoWhilex> 0sss=Replace(sss,”", ”")x = InStr(sss," ”)Loopspace1 = sssEndFunctionPrivate Sub ajqfspm_Click()Dim t!, k As SingleForm1.ClsForm1.FontSize= 12Form1。
VB课程设计----学生成绩管理系统

一.课程设计题目学生成绩管理系统二.功能描述系统主要由四部分组成:系统用户的管理、学生成绩的管理、学生信息的管理、,学生成绩信息的统计,其中还包括登录界面等模块。
各模块的主要功能如下:(1).系统用户的管理:实现用户的添加、删除和密码的修改(3).学生成绩的管理:实现学生成绩的录入,查询,删除和修改。
(4).学生成绩信息的统计:实现学生男女生人数以及不及格人数的统计。
(2).学生信息的管理:实现学生学籍信息的添加,查询、删除和修改。
三.概要设计对上述各项功能进行集中、分块,按照结构化层序设计的要求,得到如图1所示的系统功能模块图。
图1系统功能模块图四.数据库设计数据库在本成绩管理系统中占有非常重要的地位,数据库结构的好坏将直接对应用系统的效率以及实现的效率产生影响。
合理的数据库及结构设计可以提高数据存储的效率,保证数据的完整和一致。
同时合理的数据库结构也将有利于程序的实现。
设计本系统的数据库应该充分满足用户的需求。
针对一般学生管理系统的需求,通过对学生学习过程的内容的分析,设计如下面所示的数据项和数据结构。
(1)基本信息表:包括的字段有:学号,姓名,性别,年龄,联系电话,家庭住址。
表1 基本信息表(2)成绩表:包括的字段有:学号,姓名,性别,班级,高数成绩,英语成绩,计算机成绩。
表2 成绩表(表3密码表(4)教师密码表:包括的字段有:用户名,密码。
五.详细设计系统主要由五部分组成:系统用户的管理、学生成绩的管理、学生信息的管理、信息的查询,其中还包括登录界面以及成绩的统计模块。
各模块的主要功能如下:1.系统用户的管理:实现用户的添加、删除和密码的修改。
通过.Hide对象方法隐藏原有窗体界面,通过.Show对象方法显示所要用到的窗体界面。
2.学生信息的管理:通过创建数据库,连接数据库,调用数据库及Data控件Adodc 控件,MSHFlexGrid控件的使用来实现学生信息的添加,查询,删除和修改。
VB学生成绩管理系统

vb学生成绩管理系统Vb+sql学生成绩管理系统一、实验目的1.综合掌握实验一到实验六的内容。
2。
掌握编程语言与数据库连接及访问表记录的方法。
二、实验准备1.综合以前所学知识,结合某种编程语言开发完整的系统; 2。
预习数据库与编程语言链接的相关内容;四、系统功能流程图学生成绩管理系统用户登录学生成绩管理系统课程信息管理成绩信息管理学生信息管理班级信息管理添加添加添加添加修改修改修改修改删除删除删除删除查询查询五、实验内容及步骤Sql建表:create table student(student_ID char(4) NOT NULL ,student_Name char(10) NOT NULL ,student_Sex char(2) NULL ,born_Date datetime NULL , class_NO char(10) NULL ,tele_Number char(10) NULL ,ru_Date datetime NULL ,address varchar(50) NULL , comment varchar(200) NULL ) create table result(exam_No char(10) NOT NULL ,student_ID char(4) NOT NULL ,student_Name char(10) NULL ,class_No char(10) NULL ,course_Name char(10) NULL , result float NULL)create table course(course_No char(10) NOT NULL , course_Name char(10) NULL ,course_Type char(10) NULL ,course_Des char(50) NULL ) create table class(class_No char(10) NOT NULL ,grade char(10) NULL ,director char(10) NULL ,classroom_No char(10) NULL )六、Vb开发欢迎界面欢迎界面设计思想:以动画形式开始整个程序设计代码:Option ExplicitDim Proba, Proba2 As Integer Dim Boja2 As StringPrivate Function Zrak(slika As PictureBox, StartX As Integer,StartY AsInteger, Levo As Integer, Desno As Integer, Boja As String)Me.ScaleMode = vbPixelsWith slika.ScaleMode = vbPixels。
VB学生成绩管理系统课程设计报告

VB程序设计课程设计报告班级:资工10902 班姓名:何睦序号:05指导老师:少华邵燕林王庆君华朱小龙目录1、课设的目的 (3)2、界面设计和功能设计 (3)3、系统功能实施 (12)4、系统功能设计 (19)5、总结和体会 (28)一、课设的目的1.通过本次课程设计,提高实践动手能力;2.通过本次课程设计,进一步理解计算机程序设计的思路与方法;3.通过本次课程设计,进一步熟练运用VB的语言元素和流程控制语句;4.通过本次课程设计,达到能熟练使用各种常见的VB控件,理解面向对象的思想;5.通过本次课程设计,熟悉用户界面的设计;6.通过本次课程设计,熟悉数据访问控件ADO及相关对象的使用,能基于ADO控件实现Access的数据访问与操纵;二、界面设计和功能设计1、下面的界面为用户登陆界面:用户名和密码均已设定,用户名为zg,密码为10902,只有输入正确,然后点击“登陆“按钮才能进入主界面。
如果用户名或密码三次输入错误,则系统自动退出。
当你点击“退出“按钮时,弹出一个对话窗,界面如下:在对话框上点击“是”按钮,则退出系统,如果点击“否”,则该界面不变。
2、当用户名和密码均输入正确,点击“登陆”按钮,进入主界面——“学生成绩管理系统”界面,该界面是其他子界面的入口,界面如下:3、进入主界面后,点击“学生管理(删除\添加)”,进入学生管理界面,界面如下:该界面上有一个ADO控件,用于连接数据库,当用户在六个文本框中输入数据时,点击“添加“按钮,可以将数据录入到数据库中,如果此时点击”删除“按钮,则刚才输入的数据就会被删除,点击”保存“按钮时,输入的数据就会自动保存在数据库里,点击”返回主窗体“按钮,该窗体消失,主窗体出现。
4、在主界面点击“各科成绩查询“按钮,出现如下界面:该界面有一个ADO控件,用来连接数据库,还有一个DataGrid控件,用来显示学生成绩的查询结果,当用户选择了要查询的科目和条件后,点击“查询“按钮,在DataGrid控件上就会显示出所查询的结果。
基于vb的学生成绩管理系统设计与实现

基于VB的学生成绩管理系统设计与实现【1】简介学生成绩管理系统是一种能够帮助学校和老师管理学生成绩信息的工具。
通过该系统,可以方便地录入、查询、统计学生成绩,为学校和老师提供了高效便捷的管理方式。
本文将重点讨论基于VB的学生成绩管理系统的设计与实现。
【2】系统需求分析(1)功能需求学生成绩管理系统需要包括学生信息录入、成绩录入、成绩查询、成绩统计和报表打印等功能。
系统需要具有数据安全性和稳定性,能够保证学生成绩信息的准确性和完整性。
(2)性能需求系统需要能够实现快速的数据录入和查询,响应速度要较快。
系统需要支持大量数据的存储和处理,能够满足学校成绩管理的实际需求。
(3)界面需求系统的界面设计应简洁美观,操作要简单易懂,能够方便老师和管理员进行使用。
【3】系统设计(1)数据库设计设计学生成绩管理系统的数据库结构,包括学生信息表、成绩信息表和其他相关信息表。
需要考虑数据表的关联性和索引,以提高数据检索和统计的效率。
(2)界面设计通过VB的界面设计工具,设计系统的用户界面。
采用直观的界面布局和人性化的操作方式,使用户能够方便地进行各项操作。
(3)功能模块设计根据系统需求,划分出学生信息管理模块、成绩信息管理模块、成绩查询模块、成绩统计模块和报表打印模块。
设计各个功能模块的具体实现方式,并确保模块之间的协调和配合。
【4】系统实现(1)数据库连接与操作在VB中使用ADO技术,进行与数据库的连接和操作。
通过VB代码编写,实现对学生成绩数据库的增删改查等操作,确保数据的准确性和完整性。
(2)界面实现利用VB的窗体和控件设计,实现系统的用户界面。
包括各个功能模块的窗体设计和按钮控件的添加,使用户能够方便地进行各项操作。
(3)功能实现通过VB的编程语言,实现学生信息录入、成绩录入、成绩查询、成绩统计和报表打印等功能。
确保系统的稳定性和高效性,满足学校成绩管理的实际需求。
【5】个人观点与总结基于VB的学生成绩管理系统的设计与实现是一个综合性的工作,需要考虑到功能、性能和界面等多方面的需求。
VB程序设计实验-学生成绩管理系统

河南工业大学计算机上机实习报告**:***序号:11学号:************班级:食工 1004班指导老师: 任老师张老师日期:2011-03-05目录一:系统名称:学生成绩管理系统的设计与实现二:设计目的三:程序摘要四:系统设计流程五:相关数据列表六:小结七:程序代码(1)模块代码(2)窗体代码一.系统名称:学生成绩管理系统的设计与实现二.设计目的1. 熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧;2. 主要掌握VB语言中的结构体﹑指针及文件操作等内容3. 了解开发简单应用程序的全过程,包括:分析﹑设计﹑编程﹑调试和编写报告.三.程序摘要先在记事本中创建2个文本文档,分别输入本班24名学生在本学期的5门考试课的成绩和课程名及其学分.在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,计算出每个学生5门课的加权平均分,并按平均分排列名次.然后显示菜单,调用各个函数,完成以下功能:1.用VB语言创建一个数据文件,文件名为:“VB课程设计”,用来存放班级的成绩表.2.分别统计全班每门课的平均分和标准差,并计算各分数段(90分以上;80~90;70~79;60~69;60分以下)的学生数3.用VB语言创建一个数据文件,文件名为:“VB课程设计”,用来存放编号,课程名称,课程平均分,标准差,优秀,良好,中等,及格,不及格.4.打印每名学生成绩条,结果存放到用VB语言创建的一个数据文件中,成绩条格式为名次,学号,姓名,英语,数学,VB语言,物理,化学5.屏幕显示所有存在不及格课程的学生的名单(含学号,不及格课程名称,课程的学分及成绩)6.屏幕显示优等生名单(含学号,N门课成绩,平均分,名次),优等生条件:a) 平均分>=90分b) 名次在本班位于前三名c) 平均分>=85分,并且至少有一门课的成绩>=95四、系统设计流程五.相关数据列表1、原始成绩表2、课程及学分3、计算加权平均分4、按平均分排名次5、打印每位同学的成绩条6、打印不及格的人7、打印优等生情况8、每门课的平均分9、各分数段人数六.小结在这次上机实习过程中,我了解了程序在Visual VB 6.0中调试并运的方法,并上机实践解决了一些平时没有机会解决和一些曾经被自己忽视的问题,如程序的排序对结果显示影响,标点符号对程序结果的影响,并养成了仔细检查程序的好习惯,加强了自己动手的能力。
《数据库技术》课程设计-VB学生成绩管理系统
《数据库技术》课程设计题目数据库课程设计学号姓名班级指导老师2010 年 6月 28日—2010 年 7 月 2 日目录:一、引言二、系统分析2.1 选择开发工具…………………………………2.2 系统规划………………………………………三、系统设计3.1 系统数据库设计………………………………3.2 系统的主要功能………………………………四、概述4.1目的与要求…………………………………..4.2设计环境……………………………………..五、数据库的实现与维护六、实例演示七、收获与心得体会一、引言主要是讨论如何解决根据学生成绩评估教学质量的信息化问题。
针对该问题,利用VB语言做了一个学生成绩评估系统,该系统能简化根据学生的成绩来对教学质量进行评估的过程,使老师的教学成果、学生的成绩变化都一目了然。
为达到所定的目的。
本系统主要使用了VB语言,SQL Server 2000系统,数据库等工具。
学生的成绩数据主要储存于SQL数据库,因此需要首先对数据库进行操作、处理。
本文首先概述了信息化教育的发展情况,讲明了开发学生成绩评估系统的必要性,接着阐述了学生成绩评估系统的基本设计思想及实现方法。
并以该系统为应用实例,介绍了用VB语言进行绘制图表以及使用SQL Server 2000及操作数据库的一些要注意的地方。
二、系统分析2.1 选择开发工具SQL Server 2000,VB。
2.2 系统规划学生成绩管理系统,主要涉及学生信息、课程信息、成绩信息等数据库表。
为简单起见,成绩可不考虑五级记分制的字符型分值,如优、良、中、及格、不及格等,只考虑数字型的分值,如 95,90,55等。
三、系统设计3.1 系统数据库设计数据项是数据库关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用关系型数据库的特征,将学生成绩管理设计为1个数据库,包含3个数据库表。
(1)学生信息表:从成绩的角度,学生信息表包括学生学号、姓名、系别三个字段就够了,但考虑其它用处,还可将学生家庭联系信息 (如,邮政编码,通讯地址,收信人,电话等)也包括在学生信息表中。
用VB制作学生成绩管理系统
摘要该学生成绩管理系统是用Visual Basic 制作的,该系统可以实现教师进行对学生的成绩管理,添加学生用户以及可以查询学生的成绩;还实现学生用户通过登录系统可以查询到自己的各科课程成绩以及修改自己的登录密码;还有的是教师用户和学生用户可以退出系统。
该系统采用了对窗体、基本控件的应用,选择结构的if语句,循环结构的循环语句for…next结构,菜单设计,过程,数据文件来构建整个程序。
在此报告中重点叙述了学生成绩系统的各个功能,特别是学生的成绩查询和密码修改以及教师和学生的登录。
整个系统会以系统结构图、程序流程图、功能模块,让大家能知晓该系统的功能。
摘要 (1)第一章任务概述 (3)1.1、目标 (3)1.2、需求分析 (3)1.2.1、鼠标操作 (3)1.2.2、键盘操作 (3)第二章总体设计 (4)2.1、系统结构图 (4)第三章详细设计 (5)3.1、程序运行后的界面 (5)3.2、教师的登录界面 (5)3.3、教师对学生的成绩管理的界面 (6)3.4、教师对学生添加用户的界面 (8)3.5、学生的登录界面 (10)3.6、学生查询成绩的界面 (12)3.7、学生修改密码的界面 (13)小结 (15)第一章任务概述1.1、目标本系统的目标是建立一套可以对学生的成绩的管理、查询学生的各科成绩、对学生的密码修改的学生成绩管理系统。
该系统可以帮助我们更方便的管理学生的成绩,替代了以前的手工操作管理学生的成绩,节约我们珍贵的时间。
1.2、需求分析根据该系统的需求分析,系统的需求可以分为以下的几个方面:1.2.1、鼠标操作你可以利用鼠标点击界面的某些按钮来实现对系统的有关操作。
1.2.2、键盘操作你可以利用键盘对该系统的某些操作。
第二章总体设计2.1、系统结构图图2-1 系统结构图第三章详细设计3.1、程序运行后的界面图3-1 系统界面3.2、教师的登录界面图3-2 教师登录界面代码:Private Sub Command1_Click()Dim usename As String, pwd As String’定义用户名和用户密码usename = LCase(Trim(T1.Text))pwd = T2.TextIf usename = "admin" Then’判断用户名和密码是否正确If pwd = "123456" ThenUnload Me管理Form.ShowElseMsgBox "密码错误!", vbOKOnly + vbInformation, "提示"T2.SetFocusT2.SelLength = 99End IfElseMsgBox "用户名错误!"End IfEnd Sub3.3、教师对学生的成绩管理的界面图3-3 成绩管理界面主要代码:Private Type student ’对student类型和公共变量的定义num As String * 8name As String * 6gs As Integeryy As Integervb As Integerwl As IntegerEnd TypeDim s As student’记录变量Dim filenum As Integer’随机文件编号Dim lastrecord As Long’文件中最后一条记录的编号Dim position As Long’当前记录编号Private Sub addCmd_Click()’添加学生的成绩lastrecord = LOF(filenum) / Len(s)lastrecord = lastrecord + 1s.num = NumText.Text = NameText.Texts.gs = GsText.Texts.yy = YyText.Texts.vb = VbText.Texts.wl = WlText.TextPut #filenum, lastrecord, s’向随机文件写入数据NumText.Text = ""NameText.Text = ""GsText.Text = ""YyText.Text = ""VbText.Text = ""WlText.Text = ""End SubPrivate Sub cancelCmd_Click()’删除学生的成绩Dim i As Integer, ft As Integer’定义变量lastrecord = LOF(filenum) / Len(s)ft = FreeFile()Open "student.tmp" For Random As ft Len = Len(s)’打开随机文件position = Seek(filenum)position = position - 1For i = 1 To lastrecordIf i <> position Then’判断是否与当前记录编号一致Get filenum, i, s’从随机文件读取数据Put ft, i, sEnd IfNextlastrecord = lastrecord - 1Close filenumClose ftKill "student.dat"Name "student.tmp" As "student.dat"filenum = FreeFileOpen "student.dat" For Random As #filenum Len = Len(s)’打开随机文件NumText.Text = ""NameText.Text = ""GsText.Text = ""YyText.Text = ""VbText.Text = ""WlText.Text = ""End SubPrivate Sub Form_Load()filenum = FreeFileOpen "student.dat" For Random As #filenum Len = Len(s)position = Seek(filenum)Get filenum, position, sNumText.Text = s.numNameText.Text = GsText.Text = s.gsYyText.Text = s.yyVbText.Text = s.vbWlText.Text = s.wl3.4、教师对学生添加用户的界面图3-4 添加用户界面主要代码:Private Sub addlCmd_Click()’添加学生用户lastrecord = LOF(filenum) / Len(m)lastrecord = lastrecord + 1m.num = NumText.Textm.pwd = PwdText.TextPut #filenum, lastrecord, mNumText.Text = ""PwdText.Text = ""End SubPrivate Sub cancelCmd_Click()’删除学生用户Dim j As Integer, jt As Integerlastrecord = LOF(filenum) / Len(m)ft = FreeFile()Open "message.tmp" For Random As ft Len = Len(m) position = Seek(filenum)position = position - 1For i = 1 To lastrecordIf i <> position ThenGet filenum, i, mPut jt, i, mEnd IfNextlastrecord = lastrecord - 1Close filenumClose jtKill "student.dat"Name "message.tmp" As "message.dat"filenum = FreeFileOpen "message.dat" For Random As #filenum Len = Len(m) NumText.Text = ""PwdText.Text = ""End SubPrivate Sub Form_Load()filenum = FreeFileOpen "message.dat" For Random As #filenum Len = Len(m) position = Seek(filenum)Get filenum, position, mNumText.Text = m.numPwdText.Text = m.pwdEnd SubPrivate Sub Form_Load()filenum = FreeFileOpen "message.dat" For Random As #filenum Len = Len(m) position = Seek(filenum)Get filenum, position, mNumText.Text = m.numPwdText.Text = m.pwdEnd Sub3.5、学生的登录界面图3-5 学生登录界面主要代码:Private Type messagenum As String * 6pwd As String * 6End TypePrivate Type passwordpwd As String * 6End TypeDim n As passwordDim m As messageDim filenb As IntegerDim filenum As IntegerDim lastrecord As LongDim position As LongPrivate Sub Command1_Click()’学生第一次登录If BText.Text = m.num ThenIf PText.Text = m.pwd ThenUnload Me管理Form.Show管理Form.c.Enabled = False管理Form.t.Enabled = False管理Form.xg.Enabled = TrueElseMsgBox "密码错误!", vbOKOnly + vbInformation, "提示"PText.SetFocusPText.SelLength = 99End IfElseMsgBox "班号错误!"End IfEnd SubPrivate Sub Command3_Click()’学生修改密码后的登录If BText.Text = m.num ThenIf PText.Text = n.pwd ThenUnload Me管理Form.Show管理Form.c.Enabled = False管理Form.t.Enabled = False管理Form.xg.Enabled = TrueElseMsgBox "密码错误!", vbOKOnly + vbInformation, "提示"PText.SetFocusPText.SelLength = 99End IfElseMsgBox "班号错误!"End IfEnd SubPrivate Sub Form_Load()登录Form.Visible = False管理Form.Showfilenb = FreeFileOpen App.Path & "\message.dat" For Random As #filenb Len = Len(m)添户Form.NumText.Text = m.num添户Form.PwdText.Text = m.pwdlastrecord = LOF(filenb) / Len(m)For i = 1 To lastrecordGet #filenb, i, mNextfilenc = FreeFileOpen App.Path & "\password.dat" For Random As #filenc Len = Len(n)改密码Form.xpwdtext.Text = n.pwdlastrecord = LOF(filenc) / Len(n)For i = 1 To lastrecordGet #filenc, i, nNextEnd Sub3.6、学生查询成绩的界面图3-6 成绩查询界面主要代码:Private Type studentnum As String * 8name As String * 6gs As Integeryy As Integervb As Integerwl As IntegerEnd TypeDim s As studentDim fileno As IntegerDim lastrecord As LongDim position As LongPrivate Sub Command2_Click()’学生查询成绩fileno = FreeFileOpen App.Path & "\student.dat" For Random As #fileno Len = Len(s)添加Form.NumText.Text = s.num添加Text.Text = 添加Form.GsText.Text = s.gs添加Form.YyText.Text = s.yy添加Form.VbText.Text = s.vb添加Form.WlText.Text = s.wllastrecord = LOF(fileno) / Len(s)For i = 1 To lastrecordGet #fileno, i, sIf T1.Text = s.num ThenT2.Text = T3.Text = s.gsT4.Text = s.yyT5.Text = s.vbT6.Text = s.wlEnd IfNextEnd Sub3.7、学生修改密码的界面图3-7 修改密码界面主要代码:Private Type passwordpwd As String * 6End TypeDim n As passwordDim filenum As IntegerDim filenu As IntegerDim lastrecord As LongDim position As LongPrivate Sub Command1_Click()’学生修改密码If qpwdtext.Text <> xpwdtext.Text Then’判断两次输入的新密码是否一致MsgBox "新密码和确认新密码不一致"ElseMsgBox "记得下次登录请用新密码,并登录时点击再登录"End Iflastrecord = LOF(filenum) / Len(n)lastrecord = lastrecord + 1n.pwd = xpwdtext.TextPut #filenum, lastrecord, nxpwdtext.Text = ""End SubPrivate Sub Form_Load()filenum = FreeFileOpen "password.dat" For Random As #filenum Len = Len(n)position = Seek(filenum)Get filenum, position, nxpwdtext.Text = n.pwd小结通过这一周的VB程序设计实践,我感觉学到了很多知识。
Vb课程设计-学生成绩处理
学生成绩处理设计报告一、设计思路1.要达到的目的学习VB程序设计的方法,充分体会VB在程序设计方面的强大功能和特点,培养运用VB解决实际问题的能力。
通过本次课程设计,使学生进一步巩固课堂上学到的知识,能利用VB中的基本控件和数组编写一个小的应用软件—学生成绩处理。
2.关键问题的解决①设计程序界面②选取ProgressBar 控件③添加TXT文件二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释Dim data(100, 3) As StringDim num As IntegerPrivate Sub Command1_Click(Index As Integer)Close #1Select Case IndexCase 0Open "d:\成绩.txt" For Append As #1Dim flag As BooleanFor i = 0 To 3If Text1(i) = "" ThenMsgBox "请确认学号,姓名,分数都已输入", vbOKOnly, "提示"flag = TrueNextIf Not flag ThenWrite #1, Text1(0).Text; Text1(1).Text; Val(Text1(2).Text); Val(Text1(3).Text) MsgBox "添加成功"End IfCase 1Picture1.ClsDim StrLine As String, a() As StringDim x As Integer, b As IntegerOpen "D:\成绩.txt" For Input As #1i = 0Do While Not EOF(1)Line Input #1, StrLineIf StrLine <> "" Thena() = Split(StrLine, ",")For j = 0 To 3data(i, j) = a(j)NextEnd Ifi = i + 1Loopnum = iFor x = 0 To numFor j = 0 To 3Picture1.Print data(x, j) + " ";NextPicture1.PrintNextCase 2Picture2.ClsOpen "d:\成绩.txt" For Input As #1While Not EOF(1)Line Input #1, StrLiness = ss + StrLine + vbCrLfWendPicture2.Print ssEnd SelectClose #1End SubPrivate Sub Form_Load()Open "D:\成绩.txt" For Append As #1Private Sub Form_Unload(Cancel As Integer)Close #1End Sub四、设计方案的完善及目前存在的问题1.设计方案要完善的地方①添加1个图片框和一个命令按钮控件,将命令按钮的caption属性设为“按平均分排序”。
vb课程设计-学生成绩管理系统
vb课程设计-学生成绩管理系统学生成绩管理系统设计一、系统概述学生成绩管理系统是为了帮助学校或教育机构管理学生的成绩和相关信息而设计的一款应用软件。
该系统可以实现学生成绩的录入、查询、统计、分析等功能,帮助教师和管理人员更好地了解学生的学习情况,及时发现问题并采取相应措施。
二、系统功能设计1.学生成绩录入功能:教师可以通过系统录入学生成绩,包括考试成绩、平时成绩、课程作业成绩等。
录入成绩的同时,可以选择课程、班级和学生姓名等相关信息。
2.学生成绩查询功能:学生和家长可以通过系统查询学生成绩,了解自己的学习情况。
同时,教师和管理人员也可以通过系统查询学生成绩,掌握全班学生的学习情况。
3.学生成绩统计功能:系统可以对学生成绩进行统计,包括班级平均成绩、学科平均成绩、优秀率、不及格率等。
这些统计数据有助于教师和管理人员制定教学计划和改进教学方法。
4.学生成绩分析功能:系统可以对学生成绩进行分析,为教师和管理人员提供数据支持。
通过分析学生成绩,可以找出影响学生成绩的因素,例如缺乏自律、学习方法不当等,以便制定相应的教育措施。
5.学生成绩通知功能:系统可以实现学生成绩的自动通知,包括成绩公示、成绩单打印等,方便学生和家长了解学生成绩情况。
三、系统技术架构学生成绩管理系统采用B/S架构,即浏览器/服务器架构。
系统的前端使用HTML、CSS、JavaScript等技术实现,后端使用Java、Spring、MyBatis等技术实现,数据库采用MySQL进行存储。
系统采用响应式设计,支持在PC端和移动端进行访问和操作。
四、系统数据库设计系统数据库主要包括学生信息表、成绩信息表、教师信息表等。
学生信息表中包括学号、姓名、性别、班级、家长联系方式等字段;成绩信息表中包括学号、课程名称、考试成绩、平时成绩等字段;教师信息表中包括工号、姓名、所教课程等字段。
数据库采用二维表进行设计,并建立相应的索引和外键约束,确保数据的一致性和完整性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB上机实习报告专业班级﹕储运11001学生学号﹕201007078学生姓名﹕彭壮班级序号﹕16指导老师﹕冯翠丽完成时间﹕2011-12-22一.设计题目学生成绩管理系统二.设计思路从文本中读取文件数据,利用VB的顺序结构,选择结构,循环结构编写程序代码,最终将各代码写入界面设计中的各菜单下。
三.程序实现的目标本程序将实现从文本中读取数据,赋值数据,运算数据,实现对学生的加权平均值,名次,全班每门课的分数段,不及格同学名单,优等生名单等运算,并写入文件。
四.程序设计框图五.运行结果原始成绩课程学分原始成绩和原始课程学分文件读取原始课程文件加权平均分成绩排名每门课程的班级平均分加权平均分分布每门课程及分布成绩条优等生名单不及格学生名单成绩查询系统按姓名查找按学号查找按名次查找六.源程序模块代码:Type xscjbxh As Stringxm As Stringcj(1 To 5) As Integeraver As Singlemc As IntegerEnd TypeType kechen编号As Integer课程名As String学分As SingleEnd TypePublic stu() As xscjbPublic ke() As kechenPublic N%, M%, Zxf%Public str As String窗体代码:Form1:Public Function space1(ByVal sss As String) Dim x%x = InStr(sss, " ")Do While x > 0sss = Replace(sss, " ", " ")x = InStr(sss, " ")Loopspace1 = sssEnd FunctionPrivate Sub ajqfspm_Click()Dim t!, k As SingleForm1.ClsForm1.FontSize = 12Form1.Print Tab(25); "学号姓名平均分名次" stu(0).mc = 0stu(0).aver = 0t = 1For i = 1 To Nt = 1If stu(i).aver = stu(i - 1).aver Thenstu(i).mc = stu(i - 1).mcElse:For j = 1 To NIf stu(i).aver < stu(j).aver Thent = t + 1End IfNext jEnd Ifstu(i).mc = tForm1.Print Tab(25); stu(i).xh; Tab(34); stu(i).xm; Tab(44); stu(i).aver; Tab(54); stu(i).mcNext iEnd SubPrivate Sub amccz_Click()Dim l!, x!Form1.Clsl = Val(InputBox("请输入名次"))For i = 1 To NIf stu(i).mc = l Thenx = x + 1: Form1.Print "学号姓名英语VB 化学物理数学加权平均分名次":Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).aver; Tab(75); stu(i).mc: Form1.Print End IfNext iIf x = 0 Then MsgBox ("无效请重新输入!")End SubPrivate Sub axhcz_Click()Form1.ClsDim v!, x!v = Val(InputBox("请输入学号"))For i = 1 To NIf stu(i).xh = v Thenx = x + 1: Form1.Print "学号姓名英语VB 化学物理数学加权平均分名次":Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).aver; Tab(75); stu(i).mc: Form1.Print End IfNext iIf x = 0 Then MsgBox ("学号无效请重新输入!")End SubPrivate Sub axmcz_Click()Form1.ClsForm1.FontSize = 9Dim k$, x!k = InputBox("请输入姓名")For i = 1 To NIf stu(i).xm = k Thenx = i: Form1.Print "学号姓名英语VB 化学物理数学加权平均分名次":Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).aver; Tab(75); stu(i).mc: Form1.Print End IfNext iIf x = 0 Then MsgBox ("查无此人请重新输入!")End SubPrivate Sub bjgxsmd_Click()Form1.ClsForm1.FontSize = 16Form1.Print Tab(12); "挂科学生的名单!"Form1.FontSize = 12Form1.PrintForm1.PrintOpen "不及格学生名单.txt" For Output As #1Form1.Print Tab(30); "学号"; Tab(38); "姓名"; Tab(46); "课程名"; Tab(54); "学分"; Tab(62); "成绩"Write #1, "学号", "姓名", "课程名", "学分", "成绩"Form1.PrintFor i = 1 To MFor j = 1 To NIf stu(j).cj(i) < 60 ThenPrint Tab(30); stu(j).xh; Tab(38); stu(j).xm; Tab(46); ke(i).课程名; Tab(54); ke(i).学分; Tab(62); stu(j).cj(i)Write #1, stu(j).xh, stu(j).xm, ke(i).课程名, ke(i).学分, stu(j).cj(i)End IfNext jNext iClose #1End SubPrivate Sub Form_Load()Dim st$(), Str1$Open App.Path + "\学生成绩.txt" For Input As #1Open App.Path + "\课程学分.txt" For Input As #2N = 0: M = 0: Zxf = 0Line Input #1, Str1Do While Not EOF(1)N = N + 1ReDim Preserve stu(N)Line Input #1, Str1Str1 = Trim(Str1)Str1 = space1(Str1)st1 = Split(Str1, " ") stu(N).xh = st1(0)stu(N).xm = st1(1)stu(N).cj(1) = st1(2) stu(N).cj(2) = st1(3) stu(N).cj(3) = st1(4) stu(N).cj(4) = st1(5) stu(N).cj(5) = st1(6) stu(N).aver = 0stu(N).mc = 0LoopLine Input #2, Str1Do While Not EOF(2)M = M + 1ReDim Preserve ke(M) Line Input #2, Str1Str1 = Trim(Str1)Str1 = space1(Str1)st1 = Split(Str1, " ")ke(M).编号= st1(0)ke(M).课程名= st1(1)ke(M).学分= st1(2)Zxf = Zxf + ke(M).学分LoopClose #1Close #2End SubPrivate Sub jqpjffb_Click() Form1.ClsForm1.FontSize = 12 PrintForm1.PrintFor i = 1 To 6Form1.PrintNext iDim s(5 To 10), gFor i = 1 To Ng = stu(i).aver \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1End SelectNext iPrint Tab(30); " 范围人数"If s(5) <> 0 Then Print Tab(19); "<60分"; s(5)PrintFor i = 6 To 8If s(i) <> 0 Then Print Tab(29); i * 10; "-"; (i * 10 + 9); Tab(44); s(i) PrintNext iIf s(9) <> 0 Or s(10) <> 0 Then Print Tab(30); "90-100"; Tab(44); s(9) + s(10)End SubPrivate Sub mmkcdbjpjf_Click()Form1.ClsDim a, b, c, d, ea = 0:b = 0:c = 0:d = 0:e = 0For i = 1 To Na = a + stu(i).cj(1)b = b + stu(i).cj(2)c = c + stu(i).cj(3)d = d + stu(i).cj(4)e = e + stu(i).cj(5)Next ia = Format(a / N, "0.00")b = Format(b / N, "0.00")c = Format(c / N, "0.00")d = Format(d / N, "0.00")e = Format(e / N, "0.00")Form1.FontSize = 12Form1.Print Tab(10); "课程平均分" Form1.PrintForm1.FontSize = 12Form1.Print Tab(10); "英语"; Tab(26); aForm1.PrintForm1.Print Tab(10); "VB"; Tab(26); bForm1.PrintForm1.Print Tab(10); "化学"; Tab(26); cForm1.PrintForm1.Print Tab(10); "物理"; Tab(26); dForm1.PrintForm1.Print Tab(10); "数学"; Tab(26); e End SubPrivate Sub mmkcjfb_Click()Form2.ShowForm1.ClsForm1.FontSize = 12PrintForm1.PrintFor i = 1 To 6Form1.PrintNext iDim s(5 To 10), gFor i = 1 To Ng = stu(i).aver \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1End SelectNext iPrint Tab(30); " 范围人数"If s(5) <> 0 Then Print Tab(19); "<60分"; s(5)PrintFor i = 6 To 8If s(i) <> 0 Then Print Tab(29); i * 10; "-"; (i * 10 + 9); Tab(44); s(i) PrintNext iIf s(9) <> 0 Or s(10) <> 0 Then Print Tab(30); "90-100"; Tab(44); s(9) + s(10)End SubPrivate Sub mwxsdcjt_Click()Form1.ClsForm1.FontSize = 12Open "学生成绩条.Txt" For Output As #1Form1.Print "学号姓名英语VB 化学物理数学加权平均分名次"Write #1, "学号", "姓名", "英语", "VB", "化学", "物理", "数学", "加权平均分", "名次"For i = 1 To Nstu(i).aver = 0For j = 1 To Mstu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).学分Next jstu(i).aver = Round(stu(i).aver / Zxf, 2)Next iFor i = 1 To NPrint Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).aver; Tab(75); stu(i).mcWrite #1, stu(i).xh, stu(i).xm, stu(i).cj(1), stu(i).cj(2), stu(i).cj(3), stu(i).cj(4), stu(i).cj(5), stu(i).aver, stu(i).mcNext iClose #1End SubPrivate Sub mwxsdjqfs_Click()Form1.ClsForm1.FontSize = 12Form1.Print "学号姓名英语VB 化学物理数学加权平均分"For i = 1 To Nstu(i).aver = 0For j = 1 To Mstu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).学分Next jstu(i).aver = Round(stu(i).aver / Zxf, 2)Next iFor i = 1 To NPrint Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).averNext iEnd SubPrivate Sub ydsmd_Click()Form1.ClsForm1.PrintForm1.PrintOpen "优等生名单.txt" For Output As #1Form1.Print "学号姓名英语VB 化学物理数学加权平均分名次"Write #1, "学号", "姓名", "英语", "VB", "化学", "物理", "数学", "加权平均分", "名次"Form1.PrintDim e!For i = 1 To NFor j = 1 To MIf stu(i).cj(j) >= 95 Thene = e + 1End IfNext jIf stu(i).aver >= 90 Or stu(i).mc <= 3 Or (stu(i).aver >= 85 And e = 2) ThenForm1.Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).aver; Tab(75); stu(i).mcWrite #1, stu(i).xh, stu(i).xm, stu(i).cj(1), stu(i).cj(2), stu(i).cj(3), stu(i).cj(4), stu(i).cj(5), stu(i).aver, stu(i).mcEnd IfNext iClose #1End SubPrivate Sub yscjwj_Click()Dim k!Form1.ClsForm1.FontSize = 12Form1.PrintForm1.Print "学号姓名英语VB 化学物理数学"For i = 1 To NForm1.Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5)Next iEnd SubPrivate Sub yskcwj_Click()Dim i!Form1.ClsForm1.PrintForm1.PrintForm1.FontSize = 12Form1.Print Tab(8); "编号课程名称课程学分" Form1.PrintFor i = 1 To MForm1.Print Tab(9); ke(i).编号; Tab(21); ke(i).课程名; Tab(41); ke(i).学分Form1.PrintNext iEnd SubForm2:Dim s(5 To 10), i!, k!, j!Private Sub Command1_Click()Form2.ClsForm2.PrintForm2.FontSize = 12Form2.Print Tab(30); "范围"; Tab(41); "课程"; Tab(52); "人数"Form2.FontSize = 12Form2.PrintFor k = 5 To 10s(k) = 0Next ki = 1For j = 1 To Ng = stu(j).cj(i) \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1Case 10s(10) = s(10) + 1End SelectNext jForm2.Print Tab(30); "60分以下"; Tab(41); ke(i).课程名; Tab(51); s(5)Open App.Path + "\英语.Txt" For Output As #1Write #1, "60分以下", s(5)For k = 6 To 8Form2.Print Tab(29); k * 10; "-"; (k * 10 + 9); Tab(41); ke(i).课程名; Tab(51); s(k)Write #1, k * 10 & "-" & (k * 10 + 9), s(k)Next kForm2.Print Tab(30); "90-100"; Tab(41); ke(i).课程名; Tab(51); s(9) + s(10)Form2.PrintWrite #1, "90 - 100", s(9) + s(10)Close #1For k = 5 To 10s(k) = 0Next kEnd SubPrivate Sub Command2_Click()Form2.ClsForm2.PrintForm2.FontSize = 12Form2.Print Tab(30); "范围"; Tab(41); "课程"; Tab(52); "人数"Form2.FontSize = 12Form2.Printi = 2For j = 1 To Ng = stu(j).cj(i) \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1Case 10s(10) = s(10) + 1End SelectNext jForm2.Print Tab(30); "60分以下"; Tab(41); ke(i).课程名; Tab(51); s(5)Open App.Path + "\VB.Txt" For Output As #1Write #1, "60分以下", s(5)For k = 6 To 8Form2.Print Tab(29); k * 10; "-"; (k * 10 + 9); Tab(41); ke(i).课程名; Tab(51); s(k)Write #1, k * 10 & "-" & (k * 10 + 9), s(k)Next kForm2.Print Tab(30); "90-100"; Tab(41); ke(i).课程名; Tab(51); s(9) + s(10)Form2.PrintWrite #1, "90 - 100", s(9) + s(10)Close #1For k = 5 To 10s(k) = 0Next kEnd SubPrivate Sub Command3_Click()Form2.ClsForm2.PrintForm2.FontSize = 12Form2.Print Tab(30); "范围"; Tab(41); "课程"; Tab(52); "人数"Form2.FontSize = 12Form2.Printi = 3For j = 1 To Ng = stu(j).cj(i) \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1Case 10s(10) = s(10) + 1End SelectNext jForm2.Print Tab(30); "60分以下"; Tab(41); ke(i).课程名; Tab(51); s(5)Open App.Path + "\化学.Txt" For Output As #1Write #1, "60分以下", s(5)For k = 6 To 8Form2.Print Tab(29); k * 10; "-"; (k * 10 + 9); Tab(41); ke(i).课程名; Tab(51); s(k)Write #1, k * 10 & "-" & (k * 10 + 9), s(k)Next kForm2.Print Tab(30); "90-100"; Tab(41); ke(i).课程名; Tab(51); s(9) + s(10)Form2.PrintWrite #1, "90 - 100", s(9) + s(10)Close #1For k = 5 To 10s(k) = 0Next kEnd SubPrivate Sub Command4_Click()Form2.ClsForm2.PrintForm2.FontSize = 12Form2.Print Tab(30); "范围"; Tab(41); "课程"; Tab(52); "人数"Form2.FontSize = 12Form2.Printi = 4For j = 1 To Ng = stu(j).cj(i) \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1Case 10s(10) = s(10) + 1End SelectNext jForm2.Print Tab(30); "60分以下"; Tab(41); ke(i).课程名; Tab(51); s(5)Open App.Path + "\物理.Txt" For Output As #1Write #1, "60分以下", s(5)For k = 6 To 8Form2.Print Tab(29); k * 10; "-"; (k * 10 + 9); Tab(41); ke(i).课程名; Tab(51); s(k)Write #1, k * 10 & "-" & (k * 10 + 9), s(k)Next kForm2.Print Tab(30); "90-100"; Tab(41); ke(i).课程名; Tab(51); s(9) + s(10)Form2.PrintWrite #1, "90 - 100", s(9) + s(10)Close #1For k = 5 To 10s(k) = 0Next kEnd SubPrivate Sub Command5_Click()Form2.ClsForm2.PrintForm2.FontSize = 12Form2.Print Tab(30); "范围"; Tab(41); "课程"; Tab(52); "人数"Form2.FontSize = 12Form2.Printi = 5For j = 1 To Ng = stu(j).cj(i) \ 10Select Case gCase 0 To 5s(5) = s(5) + 1Case 6s(6) = s(6) + 1Case 7s(7) = s(7) + 1Case 8s(8) = s(8) + 1Case 9s(9) = s(9) + 1Case 10s(10) = s(10) + 1End SelectNext jForm2.Print Tab(30); "60分以下"; Tab(41); ke(i).课程名; Tab(51); s(5)Open App.Path + "\数学.Txt" For Output As #1Write #1, "60分以下", s(5)For k = 6 To 8Form2.Print Tab(29); k * 10; "-"; (k * 10 + 9); Tab(41); ke(i).课程名; Tab(51); s(k)Write #1, k * 10 & "-" & (k * 10 + 9), s(k)Next kForm2.Print Tab(30); "90-100"; Tab(41); ke(i).课程名; Tab(51); s(9) + s(10)Form2.PrintWrite #1, "90 - 100", s(9) + s(10)Close #1For k = 5 To 10s(k) = 0Next kEnd Sub七.程序运行中待改进的缺点1.没有修改的功能2.运行顺序有局限性,必须先运行计算平均分步骤,才能正常完成后面的排序及查询等3.部分数据统计出的结果表达方式不够直观4.查询成绩时取消按钮未发挥作用,最好改为关闭窗口。