第一篇:C#学生成绩管理系统课程设计剖析
目录
一、设计目的.............................................1
二、需求分析.............................................2 2.1系统需求简介.......................................2 2.1.1系统目标......................................2 2.1.2功能需求分析..................................2 2.1.3性能需求分析..................................2 2.2系统业务功能分析...................................2 2.2.1具体分析有两个角色:老师和学生................3 2.2.2流程图.......................................3
三、模块分析及设计.......................................3
四、数据库设计...........................................4 4.1数据字典..........................................4 4.1.1数据流.......................................4 4.1.2 数据存储.....................................4 4.2 E-R图...........................................5 4.3系统数据库的设计...................................6
五、设计过程及要点.......................................9 5.1数据库及窗体设计...................................9 5.2 主要代码........................................11
六、设计总结............................................12
七、参考资料............................................12
一、设计目的
为了提高高校学生成绩信息的管理效率,方便学生和教师对学生成绩信息进行查询、方便学校里面管理员去管理和查询学生信息,建立一个学生成绩管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生成绩管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。本次课程设计题目为《学生成绩管理系统》,涉及成绩管理系统的登录界面、老师对学生成绩的查询、学生对学生成绩的查询、以及老师对学生成绩的增删改查分析统计等内容。本功能实现对学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和数据库的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2008作为主要开发工具,可与SQL Server 2005数据库无缝链接。本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:设计目的、需求分析、模块分析及设计、数据库设计、制作过程及要点、设计总结。
二、需求分析
2.1系统需求简介
2.1.1系统目标
根据查询条件实现学生信息的查询 学生选课信息查询、成绩信息的查询
(3)学生信息、课程信息、成绩信息的增加、删除、修改(4)对基本信息完成增加、删除、修改时,需注意表与表之间的关联
2.1.2功能需求分析
本系统的功能需求分析如下:
学生信息查询:学生可以根据学号、姓名、专业进行查询.学生信息管理:主要是用于学生信息更新、插入、删除; 学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新。
2.1.3性能需求分析
(1)登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管 理等。
2.2系统业务功能分析
2.2.1具体分析有两个角色:老师和学生
学生只能有查询的权利,其中包括按学号查询,按姓名查询和按课程号查询;
而老师则有查询以及对学生成绩增删改查分析统计功能,而分析主要是分析每一课程的及格人数,不及格人数和及格率等,统计则是统计各个班级和课程成绩的升序排序等。
2.2.2流程图
图一 总流程图
三、模块分析及设计
《学生成绩管理系统》包括 5个模块:登录及主界面,成绩添加,成绩查询,成绩增删改,成绩分析与统计。登陆及主界面:用户人员在登录界面中输入用户名与密码。通过用户名与数据库里的用户表相比配,将学生与教师区分开,二者各自进入自己的页面。二者拥有各自权限,分别拥有不同的功能。
成绩添加:主要实现学生成绩的添加功能,将学生的各种信息添加到数据库中。
成绩查询:主要三种方式,按学号,按姓名,按课程号查询学生的成绩。
成绩增删改:主要是老师对学生的各项信息或成绩的修改,删除,添加等,以实现学生成绩管理系统的及时更新。
成绩分析统计:对学生成绩的分析统计包括各个学生或课程的及格人数,不及格人数,及格率,学生成绩的排序等等。
四、数据库设计
4.1数据字典
4.1.1数据流
课程信息:课程号,课程名称,学期,课程时间,学分等信息 学生信息:学号,姓名,专业,性别,生日,年龄,现状等信息 教师信息:教师编号,姓名等信息 4.1.2 数据存储
成绩表:包括学生姓名,学号,课程号,成绩等信息 登录信息表:包括学生学号,密码及教师编号,密码等信息 4.2 E-R图
图二 学生信息E-R图
图三 课程信息E-R图
图四 教师信息E-R图
图五 总E-R图
4.3系统数据库的设计
综合以上分析,要实现系统功能,应该建立如下表:
表一 课程表
表二 学生表
表三 成绩表
表四 教师表
表五 用户表
五、设计过程及要点
这次课程设计我主要做数据库和登陆界面的设计并实现该系统的登录功能。
5.1数据库及窗体设计
其中数据库我一共设计了五个表,分别是学生表,课程表,成绩表,教师表和用户表,这些表的详细信息已经在上面有了介绍。
然后就是登录功能的实现。
图六 登录窗体
登录窗体主要用了3个label控件,2个textbox控件,2个radioButton控件,2个button控件,实现了教师跟学生的登录,用户名跟密码输入正确后,选择老师或者学生后分别进入各自的主界面,在主界面中可以对学生的成绩进行查询,删除等等操作。老师和学生的主界面分别如下图:
图七 学生主界面
图八 教师主界面
5.2 主要代码
namespace WindowsFormsApplication1 { public partial class 登录 : Form { public 登录(){
InitializeComponent();sqlhelper = new Sqlhelper(“server=.;database=xscj;integrated security=true”);} Sqlhelper sqlhelper private void button1_Click(object sender, EventArgs e){ string sn;string str = “server=.;database=xscj;integrated security=true”;SqlConnection conn = new SqlConnection(str);conn.Open();
if(radioButton1.Checked){ textBox1.Text.Trim()+ “'and password='” +textBox2.Text.Trim()+ “'”;SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if(dr.Read()){ sn = textBox1.Text.Trim();教师界面 f1 = new 教师界面();f1.Show();this.Visible = false;} else { MessageBox.Show(“输入有误,请重新输入!”);textBox1.Text = “";textBox2.Text = ”“;} } if(radioButton2.Checked){ string cstr = ”select * from [user] where type='教师'and uid='“ + 11
string cstr = ”select * from [user] where type='学生'and uid='“ +textBox1.Text.Trim()+ ”'and password='“ + textBox2.Text.Trim()+ ”'“;SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if(dr.Read()){ sn = textBox1.Text.Trim();学生界面 f2 = new 学生界面();f2.Show();this.Visible = false;} else { MessageBox.Show(”输入有误,请重新输入!“);textBox1.Text = ”“;textBox2.Text = ”";} } conn.Close();conn.Dispose();} } }
六、设计总结
为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。我们小组按照系统工程软件设计的要求,从设计目的、需求分析、模块分析及设计、数据库设计等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息增删改,学生信息添加等模块的功能。
在这短短的五天里收获如下: 巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
4、更加深刻的了解了小组团队协作的重要性,只有整个小组的人通力合作才可能会完成一个项目并且进步。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
七、参考资料
[1] 钱能.C++程序设计,2008,16(2):233-237 [2] 钱能.C++程序设计试验指导,2008.34(3):35-38 [3] 谭浩强.C程序设计.北京:清华大学出版社,2001 13
第二篇:语言课程设计-学生成绩管理系统
1、课程设计的目的、任务
《汇编语言》课程设计对于巩固汇编语言理论知识,加强学生的实际动手能力和提高学生综合素质十分必要。课程设计的目的主要是通过程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
2、软件需求分析和设计
2.1学生成绩管理系统是对学生成绩的管理,其中包括以下几个模块:(1).插入一个数据(插入学生学号以及语数外三个成绩)。(2)修改一个数据。(3)删除学生成绩数据。(4)查找学生成绩。(5)查看学生成绩的排名(6)查看学生成绩分布(7)按esc键退出系统
2.2学生成绩管理系统应该包含以下信息:学号,语文成绩,英语成绩,数学成绩。因此,系统应该提供以下功能:(1)输出显示菜单。(2)输入学生的成绩(3)修改学生成绩(4)删除学生成绩(5)查询学生成绩(6)显示学生成绩排名(7)显示成绩分布统计(8)按esc键退出系统
2.3依据程序的功能需求,该系统的功能结构图如下
系统功能结构图
2.4 程序流程图:
主程序流程图
查找学生成绩
插入学生学号及成绩
修改学生的成绩
显示各个学科各分数段的人数
3、程序实现说明
3.1学生管理系统中各子程序如下:
(1).输入全部学生学号以及语文,英语,数学三科的成绩。子程序名:insert 子程序描述:该子程序为输入字程序。系统在开始的时候是没有数据的,通过该子程序可以初始化系统,将学生的学号及成绩输入系统。
代码:
insert proc near;定义进程子程序:插入学生,学号及 成绩 call input;调用input add n,1 ret insert endp
(2).修改输入的成绩。子程序名:modify 子程序描述:通过子程序修改学生的成绩 代码:
modify proc near;定义进程子程序:修改学生学号,成绩 md1:output mess1;输出mess1 shuru;调用宏shuru:二位数据输入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找输入的学生是否存在
je qq1_1;查到的话,就跳转到qq1_1输入修改的值,也就是重新输入。;结果相等则跳转到qq1_1 add si,1
cmp si,bx jbe md;小于等于则跳转到md output mess;输出mess jmp md1;不相等继续输入学号
qq1_1:;转入修改的值重新输入。mov di,si output mess2 output mess4 mov si,0 mov cx,3
qq3_1:shuruu;cmp dx,78h;
jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1]
分别输入语文,英语,数学成绩,并将其放 在缓冲区buf中 比较输入的成绩是否大于120,如果大于120的 话,那么重 新输入成绩 小于等于则转移到qq2_1 输出ts3 跳转到qq1_1 输出空格 将存入buf中的成绩,分别赋值给存放对应科 目的成绩的数组
mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp
(3).删除学生的成绩。子程序名:delete 子程序描述:通过子程序删除学生的成绩 代码:
de proc near;删除某个学生的记录 sc1:output mess1 shuru;调用宏shuru,接受输入的学号 mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查询输入学号的学生信息是否存在,不存在的话,重新输入学号 je sc2;相等则转移到sc2 add si,1 cmp si,bx jbe sc;小于等于则转移到sc output mess;输出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等则转移到sc3 mov cx,bx
sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循环指令,执行操作(cx)<--(cx)-1.若 cx!=0,跳转到标号sc处循环执行;cx=0,则推出
循环,执行loop的下一条指令 sub n,1 sc3: ret de endp
(3).查询学生的成绩。子程序名:find 子程序描述:通过子程序查询学生的成绩 代码:
find proc near;定义进程子程序:查找学生成绩 call sum;求学生的总成绩 call ping;求学生的平均成绩
bj1:output mess1;输出mess1 shuru;二位数数据输入 mov bl,n mov bh,0 mov al,dl
mov si,0
bj: cmp al,xh[si];将输入的学号与输入的学号相比,je i;存在的话,将此学生的成绩输出。je表示结果相
等则转移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg
mov al,mat[si] cbw shuzii ax output bg;
mov al,pj[si] cbw
小于等于则转移到bj 为二位数据输出 输出空格 将字节变为字
为三位数据输出。输出空格 将字节变为字
为三位数据输出 输出空格的字符串,用于与标题栏对齐
shuzii ax output bg
mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii为三位数据输出
output bg;输出空格的字符串,用于与标题栏对齐 shuzi mc[si];shuzi为二位数据输出 ret find endp
(4).显示学生的成绩排名。子程序名:show 子程序描述:通过子程序显示学生的成绩排名 代码:
show proc near;定义进程子程序:显示结果排名 call sum;调用宏sum call ping;调用宏ping call rank;调用宏rank call shuchu;调用宏shuchu ret show endp
3.2程序运行抓图:
主菜单
修改学生成绩
删除学生成绩
显示各个学科各分数段的人数
4、程序总结
通过两个星期的学习,努力,终于完成了报告。系统可以很好的运行。这两个多星期的时间,几乎每天不是在敲代码,就是在看代码,查书,上网。系统中用到了很多最近才学习的知识,比如宏,子程序。这些都使得代码的运行效率提高了,代码行数减少了。系统还用到了bios的清屏功能。这些功能如果不是做课程设计,我想我很难会接触到这些知识。
由于自己对知识掌握的不是很牢固,其中也会碰到一些困难。每当遇到问题的时候,我会先上网去查找,看看有没有人提过这方面的问题。互联网是强大的,大部分的问题通过网络都可以解决。部分找不到的问题,我就去请教班里学得好的同学。他们对知识的掌握远超过我。这样下来,很多问题都迎刃而解了。
课程设计是一个很好的掌握书本上知识的过程。平时上课之后,自己都不会想着去敲一些代码联系联系。通过做课程设计,将理论与实践结合了起来,对知识的理解更加深入了。
第三篇:课程设计--成绩管理系统
“成绩管理系统”课程设计指导书
课题名称:学生成绩管理系统
设计目标:按照软件工程的规范,以SQL Server或Oracle为后台数据库,以Visual C++、Delphi等为前端开发工具,设计并实现一个能模拟高等学校学生成绩管理的系统。
需求描述:
学生成绩管理系统中:
1.系统用户
系统的用户是学校的学生、教师和管理员。学生使用本系统查询自己的成绩。教师使用本系统录入和查询自己所授课程的考试成绩。教学管理员可以查询所有课程成绩,并使用本系统进行成绩的统计和生成报表。
2.系统功能
(1)成绩录入:
教师可以查询自己本学期所授课程,并录入学生的考试成绩。录入过
程中,可以暂存已录入的成绩,当录入完成后提交。
(2)成绩维护:
教师在提交前,可以修改已录入或暂存的学生成绩;但提交后,则只
能查询不能再进行任何修改。
教学管理员可以清除教师已提交的成绩。
(3)成绩查询:
教师、教学管理员可以查询学生考试成绩。学生只允许查询自己的考
试成绩,教师只允许查询自己所授课程的成绩。
(4)成绩统计:
教学管理员可以按课程、按学生、按班级等进行成绩统计。
教学管理员根据核算出的总评成绩统计处于优、良、中、及格、不及
格的学生人数以及占总人数的百分比。其中100-90为优,89-80为良,79-70为中,69-60为及格,60分以下为不及格。
按要求输出成绩在优、良、中、及格、不及格各区间的学生学号。
结果形式:
提交课程设计报告、源程序和可演示的软件
课程设计报告要求:详见课程设计模板
课程设计参考思路:
(1)熟悉数据库和开发工具,掌握开发工具与本地数据库的连接方法。
(2)理解系统的信息需求,进行合理的数据库设计,建立各数据库表。
(3)理解系统的功能需求,设计应用软件。结合Delphi 或VC++进行系统界面
(窗体、菜单以及相应控制按钮)的设计、连接与操纵数据库方案的设计,编写程序。
(4)系统运行、调试并完善。
(5)撰写设计报告。
第四篇:软件工程课程设计之——学生成绩管理系统
1.设计背景
随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。现在我国的教育机构对学生成绩管理还普遍停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代,这种传统的管理方法必然被计算机为基础的信息管理所取代。
通过调查,要求系统具有权限设置功能的登录模块,学生可以实现成绩信息查询功能。教务管理人员能够实现注册新用户,学生成绩信息的查询、录入、删除、修改、浏览、统计等。同时学院在教学这一部分主要是由教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,以及让教务处在最短的时间段把学生的成绩核算出来,提高教务处的办事效率。同时,能够随时对学生、学生成绩进行各种查询和统计,以及很好地对系统进行维护。此种学生成绩管理系统提供了强大的学生成绩管理管理功能,方便了系统管理员对学生成绩等信息的添加、修改,打印等操作,同时一样方面的学生可以对自己各科成绩查询,学习的交流,满足了时代的需要。
2.设计方案
2.1总体设计
本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标: 1.系统应具有实用性、可靠性和适用性,同时注意到先进性。2.对各个数据库进行动态管理,防止混乱。
3.能够按照用户选择的不同的条件进行简单查询和复合查询。4.能够对查询结果进行分类汇总,实现报表打印。5.注意数据的安全性,具有数据备份和恢复的功能。6.方便用户的操作,尽量减少用户的操作。
2.2模块设计
本系统主要实现以下功能:①添加学生成绩; ②删除学生成绩; ③查询学生成绩;④班级创建或删除; ⑤科目调整和删除 具体要求为:
a.添加学生成绩:输入要添加的学生的学号、姓名、课程成绩等信息,且学号字段不能为空,确定则录入取消则放弃该操作。
b .删除功能:输入要删除的学生的学号,且必须输入密码验证,确定则执行该操作修改该学生信息,取消则放弃该操作。
c.查询功能: 查询功能是本系统的一个重要功能,按照科目成绩的相关信息可进行查找,应尽量使操作简化,节省使用者的时间。
d.班级创建:选择要创建的班级名称,或要删除班级的名称,单击确定创建成功,选择删除将删除该班级信息。
e.科目调整:选择要调整的科目名称、班级名称,或要删除科目和班级的名称,单击增加调整成功,选择删除将删除该班级的该项科目信息。
3.方案实施
3.1成绩管理各模块功能介绍
添加学生成绩,输入要添加的学生的学号、姓名、课程成绩等信息,且学号字段不能为空,确定则录入取消则放弃该操作。删除学生成绩,输入要删除的学生的学号,且必须输入密码验证,确定则执行该操作修改该学生信息,取消则放弃该操作。查询学生成绩,查询功能是本系统的一个重要功能,按照科目成绩的相关信息可进行查找,应尽量使操作简化,节省使用者的时间。班级创建或删除,选择要创建的班级名称,或要删除班级的名称,单击确定创建成功,选择删除将删除该班级信息。科目调整和删除,选择要调整的科目名称、班级名称,或要删除科目和班级的名称,单击增加调整成功,选择删除将删除该班级的该项科目信息。
3.2成绩管理模块功能具体实现
具体实现功能如下:添加学生成绩、删除学生成绩、查询学生成绩、班级创建或删除、科目调整和删除等。科目管理中科目添加和科目删除的部分代码如下:
科目管理
科目添加
ReturnBook()import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;import javax.swing.text.JTextComponent;
//extends JFrame class ReturnBook
implements ActionListener {
JFrame f3;Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;JButton jbt1,jbt2;//按钮:确定、取消、JLabel label;
//标签
JTextField tf1,tf2;
//定义文本框
JLabel label1,label2,label3,label4;String stuName;
ReturnBook()
{
f3=new JFrame();cp=f3.getContentPane();// 初始化面板、按钮、标签、文本框
jp1=new JPanel();
jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jpanelWest=new JPanel();jp=new JPanel();//-----------------jbt1=new JButton(“确定”);
jbt2=new JButton(“取消”);
//-----------------label=new JLabel(“ size='4'>
学生科目添加
//-----------------tf1=new JTextField(20);tf2=new JTextField(20);
// tf6=new JTextField(20);//-----------------//布局,添加控件
jp1.add(jbt1);jp1.add(jbt2);
stuName=tf2.getText();
jp1.add(new JLabel(“您好”+stuName+“欢迎登陆学生信息系统”));
JPanel jpanel=new JPanel();jpanel.add(label);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(pp4,“West”);cp.add(pp2,“Center”);
cp.add(pp3,“South”);
cp.add(jpanel,“North”);JPanel pp2=new JPanel(new GridLayout(5,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(5,1));pp4.add(new JLabel(“学号”,SwingConstants.CENTER));pp2.add(tf1);pp4.add(new JLabel(“科目”,SwingConstants.CENTER));pp2.add(tf2);
pp3.add(jbt1);pp3.add(jbt2);cp.add(jpane4,“East”);
//-----------------
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screen=kit.getScreenSize();int x=screen.width;
/*取得显示器窗口的宽度*/ int y=screen.height;f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/
/*取得显示器窗口的高度*/
f3.setVisible(true);
//------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
/*f3.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
} System.exit(0);} });*/ //-----------------
public void insertRecord(){
if(tf1.getText().equals(“")||tf2.getText().equals(”“))
{ JOptionPane.showMessageDialog(f3,”请填写学生信息“);return;}
try{
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);
}catch(ClassNotFoundException e){System.out.println(”加载驱动程序失败!“);}
try{ String url = ”jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};DBQ=Book.mdb“;//直接
Connection con=DriverManager.getConnection(url);Statement sql;
String s=”insert into course values('“+tf1.getText()+”','“+tf2.getText()+”');“;
//查询输入的学号是否在数据库中存在 使用当前类目录下的数据库文件
String query=”select * from course where 学号='“+tf1.getText()+”'“;
sql=con.createStatement();
ResultSet rs=sql.executeQuery(query);//返回查询结果集 boolean moreRecords=rs.next();//判断结果集是否有数据
if(moreRecords)
{
JOptionPane.showMessageDialog(f3,”学号已经被使用,请重新输入“);
con.close();tf1.setText(”“);return;
}
int insert=sql.executeUpdate(s);if(insert==1)
{ JOptionPane.showMessageDialog(null,”学生信息录入成功!“);
tf1.setText(”“);tf2.setText(”“);
}
}catch(SQLException g)
{
System.out.println(”E Code“+g.getErrorCode());System.out.println(”E M“+g.getMessage());
}
}
public void actionPerformed(ActionEvent e){
String cmd=e.getActionCommand();
if(cmd.equals(”确定“))
{
insertRecord();
}
else if(cmd.equals(”取消“))
}
f3.hide();
public static void main(String []arg){
}
} 科目删除
BorrowBook()
import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;
class BorrowBook implements ActionListener {
JFrame f;
Container cp;JPanel jpS,jpanelWest;JButton jbt1,jbt2,jbt3,jbt4;//按钮,查询、取消、修改 JLabel label,L;
//标签:请输入姓名学号 JTextField tf;
//定义文人框
StudentIn a=new StudentIn();JTable table;//用来接收数据库中返回的信息
Object columnName[]={”学号“,”科目“};
Object ar[][] =new Object[80][6];String sno;String count=”0“;
BorrowBook()
{
f=new JFrame();cp=f.getContentPane();// 初始化面板、按钮、标签、文人框 jpS=new JPanel();
jpanelWest=new JPanel();
//-----------------jbt1=new JButton(”查询“);
jbt2=new JButton(”删除“);
jbt3=new JButton(”录入“);
jbt4=new JButton(”关闭“);
//-----------------label=new JLabel(” size='4'> 请 输 入 科 目 :
table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名
JScrollPane scrollpane = new JScrollPane(table);
//-----------------tf=new JTextField(18);
//-----------------
//
//-----------------//布局,添加控件
jpS.add(jbt1);jpS.add(jbt2);jpS.add(jbt3);jpS.add(jbt4);
JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpE=new JPanel();
cp.add(jpanel,”North“);JPanel jp=new JPanel();//jp.add(scrollpane);JPanel p=new JPanel();//用来放两个表 p.setLayout(new BorderLayout());
p.add(L,”North“);p.add(scrollpane);
cp.add(pp4,”West“);cp.add(p,”Center“);
cp.add(jpS,”South“);
cp.add(jpE,”East“);
//-----------------Dimension screen=kit.getScreenSize();int x=screen.width;
/*取得显示器窗口的宽度*/ int y=screen.height;f.setSize(400,330);
/*取得显示器窗口的高度*/
Toolkit kit=Toolkit.getDefaultToolkit();int xcenter=(x-350)/2;int ycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
jbt3.addActionListener(this);
jbt4.addActionListener(this);
/*f.addWindowListener(new WindowAdapter(){
});*/ public void windowClosing(WindowEvent e){ System.exit(0);} } //-----------------int i=0;
public void showRecord(String ql){
while(i>=0)
{
ar[i][0]=”“;ar[i][1]=”“;
i--;} i=0;
try{
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);
}catch(ClassNotFoundException e){System.out.println(”加载驱动程序失败!“);}
try{
String url = ”jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};DBQ=Book.mdb“;//直
Connection con=DriverManager.getConnection(url);Statement sql;
String s=”select * from course where 科目 ='“+ql +”'“;
ResultSet rs=sql.executeQuery(s);
接使用当前类目录下的数据库文件
sql=con.createStatement();
while(rs.next())
{
String bname=rs.getString(1);
String bno=rs.getString(2);
ar[i][0]=bname;ar[i][1]=bno;i++;
}
count=”“+i+”“;
L.setText(”“+count+”人“);
f.repaint();
con.close();System.out.println(ar[0][1]);
}catch(SQLException g)
{ System.out.println(”E Code“+g.getErrorCode());
System.out.println(”E M“+g.getMessage());
} }
public void deleteRecord(int index)
{
try{
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);
}catch(ClassNotFoundException e){System.out.println(”加载驱动程序失败!“);}
try{
String url = ”jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};DBQ=Book.mdb“;//直接使用当前类目录下的数据库文件
Connection con=DriverManager.getConnection(url);Statement sql;
String ql=(String)(ar[index][0]);
String s=”delete * from grade where 学号 ='“+ql +”'“;
sql=con.createStatement();
int del=sql.executeUpdate(s);
if(del==0)
{JOptionPane.showMessageDialog(null,”删除成功!“,”信息“, JOptionPane.YES_NO_OPTION);}
con.close();
f.repaint();
}catch(SQLException g)
{
System.out.println(”E Code“+g.getErrorCode());System.out.println(”E M“+g.getMessage());
}
}
public void actionPerformed(ActionEvent e)
{
String remember=”“;String ql=”“;
String cmd=e.getActionCommand();
if(cmd.equals(”查询“))
{
ql=tf.getText().trim();remember=ql;
showRecord(ql);
}
// if(cmd.equals(”删除“))
// {
// new BorrowIn();
//}
//**************
if(cmd.equals(”删除“))
{
int index=table.getSelectedRow();
if(index==-1)
JOptionPane.showMessageDialog(null,”请选定要删除的姓名“,”输入错误“, JOptionPane.YES_NO_OPTION);
else{
BorrowIn k=new BorrowIn();
k.setData(ar[index][0].toString(),ar[index][1].toString());
}
}
//**************
//if(cmd.equals(”还书“))
//new ReturnBook();
if(cmd.equals(”关闭"))
//
f.setVisible(false);
f.dispose();
} public static void main(String []arg){
}
}
BorrowBook a=new BorrowBook();
4.结果与结论
结果:本设计完成了一个具有添加学生成绩、删除学生成绩、查询学生成绩、班级创建或删除、科目调整和删除等功能的学生成绩管理系统。
结论:本系统为学生成绩管理系统,主要提供方便高效的管理功能以及网上的信息查阅平台,学生可以查阅相关的成绩和基本信息,管理员可以管理所有信息。包括浏览所有用户信息以及相关的成绩信息,实现添加,查询,或删除学生成绩和信息,并且能够实现班级创建或删除和科目调整和删除等功能。
论文首先介绍了本系统开发的背景研究意义和开发环境,在进行了可行性需求分析后对本系统进行了概要设计,最后利用JAVA开发环境实现了系统设计时所确定的几种功能,并进行了调试和运行,基本符合了学生成绩管理系统的要求。
但是,由于一些技术和设备所限,本系统存在一些不足之处,有待进一步改进和完善,在开发过程中遇到了以下问题:
(1)对后台数据库中数据的日常维护,包括自动清理过时数据;
(2)程序中错误处理和输入控制不够全面,可能导致输入无效引发错误;
(3)对补考学生的处理。
总之此次设计使我受益匪浅,虽然过程中有许多不尽人意的地方,但通过大家的努力最终还是把问题给攻克了。在此次设计中学到的知识对我终生受用。
5.收获与致谢
软件工程设计是软件工程实践教学的重要组成部分,合理的组织,精心的准备,加上有序的实施,使我们的实践能力得到很大的提高,同时培养了我们的团队合作精神,增强了我们学习的自信心,并为我们毕业后从事相关工作打下良好基础。
在此次的设计中我不仅利用了自己的所学,而且还学到了许多新的知识,不知不觉中我们的设计已经接近了尾声,在这里非常感谢我们的指导老师王瑞平老师,感谢她给我们的设计所提出的很多很多好的建议和意见,让我从中获益匪浅,同时也帮助我们圆满的完成了课程设计。
最后我要感谢我们组的全体人员,没有大家的帮助和鼓励,我也不可能完成这么多的设计,也不可能学到这麽多有用的知识。
谢谢同学们对我的帮助,同时也谢谢老师对我们的辅导。没有大家的共同努力就没有我们今天课程设计的圆满完成。向我挚爱的王瑞平老师以及可爱的同学们送上我最崇高的敬意!谢谢你们!
6.参考文献
[1]王 晟.《Visual Basic.NET 数据库开发经典案例解析》.清华大学出版社.2005 [2]马朝晖等.Java教程.(第4版)[M].北京:人民邮电出版社.2006 [3] 张白一,崔尚森.面向对象程序设计——Java[M].西安:电子科技大学出版社.2004 [4] 袁世鹰.微机教务管理系统的设计与实现[P].北京:开明出版社.2001
第五篇:VB学生成绩管理系统课程设计报告
VB程序设计 课程设计报告
班 级:***** 姓 名:***** 序 号:***** 指导老师:*****
目录
1、课设的目的..............................................................................................................................2
2、界面设计和功能设计............................................................................................................2
3、系统功能实施...................................................................................................................11
4、总结........................................................................................................................................30
一、课设的目的
1.本次课程设计提高了我们的实践动手能力
5.通过本次课程设计,熟悉用户界面的设计
2.通过本次课程设计,进一步理解计算机程序设计的思路与方法
3.本次课程设计之后,达到能熟练使用各种常见的VB控件,理解面向对象的思想 4.经过本次课程设计,我们进一步熟练运用VB的语言元素和流程控制语句
6.经过本次课程设计,熟悉数据访问控件ADO及相关对象的使用,能基于ADO控件实现Access的数据访问与操纵
二、界面设计和功能设计
1、下面的界面为用户登陆界面:
用户名和密码均已设定,用户名为zgzy,密码为11201,只有输入正确,然后点击“登陆“按钮才能进入主界面。如果用户名或密码三次输入错误,则系统自动退出。当你点击“退出“按钮时,弹出一个对话窗,界面如下:
在对话框上点击“是”按钮,则退出系统,如果点击“否”,则该界面不变。
2、当用户名和密码均输入正确,点击“登陆”按钮,进入主界面——“学生成绩管理系统”界面,该界面是其他子界面的入口,界面如下:
3、进入主界面后,点击“学生管理(删除添加)”,进入学生管理界面,界面如下
该界面上有一个ADO控件,用于连接数据库,当用户在六个文本框中输入数据时,点击“添加“按钮,可以将数据录入到数据库中,如果此时点击”删除“按钮,则刚才输入的数据就会被删除,点击”保存“按钮时,输入的数据就会自动保存在数据库里,点击”返回主窗体“按钮,该窗体消失,主窗体出现。
4、在主界面点击“各科成绩查询“按钮,出现如下界面:
该界面有一个ADO控件,用来连接数据库,还有一个DataGrid控件,用来显示学生成绩的查询结果,当用户选择了要查询的科目和条件后,点击“查询“按钮,在DataGrid控件上就会显示出所查询的结果。下面为输入条件后查询的结果——
5、在主界面点击“姓名查询“按钮后,会出现如下界面:
该界面与上一界面相似,在文本框输入要查询的姓名后,点击“查询“按钮,就会在DataGrid控件上显示所要查询的结果。下面为输入条件后查询的结果——
5、在主界面点击“班级查询“按钮后,会出现如下界面:
在文版框中输入所要查询的班级,DataGrid控件上就会显示所要查询的结果。下面为输入条件后查询的结果——
6、在主界面上点击“各科成绩段查询“按钮后,会出现如下界面:
点击“计算分数段统计“按钮后,就会出现所要查询的结果。下面为查询的结果——
7、在主界面点击“计算总分“按钮后,出现如下界面:
点击“清除总分”按钮后,出现如下界面
8、在主界面点击“排名“按钮后,出现如下界面:
在该界面上点击“排名“按钮后,在DataGrid控件上会显示出按成绩高低排名的结果,点击”清除排名“按钮后,刚才结果消失,显示原来结果。下面为所现实的结果——
9、在主界面点击“统计直方图“按钮后,出现如下界面:
在该界面点击各个按钮后,就会出现与之相关科目的成绩统计直方图,下面为查询的结果——
10、在主界面点击“优等生“按钮后,出现如下界面:
点击按钮查询后,结果就会在界面上显示出来。下面为所查询的结果——
三、系统功能实施
以上展示的是系统的所有界面,怎样才能让这所有的功能实现呢?数据库和ADO控件的使用便是其中的关键。
1、建立如下数据库
(学号、姓名、班级、英语、数学、VB、总分、排名)
2、建立如下图的所有界面:
3、ADO控件和DataGrid控件以及数据库的连接步骤:(这一步在设计界面的同时完成)
(1)、如何加载ADO控件: 步骤1:
步骤2:
步骤3:
各个界面的ADO控件如何连接数据库(分两步):
步骤1:
如下面界面中的5个步骤
步骤2:
选中ADO控件Adodc1,点击鼠标右键选择属性,然后界面设置如下:
控件绑定数据库的字段操作说明:
属性设置说明:下面以学号为例,姓名、班级等都可参考此。将学号对应的文本框Text1连接Adodc1显示数据库中的学号,需要设置DataSource和DataField两个属性,首先选中Text1文本框,并进行下面的两步操作,即可绑定数据库的学号字段。
设置DataSource:
设置DataField:
(2)、如何加载DataGrid控件 控件DataGrid,可以实现数据的批量处理,该控件在控件库Microsoft DataGrid Control 6.0中。
说明:DataGrid控件属性设置
以下为各个界面所对应的代码——
该界面代码如下:
Private Sub Command1_Click()If Text1.Text = “zgzy” And Text2.Text = “11201” Then Form1.Show Unload me Else MsgBox “用户名或密码错误,请重新输入”, vbMsgBoxSetForeground, “系统提示!” End If
Static t As Integer t = t + 1 If t >= 3 Then End End Sub
Private Sub Command2_Click()a = MsgBox(“确定要退出本系统吗?”, 3 + 32 + 256, “系统提示!”)
If a = 6 Then Unload Me End If End Sub
该界面代码如下:
Private Sub Command1_Click()xsglfrm.Show End Sub Private Sub Command10_Click()ydsfrm.Show End Sub Private Sub Command3_Click()jszffrm.Show End Sub Private Sub Command4_Click()
pmfrm.Show End Sub Private Sub Command5_Click()
zftjtfrm.Show End Sub Private Sub Command6_Click()
cjcxfrm.Show End Sub Private Sub Command7_Click()
xmcxfrm.Show End Sub Private Sub Command8_Click()
bjcxfrm.Show End Sub Private Sub Command9_Click()
gkcjfrm.Show End Sub
该界面代码如下:
Private Sub Command1_Click()Me.Adodc1.Recordset.AddNew End Sub
Private Sub Command2_Click()If Me.Adodc1.Recordset.RecordCount = 0 Or Me.Adodc1.Recordset.EOF Then
Exit Sub End If Me.Adodc1.Recordset.Delete Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.RecordCount = 0 Then
Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End Sub
Private Sub Command4_Click()Me.Adodc1.Recordset.Save End Sub
Private Sub Command5_Click()
Unload Me
mainfrm.Show End Sub
该界面代码如下: Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “ ” + kc_条件 Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc_条件 = “>=92” kc = “vb” End Sub
Private Sub Option1_Click()
kc = “VB” End Sub Private Sub Option2_Click()kc = “math” End Sub Private Sub Option3_Click()kc = “English” End Sub
该界面代码如下:
Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_条件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “name” End Sub
该界面代码如下: Dim kc_条件 As String Dim kc As String Private Sub Command1_Click()kc_条件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_条件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “class” End Sub
该界面代码如下:
Private Sub Command1_Click()
Dim vb_A As Integer
Dim vb_B As Integer
Dim vb_C As Integer
Dim vb_D As Integer
Dim vb_E As Integer
Dim Math_A As Integer
Dim Math_B As Integer
Dim Math_C As Integer
Dim Math_D As Integer
Dim Math_E As Integer
Dim English_A As Integer
Dim English_B As Integer
Dim English_C As Integer
Dim English_D As Integer
Dim English_E As Integer
Me.Adodc1.RecordSource = “select * from stu where vb>=90”
Me.Adodc1.Refresh
vb_A = Me.Adodc1.Recordset.RecordCount
Me.Text1 = vb_A
Me.Adodc1.RecordSource = “select * from stu where vb>=80 and vb<90”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text2 = vb_B
Me.Adodc1.RecordSource = “select * from stu where vb>=70 and vb<80”
Me.Adodc1.Refresh
vb_C = Me.Adodc1.Recordset.RecordCount
Me.Text3 = vb_C
Me.Adodc1.RecordSource = “select * from stu where vb>=60”
Me.Adodc1.Refresh
vb_D = Me.Adodc1.Recordset.RecordCount
Me.Text4 = vb_D
Me.Adodc1.RecordSource = “select * from stu where vb<60”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text5 = vb_E
Me.Adodc1.RecordSource = “select * from stu where math>=90”
Me.Adodc1.Refresh
Math_A = Me.Adodc1.Recordset.RecordCount
Me.Text6 = Math_A
Me.Adodc1.RecordSource = “select * from stu where math>=80 and math<90”
Me.Adodc1.Refresh
Math_B = Me.Adodc1.Recordset.RecordCount
Me.Text7 = Math_B
Me.Adodc1.RecordSource = “select * from stu where math>=70 and math<80”
Me.Adodc1.Refresh
Math_C = Me.Adodc1.Recordset.RecordCount
Me.Text8 = Math_C
Me.Adodc1.RecordSource = “select * from stu where math>=60 ”
Me.Adodc1.Refresh
Math_D = Me.Adodc1.Recordset.RecordCount
Me.Text9 = Math_D
Me.Adodc1.RecordSource = “select * from stu where math<60”
Me.Adodc1.Refresh
Math_E = Me.Adodc1.Recordset.RecordCount
Me.Text10 = Math_E
Me.Adodc1.RecordSource = “select * from stu where english>=90”
Me.Adodc1.Refresh
English_A = Me.Adodc1.Recordset.RecordCount
Me.Text11 = English_A
Me.Adodc1.RecordSource = “select * from stu where english>=80 and english<90”
Me.Adodc1.Refresh
English_B = Me.Adodc1.Recordset.RecordCount
Me.Text12 = English_B
Me.Adodc1.RecordSource = “select * from stu where english>=70 and english<80”
Me.Adodc1.Refresh
English_C = Me.Adodc1.Recordset.RecordCount
Me.Text13 = English_C
Me.Adodc1.RecordSource = “select * from stu where english>=60”
Me.Adodc1.Refresh
English_D = Me.Adodc1.Recordset.RecordCount
Me.Text14 = English_D
Me.Adodc1.RecordSource = “select * from stu where english<60”
Me.Adodc1.Refresh
English_E = Me.Adodc1.Recordset.RecordCount
Me.Text15 = English_E End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text10.Text = ”“
Text11.Text = ”“
Text12.Text = ”“
Text13.Text = ”“
Text14.Text = ”“
Text15.Text = ”“ End Sub
代码如下
Private Sub Command1_Click()'计算总分 Dim vb As Integer
Dim math As Integer Dim english As Integer Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
vb = Me.Adodc1.Recordset.Fields(”vb“).Value
math = Me.Adodc1.Recordset.Fields(”math“).Value
english = Me.Adodc1.Recordset.Fields(”english“).Value
Me.Adodc1.Recordset.Fields(”total“).Value = vb + math + english
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
Private Sub Command2_Click()'清除总分 Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”total“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
该界面代码如下:
Private Sub Command1_Click()Me.Adodc1.RecordSource = ”select * from stu order by total desc“ Me.Adodc1.Refresh Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = i
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext
Next i End Sub
Private Sub Command2_Click()Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
该界面代码如下:
Private Sub Command1_Click()
Me.Adodc1.Refresh
'填充表格数据
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data属性向MSChart数据网格填充数据
MSChart1.Data = Val(Adodc1.Recordset.Fields(”vb“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”VB成绩直方图“ End Sub
Private Sub Command2_Click()Me.Adodc1.Refresh
'填充表格数据
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data属性向MSChart数据网格填充数据
MSChart1.Data = Val(Adodc1.Recordset.Fields(”math“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”Math成绩直方图“ End Sub
该界面代码如下
Private Sub Command1_Click()Dim vb As Integer Dim math As Integer Dim english As Integer
Me.Adodc1.RecordSource = ”select * from stu where((math+english+vb)/3>=90)or((math+english+vb)/3>=85 and(math=100 or english=100 or vb=100))or((vb+english+math)/3>=85 and((vb>=95 and english >=95)or(english>=95 and math>=95)or(math>=95 and vb>=95)))and(mc<=3)and(vb>=60 and english>=60 and math>=60)" Me.Adodc1.Refresh End Sub
四、总结和体会
经过好几天的努力我的课程设计终于完成了。在没有做课程设计以前觉得课程设计好难,我可能做不了,但是通过这次做课程设计发现自己错了。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高,它并不可怕。通过这次课程设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多,以前上课没怎么认真听,现在知道它重要了,幸好为时不晚,我以后要更加的努力学好vb。在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。此外,还得出一个结论:世上无难事,只怕有心人。
在设计过程中,我通过查阅有关资料,与同学交流经验和自学等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。