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

上传人:豆**** 文档编号:33457304 上传时间:2022-08-11 格式:DOC 页数:19 大小:1.61MB
返回 下载 相关 举报
学生选课系统C#(完美终结版).doc_第1页
第1页 / 共19页
学生选课系统C#(完美终结版).doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《学生选课系统C#(完美终结版).doc》由会员分享,可在线阅读,更多相关《学生选课系统C#(完美终结版).doc(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除 电子信息工程 专业课程设计题单 班级 088205242 学生 朱振华 课程名称 专业课程设计 课 题 学生选课系统 设计要求 利用Visual C#和SQL sever(或者 Access)的开发环境实现一个学生选课系统,数据库中要包含学生、课程、选课等表。课 题 发 给 日 期 2011.6.11 课程设计完成日期 2011.6.20 指 导 教 师 评语: 评分: 摘 要本文设计并实现了一个简单的学生选课系统,它是学生选课的平台,含登陆界面,三种角色(学生用户、教师用户、教务员)在输入正确密码的前提下方能进入系统。进入系统后学生可以在这个

2、平台进行选课、查看所选课程以及成绩,教师可以查看个人资料,学生信息以及成绩录入和查看,教务员可以查看个人资料、学生信息,更改成绩。系统设计的目的是方便选课的顺利进行。学生选课系统具有以下特点: 用户登录按角色进行登录;学生可以根据要求和自身条件选择自己喜欢的学科;教师可以查看学生资料以及登分等;教务员可以查看学生、教师、以及自己的资料,更改学生成绩等。本系统后台数据库采用SQL Server2000,前台采用C#作为开发工具。 本系统的主要功能包括以下几个方面: 用户登录以及密码修改 学生选课以及相关查询 教师登分以及相关查询 教务员可以更正学生分数以及做其相应工作关键字: 信学生选课 数据库

3、 C# SQL Server Access目 录一 系统概述 3二 系统设计 102.1系统设计思想 102.1系统功能模块划分 10三 数据库设计113.1数据库需求分析 113.2数据库概念结构设计 113.3数据库逻辑结构设计 12四 模块分析及设计 144.1登录界面实现 14 4.1.1登录(含密码修改)界面设计 144.1.2登录(含密码修改)界面设计代码 154.2学生用户界面 19 4.2.1学生主界面 194.2.2选课列表及本次选课结果界面 224.2.3个人信息及选课要求界面 264.3教师用户界面 29 4.3.1教师用户登录主页面 294.4教务员界面 30 4.4.

4、1教务员登录主页面 33五 课程调试 38六 课程总结 39七、课程总结 40一 系统概述1.1 系统功能与应用背景 随着社会的进步,作为代表科学前沿的学生所学的课程也在不断增加。相应的公共任选课业越来越多。为了解决上述问题,本系统提供了一套学生选课管理的平台,使得教务管理人员对学校的选课工作得以改善。 1.2 系统预览(学生部分) 图1-1为学生选课系统的登陆界面,由相应的学生用户、教师用户、教务员正确输入用户名和密码以及选择正确的相应角色后方可成功登陆。成功登陆后系统转至相应的程序主界面。图1-1 系统登陆窗体 图1-2 登录异常(密码错误) 图1-3 修改密码时出错(两次输入密码不同)图

5、1-4 修改密码(密码不可见)图1-5 学生进入选课系统的主界面图1-6 学生个人信息图1-7 选课要求图1-8 选课列表 图1-9 选课进行中图1-10 查看选课结果图1-11退出登录二 系统设计2.1 系统设计思想本系统采用C#作为开发语言,采用结合后台Access数据库开发模式,优化了程序的代码及结构,提高了程序的运行效率。实例在.NET环境中进行开发,该环境提供了大量可供选择的对象,可以很方便地建立与数据库之间的连接,并在此链接的基础上,利用各种常用数据组件对数据库进行操作。 在本系统中,采用OleDbConnection对象与后台数据库创建连接,所有针对数据库的操作都需要利用这个对象

6、作为数据库连接对像。2.2 系统功能模块划分根据本文开始部分描述的系统功能可以得到如图2-1所示的系统功能图。学生选课系统用户登录修改密码重置退出登录修改员工删除员工个人信息选课列表选课结果选课要求添加收入浏览收入修改收入删除收入学生用户教务员浏览员工个人信息教师用户图2-1 系统功能图三 数据库设计3.1 数据库需求分析 在设计数据库结构时,应该尽可能满足用户提出的各项要求,同时避免冗余数据的产生。由于在学生选课系统中需要采集大量的信息,包括课程信息、学生信息、教师信息、教务员信息等,如果不能有效合理的组织数据表的结构以及每张表所包含的字段,那么在后期进行数据整理及汇总时,将增加开发人员的工

7、作难度和工作量,根据学生和课程的基本信息及相关特点,可以总结出一下规律: 一个学生可以选择多门课程 一个教师只能教一门课 每个 每个员工都有自己对应的月收入 一个角色对应一个或多个用户3.2 数据库概念结构设计 根据数据库需求分析的结果,就可以确定程序中所包含的实体与实体之间的关系,作为数据库逻辑结构设计的基础与指导。根据本系统的需要,可以归纳出一下实体:工种信息实体、部门信息实体、员工信息实体、员工月收入实体。为了更好地理解各个实体及其含义,用E-R图(Entity Relationship Diagram),即实体关系图对实体进行描述。 用户实体如图3-1所示; 课程实体如图3-2所示;用

