首页 学生选课系统C#(完美终结版)

学生选课系统C#(完美终结版)

举报
开通vip

学生选课系统C#(完美终结版)学生选课系统C#(完美终结版) 电子信息工程 专业 课程设计题单 班级 088205242 学生 朱振华 课程名称 专业课程设计 课 题 学生选课系统 设计要求 利用Visual C#和SQL sever,或者 Access,的开发环境实现一个学生选课系统~数据库中要 包含学生、课程、选课等表。 课 题 发 给 日 期 2011.6.11 课程设计完成日期 2011.6.20 指 导 教 师 评语: 评分: 摘 要 本文设计并实现了一个简单的学生选课系统,它是学生选课的平台,含登陆界面,三种角色(...

学生选课系统C#(完美终结版)
学生选课系统C#(完美终结版) 电子信息工程 专业 课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 单 班级 088205242 学生 朱振华 课程名称 专业课程设计 课 题 学生选课系统 设计要求 利用Visual C#和SQL sever,或者 Access,的开发环境实现一个学生选课系统~数据库中要 包含学生、课程、选课等表。 课 题 发 给 日 期 2011.6.11 课程设计完成日期 2011.6.20 指 导 教 师 评语: 评分: 摘 要 本文设计并实现了一个简单的学生选课系统,它是学生选课的平台,含登陆界面,三种角色(学生用户、教师用户、教务员)在输入正确密码的前提下方能进入系统。进入系统后学生可以在这个平台进行选课、查看所选课程以及成绩,教师可以查看个人 资料 新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单 ,学生信息以及成绩录入和查看,教务员可以查看个人资料、学生信息,更改成绩。系统设计的目的是方便选课的顺利进行。 学生选课系统具有以下特点: ?用户登录按角色进行登录; 学生可以根据要求和自身条件选择自己喜欢的学科; ? ?教师可以查看学生资料以及登分等; ?教务员可以查看学生、教师、以及自己的资料,更改学生成绩等。 本系统后台数据库采用SQL Server2000,前台采用C#作为开发 工具。 本系统的主要功能包括以下几个方面: ? 用户登录以及密码修改 ? 学生选课以及相关查询 ? 教师登分以及相关查询 ? 教务员可以更正学生分数以及做其相应工作 关键字: 信学生选课 数据库 C# SQL Server Access 1 目 录 一 系统概述 ……………………………………………………3 二 系统设计 ……………………………………………………10 2.1系统设计思想 ………………………………………………10 2.1系统功能模块划分 …………………………………………10 三 数据库设计……………………………………………………11 3.1数据库需求分析 ……………………………………………11 3.2数据库概念结构设计 ………………………………………11 3.3数据库逻辑结构设计 ………………………………………12 四 模块分析及设计 ……………………………………………14 4.1登录界面实现 ……………………………………………14 4.1.1登录(含密码修改)界面设计 ………………………14 4.1.2登录(含密码修改)界面设计代码 …………………15 4.2学生用户界面 ………………………………………………19 4.2.1学生主界面 ……………………………………………19 4.2.2选课列表及本次选课结果界面 ………………………22 4.2.3个人信息及选课要求界面 ……………………………26 4.3教师用户界面 ………………………………………………29 4.3.1教师用户登录主页面 …………………………………29 4.4教务员界面 …………………………………………………30 4.4.1教务员登录主页面 ……………………………………33 五 课程调试 ……………………………………………………38 六 课程总结 ……………………………………………………39 七、课程总结 ……………………………………………………40 2 一 系统概述 1.1 系统功能与应用背景 随着社会的进步,作为代表科学前沿的学生所学的课程也在不断增加。相应的公共任选课业越来越多。 为了解决上述问题,本系统提供了一套学生选课管理的平台,使得教务管理人员对学校的选课工作得以改善。 1.2 系统预览(学生部分) 图1-1为学生选课系统的登陆界面,由相应的学生用户、教师用户、教务员正确输入用户名和密码以及选择正确的相应角色后方可成功登陆。成功登陆后系统转至相应的程序主界面。 3 图1-1 系统登陆窗体 图1-2 登录异常(密码错误) 图1-3 修改密码时出错(两次输入密码不同) 4 图1-4 修改密码(密码不可见) 5 图1-5 学生进入选课系统的主界面 图1-6 学生个人信息 6 图1-7 选课要求 图1-8 选课列表 7 图1-9 选课进行中 图1-10 查看选课结果 8 图1-11退出登录 9 二 系统设计 2.1 系统设计思想 本系统采用C#作为开发语言,采用结合后台Access数据库开发模式,优化了程序的代码及结构,提高了程序的运行效率。实例在.NET环境中进行开发,该环境提供了大量可供选择的对象,可以很方便地建立与数据库之间的连接,并 在此链接的基础上,利用各种常用数据组件对数据库进行操作。 在本系统中,采用OleDbConnection对象与后台数据库创建连接,所有针对 数据库的操作都需要利用这个对象作为数据库连接对像。 2.2 系统功能模块划分 根据本文开始部分描述的系统功能可以得到如图2-1所示的系统功能图。 学生选课系统 修改密码 用户登录 重置 教师用户 学生用户 教务员 浏修删个选选选个添浏修删 览改除人课课课人加览改除 员员员信列结要信收收收收 工 工 工 息 入 表 果 求 息 入 入 入 退出登录 图2-1 系统功能图 10 三 数据库设计 3.1 数据库需求分析 在设计数据库结构时,应该尽可能满足用户提出的各项要求,同时避免冗余数据的产生。由于在学生选课系统中需要采集大量的信息,包括课程信息、学生信息、教师信息、教务员信息等,如果不能有效合理的组织数据表的结构以及每张表所包含的字段,那么在后期进行数据整理及汇总时,将增加开发人员的工作难度和工作量,根据学生和课程的基本信息及相关特点,可以总结出一下规律: ? 一个学生可以选择多门课程 ? 一个教师只能教一门课 ? 每个 ? 每个员工都有自己对应的月收入 ? 一个角色对应一个或多个用户 3.2 数据库概念结构设计 根据数据库需求分析的结果,就可以确定程序中所包含的实体与实体之间的关系,作为数据库逻辑结构设计的基础与指导。根据本系统的需要,可以归纳出一下实体:工种信息实体、部门信息实体、员工信息实体、员工月收入实体。为了更好地理解各个实体及其含义,用E-R图(Entity Relationship Diagram),即实体关系图对实体进行描述。 用户实体如图3-1所示; 课程实体如图3-2所示; 用户 性别 用户名 年龄 角色 密码 电话 图3-1 工种息实体图 11 课程 起止时间 任课教师 学分 课程号 地点 课程名 图3-2 课程实体图 3.3 数据库逻辑结构设计 系统数据库名称为db_Person,数据库中包括: ? 登录表; ? course表; ? student表; ? xuanke表。 下面列出各个表的数据结构,如表1--表4所示。 表1 登录表的数据结构 字段名 类型 说明 用户名 文本 主键 密码 文本 性别 文本 "男"or "女" 年龄 文本 角色 文本 12 表2 course表的数据结构 字段名 类型 说明 CID 文本 主键 CName 文本 CWeekStart 文本 CWeekEnd 文本 CTName 文本 CAddress 文本 CTime 文本 表3 xuanke表的数据结构 字段名 类型 说明 SID char 一起设为主键 CID char 表4 student表的数据结构 字段名 类型 说明 SID 文本 设为主键 SAge 文本 SSex 文本 SKey 文本 SPhone 文本 13 四 模块分析及设计 4.1.登录界面实现 4.1.1 登录界面(含密码修改)设计 登录界面的作用就是让不同的用户能够凭密码进入相应界面。在登录界面中,包括三个控件,分别是textBox控件、label控件,comboBox、Button控件。 图4-1 主界面设计 14 图4-2 密码修改 4.1.2 登录界面代码即密码修改代码 登录界面的全部代码如下所示。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.OleDb;//这个头文件不能少,不然无法调用Access数据库 namespace WindowsApplication1 15 { public partial class Form1 : Form { public static string name = ""; //定义全局变量为后续窗口调用登录用户名做铺垫 public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb");//连接到数据库(学生选课.mdb) conn.Open(); //打开连接 OleDbCommand comm = new OleDbCommand();//创建OleDbCommand对象 comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + textBox1.Text + "'";//根据登录界 面输入的信息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader(); //执行链接 if (dr.Read() == true) { if (dr["密码"].ToString() == textBox2.Text && dr["角色"].ToString() == comboBox1.Text)// 登录角色以及密码正确进入以下判断 { name = textBox1.Text; //将登录用户名暂赋全局变量name if (dr["角色"].ToString() == "学生用户") // 学生用户跳转 { this.Hide(); Form2 aa = new Form2(); aa.Show(); } else if (dr["角色"].ToString() == "教师用户")//教师用户跳转 { this.Hide(); Form3 aa = new Form3(); aa.Show(); } else // 教务员跳转 16 { this.Hide(); Form4 aa = new Form4(); aa.Show(); } } else //登录角色或密码错误,报错 { MessageBox.Show("登录角色错误或密码错误!"); } } else //无法从数据库中调到用户资料,说明无此用户,报错 { MessageBox.Show("无此用户!"); } conn.Close(); //关闭连接 } private void button2_Click(object sender, EventArgs e) //重置各textBox的内容 { textBox1.Text = ""; textBox2.Text = ""; comboBox1.Text = "学生用户";//角色对应内容重置为"学生用户" } private void button3_Click(object sender, EventArgs e)//跳到修改密码界面 { this.Hide(); Form5 aa = new Form5(); aa.Show(); } } } 17 密码修改界面代码: private void button2_Click(object sender, EventArgs e) { this.Hide(); Form1 aa = new Form1(); aa.Show(); } private void button1_Click(object sender, EventArgs e) { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb"); conn.Open(); OleDbCommand comm = new OleDbCommand(); comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + textBox4.Text + "'";//根据登录 界面输入的信息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader(); if (textBox5.Text == "王锦明") { if (dr.Read() == true) { if (dr["密码"].ToString() == textBox1.Text && textBox1.Text == textBox2.Text && textBox3.Text != "") { MessageBox.Show("恭喜你,密码修改成功~"); } else if (textBox1.Text != textBox2.Text) { MessageBox.Show("两次输入密码不相同!"); 18 } else if (textBox3.Text == "") { MessageBox.Show("修改密码不能为空!"); } } else { MessageBox.Show("恭喜,出错啦!"); } } else { MessageBox.Show(" 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 不正确哦!"); } conn.Close(); } 4.2 学生界面 4.2.1 学生登录主界面 4.2.1学生界面主界面 图4-1 学生界面界面设计 19 学生界面应用到的控件有MenuStrip。 主界面的全部代码如下所示。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { string n = Form1.name; textBox1.Text= n ; //将登录用户调入以显示某某用户进入本系统 textBox1.ReadOnly = true; //该 textBox1为只读 textBox2.Text = "朱振华"; //将制作者即本人留名 textBox2为只读 textBox2.ReadOnly = true; //该 } private void 退出登录ToolStripMenuItem_Click(object sender, EventArgs e)//退出登录返回到登陆界 面 { if (MessageBox.Show("确定退出登录吗,", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK) //再次确定是否要退出系统 { this.Hide(); Form1 aa = new Form1(); //跳到登录界面 aa.Show(); } } 20 private void 个人信息ToolStripMenuItem_Click(object sender, EventArgs e)//跳到个人信息页面,显 示个人信息 { this.Hide(); Form7 aa = new Form7(); aa.Show(); } private void 选课列表 ToolStripMenuItem_Click(object sender, EventArgs e)//跳到选课列表 { this.Hide(); Form9 aa = new Form9(); aa.Show(); } private void 选课要求ToolStripMenuItem_Click(object sender, EventArgs e)//调到选课要求 { this.Hide(); Form8 aa = new Form8(); aa.Show(); } private void 本次选课结果ToolStripMenuItem_Click(object sender, EventArgs e)//调到本次选课结果 { this.Hide(); Form10 aa = new Form10(); aa.Show(); } } } 21 4.2.2选课列表及本次选课结果界面 选课界面应用控件有:Button、GroupBox(容器控件)、label、listBox。 图4-2 学生选课列表 22 图4-3 学生选课进行中 图4-4 选课结果查询 23 选课列表代码(示意): 1、选课 private void button1_Click(object sender, EventArgs e)//选课示意 { string g = Form1.name; string mystr,mysql; OleDbConnection myconn = new OleDbConnection(); OleDbCommand mycmd = new OleDbCommand(); mystr = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source =D:\\学生选课.mdb"; myconn.ConnectionString = mystr; myconn.Open();//打开连接 mysql = "INSERT INTO xuanke VALUES(g,'1')";//将课程号为1的课添加到表选课中 mycmd.Parameters.Add("@a", OleDbType.VarChar, 10).Value =n; mycmd.CommandText = mysql; mycmd.Connection = myconn; mycmd.ExecuteNonQuery(); //执行连接 myconn.Close();//关闭连接 MessageBox.Show("恭喜你,选课成功~");//若选课成功,则提示 } 2、删除选课 private void button11_Click(object sender, EventArgs e) { string g = Form1.name; string mystr,mysql; OleDbConnection myconn = new OleDbConnection(); OleDbCommand mycmd = new OleDbCommand(); mystr = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source =D:\\学生选课.mdb"; myconn.ConnectionString = mystr; myconn.Open(); mysql = "DELETE FROM xuanke WHERE CId='1'";//删除已选课程号为1的课程 mycmd.CommandText = mysql; mycmd.Connection = myconn; mycmd.ExecuteNonQuery(); myconn.Close(); 24 MessageBox.Show("恭喜你,删除成功~"); } 3、返回查看结果 this.Hide(); Form10 aa = new Form10(); aa.Show(); 4、本次选课结果 private void button1_Click(object sender, EventArgs e)//返回主界面(学生主页) { this.Hide(); Form2 aa = new Form2(); aa.Show(); } private void button2_Click(object sender, EventArgs e)//显示该生所选课程 { string g = Form1.name; string mystr, mysql; OleDbConnection myconn = new OleDbConnection(); OleDbCommand mycmd = new OleDbCommand(); mystr = "provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb"; myconn.ConnectionString = mystr; myconn.Open(); mysql = "SELECT * FROM course WHERE CId ==g";//从course表中选出该同学已经选了的课 mycmd.CommandText = mysql; mycmd.Connection = myconn; OleDbDataReader myreader = mycmd.ExecuteReader(); listBox1.Items.Add("================================================================== "); //遍历显示 while (myreader.Read()) listBox1.Items.Add(String.Format("{0}\t{1}\t{2}\t{3}\t{4}", myreader[0].ToString(), myreader[1].ToString(), myreader[2].ToString(), myreader[3].ToString(), myreader[4].ToString() ) ); myconn.Close(); myreader.Close(); InitializeComponent(); 25 } 4.2.3 个人信息及选课要求界面 图4-5 学生选课要求 26 图4-6 学生个人信息 1、个人信息代码 private void Form7_Load(object sender, EventArgs e)//从学生选课数据库中调取相应信息显示 { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb");//创建连接 conn.Open();//打开连接 OleDbCommand comm = new OleDbCommand();//创建OleDbCommand对象 comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + n + "'";//根据登录界面输入的信息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader();//执行连接 if (dr.Read() == true)//若能读到相应数据 { textBox1.Text = dr["姓名"].ToString();//读姓名于textBox1显示 textBox1.ReadOnly = true; //textBox1为只读 textBox2.Text = dr["年龄"].ToString();//读年龄于textBox2显示 textBox2.ReadOnly = true;//textBox2为只读 textBox3.Text = dr["性别"].ToString();//读性别于textBox3显示 27 textBox3.ReadOnly = true;//textBox3为只读 textBox4.Text = dr["电话"].ToString();//读电话于textBox4显示 textBox4.ReadOnly = true;//textBox4为只读 textBox5.Text = dr["角色"].ToString();//读角色于textBox5显示 textBox5.ReadOnly = true;//textBox5为只读 } else//若不能读到相应数据报错 { MessageBox.Show("出错了哦!"); } conn.Close();关闭连接 } private void button1_Click(object sender, EventArgs e)//返回相应用户主界面 { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb"); conn.Open(); OleDbCommand comm = new OleDbCommand(); comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + n + "'";//根据登录界面输入的信 息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader(); if (dr.Read() == true) { if (dr["角色"].ToString()=="学生用户")//若为学生用户则返回学生用户主界面 { this.Hide(); Form2 aa = new Form2(); aa.Show(); } else if (dr["角色"].ToString() == "教师用户")//若为教师用户则返回学生用户主界面 { this.Hide(); Form3 aa = new Form3(); aa.Show(); } 28 else //若为教务员则返回学生用户主界面 { this.Hide(); Form4 aa = new Form4(); aa.Show(); } } else { MessageBox.Show("出错了哦!"); } conn.Close(); } 4.3 教师用户主界面 4.3.1 教师用户主界面 图4-7 教师用户主界面 29 private void Form3_Load(object sender, EventArgs e) { string n = Form1.name; textBox1.Text = n; textBox1.ReadOnly = true; textBox2.Text = "朱振华"; textBox2.ReadOnly = true; } private void 退出登录ToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show("确定退出登录吗,", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK) { this.Hide(); Form1 aa = new Form1(); aa.Show(); } } private void 个人信息ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); Form7 aa = new Form7(); aa.Show(); } private void 选课要求ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); Form8 aa = new Form8(); aa.Show(); } } } 30 4.3.2 教师个人信息界面 图4-8 教师个人资料 private void Form7_Load(object sender, EventArgs e)//从学生选课数据库中调取相应信息显示 { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb");//创建连接 conn.Open();//打开连接 OleDbCommand comm = new OleDbCommand();//创建OleDbCommand对象 comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + n + "'";//根据登录界面输入的信息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader();//执行连接 if (dr.Read() == true)//若能读到相应数据 { textBox1.Text = dr["姓名"].ToString();//读姓名于textBox1显示 textBox1.ReadOnly = true; //textBox1为只读 textBox2.Text = dr["年龄"].ToString();//读年龄于textBox2显示 textBox2.ReadOnly = true;//textBox2为只读 31 textBox3.Text = dr["性别"].ToString();//读性别于textBox3显示 textBox3.ReadOnly = true;//textBox3为只读 textBox4.Text = dr["电话"].ToString();//读电话于textBox4显示 textBox4.ReadOnly = true;//textBox4为只读 textBox5.Text = dr["角色"].ToString();//读角色于textBox5显示 textBox5.ReadOnly = true;//textBox5为只读 } else//若不能读到相应数据报错 { MessageBox.Show("出错了哦!"); } conn.Close();关闭连接 } private void button1_Click(object sender, EventArgs e)//返回相应用户主界面 { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb"); conn.Open(); OleDbCommand comm = new OleDbCommand(); comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + n + "'";//根据登录界面输入的信 息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader(); if (dr.Read() == true) { if (dr["角色"].ToString()=="学生用户")//若为学生用户则返回学生用户主界面 { this.Hide(); Form2 aa = new Form2(); aa.Show(); } else if (dr["角色"].ToString() == "教师用户")//若为教师用户则返回学生用户主界面 { this.Hide(); Form3 aa = new Form3(); aa.Show(); 32 } else //若为教务员则返回学生用户主界面 { this.Hide(); Form4 aa = new Form4(); aa.Show(); } } else { MessageBox.Show("出错了哦!"); } conn.Close(); } 4.4 教务员主界面 4.41教务员主界面 图4-9 教务员主界面设计 33 private void 选课成绩发布ToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show("确定退出登录吗,", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK) { this.Hide(); Form1 aa = new Form1(); aa.Show(); } } private void Form4_Load(object sender, EventArgs e) { string n = Form1.name; textBox1.Text = n; textBox1.ReadOnly = true; textBox2.Text = "朱振华"; textBox2.ReadOnly = true; } private void 个人信息ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); Form7 aa = new Form7(); aa.Show(); } private void toolStripMenuItem1_Click(object sender, EventArgs e) { this.Hide(); Form8 aa = new Form8(); aa.Show(); } 34 4.42教务员个人信息 图4-10 教务员个人信息 private void Form7_Load(object sender, EventArgs e)//从学生选课数据库中调取相应信息显示 { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb");//创建连接 conn.Open();//打开连接 OleDbCommand comm = new OleDbCommand();//创建OleDbCommand对象 comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + n + "'";//根据登录界面输入的信息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader();//执行连接 if (dr.Read() == true)//若能读到相应数据 { textBox1.Text = dr["姓名"].ToString();//读姓名于textBox1显示 textBox1.ReadOnly = true; //textBox1为只读 textBox2.Text = dr["年龄"].ToString();//读年龄于textBox2显示 textBox2.ReadOnly = true;//textBox2为只读 35 textBox3.Text = dr["性别"].ToString();//读性别于textBox3显示 textBox3.ReadOnly = true;//textBox3为只读 textBox4.Text = dr["电话"].ToString();//读电话于textBox4显示 textBox4.ReadOnly = true;//textBox4为只读 textBox5.Text = dr["角色"].ToString();//读角色于textBox5显示 textBox5.ReadOnly = true;//textBox5为只读 } else//若不能读到相应数据报错 { MessageBox.Show("出错了哦!"); } conn.Close();关闭连接 } private void button1_Click(object sender, EventArgs e)//返回相应用户主界面 { string n = Form1.name; OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\学生选课.mdb"); conn.Open(); OleDbCommand comm = new OleDbCommand(); comm.Connection = conn;//以上代码连接并打开数据库 comm.CommandText = "select * from 登录where 用户名='" + n + "'";//根据登录界面输入的信 息去查询数据库内容 OleDbDataReader dr; dr = comm.ExecuteReader(); if (dr.Read() == true) { if (dr["角色"].ToString()=="学生用户")//若为学生用户则返回学生用户主界面 { this.Hide(); Form2 aa = new Form2(); aa.Show(); } else if (dr["角色"].ToString() == "教师用户")//若为教师用户则返回学生用户主界面 { this.Hide(); Form3 aa = new Form3(); aa.Show(); 36 } else //若为教务员则返回学生用户主界面 { this.Hide(); Form4 aa = new Form4(); aa.Show(); } } else { MessageBox.Show("出错了哦!"); } conn.Close(); } 37 五、课程调试 5.1 密码不显问题 针对密码不想问题,经翻阅参考书籍得知,将textBox的PassWord属性设 -4、1-5。 为true即可。如图1 5.1 不同窗口间的数据传送 1、原 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 :创建一个表,每次登录系统将用户名暂存yonghu表,然后从表中调用该用户名,每次退出时清空yonghu表。 2、缺陷:代码累赘,若用户不是退出登录退出的遍在再次进入系统时抱错(原因是yonghu表中已有该用户名)。 3、新方案:创建一个全局变量name,然后textBox1.text赋值给name.然后在后续窗体中调用Form1.name即可。 4、代码: Form1 中代码:public static string name = ""; Botton1(登录)单击事件中代码:name = textBox1.Text; 后续窗体中代码(调用的相应位置): string n = Form1.name; textBox1.Text = n; 38 六、课程调试 两周的课程设计结束了,我发现自己学到了许多东西,但这个学习的过程是比较漫长的。 一开始不知道怎么把这些功能联系起来。面对一个系统一脸茫然,不知从何做起,只有从以前学的东西里面慢慢的搜集。由于知识掌握的不够完善,所以中间出现的问题有的能独立解决,有的不能独立解决。但是看到做完的作品,心里真的很有成就感。尽管做的不是太好,但是还是有些进步,在许多方面都有了新的收获。 在开始设计的时候我们也参考具体的事例,但是真正做起来却是非常难的,有时候一个控件的一个属性没有设置好都行,要非常细心才能做出来。现在发现理论和实践是有差别的,但是有理论知识作为指导实践起来还是比较容易的。我相信把理论知识学好了再去结合实践会有很大的帮助。 通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。也使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。这次在指导老师以及同学的帮助下,基本完成了课程设计要求设计任务,在软件的设计方面也有了一定的提高,熟练掌握了C#命令和编程技巧,为今后走上工作岗位打下了专业基础。同时在这次的课程设计中,我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。但是由于课程设计的时间较短,所以该系统还有不少不尽如人意的地方,有待进一步改善。 39 七、 参考资料 [1] 黄兴荣.C#程序设计实用教程.北京:清华大学出版社,2009. [2] 郑阿奇.C#程序设计教程.北京:机械工业出版社,2008. [3] 李春葆.C#程序设计教程.北京:清华大学出版社,2010. [4] 苗雪兰.数据库系统原理及应用教程.北京:机械工业出版社,2010. 40
本文档为【学生选课系统C#(完美终结版)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_435706
暂无简介~
格式:doc
大小:490KB
软件:Word
页数:45
分类:
上传时间:2018-03-09
浏览量:48