学生成绩管理系统VB+SQL
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。
学生成绩管理系统 数据库原理课设

摘要随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,课程基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
学生成绩管理系统是基于SQL Server 2008数据库开发工具和VB开发工具来进行设计。
关键词:数据库原理;SQL Server 2008;VB6.0;学生成绩管理系统。
目录1 系统功能概述 (1)2 数据库设计 (2)2.1 需求分析 (2)2.2 E-R模型 (2)2.3 表结构设计 (3)3 系统各功能模块的详细设计 (5)3.1 欢迎界面的设计 (5)3.2 登录界面 (6)3.3 主控界面 (7)3.4 信息浏览界面 (9)3.5各科信息浏览界面 (11)3.6修改信息浏览界面 (12)3.7混合信息查询界面 (14)3.8打印报表 (16)4 总结 (17)参考文献 (18)1系统功能概述学生成绩管理系统能有效的解决学生成绩记录的数量众多,管理造成的混乱。
从而对学生成绩的信息进行准确的管理。
本系统的开发目的是有效的管理学生信息,实现学生信息的数据规范化,自动化,系统化管理。
适用于某个班级内部使用的成绩管理软件,有班长负责使用。
1输入每个学期开设的课程及其信息,并可以修改和删除。
2实现每个同学各学期各门课程的成绩的输入、修改。
3能够快速的查询统计学生的信息和课程信息。
2数据库设计2.1需求分析随着学校向全国及至世界范围的持续扩张,学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的信息管理系统,以便完成对学生信息的管理。
用mysql实现学生成绩管理代码

用mysql实现学生成绩管理代码学生成绩管理是教育行业中非常重要的一项工作,它涉及到学生的学习情况、成绩统计、课程安排等多方面内容。
为了更好地管理学生成绩数据,我们可以利用MySQL数据库来实现学生成绩管理代码,实现高效的学生成绩管理。
一、数据库设计在开始实现学生成绩管理代码之前,我们首先要进行数据库设计。
为了存储学生信息和成绩数据,我们可以创建两张表:学生表和成绩表。
学生表包含以下字段:-学号(id):唯一标识学生的编号,也是该表的主键。
-姓名(name):学生的姓名。
-班级(class):学生所在的班级。
成绩表包含以下字段:-学号(id):学生的学号,也是该表的外键,与学生表中的id字段关联。
-课程(course):学生所修的课程。
-成绩(score):学生在该门课程上的成绩。
二、创建数据库和表在MySQL命令行中,我们可以使用以下SQL语句创建学生成绩管理数据库和相应的表:```CREATE DATABASE student_score;USE student_score;CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(50), class VARCHAR(50));CREATE TABLE score ( id INT, course VARCHAR(50), score INT, FOREIGN KEY (id) REFERENCES student(id));```三、插入数据在完成数据库和表的创建之后,我们可以向学生表和成绩表中插入数据。
以下是向学生表中插入学生信息的示例:```INSERT INTO student (id, name, class) VALUES (1, '张三', '一班'), (2, '李四', '二班'), (3, '王五', '一班');```以下是向成绩表中插入学生成绩的示例:```INSERT INTO score (id, course, score) VALUES (1, '数学', 90), (1, '英语', 85), (2, '数学', 95), (2, '英语', 80), (3, '数学', 88), (3, '英语', 92);```四、查询数据在学生成绩管理中,我们经常需要查询学生的成绩信息。
vb学生成绩管理系统{完整版}

