C#课程设计报告书(学生成绩管理系统).pdf
70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 1 沈阳航空航天大学 C#课程设计报告书 学生成绩管理系统 密码修改 院 系 专 业 班 号 学 号 姓 名 指导教师 2014 年 12 月 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 2 摘 要 该系统是用 Visua Studio2010 和 Access 2007,通过 C#语言进行相关代码的编写,生成相关程序。学生成绩管理系统是构建于 Visual C#.NET 平台上的 Windows应用程序,采用应用前景广阔的 XML 技术存储数据,具有平台构建免费、运行速度快、程序小、扩展性好、技术先进等特点。本文描述的是基于 Windows 环境的学生成绩管理系统,主要工具 Microsoft Visual Studio 2010 设计窗体,Access 2007 建立数据库,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的描述。管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。在这次的课程设计中,让我加深了对 Microsoft Visual Studio 2010 的运用,同时学习了 Access 数据库的建立和连接与导入。能在 Visual C#.NET 平台上进行Access 数据库的修改与控制,将 C#语句与 SQL 语句混合使用,成功的完成了学生成绩管理系统的整体设计,加深巩固了选择的条件语句,还有曾经学习过的基本运算语句,同时也为以后的进一步学习垫下了了良好的基础。关键词:C#;学生成绩管理;数据库 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 3 目 录 第一章 绪 论.4 1.1 课程设计目的.4 1.2 系统开发环境.4 1.3 系统开发程序.4 1.4 报告主要内容.4 第二章 系统的需求分析.5 2.1 系统设计目标.5 2.2 功能需求分析.5 2.3 性能需求分析.5 第三章 总体设计思路.6 3.1 设计总体概述.6 3.2 系统总体结构.6 3.3 系统程序模块流程图.7 3.4 系统主要功能模块简介.7 3.4.1 学生信息查询模块.7 3.4.2 教师成绩管理模块.8 第四章 各程序界面及其功能示范.9 4.1 主界面及二三级界面.9 4.1.1 主界面.9 4.1.2 二级界面.9 4.1.3 三级界面.11 4.2 部分功能演示.13 4.2.1 信息修改功能.13 4.2.2 信息删除功能.14 4.2.3 信息添加功能.15 4.2.4 密码修改功能.16 第五章 主要功能模块代码.17 5.1 登陆界面代码设计.17 5.2 学生查询界面代码设计.19 5.3 教师修改模块代码设计.20 5.4 教师删除模块代码设计.21 5.5 教师添加模块代码设计.22 5.6 密码修改模块代码设计.22 第六章 课程设计心得.25 参考文献.26 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 4 第一章 绪 论 1.1 课程设计目的 本次课程设计的目的是使学生能熟练掌握简单的简单 Windows 窗体应用程序的设计和 ADO.net 的应用,复习熟练基本运算符,和基本的条件语句、判断语句,将 Access 的使用和 Microsoft Visual Studio 2010 的使用结合起来,希望通过本次课程设计锻炼学生使用 C#语言解决实际问题的能力。1.2 系统开发环境 系统开发平台:Microsoft Visual Studio 2010 系统开发语言:C#数据库管理软件:Access 2007 1.3 系统开发程序 本系统后台数据库采用 Access 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用 Microsoft 公司的 Visual Studio 2010 作为主要开发工具,可与 Access 2007 数据库无缝链接。1.4 报告主要内容 本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计设计思路、系统的概念设计、系统各模块的详细设计、系统运行与测试。70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 5 第二章 系统的需求分析 2.1 系统设计目标(1)学生用户可根据不同的用户名和相应的密码进行登录,并可修改密码。(2)根据条件查询实现学生成绩的按学号、课程、成绩、学期的查询 (3)教师可对学生成绩和学生个人信息进行查询、添加、更改、删除。2.2 功能需求分析 本系统的功能需求分析如下:(1)学生密码修改:学生可在成功登录后对自己的密码进行修改,以防个人信息外泄。(2)学生成绩查询:学生根据学号、成绩、课程进行查询。(3)学生成绩录入:用于学生成绩管理,录入学生成绩,也可以进行更新。(4)学生信息录入:用于学生个人信息管理,录入学生个人信息,也可以进行更新和对学生登录密码的修改。2.3 性能需求分析(1)登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理,同时也可以进行密码修改。(3)数据分析需求:可根据学生要求进行条件查询,分不同的学号、成绩、课程、学期进行相应查询。(4)数据统计要求:可对学生成绩和个人信息进行添加更改和删除。70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 6 第三章 总体设计思路 3.1 设计总体概述 根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;3.2 系统总体结构 经过对系统的需求分析,学生成绩管理系统主要划分为两个部分:学生成绩查询,教师管理。如图3.2 系统的总体结构。图3.2 系统的总体结构 教师总体管理 学生成绩查询 学生成绩管理系统 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 7 3.3 系统程序模块流程图 图3.3 学生成绩管理系统程序流程图 3.4 系统主要功能模块简介 3.4.1 学生信息查询模块 学生成绩查询:学生可以根据学号、成绩、课程、学期进行查询,同时也能浏览全体学生的成绩。教师总体管理 成绩录入 成绩删除 成绩修改 学生成绩查询 学生成绩管理系统 学生成绩管理 学生信息管理 信息录入 信息删除 信息修改 按学号查询 按学期查询 按成绩查询 按课程查询 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 8 3.4.2 教师成绩管理模块 教师管理:主要是用于学生成绩和个人信息更改、添加、删除。如图3.4 图3.4 教师成绩管理模块结构 教师总体管理 成绩录入 成绩删除 成绩修改 学生成绩管理 学生信息管理 信息录入 信息删除 信息修改 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 9 第四章 各程序界面及其功能示范 4.1 主界面及二三级界面 4.1.1 主界面 学生成绩管理系统主界面如图 4.1.1,在输入正确的用户名和密码后,可点击各个按钮从而进入学生成绩查询、教师窗口等的二级界面,进行下一步操作。图 4.1.1 学生成绩系统主界面 4.1.2 二级界面 学生成绩查询的二级界面如图 4.1.2。在界面中,有学生学号、课程、成绩、和学期。可以实现对学生成绩等各种信息的浏览。点击分类查询按钮,即可进行选择按学号、成绩、课程、学期的不同方式进入三级界面进行查询。点击密码修改按钮,即可进行密码修改的三级界面。点击返回按钮,即可回到主界面,进行其他账号的登录。点击右上角的关闭符号可直接关闭程序。教师窗口的二级界面如图 4.1.3。在界面中,有序号、学生学号、课程、成绩、和学期。可以实现对学生成绩的浏览、修改、添加、和删除。在序号框输入相应的序号,点击删除,即可进行删除;在对应框处输入对应的信息,点击修改70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 10 或添加,即可进行修改和添加。点击分类查询,可获得与学生界面同样的按条件查询功能。点击学生信息修改按钮,即可进入学生信息管理的二级界面。点击返回按钮,即可回到主界面,进行其他账号的登录。点击右上角的关闭符号可直接关闭程序。图 4.1.2 学生成绩查询的二级界面 图 4.1.3 教师窗口的二级界面 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 11 4.1.3 三级界面 密码修改的三级界面如图 4.1.4 所示。在界面中,有旧密码、新密码、确认密码三个部分。可以实现对学生密码的修改。图 4.1.4 密码修改的三级界面 按条件查询三级页面如图 4.1.5 和图 4.1.6 所示。在界面中,依据输入条件输入相应的需要查询的条件点击查询按钮即可在表中出现相应的数据。图 4.1.5 按条件查询的三级界面 1 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 12 图 4.1.5 按条件查询的三级界面 2 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 13 4.2 部分功能演示 4.2.1 信息修改功能 在对应框中输入相应的需要更改的信息,点击修改按钮,即可进行修改。如图 4.2.1。图 4.2.1 信息修改功能 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 14 4.2.2 信息删除功能 在序号输入框输入对应需要删除的信息的序号,点击删除按钮,即可进行删除,删除后不可恢复!如图 4.2.2。图 4.2.2 信息删除功能 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 15 4.2.3 信息添加功能 在对应框中输入相应的一条与其他信息没有重复的新的信息,点击添加按钮,即可进行添加。如图 4.2.3。图 4.2.3 信息添加功能 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 16 4.2.4 密码修改功能 在旧密码框中输入旧密码,新密码框中输入需要更改的新密码,在确认密码框中输入与新密码相同的确认密码,如果新密码和确认密码不同,将会出现如图4.2.4 所示的提示;若新密码与确认密码相同,点击修改按钮,将提示密码修改成功请重新登录,如图 4.2.5。图 4.2.4 密码修改错误 图 4.2.5 密码修改成功 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 17 第五章 主要功能模块代码 5.1 登陆界面代码设计 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;namespace 学生成绩管理系统 public partial class Form1:Form static public string usmen;/用户名,用于保存 static public string uspass;/密码,用于保存 public Form1()InitializeComponent();private bool pdyj()if(textBox1.Text=)return false;if(textBox2.Text=)return false;return true;private void button1_Click(object sender,EventArgs e)if(!pdyj()MessageBox.Show(请输入正确信息);return;/创建路径及数据库名 string strPath=Application.StartupPath+Student.mdb;70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 18 /生成链接数据库字符串 string oleCon=provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password=xxx123;User Id=admin;Data source=+strPath;/创建数据库连接 OleDbConnection conn=new OleDbConnection(oleCon);/当创建好连接到Access后打开数据库连接 conn.Open();/SQL查询语句 string Access=select username,userpassword from userlist where username=+this.textBox1.Text+and userpassword=+this.textBox2.Text+;/select是查询数据库语句 OleDbCommand cmd=new OleDbCommand(Access,conn);OleDbDataReader hyw=cmd.ExecuteReader();if(hyw.Read()/在构造中我们的量就作为判断 usmen=textBox1.Text;uspass=textBox2.Text;/一旦连接成功了就弹出窗口 MessageBox.Show(登录成功!);Form f2=new Form4();this.Hide();f2.ShowDialog();this.Dispose();else /信息错误,判断条件不成立 MessageBox.Show(输入用户密码错误);private void button2_Click(object sender,EventArgs e)if(textBox1.Text=001)&(textBox2.Text=12345)MessageBox.Show(登录成功!);Form3 b=new Form3();this.Hide();b.ShowDialog();this.Dispose();else 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 19 MessageBox.Show(错误,密码错误,请重新输入!);private void timer1_Tick(object sender,EventArgs e)if(pictureBox1.Left=this.Width)pictureBox1.Left=-pictureBox1.Width;pictureBox1.Left+=1;5.2 学生查询界面代码设计 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;namespace 学生成绩管理系统 public partial class Form4:Form public Form4()InitializeComponent();private void 退出ToolStripMenuItem_Click(object sender,EventArgs e)Form1 b=new Form1();this.Hide();b.ShowDialog();this.Dispose();private void Form4_Load(object sender,EventArgs e)70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 20 /TODO:这行代码将数据加载到表“studentDataSet10.学生成绩表”中。您可以根据需要移动或删除它。this.学生成绩表TableAdapter2.Fill(this.studentDataSet10.学生成绩表);5.3 教师修改模块代码设计 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;namespace 学生成绩管理系统 public partial class Form3:Form public Form3()InitializeComponent();private bool pdyj()if(textBox1.Text=)return false;return true;private void 退出ToolStripMenuItem_Click(object sender,EventArgs e)Form1 b=new Form1();this.Hide();b.ShowDialog();this.Dispose();private void Form3_Load(object sender,EventArgs e)/TODO:这行代码将数据加载到表“studentDataSet9.学生成绩表”中。您可以根据需要移动或删除它。70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 21 this.学生成绩表TableAdapter6.Fill(this.studentDataSet9.学生成绩表);private void button1_Click(object sender,EventArgs e)if(!pdyj()MessageBox.Show(请输入正确信息);return;/连接到一个数据库 string strPath=Application.StartupPath+Student.mdb;string strCon=provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password=xxx123;User Id=admin;Data source=+strPath;OleDbConnection myConn=new OleDbConnection(strCon);myConn.Open();/从数据库中修改指定记录 string strUpdt=UPDATE 学生成绩表 SET 课程=+textBox2.Text+,成绩=+textBox3.Text+,学期=+textBox4.Text+WHERE 序号=+textBox1.Text;OleDbCommand myCommand=new OleDbCommand(strUpdt,myConn);int rtn=myCommand.ExecuteNonQuery();MessageBox.Show(rtn.ToString()+行被更改);myConn.Close();5.4 教师删除模块代码设计 private void button3_Click(object sender,EventArgs e)if(!pdyj()MessageBox.Show(请输入正确信息);return;/连接到一个数据库 string strPath=Application.StartupPath+Student.mdb;string strCon=provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password=xxx123;User Id=admin;Data source=+strPath;70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 22 OleDbConnection myConn=new OleDbConnection(strCon);myConn.Open();string strDele=DELETE FROM 学生成绩表 WHERE 序号=+textBox1.Text;OleDbCommand myCommand=new OleDbCommand(strDele,myConn);/从数据库中删除指定记录 int rtn=myCommand.ExecuteNonQuery();/从studentDataSett中删除指定记录信息 MessageBox.Show(rtn.ToString()+行被删除);myConn.Close();/关闭数据库连接 5.5 教师添加模块代码设计 private void button2_Click(object sender,EventArgs e)if(!pdyj()MessageBox.Show(请输入正确信息);return;string strPath=Application.StartupPath+Student.mdb;string strCon=provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password=xxx123;User Id=admin;Data source=+strPath;OleDbConnection myConn=new OleDbConnection(strCon);myConn.Open();string strInsert=INSERT INTO 学生成绩表(序号,学号,课程,成绩,学期)VALUES(;strInsert+=textBox1.Text+,;strInsert+=textBox5.Text+,;strInsert+=textBox2.Text+,;strInsert+=textBox3.Text+,;strInsert+=textBox4.Text+);OleDbCommand inst=new OleDbCommand(strInsert,myConn);int rtn=inst.ExecuteNonQuery();MessageBox.Show(rtn.ToString()+行被添加);myConn.Close();5.6 密码修改模块代码设计 public partial class Form5:Form 70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 23 public Form5()InitializeComponent();private void button2_Click(object sender,EventArgs e)Form4 b=new Form4();this.Hide();b.ShowDialog();this.Close();private void button1_Click(object sender,EventArgs e)if(textBox1.Text=|textBox2.Text=|textBox3.Text=)MessageBox.Show(您输入的信息不完整!请重新输入!,提示);else if(textBox2.Text!=textBox3.Text)MessageBox.Show(您的新密码输入错误!请重新输入!,提示);else if(textBox1.Text!=)string strPath=Application.StartupPath+Student.mdb;string constr=provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=xxx123;User Id=admin;Data source=+strPath;OleDbConnection oleDbConnection1=new OleDbConnection(constr);oleDbConnection1.Open();string Access=select 密码 from 用户信息 where 密码=+this.textBox1.Text+;OleDbCommand cmd=new OleDbCommand(Access,oleDbConnection1);OleDbDataReader hyw=cmd.ExecuteReader();if(hyw.Read()string oleDb1=select 密码 from 用户信息;OleDbDataAdapter oleDbDataAdapter1=new OleDbDataAdapter(oleDb1,oleDbConnection1);DataSet dt1=new DataSet();oleDbDataAdapter1.Fill(dt1,用户信息);70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 24 string oleDb2=textBox1.Text;string oleDb3=(string)dt1.Tables用户信息.Rows0密码;if(oleDb2.Equals(oleDb3.Trim()&textBox2.Text=textBox3.Text)string constr1=provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=xxx123;User Id=admin;Data source=+strPath;string oleDb4=update 用户信息 set 密码=+textBox2.Text+where 密码=+textBox1.Text+;OleDbConnection oleDbConnection=new OleDbConnection(constr1);oleDbConnection.Open();OleDbCommand cd=new OleDbCommand(oleDb4,oleDbConnection);OleDbDataReader sr=cd.ExecuteReader();MessageBox.Show(密码修改成功,请重新登录!,提示);Form1 b=new Form1();this.Hide();b.ShowDialog();this.Close();else MessageBox.Show(旧密码错误,请重新输入!,提示);70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 25 第六章 课程设计心得 本次为期两周的课程设计,使我们所学的 C#知识得以实践,通过团队共同完成一个学生成绩管理系统,其功能基本符合的用户要求,能够对学生、教师和课程的基本信息进行查询、修改、添加、删除。在这次课程设计中,解决了不少在日常理论学习中碰不到的实践的问题。在题目的编写过程中,不断的遇到问题解决问题,又学到了很多在课堂上没有学到的东西,这样的实践环节真的对我们学习帮助很大。同时,这半个月的学习让我对团队合作有了更进一步的理解。团队并不是人数越多力量越大,只有当团队中每个人都在适合的位置做适合的事情时,团队的作用才能体现。团队不仅强调个人的工作成果,更强调团队的整体业绩。在课程设计中我们遇到了很多问题,有技术问题和非技术问题,但我们没有放弃,我们一起查资料、讨论、探究解决问题的方法,在本次课程设计中我们每个人都尽自己最大的努力去做,积极思考、充分发挥个人聪明才智,明白了个人的力量是有限的,必须团结合作,团队的力量绝不是个体力量的简单相加。同时,通过课设,还发现了自己学习中的很多不足,无法应对所有出现的问题,不得不寻求帮助。在遇见问题的时候,我们需要齐心协力共同来解决,无论是查阅书籍还是在网上查找答案,只要能找到解决问题的方法,就能让我们的知识增加。在解决问题的同时弄明白了很多新的未知的东西,这种收获的喜悦是无以言表的。的确,计算机语言是比较复杂和枯燥的,但是掌握好学习的规律就能好好去学习和运用。虽然我们的水平并没有多高,但是通过团队共同的力量,也让我们学到了很多不一样的知识。兴趣对我们的学习也是十分重要的,把兴趣加在学习上,能让我们在玩中学习,怀抱着快乐的心态来学习,既能提高我们学习运用的效率,又能丰富我们的知识,一举多得。在本次课程设计中,我们还需要一些以前没有学习到的知识,于是书籍跟网络成了我们的良好助手。在查阅资料的过程中,我们要判断优劣、取舍相关知识,这样一来我们对搜索来的信息的利用能力也有所提高。我们学习的知识是有限的,在以后的工作中我们肯定会遇到许多求知的领域,这方面的能力将有助于我们未来的工作。这次课设让我收获颇丰。70+120+120+70m 连续梁桥 及 80+140+140+80m 连续刚构桥施工方案 26 参考文献 1 明日科技著 C#4.0 从入门到精通 机械工业出版社 2011 2 明日科技著 C#经典编程 220 例 清华大学出版社 2012 3 郑阿奇主编 C#实用教程 电子工业出版社 2008 4 荣钦科技著 Access 数据库原理技术与全程实例 清华大学出版社 2009 5 郑阿奇 梁敬东主编 C#程序课程设计教程 机械工业出版社 2011 James W.Cooper 主编 C#设计模式 信你自己罢!只有你自己是真实的,也只有你能够创造你自己 6