第一篇:大数据下基于WEB的学生综合信息管理系统的设计
摘要:高校学生管理工作是其管理工作中的重点,其工作的好坏对高职院校的管理水平和高职学生的素质有深刻的影响。随着科学技术的发展,高校学生管理系统的应用正在向纵深、融合发展,以物联网、虚拟现实、大数据为代表的新技术应用正在高校快速广泛应用,它们构成了高校智慧校园不可忽略的一部分。本系统研究学生综合信息系统化、数字化,学生从“入学--在校--毕业”全生命周期的一体化服务,提高学生管理工作的效率和水平。即从整体上对学生管理信息化进行设计,又在结构功能上体现出“智能”的特点,对智慧校园的建设有一定的参考意义。
关键词:智慧校园 学生管理 智能
一、研究背景
1.高职院校学生管理特点
高职学生的年龄大多在18-22岁,是三观形成的关键时期,高职院校对其培养的主要目标是提升学生的就业能力、工作能力。日常的高职学生管理工作主要注重对学生学习的引导和控制,对学生职业能力的实现以及对学生就业的引导。
2.高职院校学生管理现状
随着我国高等教育的深入发展,我国高职院校的发展规模逐渐壮大,学生人数逐年增加。为促进高等教育的发展,高职院校对信息管理系统进行了应用,为信息管理系统的构建投入了人力、物力支持。信息管理系统以其自身检索速度快、查找便利、可靠性强、存储空间大等方面的特点,在很大程度上提升了高职院校的学生信息管理效率,逐渐实现了高职院校学生信息管理的科学化、规范化发展。
3.目前的学生管理系统大多缺乏顶层设计,数据不能共享
目前,各高校均开发了一些信息管理系统,但这些系统基本是为了学生管理中的某一特定职能而开发的,比如学生的学习管理、公寓管理、评奖评优管理等等。这些系统之间缺乏信息的交换和共享,因此经常会出现同一学生的信息(入学籍状态)在不同系统里不一致。这样的信息系统不但没有提高工作效率,反而影响了工作进展。
二、高职院校学生管理信息系统流程
高职院校对学生的信息管理设计的部门较多,其具体部门的管理内容也不同,主要包括对学生的学籍管理、基本信息管理、成绩管理、贫困助学管理和干部管理等十几个方面。管理的部门主要涉及到教务处、学生工作处、就业工作处和社团组织等。
三、高职院校学生信息管理系统结构及模块功能分析
高职院校学生综合信息管理系统主要由用户管理模块、奖助学贷管理模块、困难生管理模块、学业预警管理模块、就业动态管理模块等构成。其中,用户管理模块主要是学管老师、辅导员、就业指导老师。
1.奖助学贷管理模块
该模块促使学生申请奖助贷款的过程更加便捷、快速。同时,也使在校家庭经济困难学生、辅导员、学院负责人员、学工部等人员及部门在此项工作中受益,使奖助贷管理工作达到更好的流程化、网络化、信息化,从而解决因由人工完成时因数据过多导致不必要的数据(贷款合同信息)的错误、人工办事效率低和工作量大、消耗大量的人力、物力等问题。
2.困难生管理模块
近年国家对高等院校中家庭经济困难的学生资助力度越来越大。实现各项资助准确无误处理,有助于加强学校对困难生的服务和管理,简化困难资助申请的繁琐过程,给困难生提供更加简洁、方便的服务渠道。学校为他们提供哪些勤工助学岗位等,提高了勤工助学岗位服务和管理的效率性和科学性。
3.学业预警管理模块
学业预警是指学校针对学生在求学过程中出现的学业不佳、违规违纪等现象对学生本人及家长做出及时提示并采取相关措施以帮助学生顺利完成学业的一种监督管理制度。因此利用学业预警机制对学生学业进行实时动态监控、成绩预测和预警不仅能帮助学生有效规避学业危机、引导和督促学生科学学习、给家长一个好的交代,还可以保障学校教育教学质量,促进建设和谐高校。
4.就业动态管理模块
系统可以对学生就业过程进行动态管理,同时实现学校、毕业学生、企业三方协议电子化。用户可以利用电脑或手机等移动终端,从学院、企业、学生三个不同入口登陆系统并根据自身需求开展订制服务,企业或学院可以根据毕业生不同阶段需求和求职意愿,精准推送相应的就业政策、岗位信息、指导服务等。
四、高职院校学生综合信息管理系统设计
1.系统数据库设计
2.接口设计
本系统接口的设计采用ado.net技术来实现。其主要特点是与 xml 高度集成,断开式数据结构,可以将来自多个数据源的数据进行组合。当用户选择了具体的数据层后,系统需要做的只有对数据层中的数据提供者进行修改,从而大大提高了系统的灵活性。本系统采用.net 数据提供程序用于 sql server 2008 数据库的连接。这种连接程序通过 sql server 内置数据转换协议实现了与 sql server 的直接通信,从而达到了优化数据库访问的目的。
3.软件设计
4.维护设计
为确保系统正式运行后可以维持长期稳定、高效和安全的运行状态,本系统对于维护功能的设计与实现采用的是 tcp/ip 协议与防火墙、网路管理、虚拟专用网等现代网络安全技术相结合的方式,利用这些技术构建出安全性高、稳定性强的开放式网络应用平台,可以实现成千上万网络系统的互连。整体而言,该系统的规模还是相对较小的,因此维护工作较为简单方便,维护功能易于实现。
五、总结
第二篇:学生信息管理系统设计报告
学生信息管理系统设计报告
080370104 马中源
一、设计目的
作为C#课程结课设计,验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单数据库应用程序设计。希望通过项目实践,熟悉巩固所学知识,以使自身达到熟练掌握.NET基本结构以及C#语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,了解ADO.NET数据库开发基本知识,为今后的进一步深入学习,奠定基础。
二、需求分析
学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。本系统需要完成的功能有:班级管理、学生管理、科目管理、课程管理、成绩管理以及系统管理员才具有的教师管理和用户管理。
1.班级管理:可对班级进行添加、删除、修改、查找和报表输出等功能,班级属性有:名称、班主任(来自于系统中保存的教师)、当前学生人数、建班日期和备注等属性。2.学生管理:可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:学号、姓名、性别、所属班级(来自于系统中保存的班级)、相片、出生日期和备注等属性。
3.科目管理:可对科目进行添加、删除、修改、查找和报表输出等功能,科目属性有:科目名称、学时数和备注等属性。
4.课程管理:可对每一个班级的上课科目进行添加、删除、修改、查找和报表输出等功能,课程属性有:所属班级(来自于系统中保存的班级)、授课老师(来自于系统中保存的教师)、开课日期、结课日期和备注等属性。
5.成绩管理:可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:学生姓名、所属班级(来自于系统中保存的班级)、课程名、成绩、备注等属性。
6.系统管理:该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户、修改密码、重新登录等等。
三、系统模块的实现
在系统中包括以下功能:系统管理、学生信息管理、课程信息管
理、成绩信息管理、班级信息管理。系统各模块关系如图所示:
本系统共分为三大部分:
1、登录模块
为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。
用户登录窗体中放置了两个文本框(Textbox),用来输入用户名和密码;两个按钮(Button)用来确定或者取消登录。
设置一个SSTab控件,供不同用户登录时选择用户权限,超级用户拥有一切权限(包括添加删除和修改以及对用户的管理),普通用户拥有受限制的权限(查询及修改密码),提高了数据库的安全性。
添加一个ToolTip组件,提示用户输入正确的用户名和密码形式,提示用户密码是佛正确。登陆条件判断代码:
private void button1_Click(object sender, EventArgs e){ if(this.textBox1.Text == “" || this.textBox2.Text == ”“){ MessageBox.Show(”用户名或密码不能为空!“);} SqlConnection conn = new SqlConnection(connString);string str = ”select * from Users where UserName='“ + this.textBox1.Text.Trim()+ ”'“;try { conn.Open();SqlCommand cmd = new SqlCommand(str, conn);SqlDataReader read = cmd.ExecuteReader();if(read.Read()){ if(textBox2.Text.Trim()== read[”UserPassWord“].ToString().Trim()){ MessageBox.Show(”用户正确,欢迎您使用本系统!“);this.Hide();主界面 fm = new 主界面();fm.Show();} else { MessageBox.Show(”密码错误,请重新输入!“);} } } catch(Exception ex){ MessageBox.Show(ex.Message);} conn.Close();} private void button2_Click(object sender, EventArgs e){ Application.Exit();}
2、系统主界面模块
登陆成功后,即可进入,系统主界面模块。窗体名称为界面功能介绍。主界面为进入学生管理系统各模块的入口,用户可根据MenuStrip上面各个模块名称单击进入各个管理模块,从而进行对系统的管理操作。主界面入口代码:
private void 学生增删ToolStripMenuItem_Click(object sender, EventArgs e){ 学生管理 fm4 = new 学生管理();fm4.Show();} private void 课程管理ToolStripMenuItem_Click(object sender, EventArgs e){ 课程管理 fm7 = new 课程管理();fm7.Show();} private void 科目管理ToolStripMenuItem_Click(object sender, EventArgs e){ 科目管理 fm8 = new 科目管理();fm8.Show();} private void 成绩管理ToolStripMenuItem_Click(object sender, EventArgs e){ 成绩管理 fm10 = new 成绩管理();fm10.Show();} private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e){ 用户管理 fm12 = new 用户管理();fm12.Show();} private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e){ 更改密码 fm14 = new 更改密码();fm14.Show();} private void 班级管理ToolStripMenuItem_Click(object sender, EventArgs e){ 班级管理 fm2 = new 班级管理();fm2.Show();}
3、各功能模块 1.用户管理: 可对用户进行添加、删除、修改、查找等功能,用户属性有:用户名、密码、用户类型、用户权限、用户注册日期等信息。在用户管理界面,用户可根据自身权限查看用户信息,系统超级管理员可根据需求进行添加、删除用户等相关操作。
进入用户管理界面后,将会出现一个主窗体,选择系统管理模块下的添加用户,就可以进入添加用户窗体,可以通过该窗体增加新的用户。
在这个窗体中放置了三个文本框,用来输入用户名和密码;两个按钮用来确定是否添加用户;三个标签用来标示文本框的提示。用户添加界面,超级管理员可通过本界面对用户修改用户类型,用户权限设置。
1.4.2修改密码窗体的创建
在系统管理模块下,进入修改密码窗体,用户可根据需要修改自己的密码。在这个窗体中放置了两个文本框,用来输入密码和确认密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。密码修改界面主要包括用户名、新设置密码、以及确认等功能。主要供普通用户进行密码修改、以及密码清除操作。2.班级管理:
班级信息管理界面
班级属性有:名称、班主任(来自于系统中保存的教师)、当前学生人数、建班日期和备注等属性。班级管理模块主要分为班级信息管理和班级查询两个界面,班级基本信息管理界面中的Groupbox班级档案,显示班级编号、班级名称、学制、专业、班主任、开班日期、备注等基本信息情况。DataGridView显示数据库中班级详细信息以及伴随操作产生的数据变动情况。在本操作界面内,管理员可对班级信息进行添加、删除、修改等各种操作。
班级查询界面
班级查询界面,主要实现班级基本信息的查询,面向没有管理权限的普通用户访问系统信息,根据班级编号对班级信息进行查询操作,详细信息会在窗体上面DataGridView中显示,普通用户只能浏览信息,不能进行删除、修改等管理权限操作。3.课程管理:
课程管理模块主要分为课程管理界面和教师管理界面两部分实现。
课程管理界面中的DataGridView显示课程基本信息,包括科目编号、班级编号、开课学期、教师编号、开课日期、捷克日期等基本信息。管理员可对每一个班级的上课科目进行添加、删除、修改、查找等功能,也可对全部课程进行查看、修改、添加、删除等基本操作。
sql = ”select * from ClassCourse“;da = new SqlDataAdapter(sql, connString);ds = new DataSet();da.Fill(ds, ”ClassCourse“);binds = new BindingSource(ds, ”ClassCourse“);dataGridView1.DataSource = binds;
教师管理模块主要包括教师基本档案,教师属性为编号、姓名、联系电话、教师姓名、任教年限、性别、专业、出生年月。在教师管理模块可进行相应的查询与信息修改。4.课程管理模块
课程信息浏览功能:点击主窗体中课程管理模块下的科目信息浏览,可进入科目信息浏览窗体。为了用户的使用方便,我使用了SSTab控件,故在该窗体中同时包含了科目信息的添加和修改的功能。并且我还在窗体上设置了myflexgrid控件。添加和修改记录后,对于数据有何变化都可以在myflexgrid中显示出来,使用户对所做的操作一目了然。
课程设置功能:进入课程管理模块下的年级课程设置窗体,可以对每一个年级的课程进行设置。
SqlConnection conn = new SqlConnection(connString);string sql = ”Insert into ClassCourse values(“ + ”'“ + textBox1.Text + ”','“ + textBox2.Text + ”',“ + textBox3.Text + ”,'“ + textBox4.Text + ”','“ + DateTime.Parse(dateTimePicker1.Text)+ ”','“ + DateTime.Parse(dateTimePicker2.Text)+ ”')“;try { conn.Open();MessageBox.Show(”打开数据库连接成功“);SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();MessageBox.Show(”添加记录成功!“);
} catch(SqlException ex){ MessageBox.Show(”数据库连接失败!“ + ”添加记录失败!“ + ex.Message);}
可对科目进行添加、删除、修改、查找等功能,修改
SqlConnection conn = new SqlConnection(connString);string sql = ”Update ClassCourse set CourseNo='“ + textBox1.Text + ”',“ + ”ClassNo='“ + textBox2.Text + ”',“ + ”StartTerm=“ + textBox3.Text + ”,“ + ”TeaNo='“ + textBox4.Text + ”',“ + ”StartData='“ + DateTime.Parse(dateTimePicker1.Text)+ ”',“ + ”FinishData='“ + DateTime.Parse(dateTimePicker2.Text)+ ”'“ + ”where CourseNo=“ + temp;try { conn.Open();MessageBox.Show(”打开数据库连接成功“);SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();MessageBox.Show(”修改记录成功!“);
} catch(SqlException ex){ MessageBox.Show(”数据库连接失败!“ + ”修改记录失败!“ + ex.Message);}
科目管理模块科目属性主要包括科目名称、学时数和备注等属性。同时包括教师管理,教师管理包括教师姓名、电话、性别、科目、职称等一系列基本信息;可对教师进行添加、删除、查询等基本操作。5.成绩管理模块
成绩添加代码实现
SqlConnection conn = new SqlConnection(connString);string sql = ”Insert into Scores values(“ + ”'“ + textBox1.Text + ”','“ + textBox2.Text + ”','“ + textBox3.Text + ”')“;try { conn.Open();MessageBox.Show(”打开数据库连接成功“);SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();MessageBox.Show(”添加记录成功!“);成绩删除代码实现
SqlConnection conn = new SqlConnection(connString);DialogResult ret = MessageBox.Show(”确定要删除吗?“, ”删除“, MessageBoxButtons.OKCancel);if(ret == DialogResult.Cancel)return;string sql = ”delete from Scores where StuNo=“ + textBox1.Text;SqlCommand cmd = new SqlCommand(sql, conn);try { conn.Open();int rows = cmd.ExecuteNonQuery();if(rows == 1)MessageBox.Show(”删除成功!“, ”提示“, MessageBoxButtons.OK, MessageBoxIcon.Information);成绩查询代码实现
sql = ”select * from Scores where StuNo='“+textBox1.Text+”'“;da = new SqlDataAdapter(sql, connString);ds = new DataSet();da.Fill(ds, ”Scores“);binds = new BindingSource(ds, ”Scores“);dataGridView1.DataSource = binds;
成绩管理模块主要包括成绩信息管理功能点击成绩管理模块下的成绩信息浏览,进入成绩信息浏览窗体,考虑到美观和实用性,界面设置如下图。用Frame控件在窗体中划定一个可浏览成绩信息地方,再在Frame中添加MSFlexGrid控件,运行时将在MSFlexGrid中显示所有学生的成绩信息。使用Toolbar来建立工具条。点击工具条中的修改、添加和查询按钮就可分别进入修改成绩信息窗体、添加成绩信息窗体和查询成绩信息窗体。这三个窗体的界面设置分别类似于学籍管理下修改学籍信息窗体、添加学籍信息窗体和查询学籍信息窗体。
成绩管理模块,管理员可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:学生姓名、所属班级(来自于系统中保存的班级)、课程名、成绩、备注等属性。6.学生管理模块
添加学籍信息功能
SqlConnection conn = new SqlConnection(connString);//MemoryStream ms;//pictureBox1.Image.Save(ms);//byte[] img = ms.ToArray();string sql = ”Insert into Student(StuNo,StuName,StuSex,ClassNo,StuBday,StuAdress,StuPostNo,StuPhone,StuData,StuRemarks)values('“ + textBox1.Text + ”','“ + textBox2.Text + ”','“ + textBox3.Text + ”','“ + textBox4.Text + ”','“ + DateTime.Parse(dateTimePicker1.Text)+ ”','“ + textBox5.Text + ”','“ + textBox6.Text + ”','“ + textBox7.Text + ”','“ + DateTime.Parse(dateTimePicker2.Text)+ ”','“ + textBox8.Text + ”')“;SqlCommand cmd = new SqlCommand(sql,conn);try { conn.Open();MessageBox.Show(”数据库连接成功!“);cmd.ExecuteNonQuery();MessageBox.Show(”添加记录成功!“);
} catch(SqlException ex){ MessageBox.Show(ex.Message);}
选择主窗体中学生管理模块下的添加学籍信息,就可进入添加学籍信息的窗体,在该窗体中我们可以对学生的学号、姓名、性别、出生日期、班号等学生的信息进行添加。设计时我尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库中。
在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息;两个按钮用来确定是否输入学籍信息;一个按钮用来退出窗体;多个标签用来提示文本框中需要输入的内容。在学生管理窗体下,可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:学号、姓名、性别、所属班级(来自于系统中保存的班级)、相片、出生日期和备注等属性。修改删除学生信息
SqlConnection conn = new SqlConnection(connString);DialogResult ret = MessageBox.Show(”确定要删除吗?“, ”删除“, MessageBoxButtons.OKCancel);if(ret == DialogResult.Cancel)return;string sql = ”delete from Student where StuNo=“ + temp;SqlCommand cmd = new SqlCommand(sql, conn);try { conn.Open();int rows = cmd.ExecuteNonQuery();if(rows == 1)MessageBox.Show(”删除成功!“, ”提示“, MessageBoxButtons.OK, MessageBoxIcon.Information);
} catch(SqlException ex){ MessageBox.Show(”数据库连接失败!“ + ex.Message);} 点击学籍管理模块下的修改学籍信息,就进入修改学籍信息的窗体,在该窗体中我们可以对前面添加的学籍信息进行修改。由于用户的需求不同,有的是要对学生的信息做个别的改动,有的是需要删除该条记录,所以该窗体同时包括了修改记录的功能和删除记录的功能。又考虑到用户的误操作,为了方便,我在该窗体中增添了取消修改的功能,可一次性把输入文本框的内容全部置空。查询学籍信息功能
//string conn = ”Initial Catalog=Mazhongyuan;Data Source =localhost;Integrated Security=true“;SqlConnection connection = new SqlConnection(connString);
SqlDataAdapter adapter = new SqlDataAdapter(”select * from Student ",connection);DataTable table = new DataTable();adapter.Fill(table);dataGridView1.DataSource = table;进入学籍管理模块下的查询学籍信息窗体,在该窗体中可以对学生的信息进行查询,有三种查询方式。我在设计时,一方面考虑到简洁的因素,用户可以只设置一种查询方式进行查询;另一方面又为了避免数据的重复,用户可以输入详细的信息,也就是同时设置多种查询方式进行查询。进入查询窗体时,myflexgrid中会显示出所有学生的学籍信息,如果不设置查询方式就进行查询,是无效查询,系统会给出提示。在设置好查询方式后,便开始查询,将在myflexgrid中显示出用户所需的学生的学籍信息。
四、系统测试
在开发这个软件系统的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程中,我采用循环测试法,力求在每个阶段结束之前通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。在该设计中,我偏重考虑了当用户输入的信息出错时,系统就会出现提示,以便让用户知道出错的原因,并能及时做出修改,所以我站在用户的角度考虑,尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,以此来发现错误,纠正错误,取得了一定的效果。
当然,该学生信息管理系统也存在一些不足之处。在成绩管理界面,当3次改变成绩为不同的内容时,程序会出错。虽然尝试了很多方法,仍不能解决。再一点就是关于打印和年级课程信息设置都未能实现,这有待于以后的进一步提高。
一个应用系统性能的优劣,效率的高低始终应当由用户来做出判决,应用系统在运行过程中,用户会提出一些新的需求和建议,我就会根据用户需求的变化,对本系统做出一定的修改,使其进一步地得到完善和提高。
五、课程设计总结
通过本次课程设计,验证了本学期对C#的学习效果,同时利用所学的基本知识和技能,尝试进行简单数据库应用程序设计。通过本次项目实践,熟悉巩固了本学期所学软件设计知识,达到熟练掌握.NET基本结构以及C#语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,了解ADO.NET数据库开发基本知识,为今后的进一步深入学习,奠定了基础。
参考资料 C#程序设计 C#实用软件开发 数据库设计
第三篇:3.学生信息管理系统设计范文
学生信息管理系统设计(限最多2人完成)
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计学生信息管理系统,使之能提供以下功能:
系统以菜单方式工作
学生信息录入功能(学生信息用文件保存)---输入
学生信息浏览功能---输出
查询、排序功能---算法
按学号查询
按姓名查询
学生信息的删除与修改(可选项
#include
#include
#include
#include
struct student{
int id;
char name[10];
float C;
float JAVA;
float SQL;
float pingjun;
}st[50];
int i=0;
void shuru()//输入学员信息函数
{
char a;
do{
printf(“n请输入学号:”);
scanf(“%d”,&st[i].id);
fflush(stdin);
printf(“n请输入姓名:”);
gets(st[i].name);
printf(“请输入C语言成绩:”);
scanf(“%f”,&st[i].C);
printf(“n请输入JAVA成绩:”);
scanf(“%f”,&st[i].JAVA);
printf(“n请输入SQL成绩:”);
scanf(“%f”,&st[i].SQL);
st[i].pingjun=(st[i].C+st[i].JAVA+st[i].SQL)/3;//计算平均分
printf(“n是否继续输入另外一个学员信息?(y/n)”);
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);
}
void xianshi()//显示输入后的学员信息函数
{
int j;
printf(“t学号tt姓名ttC语言ttJAVAttSQLtt平均分n”);
for(j=0;j
printf(“ t%dtt%s tt%.2ftt%.2ftt%.2ftt%.2fn”,st[j].id,st[j].name,st[j].C,st[j].JAVA,st[j].SQL,st[j].pingjun);}
void paixu()//按平均分从大到小排序函数
{
int j,k;
float temp;
for(j=0;j
{
for(k=0;k { if(st[k].pingjun { temp=st[k].pingjun; st[k].pingjun=st[k+1].pingjun; st[k+1].pingjun=temp; } } } xianshi();//排序后输出 } void chazhao()//查找某个学员的信息函数 { int m; char name[20],b; do { printf(“n请输入想查找的学员姓名:”); fflush(stdin); gets(name); for(m=0;m { if(strcmp(name,st[m].name)==0) { printf(“ntt您查找的学员在第%d个位置找到了!!n”,m+1); break; } } if(m>=20) printf(“ntt没有找到这个学员!!n”); else { printf(“t学号tt姓名ttC语言ttJAVAttSQLtt平均分n”); printf(“ t%dtt%s tt%.2ftt%.2ftt%.2ftt%.2fn”,st[m].id,st[m].name,st[m].C,st[m].JAVA,st[m].SQL,st[m].pingjun); } printf(“n是否查找另一个学员的信息?(y/n)”); fflush(stdin); b=getchar(); }while(b=='y'); } void shanchu()//删除学员信息函数 { char name[20],c; int a,b; do { printf(“n请输入要删除的学员姓名:n”); fflush(stdin); gets(name); for(a=0;a { if(strcmp(name,st[a].name)==0) break; } for(b=a;b st[b]=st[b+1]; if(a>i) printf(“tt没有找到这个学员!!n”); else { i--; xianshi(); } printf(“n是否继续删除另一个学员信息?(y/n)”);fflush(stdin); c=getchar(); }while(c=='y'); } void charu() { shuru(); paixu(); } void main()//主函数 { int change; do{ system(“cls”); printf(“============================学===================================n”);printf(“ttt一: 输入学员信息n”); printf(“ttt二: 显示学员信息n”); printf(“ttt三: 查找学员信息n”); printf(“ttt四: 删除学员信息n”); printf(“ttt五: 插入学员信息n”); printf(“ttt六: 退出程序n”); fflush(stdin); printf(“ttt请输入功能选项:”); scanf(“%d”,&change); switch(change) { case 1: shuru();break; case 2: xianshi();break; case 3: chazhao();break; case 4: 员信息管理系统 shanchu();break;case 5: charu();break;case 6: break;} getch(); }while(change!=6);} 摘 要 随着网络通信技术的迅速发展和信息技术的广泛应用,计算机的应用已普及到经济和社会生活的各个领域。教育领域也不例外,现今已经出现了各种远程网络在线教育系统、图书馆管理系统、学生信息管理系统等。其中学生信息管理是任一院校都不可缺少的部分,它的内容对于学校的决策者和教学管理者来说都至关重要,而传统的人工管理方式效率较低,为数据的查询、更新和维护带来了极大的不便。所以学生信息管理信息系统的开发和应用是必要的,它能够为管理人员提供充足的信息和快捷的查询手段,提高学校对学生信息的管理效率。 本文的学生信息管理系统是基于java语言的,它能够提供学生信息管理功能,方便系统管理员对学生学号、班级等信息的添加、修改、删除、查询等操作,同时可以一样方便的对学生的信息进行查询。本系统也主要利用java语言和access实现,因此它具有很强的可移植性,很方便。 关键字: 学生信息 管理系统 添加 删除 查询 修改 Abstract With the rapid development of network communication technology and extensive application of information technology, computer applications have spread to the economic and social life in various fields.The field of education is no exception, now there have been a variety of remote network online education system, library management system, student information management system.Which is either a student information management schools are an indispensable part of its contents and teaching for school managers, policy-makers are essential, and the traditional manual management inefficient for data query, update and maintenance brought great inconvenience.So the student information management system development and application of information is necessary, it is able to provide managers with sufficient information and quick inquiry means to improve school student information management efficiency.This student information management system is based on the java language, it is able to provide students with information management function to facilitate system administrators to students student number, class and other information to add, modify, delete, query and other operations, but can be just as convenient for students information to search.This system is mainly achieved using java language and access, so it is very portable, very convenient.Keywords: Student Information Management System add delet revise 前言 随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。学校在管理、教学、办公各个方面也在悄悄地变化。一个学校的信息化程度体现在将计算器与信息技术应用于教学与管理,以现代化工具代替传统手工作业。无疑,使用信息化管理使教学更先进、办公更高效、管理更科学,信息交流更迅速。 学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,故决定选择学生成绩管理系统来作为本人的毕业设计,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各规模学院的学生成绩管理系统。该学生成绩管理系统能有效的处理在校学生的成绩管理,具有成绩输入、成绩查询、成绩统计及打印功能。 学生成绩管理系统可以实施应用在各中、大、小院校中,适用范围很广,应用性强。随着系统实施的日益成熟,最终会使单机作业为主的教学管理活动提高到这个平台上来,从而实现学校学生成绩信息管理的办公自动化,籍以提高办学效率和质量。使学校充分利用计算机所带来的新技术,为培养人才打下坚实的基础。 第一章 相关技术简介 1.1 java语言简介 Java语言是sun公司与1995年5月正式发布的程序设计语言,他的前身是sun公司为智能消费类家用电器研究而开发的项目的一部分。 Java程序设计语言是新一代语言的代表,他强调了面向对象的特性,可以用来开发范围广泛的软件,它具有支持图形化的用户界面,网格以及数据库连接等复杂功能。Java语言的主要特点: 1)易于学习 Java语言很简单,对于熟悉C++的程序设计人员更不会对其感到陌生,因 为它的语法非常接近于C++,但他同时摒弃了C++许多的复杂易混淆的功能。利用java同样可以变质出非常复杂的系统,且运行占用很少的内存资源。2)高效率的执行方式 Java语言的执行方式是采用先经过编译器编译,在通过解释器解释执行的 方式来运行的。他综合了解释性语言与编译语言的众多有点,使其执行效率较以往的程序设计语言有了大幅度的提高。3)与平台的无关性 由于iava语言是解释执行的,他会被转换成一种字节码的“目标程序”。因此它可以跨平台运行 4)分布式安全性 Java从诞生之日起就与网络联系在了一起,他强调网络特性,内置TCPIP,HTTP,FTP协议库,便于开发网上应用系统。5)丰富的API文档和类库 Java为用户提供了详尽的API(Application Program Interface)文档说明。 1.2 access数据库简介 Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理。他拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在“表”中存储数据。 第二章 系统分析 2.1 系统分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用access数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。 本《学生管理系统》具有对学生进行学籍管理的功能。并于数据库相连接,能够对学生的学号、姓名、性别、班级、专业进行查询、添加和删除等,简捷方便,容易使用。2.2 应解决的问题 2.2.1合理的设计数据库 尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。作为学生成绩管理系统,必须能解决以下方面的问题:能录入信息。 在开发学生信息管理系统时,最重要的就是学生的基本信息,其学生信息表E-R图如图2.1所示。 图 2.1 学生信息E-R图 2.2.2设计出友好的界面 界面的友好与否是用户评价一个软件优劣的重要方面。因为该系统涉及到 学生成绩的真实性,所以该系统要具有一定的保密性和权限控制,首先应设计一个用户的登陆窗口界面,要求只能由特定的人员对该系统进行操作。此外还应设计登陆后系统的主窗口,要求能够显示学生成绩的基本信息,可以实现数据的录入,更新,删除、查询、统计等功能。 另外窗口界面要多用按钮,少用菜单,窗口的各个控键布局要合理,美观。要充分的利用java.awt和java.swing提供的强大的功能,多用窗口和控件,充分体现窗口的多元化格局。 2.2.3实现的基本功能 该系统要求除了能实现信息的录入,删除,插入,更新,数据导出excel文件等基本功能之外,还要求能够根据用户的需要进行操作。例如要查询学生成绩,要求可以按照专业、班级等多种方式查询。这些功能基本上能满足用户操作的需要,这样用户操作起来就更简单方便。部分文本框使用了下拉式,使用户可以不用花费大量的时间去输入信息。 2.3 数据库物理设计 1.1.1 3.3.1数据库物理设计 本系统采用Access数据库管理系统作为后台数据库的开发工具,设计的表结构如下: 第三章 程序代码及运行效果 3.1主类代码: /*主类代码*/ package kcsj;import java.awt.*;import javax.swing.*;import java.awt.event.*; import javax.swing.border.*;import javax.swing.JOptionPane;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import java.sql.*;import java.awt.GridLayout;public class myStudent { public myStudent(){ } public static void main(String[] args){ // TODO code application logic here loginFrame lf=new loginFrame();Font ft=new Font(“Serif”,Font.BOLD,18);lf.setVisible(true);lf.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} } 3.2 登陆: public loginFrame(){ p=new JPanel(); user=new JTextField(10); pass=new JPasswordField(10); login=new JButton(“登录”); cancel=new JButton(“退出”); p.setBackground(Color.lightGray); //user.setText(“王明玉”); //pass.setText(“123456”); login.addActionListener(this); cancel.addActionListener(this); p.add(new JLabel(“学生信息管理系统登录”)); p.add(new JLabel(“账号:”)); p.add(user); p.add(new JLabel(“密码:”)); p.add(pass); p.add(login); p.add(cancel); this.add(p); this.setTitle(“学生管理系统登录界面”); this.setSize(180,160);} public void actionPerformed(ActionEvent e){ //查找 if(e.getSource()==login){ if(user.getText().toString().equals(“")){ JOptionPane.showMessageDialog(null, ”请输入用户名“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(pass.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入密码“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ myConnection conn=new myConnection(); ResultSet rs; String sql=”select * from admin where 用户名 = '“+user.getText().toString()+”' and 密码 = '“+pass.getText().toString()+”'“; try{ rs=conn.getResult(sql); if(rs.next()){ this.dispose(); //JOptionPane.showMessageDialog(null, ”此用户已经存在“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); sql=”select * from student“; mainFrame mf=new mainFrame(); mf.setTitle(”西北师范大学学生信息管理系统“); mf.setSize(600,486); mf.freshTable(sql); mf.setVisible(true); mf.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); }else{ JOptionPane.showMessageDialog(null, ”用户名或密码错误“, ”登录失败“, JOptionPane.INFORMATION_MESSAGE); } }catch(Exception er){ System.out.println(er.toString()); } } //全部显示 }if(e.getSource()==cancel){ System.exit(0); } } } 登陆界面: 3.3 修改数据: /*修改数据*/ class editFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400; JLabel 学号1,姓名1,性别1,民族1,年龄1,年级1,班级1,专业1;JTextField 学号,姓名,性别,民族,年龄,年级,班级,专业;JButton b;JPanel p; mainFrame mf; public editFrame(mainFrame mmf){ setTitle(”修改学生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180); Container contentPane = getContentPane();contentPane.setLayout(new FlowLayout()); 学号1=new JLabel(”学号“);姓名1=new JLabel(”姓名“);性别1=new JLabel(”性别“);民族1=new JLabel(”民族“);年龄1=new JLabel(”年龄“);年级1=new JLabel(”年级“);班级1=new JLabel(”班级“); 专业1=new JLabel(”专业“); 学号=new JTextField(5);姓名=new JTextField(5);性别=new JTextField(5);民族=new JTextField(5);年龄=new JTextField(5);年级=new JTextField(5);班级=new JTextField(10);专业=new JTextField(10);学号.setEnabled(false);b=new JButton(”确定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(民族1);p.add(民族);p.add(年龄1);p.add(年龄);p.add(年级1);p.add(年级);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按钮监听器 b.addActionListener(this);mf=mmf;} public void actionPerformed(ActionEvent e){ if(学号.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null,”请输入学号“,”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(姓名.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null,”请输入姓名“,”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(年龄.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null,”请输入年龄“,”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ String sql=”update student set 姓名='“+姓名.getText()+”',性别='“+性别.getText()+”',年龄=“+年龄.getText()+”,年级='“+年级.getText()+”',班级='“+班级.getText()+”',专业='“+专业.getText()+”',民族='“+民族.getText()+”' where 学号='“ + 学号.getText()+ ”'“; myConnection conn=new myConnection(); try{ //JOptionPane.showMessageDialog(null, sql, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); if(conn.executeSql(sql)){ JOptionPane.showMessageDialog(null, ”修改成功“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); mf.freshTable(”select * from student“); this.dispose(); }else{ JOptionPane.showMessageDialog(null, ”修改失败“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); } }catch(Exception er){ System.out.println(er.toString()); } } } } 3.4 查找数据: class findFrame extends JDialog implements ActionListener{ mainFrame mf;JPanel p;JComboBox c;JTextField t;JButton b;JButton fAll;String sql=”select * from student“;String[] colStr={”学号“,”姓名“,”性别“,”民族“,”年龄“,”年级“,”班级“,”专业“}; public findFrame(mainFrame mmf){ mf=mmf; p=new JPanel(); c=new JComboBox(colStr); t=new JTextField(10); b=new JButton(”查找“); fAll=new JButton(”全部显示“); b.addActionListener(this); fAll.addActionListener(this); p.add(new JLabel(”选择“)); p.add(c); p.add(new JLabel(”查找内容“)); p.add(t); p.add(b); p.add(fAll); this.add(p); this.setTitle(”查找“); this.setSize(450,80);} public void actionPerformed(ActionEvent e){ //查找 if(e.getSource()==b){ String selectStr=c.getSelectedItem().toString(); if(selectStr==”年龄“){ sql=”select * from student where “+selectStr+” “+t.getText().toString(); } else { sql=”select * from student where “+selectStr+” '“+t.getText().toString()+”'“; = = 12 } mf.freshTable(sql); //全部显示 }if(e.getSource()==fAll){ sql=”select * from student“; mf.freshTable(sql); } } } 3.5 添加数据: class addFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400; JLabel 学号1,姓名1,性别1,民族1,年龄1,年级1,班级1,专业1;JTextField 学号,姓名,性别,民族,年龄,年级,班级,专业;JButton b;JPanel p; mainFrame mf; public addFrame(mainFrame mmf){ setTitle(”修改学生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180); Container contentPane = getContentPane();//contentPane.setBackground(Color.BLACK);//设置窗口颜色 contentPane.setLayout(new FlowLayout()); 学号1=new JLabel(”学号“); 姓名1=new JLabel(”姓名“); 性别1=new JLabel(”性别“); 民族1=new JLabel(”民族“); 年龄1=new JLabel(”年龄“); 年级1=new JLabel(”年级“); 班级1=new JLabel(”班级“); 专业1=new JLabel(”专业“); 学号=new JTextField(”201071030240“,5); 姓名=new JTextField(5); 性别=new JTextField(”女“,5); 民族=new JTextField(5); 年龄=new JTextField(5); 年级=new JTextField(5); 班级=new JTextField(10); 专业=new JTextField(10); b=new JButton(”确定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(民族1);p.add(民族);p.add(年龄1);p.add(年龄);p.add(年级1);p.add(年级);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按钮监听器 b.addActionListener(this);mf=mmf;} public void actionPerformed(ActionEvent e){ if(学号.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入学号“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(姓名.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入姓名“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(年龄.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入年龄“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ String sql=”select * from student where 学号='“ + 学号.getText()+ ”'“; myConnection conn=new myConnection(); ResultSet rs; rs=conn.getResult(sql); try{ //System.out.println(rs.getRow()); if(rs.next()){ JOptionPane.showMessageDialog(null, ”此学号已经存在“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ sql=”insert into student values('“ +学号.getText()+”','“+ 姓名.getText()+”','“+ 性别.getText()+”','“+ 民族.getText()+”',“+ 年龄.getText()+”,'“+ 年级.getText()+”','“+ 班级.getText()+”','“+ 专业.getText()+”')“; if(conn.executeSql(sql)){ JOptionPane.showMessageDialog(null, ”添加成功“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); mf.freshTable(”select * from student“); 学号.setText(”“); 姓名.setText(”“); 性别.setText(”“); 民族.setText(”“); 年龄.setText(”“); 年级.setText(”“); 班级.setText(”“); 专业.setText(”“); }else{ JOptionPane.showMessageDialog(null, ”添加失败“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); } } }catch(Exception er){ System.out.println(er.toString()); } } } } 3.6 修改数据: class editFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400; JLabel 学号1,姓名1,性别1,民族1,年龄1,年级1,班级1,专业1;JTextField 学号,姓名,性别,民族,年龄,年级,班级,专业;JButton b;JPanel p; mainFrame mf; public editFrame(mainFrame mmf){ setTitle(”修改学生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180); Container contentPane = getContentPane();contentPane.setLayout(new FlowLayout()); 学号1=new JLabel(”学号“); 姓名1=new JLabel(”姓名“); 性别1=new JLabel(”性别“); 民族1=new JLabel(”民族“); 年龄1=new JLabel(”年龄“); 年级1=new JLabel(”年级“); 班级1=new JLabel(”班级“); 专业1=new JLabel(”专业“); 学号=new JTextField(5); 姓名=new JTextField(5); 性别=new JTextField(5); 民族=new JTextField(5); 年龄=new JTextField(5); 年级=new JTextField(5); 班级=new JTextField(10); 专业=new JTextField(10); 学号.setEnabled(false); b=new JButton(”确定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(学号1);p.add(学号); p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(民族1);p.add(民族);p.add(年龄1);p.add(年龄);p.add(年级1);p.add(年级);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按钮监听器 b.addActionListener(this);mf=mmf;} public void actionPerformed(ActionEvent e){ if(学号.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入学号“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(姓名.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入姓名“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(年龄.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”请输入年龄“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ String sql=”update student set 姓名='“+姓名.getText()+”',性别='“+性别.getText()+”',年龄=“+年龄.getText()+”,年级='“+年级.getText()+”',班级='“+班级.getText()+”',专业='“+专业.getText()+”',民族='“+民族.getText()+”' where 学号='“ + 学号.getText()+ ”'“; myConnection conn=new myConnection(); try{ //JOptionPane.showMessageDialog(null, sql, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); if(conn.executeSql(sql)){ JOptionPane.showMessageDialog(null, ”修改成功“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE); mf.freshTable(”select * from student“); this.dispose(); }else{ JOptionPane.showMessageDialog(null, ”修改失败“, ”温馨提示", JOptionPane.INFORMATION_MESSAGE); } }catch(Exception er){ System.out.println(er.toString()); } } } } 运行效果: 第四章 总结 通过本次课程设计,不仅让我更深入的了解JAVA这门学科,更使自己有了继续探索的兴趣。 对我来说,在之前的学习过程中没有能够很好的掌握JAVA语言的学习,在很多地方还有生疏和遗漏,并且在此次课程设计过程中也遇到困难不能自己独立解决。但是,通过这次程序设计,除了增加了自己的编程能力,提高了我对JAVA的应用能力,同时我也深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我将继续保持严谨的学习态度。与此同时,在同学的帮助下,让我体会到了相互学习的重要性,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计让我获益匪浅。 第五章 总结 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理 论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 第六章 参考文献 –––––––––––––––––摘 要––––––––––––––––– 学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键字:控件、窗体、域、数据库。 –––––––––––––––––前言––––––––––––––––– 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。 本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。 本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有: ⒈有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。⒉学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。⒊学生信息的修改。 ⒋班级管理信息的输入,包括输入班级设置、年级信息等。⒌班级管理信息的查询。⒍班级管理信息的修改。⒎学生课程的设置和修改。 目 录 前言 第一章 Visual Basic 概述 1.1 Visual Basic 语言的特点 1.2 Visual Basic 系统几个程序应用中的常用名词 第二章 Windows 下的Visual Basic 编程环境简介 2.1 面对对象的编程 2.2 实现菜单选项 2.3 实现工具栏 第三章 怎样开发一个学生信息管理系统的查询模块 3.1 学生信息系统的设计分析 3.2 编程环境的选择 3.3 关系型数据库的实现 3.4 二者的结合(DBA)第四章 使用Access2000 创建数据库 4.1 数据库的概念 4.2 新建一个数据库 4.3 修改已建的数据库 第五章 可行性分析 第六章 系统总体规划 6.1 系统功能 6.2 系统流程图 第七章 系统具体实现 7.1 各功能的实现 7.1.1 课程管理 7.1.2 打印统计 结束语 后记 主要参考文献 第一章 Visual Basic 概述 1.1 Visual Basic 语言的特点 Visual Basic 语言用其设计应用程序时具有两个基本特点:可视化设计和事件驱动编程。(1)可视化设计:表现在VB在设计应用于程序界面时有“所见即所得”的处理功能。(2)事件驱动编程:在设计应用程序时,把对象添加到窗体中,在用户与程序进行交互时,用户基本上是通过鼠标、键盘与应用程序进行交互的,那些对象就必须对鼠标和键盘操作所引发的事件做出响应,来执行一段应用程序。1.2 Visual Basic 系统几个在程序应用中的常用名词 Visual Basic 系统除了一般高级语言所具有的一些名词术语外,还有几个系统常用的名词。其基本含义如下:(1)视窗(Form) 视窗是进行人机交互的界面或接口,也叫窗体。VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows 系统的标准视窗。(2)对象(Object) 对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。本程序所应用到的对象类型有标签框(Label Box),文本框(Text Box),命令按扭(Command Button),网格(Data Grid),ADO控件(Adodc1)等。当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。正确使用对象可以减少程序和开发时间,提高程序设计者的工作效率。(3)属性(Properties) 属性是VB系统提供的有关对象的参数或数据接口。用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的数据内容及数据的表现格式等。(4)事件(Events) 事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。VB系统常用事件来引导计算机执行一段程序。程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Click(单击鼠标)事件,DbDlicd(双击鼠标)。(5)方法(Method)方法主要是指对一个对象使用某种作用的过程。它是在程序执行的过程中要计算机执行的某种操作。其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。 (6)过程(Procedure) 过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。(7)模块(Module) 模块是指一些运算量或过程进行声明或定义的一个集合。系统程序大体可分成四个模块:数据输入、根据查询、数据打印和通讯。 第二章 Windows下的Visual Basic 编程环境简介 2.1 面对对象的编程 面向对象的设计方法(OOP, Objected Programming)从应用领域内的问题着手,以直观自然的方式描述客观世界的实体。Visual Basic 作为一种面向对象的编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由 Visual Basic 自动生成对象的程序代码并封装起来。Visual Basic 应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。 Visual Basic 应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。2.2 实现菜单选项 菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic 也提供了强大的创建菜单功能是程序更加标准。 本系统使用 Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用Visual Basic 的Application Wizard 来操作。2.3 实现工具栏 CoolBar控件与Office2000 中看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你也可以向用户提供更好的灵活性和义用性。 选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。 第三章 怎样开发一个学生信息管理系统的查询模块? 3.1查询模块的设计分析 根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件模型。使用户可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。3.2编程环境的选择 微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应 用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。3.3关系型数据库的实现 Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包同时拥有桌面数据库的便利和关系数据库的强大功能。3.4二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。ADODC控件在数据库中的信息与将信息显示给用户看的Visual Basic 程序之间架起了一座桥梁。我们可以设置ADODC控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,ADODC控件根据数据库中的一个或多个数据库表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。将ADODC控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。 第四章 使用Access2000创建数据库 4.1数据库的概念 数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。4.2新建一个数据库 创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。1. 标识需要的数据; 2. 收集被子标识的字段到表中; 3. 标识主关键字字段; 4. 规范数据; 5. 标识指定字段的信息; 4.3修改已建的数据库 数据库的修改分为;添加、编辑和删除记录。这三种操作均可由Visual Basic创建的程序来完成,下面的章节将详细描述实现的具体方法。 第五章 可行性分析 学生信息,作为一个学校,就有一定的工作量存在,而学生信息,它的工作量可能是其它信息工作量的几倍,班级的增加、班级的查找、班级的修改;学生档案;课程管理;成绩管理;缴费管理;统计等等,每个信息的数据都在不断地变化着,如果采用人工的方式进行操作,那么,一天的工作量,足以让人觉得比较繁琐,吃不消。针对这样的情况,采用让数据的查询变得简单化,数据变的更让每个人都在任何时刻都可以了解到。学生信息管理系统是为本校开发的,本系统所采用的语言是Visual Basic,用Microsoft Access 2000数据库完成。该系统总体有四部分组成,包括学生信息查询、教务信息维护、学生选课及用户管理。通过本系统,把本校内部查询学生信息、教务信息、学生选课各个环节进行有效地计划、组织和控制。通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。本系统主要信息流程为:教务信息维护接受学生的信息,学生信息查询根据教务信息维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。学生选课是对学生进行相应选择自己相关的课程。最后进行打印。采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。 本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如图一)。其中学生档案是本系统主要的(图一) 一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。 数据库与VB的连接:本系统的数据链接采用的是ADO方法,打开控制面板,打开ODBC数据源图标,选择“系统DSN”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“Microsoft Access Drive(*.mdb)”,点击“完成”按钮,在ODBC Microsoft Access 安装对话框中在数据源名中输入信息,在数据库这个框中,单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“Access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。 在VB中,用ADODC链接数据库,用DataGrid或DATA将库中的数据在界面中显示出来,本系统采用DataGrid。在界面上右击Adodc控制,在弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中,选中单选框“Use ODBC Data Source Name”,并在下拉文本框中选择已经配置好的数据源名信息,再在“RecordSoure”标签中,在Commard Text(SQL)文本框中输入查询语句,如:select * from 学生档案。同时,将桌面的DataGrid控件选中,在属性框中,将它的Datasoure设为Adodc。我们可以设置DataGrid控件的外观:选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。然后再右击,同样,在弹出的快捷菜单中选择“编辑”,我们就可以所在的表格的宽度进行调整。 第六章 系统(查询模块)总体规划 6.1系统功能(查询模块)1. 查询信息的情况; 2. 判断信息是否符合要求; 3. 将符合条件的信息进行打印; 6.2流程图 学生注册 基本信息输入 学籍信息管理 班级管理 班级课程设置 课程基本信息 班级课程管理 成绩信息输入 成绩信息管理 班级设置 第七章 系统具体实现 7.1各功能的实现 7.1.1课程管理:课程设置(如:界面如图二)(图二) 运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以把专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。结束语 学生信息管理系统(课程设置和打印统计)的完成,它在审核这一功能中能够对不同情况的资料进行设置和打印,针对需要的信息进行设置和打印。 后记 本系统能够顺利完成,非常感谢指导老师陈志卫老师,同时,也感谢和我一起合作完成本系统的另两位同学。对于本人来说,通过这次毕业设计,也是对自己在这三年学习的一个检验和平时学习的一种结累,可以在学习中提高自己,也充分体现学有所用,学以致用的学习倡导。 在此,我对三年来辅导过我的各位任课老师深表感谢 主要参考文献 本系统的过程中,主要的参考文献有: 《Visual Basic6.0》 林陈雷 人民邮电出版社 《面向对象程序设计系列教材》 龚沛曾 高等教育出版社 《Visual Basic6.0编程实例精解》 何文俊 《学用Visual Basic 编程》 潭 浩 西安电子科技大学出版社 《Visual Basic6.0 数据库开发与专业应用》 敬 铮 国防工业出版社 《Visual Basic6.0 数据库程序设计高手》 温贤发 科学出版社第四篇:学生信息管理系统
第五篇:学生信息管理系统