目录摘要 (3)关键字: (3)引言 (3)一、系统的理论与技术基础 (4)1.1管理信息系统基础 (4)1.2 软件工程理论的概述 (4)1.3 软件工程理论对本系统的指导 (4)二、系统的需求分析 (5)2.1项目开发的背景分析 (5)2.2 项目开发的目标 (5)2.3项目提出的意义 (6)2.4 国内外研究现状 (6)三、系统的开发工具及编程环境 (9)3.1 开发工具的选择 (9)3.3编程环境的选择 (10)3.5 Visual Basic 系统实现菜单选项 (12)3.5 Visual Basic 系统实现菜单选项 (12)四、系统数据库的使用 (13)4.1 系统数据库的选择 (13)4.2 数据的保存和读取 (13)4.3 数据库文件的易用性 (13)4.4 数据库文件格式 (14)4.5教师管理界面编码设计 (16)五、系统代码及开发过程 (18)5.1系统的开发 (18)5.2功能需求描述 (18)5.3代码及图示 (18)5.3.2.主窗口: (18)5.3.3.管理系统: (19)5.3.4.属性: (20)5.3.5.打开系统显示的界面 (20)5.3.6.窗体的尺寸 (21)结论 (22)致谢 (23)参考文献 (24)学生成绩管理系统摘要学生信息管理系统是典型的信息管理系统,经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
关键字:数据库,智能化,面向对象ABSTRACT:The abstract student information management system is the typical information management system, the process analysis, We use MICROSOFT Corporation VISUAL the BASIC development kit, uses each kind of object-oriented development kit which it provides, especially first in a short time establishes the system application prototype, then, carries on the demand iteration to the initial prototype system, revises and the improvement unceasingly, until forms user satisfaction the feasible system.Key words:Database,intelligence,object-oriented引言随着学校规模的不断扩大,学生数量急剧增加,有关学生的各科成绩信息量也成倍增长。
学生成绩管理系统数据库

课程编号# 课程名称 课程类型
学分 学时
选课 教师
教师编号#
电话 姓名 性别 学院
授课
三、逻辑结构设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务 是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支 持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系 转化为关系模式,如何确定这些关系模式的属性和码。
cno degch_class)
字段名
属性
cno
课程号
teano
教师号
char(10) char(10)
数据类型 char(10) char(10)
Not null Not null
字段权限 Not null Not null
五、数据库实现
1、创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要
四、物理设计阶段
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库 的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结 构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取 方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最 后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结 构的设计,存储路径的设计。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下(其中码用下横线标出):
课程信息表: 课程(课程号,课程名,课程类型,学分,学时) 学生信息表: 学生(学号,姓名,性别,年龄,专业,学院) 成绩表: 成绩(学号,课程名,成绩) 教师表: 教师(教师号,姓名,性别,学院,电话) 选课表: 选课(学号,课程号,成绩) 授课表: 授课(课程号,教师号)
用VB开发学生成绩管理系统

、
系统功 能 设 计
( 1 ) 系统 主 要 功 能描 述 。① 用 户 管理 : 用来 管理 系 统 用 户 , 可 数 , 如果 超 出 指定 的次数 , 则 自动 关 闭程 序 。
以添加用户名 、 修改用户密码。 ②学生信息管理: 学生基本情况汇 总与管理 , 主要包括对学生 成绩 的添加 、 修改 、 删除和查 询等操 括对学生成绩的添加 、 修改 、 删除 、 查询和统计等操作 。④课 程管
表 2学生信 息表结构
字 段 名 数 据 类 型 S N o 文 本 S n a me 文 本 S s e x 文 本 S a g a 数 字
S p l a c e 文 本
字 段 大 小 7 1 2 2 整 型
3 2
说 明 学号 , 主键 , 必填 字 段 姓名, 必 填 字段 性别 , 必填 字段 年龄 , 必 填 字 段
子 模 块 的设 计 , 最后 再将 制 作 好 的代 码 打 包为 安 装程 序 等 , 详 细描 述 学生成 绩 管 理 系统 的 开 发过 程 。 关键词: Ⅶ 语言 ; A c c e s s 数据库; 成绩管理; 模块 设 计
在中职学校, 对于学生基本信息和成绩 的管理是学校的一项基
一
不匹配 , 则根据具体情况 弹出相应的警告对话框。为了使系统更
加 安全 , 加 人 一个 窗 口级公 共 对 象 , 用 来 记 录密 码 输 入错 误 的 次 ( 2 ) MDI 窗1 3 r 菜单 栏 设计 。在 系统 中添加 MD I 窗 口作 为系 统 主窗 口 , 为 其 加 入菜 单 栏 。根 据系 统 设 计 中 的各 功 能 模 块 设 计 菜 C l i c k事件 过 程 。当选 择 菜 单命 令 时 , 显 示 相应 的功 能 窗 口或 实 现
基于SQL数据库设计的学生成绩管理系统