8、户年龄密码性别角色电话 用户名图3-1 工种息实体图课程地点起止时间任课教师课程号课程名学分 图3-2 课程实体图3.3 数据库逻辑结构设计系统数据库名称为db_Person,数据库中包括: 登录表; course表; student表; xuanke表。 下面列出各个表的数据结构,如表1-表4所示。表1 登录表的数据结构字段名类型说明用户名文本主键密码文本性别文本男or 女年龄文本角色文本表2 course表的数据结构字段名类型说明CID文本主键CName文本CWeekStart文本CWeekEnd文本CTName文本CAddress文本CTime文本表3 xuanke表的数据结构字段名类型

9、说明SIDchar一起设为主键CIDchar表4 student表的数据结构字段名类型说明SID文本设为主键SAge文本SSex文本SKey文本SPhone文本四 模块分析及设计4.1.登录界面实现4.1.1 登录界面(含密码修改)设计 登录界面的作用就是让不同的用户能够凭密码进入相应界面。在登录界面中,包括三个控件,分别是textBox控件、label控件,comboBox、Button控件。图4-1 主界面设计图4-2 密码修改4.1.2 登录界面代码即密码修改代码登录界面的全部代码如下所示。using System;using System.Collections.Generic;usi

10、ng System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;/这个头文件不能少,不然无法调用Access数据库namespace WindowsApplication1 public partial class Form1 : Form public static string name = ; /定义全局变量为后续窗口调用登录用户名做铺垫 public Form1() Initialize

11、Component(); 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;/以上代码连接并打开数据

12、库 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角色

13、.ToString() = 学生用户) / 学生用户跳转 this.Hide(); Form2 aa = new Form2(); aa.Show(); else if (dr角色.ToString() = 教师用户)/教师用户跳转 this.Hide(); Form3 aa = new Form3(); aa.Show(); else / 教务员跳转 this.Hide(); Form4 aa = new Form4(); aa.Show(); else /登录角色或密码错误,报错 MessageBox.Show(登录角色错误或密码错误!); else /无法从数据库中调到用户资料,说明无此

14、用户,报错 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.Sho

15、w();密码修改界面代码: 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); c

16、onn.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.

17、Text & textBox1.Text = textBox2.Text & textBox3.Text != ) MessageBox.Show(恭喜你,密码修改成功!); else if (textBox1.Text != textBox2.Text) MessageBox.Show(两次输入密码不相同!); else if (textBox3.Text = ) MessageBox.Show(修改密码不能为空!); else MessageBox.Show(恭喜,出错啦!); else MessageBox.Show(答案不正确哦!); conn.Close();4.2 学生界面4.2.

18、1 学生登录主界面4.2.1学生界面主界面 图4-1 学生界面界面设计学生界面应用到的控件有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 Fo

19、rm2() InitializeComponent(); private void Form2_Load(object sender, EventArgs e) string n = Form1.name; textBox1.Text= n ; /将登录用户调入以显示某某用户进入本系统 textBox1.ReadOnly = true; /该 textBox1为只读 textBox2.Text = 朱振华; /将制作者即本人留名 textBox2.ReadOnly = true; /该 textBox2为只读 private void 退出登录ToolStripMenuItem_Click(o

20、bject 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)/跳到个人信息页面,显示个人信

21、息 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();pr

22、ivate void 本次选课结果ToolStripMenuItem_Click(object sender, EventArgs e)/调到本次选课结果 this.Hide(); Form10 aa = new Form10(); aa.Show();4.2.2选课列表及本次选课结果界面选课界面应用控件有:Button、GroupBox(容器控件)、label、listBox。图4-2 学生选课列表图4-3 学生选课进行中图4-4 选课结果查询选课列表代码(示意):1、选课 private void button1_Click(object sender, EventArgs e)/选课示意

23、 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);/将课程

24、号为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; st

25、ring 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 = m

26、ysql; mycmd.Connection = myconn; mycmd.ExecuteNonQuery(); myconn.Close(); 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 bu

27、tton2_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(); my

28、sql = 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(0t1t2t3t4, myreader0.ToString(), myreader1.ToStri

29、ng(), myreader2.ToString(), myreader3.ToString(), myreader4.ToString() myconn.Close(); myreader.Close(); InitializeComponent();4.2.3 个人信息及选课要求界面图4-5 学生选课要求图4-6 学生个人信息1、 个人信息代码private void Form7_Load(object sender, EventArgs e)/从学生选课数据库中调取相应信息显示 string n = Form1.name; OleDbConnection conn = new OleDb

30、Connection(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.Execute

31、Reader();/执行连接 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显示 textBox3.ReadOnly = true;/textBox

32、3为只读 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)/返回相应用户主界面

33、 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 + ;/根据登录界面输入的信息去查询数据库内容 OleDbDat

34、aReader 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(); else /若为教务员则返回学生用户主界面 this.Hide(); Form4 aa = new Form4(); aa.Show(); else MessageBox.Show(出错了哦!);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com