基于SQL数据库设计的学生成绩管理系统随着教育信息化的不断深入,学生成绩管理系统在学校教务管理中扮演着越来越重要的角色。
为了更好地管理学生成绩信息,提高教学效率,设计一个基于SQL数据库的学生成绩管理系统显得尤为重要。
本文将从数据库设计的角度出发,探讨如何构建一个高效、稳定的学生成绩管理系统。
1. 数据库设计在设计学生成绩管理系统的数据库时,首先需要考虑的是数据库的表结构。
一般来说,可以设计以下几张表:学生表(Student):包含学生的基本信息,如学号、姓名、性别、年龄等字段。
课程表(Course):包含课程的信息,如课程编号、课程名称、学分等字段。
成绩表(Score):记录学生的成绩信息,包括学生学号、课程编号、成绩等字段。
2. 数据库关系在学生成绩管理系统中,不同表之间存在着一定的关系。
一般来说,可以建立以下几种关系:学生与成绩之间是一对多的关系,即一个学生可以有多条成绩记录。
课程与成绩之间是多对一的关系,即多个学生可以选择同一门课程。
3. SQL查询设计完数据库结构和关系后,接下来就是编写SQL查询语句来实现对学生成绩信息的增删改查操作。
以下是一些常用的SQL查询语句示例:查询某个学生的所有成绩:SELECT * FROM Score WHEREstudent_id = 'xxx';查询某门课程的平均成绩:SELECT AVG(score) FROM Score WHERE course_id = 'xxx';查询某个学生某门课程的成绩:SELECT score FROM Score WHERE student_id = 'xxx' AND course_id = 'xxx';4. 数据库优化为了提高系统性能和查询效率,需要对数据库进行优化。
可以采取以下措施:添加索引:对经常用于查询条件的字段添加索引,加快查询速度。
规范化设计:避免数据冗余和不一致,提高数据存储效率。
vb6.0开发实例

vb6.0开发实例Visual Basic 6.0(VB6.0)是一款经典的集成开发环境(IDE),用于Windows平台的软件开发。
本文将通过一个简单的实例来演示如何使用VB6.0创建一个学生成绩管理系统,旨在帮助初学者了解VB6.0的基本开发过程。
一、新建项目:打开VB6.0,选择“标准EXE”模板,创建一个新项目。
接下来,设计一个简单的窗体,包括学生姓名、学号、数学成绩和英语成绩等基本信息的输入框。
二、设计数据库:在VB6.0中,我们可以使用Access数据库作为后台数据库。
创建一个名为"StudentDB.mdb"的Access数据库,其中包含一个名为"StudentTable"的表,用于存储学生信息(姓名、学号、数学成绩、英语成绩)。
三、连接数据库:在VB6.0的窗体上添加ADO控件,用于与数据库进行交互。
通过ADO控件建立与"StudentDB.mdb"数据库的连接,并在代码中编写SQL语句,实现数据的插入、更新、删除和查询等操作。
' 连接数据库Private Sub Form_Load()Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Dat a Source="& App.Path & "\StudentDB.mdb;Persist Security Info=Fal se"Adodc1.RefreshEnd Sub四、添加按钮和事件处理:在窗体上添加按钮,如“添加记录”、“更新记录”、“删除记录”、“查询记录”等。
通过按钮的Click事件处理程序,调用相应的SQL语句实现对数据库的操作。
' 添加记录Private Sub cmdAdd_Click()Adodc1.Recordset.AddNewAdodc1.Recordset("Name") = txtName.TextAdodc1.Recordset("StudentID") = txtStudentID.TextAdodc1.Recordset("MathScore") = txtMathScore.TextAdodc1.Recordset("EnglishScore") = txtEnglishScore.TextAdodc1.Recordset.UpdateEnd Sub' 查询记录Private Sub cmdSearch_Click()Adodc1.RecordSource = "SELECT * FROM StudentTable WHERE StudentID = '"& txtSearchStudentID.Text & "'"Adodc1.RefreshEnd Sub' 更新记录Private Sub cmdUpdate_Click()Adodc1.Recordset("MathScore") = txtMathScore.TextAdodc1.Recordset("EnglishScore") = txtEnglishScore.TextAdodc1.Recordset.UpdateEnd Sub' 删除记录Private Sub cmdDelete_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.UpdateEnd Sub五、界面美化:通过VB6.0提供的控件属性设置,对窗体和控件进行美化,使其更符合用户界面设计的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书题目学生成绩管理系统系(部) 数理系专业班级学生姓名学号12 月21 日至12 月25 日共 1 周指导教师(签字)系主任(签字)年月日学生成绩管理系统通过完成从用户需求分析、概念结构设计,逻辑结构设计等一系列的数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握教材中的相关内容。
一.实验要求(1)先对选定的实验做简单的需求分析;(2)做出数据流图和数据字典;(3)在数据流图和字典的基础上做出E-R图(概念结构设计);(4)在E-R图基础上进行关系模式设计(至少满足3NF)(逻辑结构设计); (5)根据需求分析的各种数据请求得出各种视图以及各种约束、规则、触发器脚本描述;(6)根据第(5)的内容在SQL-SERVER中设计中实例的数据库;(7)用自己熟悉的一门语言进行设计的功能的实现(8)整理前面几步的文档和程序源码,可执行程序,形成最终的实验报告。
(9)实验报告的最后写出本次实验完成中遇到的问题及解决方法二.需求分析1.功能需求本系统开发的目的,就是通过系统开发,实现课程管理有关工作的计算机化,提高关键环节的处理速度和规范化,并对有关的工作进行集成和重组,通过网络系统实现集中管理、分散操作,提高选课管理工作的质量和效率。
通过对学校的选课及成绩管理工作进行实际调查,学生可以自由选择课程、选老师,学生注册的行政班和教学班是游离的,开发工作需要涉及任课教师、学生、管理员(教务工作人员)三种用户。
2.学生需求在学校规定的选课期间,学生通过任何一台连接因特网计算机的浏览器就能进行网上选课。
学生以用户名和密码进入选课系统。
选课系统会根据用户名和密码自动识别所在的系,然后显示出与学生有关的课程列表。
系统必须控制某一门课程在学期间只能选一次。
在学生选课时能自动进行有关逻辑判断,如:是否选课超过了规定的门数,是否选择了不符合预修条件的课程,是否选择的课程超过此课程最大选择人数,只有符合要求的选择才能选课成功。
学生可以更改部分个人信息如密码,电话号码等;学生可以查询已修课程成绩和已选课程信息。
3.教师需求任课教师登录后,可以查看自己所教课程的课程表;对于同一学期内有多门课程的教师,需要选择具体课程后,才能查看已选这门课程的学生信息:期末,教师可以上传这些学生的成绩。
4.管理员需求系统管理员登录后,可以对学生,教师,课程,教学班级的基本信息进行添加,修改,删除等工作。
课程安排是选课的核心,只有按照实际的教学情况安排出每个学期必修和选修的课程,才能保证选课的顺利进行。
在每学期,学生选课前,各院系管理员必须在该院系培养方案中录入本学期可以开设的课程和排课安排,对于需要预修条件的课程,需要设置好预修条件。
基础部管理员负责公共课的课程开设和排课安排。
其中排课及教学班级的安排上要保证同一个教师在同一时间只能上一门课程;同一个教室同一时间也只能开一门课程。
三.数据分析与建模1.数据流图和数据字典顶层图:数据字典:数据流项目:学生信息=姓名+学号+性别+年龄+专业+总学分成绩单=姓名+课目+成绩数据项条目:数据项名:成绩类型:int长度:4范围:100-0加工条目:处理过程:过程名:学籍管理系统输入:学生信息,考试成绩,学生记录输出:统计表,成绩单数据字典:数据存储:数据存储名:学生记录组成:姓名+学号+性别+年龄+专业+总学分处理过程:处理过程名:录入存储处理输入:学生信息处理要求:如果没有所输入的学生记录,则建立新的学生记录,存储基本情况和课目成绩处理过程名:查询处理输入:学生信息,课程号输出:成绩处理要求:根据学生的学号查询相应的成绩处理过程名:统计处理输入:学生考试成绩输出:平均成绩,排名成绩数据字典:数据流:新生信息=入学时间+姓名+年龄+专业+性别合格单=姓名+专业处理过程:处理过程名:审查输入:学生信息输出:合格单处理要求:根据学生信息判断是否是新生处理过程名:是否是新生输入:合格单输出:新生信息处理要求:根据合格单建立新生信息处理过程名:录入存储学生信息,各科成绩输入:新生信息,考试成绩输出:本次考试成绩数据字典:数据存储:数据存储名:考试成绩组成:姓名+专业+成绩+学号组织方式:一学号为关键字处理过程:处理过程名:有效性检查输入:学号,课程号输出:有效查询处理要求:根据所输入的信息查询有效性处理过程名:成绩查询输入:考试成绩输出:成绩处理要求:根据考试成绩查询成绩处理过程:处理过程名:统计选择输入:学生记录输出:按规定统计成绩处理要求:根据所输入学生记录查询成绩2.E_R图1)学生实体E-R图2)课程实体E-R图3)教师实体E-R图4)各实体之间的E-R图3.E—R图转换为关系模式:1)学生(XS)(学号(sno),姓名(sname),专业(sdept),性别(ssex),出生日期(sbirth),总学分(all_credit))学生表:主码:学号(sno)函数依赖:sno U.此表中,不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF2)课程(KC)(课程号(cno),课程名(cname),开课学期(term),学时(class_hour),学分(credit))课程表:主码:课程号(cno)函数依赖:cno U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF3)选课(XS_KC)(学号(sno),课程号(cno),成绩(grade))选课表:主码:(学号,课程号)外码:学号,课程号函数依赖:(sno,cno) U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF4)教师(TCH)(编号(tno),姓名(tname),性别(tsex),出生日期(tbirth),职称(professional),专业(department))教师表:主码:编号(tno)函数依赖:tno U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF5)授课(TCH_KC)(教师编号(tno),课程号(cno),上课地点(place))授课表:主码:(教师编号,课程号)外码:教师编号,课程号函数依赖:(tno,cno) U此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF4.逻辑设计结果:数据库表名XS(学生)字段名数据类型含义说明空值情况备注Sno Char(10) 学号不能为空主键Sname Char(10) 姓名不能为空ssex Char(10) 性别可以为空只能取“男”“女”,默认为“男”Sbirth date 出生日期可以空Sdept Char(10) 所在专业可以空All_credit Int 总学分可以空数据库表名KC(课程)字段名数据类型含义说明空值情况备注Cno Char(10) 课程号不能为空主键Sname Char(10) 课程名不能为空credit int 学分可以空Class_hour Int 课时数可以空Term Int 开课学期可以空字段名数据类型含义说明空值情况备注tno Char(10) 教师号不能为空主键tname Char(10) 姓名不能为空完全依赖Tno,是unique Tbirth date 出生日期可以空Tsex Char(10) 性别可以空只能取“男”“女”,默认为男Char(10)职称可以空ProfessionalDepartmen Char(10)专业可以空t数据库表名XS_KC(选课)字段名数据类型含义说明空值情况备注Cno Char(10) 课程号不能为空主码Sno Char(10) 学号不能为空主码Grade int 成绩可以空数据库表名TCH_KC(授课)字段名数据类型含义说明空值情况备注Tno Char(10) 教师编号不能为空主码Cno Char(10) 课程号不能为空主码Place Char(10)授课地点可以空四.数据库应用开发与运行此为主界面,有五个按钮,可进行查询,修改等操作。
上图为学生信息查询窗口,可按学号,姓名,专业进行查询下图学生选课信息窗口,双击上图学生信息查询窗口中表格左边,可弹出此窗口显示该学生选课信息。
上图为教师信息查询窗口,可按教师编号,姓名,职称部门进行查询,双击表格左部可显示教师授课信息,如下图所示。
此为学生信息修改窗口,单击一行,可在上面文本框中显示该生信息,并进行插入,修改,删除等操作。
此为学生成绩录入窗口,单击一行可现实该生学号及所选课程,并在成绩文本框中进行添加及修改该课程成绩操作。
此为学生选课窗口,单击一行显示该行信息,可进行选课,删除操作五.结果分析、结论与体会在这次课程设计中,我遇到的困难很多,在解决它们的同时我又学到了很多,受益匪浅,特别是如何分析、建立、开发一个系统。
在一个系统开发的过程中编码不是重要的,重要的是分析系统、建立起系统模型。
在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的模型建立起来。
在程序编写中,我认识到软件要有简便的界面,良好的程序风格。
拥有这些条件,程序的可读性才会好,开发的复杂度才能大大减少,修改代码时更加容易下手。
我认为,所谓友好的界面,就是用户需要的界面,力求简便全面。
所以设计一个界面时,开发人员必须要了解用户的想法,从用户的角度去设计,当然,开发不能全听用户的意见,在详细分析了系统后,开发人员可以向用户提出一些修改的意见,在双方多次交流后定出程序所需的功能,以决定界面的实现。
在编码中,良好的编程风格与习惯是提高工作效率的一个重要方面,而且良好的编程风格与习惯也是使软件便于维护的基础。
那如何是良好的编程风格与习惯呢?我认为主要是程序的模块化、必要的注释。
所谓模块化就是使程序的功能实现分成多个单独的功能模块,而不能在一大段代码中实现多个功能,如果这样做,别的人是非常难读懂你的程序。
必要的注释,显而易见是要在程序的编写中加入对程序的说明,原因就是为了别人能读懂你的程序,过一段时间后你自己还能读懂自己的程序。
最后说明下这次课程设计给我感受最深的有三点:1.进行管理系统开发这样的工作,要有恒心,要能静下新来做,而不能浮躁。
2.要善于同别人交流与合作,善于获取各种有用的资源。
3.要真真实实的多查资料,多问,多看。
六.参考文献及资料[1] 《学用Visual Basic 编程》潭浩西安电子科技大学出版社[2] 《数据库原理》丁宝康施伯乐著经济科学出版社[3] 《SQL Server数据库开发入门与范例解析》夏邦贵著北京机械工业出版社[4] 《SQL Server 2005应用开发技术指南》彭东著北京清华大学出版社[5]《Visual Basic6.0》林陈雷著人民邮电出版社[6]《面向对象程序设计系列教材》龚沛曾著高等教育出版社[7]《Visual Basic6.0 数据库开发与专业应用》敬铮著国防工业出版社[8]《Visual Basic6.0 数据库程序设计高手》温贤发著科学出版社七.附录SQL Server 建立五张表VB程序及控件设置Private Sub Command3_Click() '取消Stusno.Text = ""Stusname.Text = ""Stusbirth.Text = ""Stusdept.Text = ""Stuall_credit.Text = ""Stusexm = FalseStusexf = FalseEnd Sub'修改元组Private Sub Stuchange_Click()If Trim(Stusno.Text) = "" Or Trim(Stusname.Text) = "" Or (Stusexm = False And Stusexf = False) ThenMsgBox "加*数据项不能为空,请重新设置", vbOKOnly, "信息提示"Stusno.SetFocusExit SubEnd IfIf Trim(Stusbirth.Text) <> "" ThenIf Not IsDate(Trim(Stusbirth.Text)) ThenMsgBox "出生日期输入不正确,请重新输入", vbOKOnly, "信息提示"Stusbirth.SetFocusExit SubEnd IfStuADO.Recordset.Fields("学号") = Trim(Stusno.Text)StuADO.Recordset.Fields("姓名") = Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期") = Trim(Stusbirth.Text)StuADO.Recordset.Fields("专业") = Trim(Stusdept.Text)StuADO.Recordset.Fields("总学分") = Trim(Stuall_credit.Text)If Stusexm = True ThenStuADO.Recordset.Fields("性别") = "男"Else: Stusexf = TrueStuADO.Recordset.Fields("性别") = "女"End IfStuADO.Recordset.UpdateEnd Sub'删除元组Private Sub StuDel_Click()ret = MsgBox("是否要删除" + StuADO.Recordset("学号") + "号学生的记录?", vbYesNo, "提示")If ret = vbYes ThenStuADO.Recordset.DeleteEnd IfStuADO.RecordSource = "select sno 学号,sname 姓名,sdept 专业,ssex 性别,sbirth 出生日期,all_credit 总学分from XS"Command3_ClickStuADO.RefreshEnd Sub'选中一行显示元组Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset("学号")Stusname.Text = StuADO.Recordset("姓名")Stusbirth.Text = StuADO.Recordset("出生日期")Stusdept.Text = StuADO.Recordset("专业")Stuall_credit = StuADO.Recordset("总学分")If Trim(StuADO.Recordset("性别")) = "男" ThenStusexm = TrueElseStusexf = TrueEnd IfEnd Sub'插入元组Private Sub Studinsert_Click()If Trim(Stusno.Text) = "" Or Trim(Stusname.Text) = "" Or (Stusexm = False And Stusexf = False) ThenMsgBox "加*数据项不能为空,请重新设置", vbOKOnly, "信息提示"Stusno.SetFocusEnd IfIf Trim(Stusbirth.Text) <> "" ThenIf Not IsDate(Trim(Stusbirth.Text)) ThenMsgBox "出生日期输入不正确,请重新输入", vbOKOnly, "信息提示" Stusbirth.SetFocusExit SubEnd IfEnd IfStuADO.Recordset.AddNewStuADO.Recordset.Fields("学号") = Trim(Stusno.Text)StuADO.Recordset.Fields("姓名") = Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期") = Trim(Stusbirth.Text) StuADO.Recordset.Fields("专业") = Trim(Stusdept.Text)StuADO.Recordset.Fields("总学分") = Trim(Stuall_credit.Text)If Stusexm = True ThenStuADO.Recordset.Fields("性别") = "男"Else: Stusexf = TrueStuADO.Recordset.Fields("性别") = "女"End IfStuADO.Recordset.UpdateEnd Sub'取消Private Sub Stucancel_Click()Stusno.Text = ""Stusname.Text = ""Stucname.Text = ""End Sub'选课Private Sub Stuchoose_Click()StuADOXS.RecordSource = "select * from XS where sno='" + Trim(Stusno.Text) + "'" StuADOXS.RefreshIf Trim(Stusno.Text) = "" Or Trim(Stusname.Text) = "" Or Trim(Stucname.Text) = "" Thenret = MsgBox("输入不正确,请重新输入!", vbYes, "错误!")ElseIf Trim(Stusname.Text) <> Trim(StuADOXS.Recordset("sname")) Thenret = MsgBox("输入学号与姓名不匹配,请重新输入!")ElseStuADOXS_KC.RecordSource = "select * from XS_KC"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.AddNewStuADOXS_KC.Recordset.Fields("sno") = Trim(Stusno.Text)StuADOKC.RecordSource = "select * from KC where cname='" + Trim(Stucname.Text) + "'" StuADOKC.RefreshStuADOXS_KC.Recordset.Fields("cno") = StuADOKC.Recordset("cno")StuADOXS_KC.Recordset.UpdateStuADO.RefreshEnd IfEnd Sub'删除元组Private Sub Studelete_Click()ret = MsgBox("是否要删除" + StuADO.Recordset("学号") + "号学生的选课记录?", vbYesNo, "提示")If ret = vbYes ThenStuADOXS_KC.RecordSource = "select * from XS_KC where sno='" + StuADO.Recordset("学号") + "'"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.DeleteEnd IfStuADO.RefreshStucancel_ClickEnd Sub'单击显示元组Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset("学号")Stusname.Text = StuADO.Recordset("姓名")Stucname.Text = StuADO.Recordset("课程名")End SubPrivate Sub Stuadd_Click()If Stugrade.Text = "" Thenret = MsgBox("输入为空,请重新输入", vbYes, "错误提示")ElseStuADOKC.RecordSource = "select * from KC where cname='" + Trim(Stucname.Text) + "'" StuADOKC.RefreshStuADOXS_KC.RecordSource = "select * from XS_KC where cno='" + StuADOKC.Recordset("cno") + "'"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.Fields("sno") = Stusno.TextStuADOXS_KC.Recordset.Fields("cno") = StuADOKC.Recordset("cno")StuADOXS_KC.Recordset.Fields("grade") = Stugrade.TextStuADOXS_KC.Recordset.UpdateStuADO.RecordSource = "select sno 学号,XS_o 课程号,cname 课程名,grade 成绩from KC,XS_KC where o=XS_o"StuADO.RefreshEnd IfEnd Sub'取消Private Sub Stucancel_Click()Stusno.Text = ""Stucname.Text = ""Stugrade.Text = ""End Sub'删除学生成绩Private Sub Studelete_Click()ret = MsgBox("是否要删除" + Trim(StuADO.Recordset("学号")) + "号学生成绩?", vbYesNo, "提示")If ret = vbYes ThenStuADO.Recordset("成绩") = NullEnd IfEnd Sub'单击显示元组Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset("学号")Stucname.Text = StuADO.Recordset("课程名")End Sub'修改学生成绩Private Sub Stusure_Click()If Stugrade.Text = "" Thenret = MsgBox("输入为空,请重新输入", vbYes, "错误提示")ElseStuADOKC.RecordSource = "select * from KC where cname='" + Trim(Stucname.Text) + "'" StuADOKC.RefreshStuADOXS_KC.RecordSource = "select * from XS_KC where cno='" + StuADOKC.Recordset("cno") + "'" + " and sno='" + Trim(Stusno.Text) + "'"StuADOXS_KC.RefreshStuADOXS_KC.Recordset.Fields("grade") = Trim(Stugrade.Text)StuADOXS_KC.Recordset.UpdateStuADO.RecordSource = "select sno 学号,XS_o 课程号,cname 课程名,grade 成绩from KC,XS_KC where o=XS_o"StuADO.RefreshEnd IfEnd SubPrivate Sub Command1_Click() StuSearch.ShowEnd SubPrivate Sub Command2_Click() AddStu.ShowEnd SubPrivate Sub Command3_Click() AddStuCourse.ShowEnd SubPrivate Sub Command4_Click() AddStuGrade.ShowEnd SubPrivate Sub Command5_Click() TchSearch.ShowEnd SubDim SqlStr As StringPublic Sub MakeSqlStr()SqlStr = ""If Trim(Stusno) <> "" ThenSqlStr = SqlStr + "and sno like'%" + Trim(Stusno.Text) + "%' "End IfIf Trim(Stusname) <> "" ThenSqlStr = SqlStr + "and sname like '%" + Trim(Stusname.Text) + "%'"End IfIf Trim(Stusdept) <> "" ThenSqlStr = SqlStr + "and sdept='" + Trim(Stusdept.Text) + "'"End IfEnd SubPrivate Sub Command1_Click()MakeSqlStrStuADO.RecordSource = "select sno 学号,sname 姓名,sdept 专业,ssex 性别,sbirth 出生日期,all_credit 总学分from XS where (ssex ='男' or ssex='女')" _& SqlStrStuADO.RefreshEnd SubPrivate Sub StuDG_DblClick()ShowStuKC.StuKCADO.RecordSource = "select sname 姓名,cname 课程名,grade 成绩,credit 学分,term 开课学期,class_hour 课时from XS,KC,XS_KC" _& " where XS.sno=XS_KC.sno and o=XS_o" _& " and XS.sno='" + StuADO.Recordset("学号") + "'"ShowStuKC.StuKCADO.RefreshShowStuKC.ShowStuSearch.Enabled = FalseEnd SubDim SqlStr As StringPublic Sub MakeSqlStr()SqlStr = ""If Trim(Tchtno) <> "" ThenSqlStr = SqlStr + "and tno like '%" + Trim(Tchtno.Text) + "%' "End IfIf Trim(Tchtname) <> "" ThenSqlStr = SqlStr + "and tname like '%" + Trim(Tchtname.Text) + "%'"End IfIf Trim(Tchprofessional) <> "" ThenSqlStr = SqlStr + "and professional like '%" + Trim(Tchprofessional.Text) + "%'"End IfIf Trim(Tchdepartment.Text) <> "" ThenSqlStr = SqlStr + "and department like '%" + Trim(Tchdepartment.Text) + "%'"End IfEnd SubPrivate Sub TchDG_DblClick()ShowTchKC.TchKCADO.RecordSource = "select tname 姓名,cname 课程,credit 学分,place 上课地点from KC,TCH,TCH_KC where TCH.tno=TCH_KC.tno and o=TCH_o" _ & " and Tch.tno='" + TchADO.Recordset("教师编号") + "'"ShowTchKC.TchKCADO.RefreshShowTchKC.ShowEnd SubPrivate Sub Tchseek_Click()MakeSqlStrTchADO.RecordSource = "select tno 教师编号,tname 姓名,tsex 性别,tbirth 出生日期,professional 职称,department 部门from TCH where (tsex ='男' or tsex='女')" _& SqlStrTchADO.RefreshEnd Sub。