使用c#和SQL语言设计简单教务管理系统.doc_第1页
使用c#和SQL语言设计简单教务管理系统.doc_第2页
使用c#和SQL语言设计简单教务管理系统.doc_第3页
使用c#和SQL语言设计简单教务管理系统.doc_第4页
使用c#和SQL语言设计简单教务管理系统.doc_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、实验目的1、通过完成从用户需求分析、系统概要设计、系统详细设计以及数据库的SQL操作具体实现等全过程,把前面的各个实验更好地综合起来;2、进一步理解和掌握教材中的相关内容;3、掌握分析和设计一个大型数据库系统的基本思路与方法。二、实验要求1、独立完成该教务管理系统的数据库和使用界面的设计;2、用SQL语句嵌入面向对象程序设计软件实现界面与数据库的连接以及对数据库进行基本操作;3、熟练使用存储过程的建立与调用;4、巩固上学期所学面向对象的程序设计方法及与SQL server2000连接的语句;5、学会调试程序及找错并修改程序。三、数据库的设计及表的建立 (1)需求分析 通过与多位同学和老师的共同探讨及分析,现将教务管理系统的需求作如下说明:1、教务管理系统面向的对象 学生、教师2、 各用户对数据的操作 学生:查询个人基本信息、选课、查询个人选课记录及成绩、修改个人密码; 教师:查询个人基本信息、修改个人密码、输入学生成绩; (2)E-R图 1、分E-R图 学 生 班级所在系出生年月邮箱电话地址性别密码姓名学号 图1 学生实例E-R图 教师 所在系出生年月性别邮箱电话职称密码姓名工号 图2 教师实例E-R图 课 程学时课程名课程号学分 图3 课程实例E-R图 2、总E-R图 课程 选课学生 m n 成 绩教 师 m n 授课 地点时间 图4 E-R图注:由于实体属性过多,故将其在E-R图中略去,详细属性见下。(3) 逻辑结构设计(将E-R图转换成关系模式)由实体集的转换规则可知:一个实体集转换为关系模型中的一个关系,实体集的属性就是关系的属性,实体的码的就是关系的码,关系的结构就是关系模式。因此可得如下三个关系模式: 学生(学号 密码 姓名 性别 出生年月 地址 电话 邮箱 所在系 班级) 教师(教师编号 密码 姓名 性别 出生年月 职称 电话 邮箱 所在系)课程(课程号 课程名称 学时 学分)由总E-R图可知学生与课程之间是多对多的关系,因此要多产生一个关系,其中新关系的码是学生的码和课程的码的结合;同理,教师与课程之间也要产生一个新关系,新关系的码是教师的码和课程的码的结合。因此可得如下两个关系模式:选课(学号 课程号 成绩 状态)授课(教师编号 课程号 上课时间 上课地点)(4)数据库物理结构设计(将关系模式转换成关系) 1)表的结构 1、学生表(students)字段名称意义数据类型数据长度允许为空主键索引约束条件外键sno学号char8是是psd密码varchar161、 数字、字母2、默认0000sn姓名varchar20sex性别char20男、女bsd出生年月char10是add地址varchar40是tel联系电话char11是e-mail电子邮箱varchar20是dep系别varchar20cla班别char82、教师表(teacher)字段名称意义数据类型数据长度允许为空主键索引约束条件外键tno教师编号char8是是psd密码verchar161、 数字、字母2、默认0000tn姓名verchar20男、女sex性别char2bsd出生年月char10是pro职称verchar10tel联系电话char11是e-mail电子邮箱verchar20是dep系别verchar103、 课程表(course)字段名称意义数据类型数据长度允许为空主键索引约束条件外键cno课程编号char8是是cn课程名称verchar20ct学时int4cre学分float84、 选课表(courselect)字段名称意义数据类型数据长度允许为空主键索引约束条件外键sno学号char8是是是cno课程号char8是是是grade成绩int4是state状态varchar10是5、 授课表(teach)字段名称意义数据类型数据长度允许为空主键索引约束条件外键tno教师编号char8是是是cno课程号char8是是是time上课时间char8add上课地点char42) 各表的内容 1、(学生表)students: 2、(教师表)teacher3、 (课程表)course4、 (选课表)courselect5、 (授课表)teach3) 表的约束等1、 学生性别的约束条件Creat rule rule_ssex As sex in (男,女)Exec sp_bindrule rule_ssex,students.sex2、教师性别的约束条件Creat rule rule_tsex As sex in (男,女)Exec sp_bindrule rule_tsex,teacher.sex3、学生密码的默认值Create default def_spsdAs 000000Exec sp_bindefault def_spsd,students.psd3、 教师密码的默认值Create default def_tpsdAs 0000Exec sp_bindefault def_tpsd,teacher.psd4、 窗体设计及功能实现(一)学生功能部分(1) 登录界面 login 1)窗体截图 图5 登录窗体2)控件属性控件名称属性属性值labeltext欢迎使用教务管理系统、角色、用户名:、密码:radiobottontext学生、教师textboxbottontext登录、退出2) 用SQL创建存储过程1、 学生登录 login_stu CREATE PROCEDURE login_stu sno char(8),psd varchar(16) AS select count(*) from students where sno=sno and psd=psd2、 教师登录 login_teacher CREATE PROCEDURE login_teacher tno char(8),psd varchar(16) AS select count(*) from teacherwhere tno=tno and psd=psd3) 程序代码using System.Data.SqlClient; /注意添加此命名空间namespace stu_inf_adm_system public partial class login : Form tring str = Data Source=;Initial Catalog=Student;Integrated Security=true; /链接数据库 SqlConnection conn = new SqlConnection(); private void button1_Click(object sender, EventArgs e) /登录按钮 conn.ConnectionString = str; string sql = ; if (radioButton1.Checked = true) /学生登录 sql = exec login_stu + textBox1.Text + , + textBox2.Text + ; MessageBox.Show(欢迎您以学生身份登录教务管理系统!); SqlCommand cmd = new SqlCommand(sql, conn); /执行sql语句 cmd.Connection.Open(); int count1 = (int)cmd.ExecuteScalar(); /返回由存储过程返回的结果(个数) if (count1 0) stuform mainform = new stuform(); mainform.username = textBox1.Text; mainform.psd = textBox2.Text; /参数传递 mainform.Show(); this.Hide(); cmd.Connection.Close(); /关闭链接,以供后面的程序使用 conn.Close(); else if (radioButton2.Checked = true) /教师登录 sql = exec login_teacher + textBox1.Text + , + textBox2.Text + ; MessageBox.Show(欢迎您以教师身份登录教务管理系统!); SqlCommand cmmd = new SqlCommand(sql, conn); /执行sql语句 cmmd.Connection.Open(); int count2 = (int)cmmd.ExecuteScalar(); if (count2 0) teacherform mainform = new teacherform(); mainform.username = textBox1.Text; mainform.psd = textBox2.Text; mainform.Show(); this.Hide(); cmmd.Connection.Close(); else MessageBox.Show(您输入的用户名或密码不正确!); /提醒信息 private void button2_Click(object sender, EventArgs e) this.Close(); /退出系统5) 登录的其他界面 图6 学生登录界面 图7 教师登录界面(2) 学生界面 stuform1) 窗体截图 图8 学生登录后的界面2)控件属性控件名称属性属性值labeltext您的个人信息:、姓名:、学号:、性别:、出生年月:、系别:、选课记录:、修改个人信息:textboxdatagridviewbottontext确定修改、密码修改、选课、退出3) 用SQL创建存储过程1、 学生选课记录 stu_course CREATE PROCEDURE stu_course sno char(8) AS select course.* ,grade from course,courselect where o=o and sno=sno2、 学生个人信息 stu_info CREATE PROCEDURE stu_info sno char(8) AS select * from students where sno=sno 3、 修改学生个人信息 stu_update CREATE PROCEDURE stu_update sno char(8),sex char(20),bsd char(10),dep varchar(20) AS update students set sex=sex,bsd=bsd,dep=dep where sno=sno4) 程序代码using System.Data.SqlClient;namespace stu_inf_adm_systempublic partial class stuform : Form public int type=-1; public string username=; /接收由lonin窗体程序中定义的参数 public string psd=; string str = Data Source=;Initial Catalog=Student;Integrated Security=true; SqlConnection conn = new SqlConnection(); SqlCommand cmd = new SqlCommand(); public stuform() InitializeComponent(); private void button2_Click(object sender, EventArgs e) psdmodify psdform = new psdmodify(); psdform.username = username; psdform.password = psd; /继续将参数传递至下一窗体使用 psdform.Show(); private void button4_Click(object sender, EventArgs e) Application.Exit(); private void stuform_Load(object sender, EventArgs e) conn.ConnectionString = str; string sql; cmd.Connection = conn; /显示学生选课记录 sql = exec stu_course + username + ; cmd.CommandText = sql; SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); conn.Open(); da.Fill(ds); conn.Close(); dataGridView1.DataSource = ds.Tables0.DefaultView; /显示个人信息 conn.Open(); sql = exec stu_info + username + ; cmd.CommandText = sql; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() = true) label3.Text = dr2.ToString(); label5.Text = dr0.ToString(); textBox1.Text = dr3.ToString(); textBox2.Text = dr4.ToString(); textBox3.Text = dr8.ToString(); /将返回值逐个填入对应控件显示 dr.Close(); conn.Close(); private void button1_Click(object sender, EventArgs e) conn.ConnectionString = str; string sql; cmd.Connection = conn; sql = exec stu_update + username + , + textBox1.Text + , + textBox2.Text + , + textBox3.Text + ; /执行存储过程 cmd.CommandText = sql; conn.Open(); cmd.ExecuteNonQuery(); /无返回参数的方法(用于insert,update等) conn.Close(); MessageBox.Show(个人信息修改成功!); private void button3_Click(object sender, EventArgs e) sc scform = new sc(); scform.Show(); (3) 密码修改界面 psdmodify1) 窗体截图 图9 学生密码修改界面2) 控件属性控件名称属性属性值labeltext密码修改、请输入您的当前密码:、请输入新密码:、请再次输入新密码:textboxbottontext确定修改、退出3) 用SQL创建存储过程 学生密码修改 passwordmodify CREATE PROCEDURE passwordmodify psd varchar(16), sno char(8) AS update students set psd=psd where sno=sno4) 程序代码using System.Data.SqlClient;namespace stu_inf_adm_system public partial class psdmodify : Form public int type = -1; public string username = ; public string password = ; string str = Data Source=;Initial Catalog=Student;Integrated Security=true; SqlConnection conn = new SqlConnection(); private void button1_Click(object sender, EventArgs e) if (password = textBox1.Text) if (textBox2.Text = textBox3.Text) conn.ConnectionString = str; string sql = exec passwordmodify + textBox2.Text + , + username + ; SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show(修改密码成功!); else MessageBox.Show(您输入的新密码不对,请重新输入!); else MessageBox .Show (原密码输入有误,无法修改密码); private void button2_Click(object sender, EventArgs e) this.Close(); (4) 选课界面 sc1)窗体截图 图10 学生选课界面2) 控件属性控件名称属性属性值datagridviewbottontext确定选课、取消3) 用SQL创建存储过程学生选课 sc CREATE PROCEDURE sc sno char(8), cno char(8) AS insert into courselect(sno,cno) values(sno,cno)4) 程序代码using System.Data.SqlClient;namespace stu_inf_adm_system public partial class sc : Form public string username = ; string str = Data Source=;Initial Catalog=Student;Integrated Security=true; SqlConnection conn = new SqlConnection(); SqlCommand cmd = new SqlCommand(); private void sc_Load(object sender, EventArgs e) conn.ConnectionString = str; cmd.Connection = conn; string sql = select * from course; cmd.CommandText = sql; SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); conn .Open (); da.Fill(ds); conn.Close(); dataGridView1.DataSource = ds.Tables0.DefaultView; private void button1_Click(object sender, EventArgs e) string cno=dataGridView1.SelectedCells0.Value.ToString(); conn.ConnectionString = str; string sql; cmd.Connection = conn; sql = exec sc + username + , + cno + ; cmd.CommandText = sql; conn.Open(); cmd.ExecuteNonQuery (); conn.Close(); MessageBox.Show(选课成功!); private void button2_Click(object sender, EventArgs e) this.Close(); 5) 选课成功界面 图11 选课成功界面(2) 教师功能界面(1) 登录成功后界面 teacherform1) 窗体截图 图12 教师登录后界面2) 控件属性控件名称属性属性值labeltext您的个人信息:、姓名:、教师编号:、性别:、职称:、系别:、修改个人信息:textboxbottontext确定修改、修改密码、输入学生成绩、退出3) 用SQL创建存储过程1、 显示教师个人信息 teacher_info CREATE PROCEDURE teacher_info tno char(8) AS select * from teacher where tno=tno 2、 修改教师个人信息 teacher_update CREATE PROCEDURE teacher_update tno char(8),sex char(20),pro varchar(10),dep varchar(20) AS update teacher set sex=sex,pro=pro,dep=dep where tno=tno4) 程序代码using System.Data.SqlClient;namespace stu_inf_adm_system public partial class teacherform : Form public int type = -1; public string username = ; public string psd = ; string str = Data Source=;Initial Catalog=Student;Integrated Security=true; SqlConnection conn = new SqlConnection(); SqlCommand cmd = new SqlCommand(); private void button2_Click(object sender, EventArgs e) tpadmodify psdform = new tpadmodify (); psdform.username = username; psdform.password = psd; psdform.Show(); private void button4_Click(object sender, EventArgs e) Application.Exit(); private void teacherform_Load(object sender, EventArgs e) conn.ConnectionString = str; string sql; cmd.Connection = conn; /显示个人信息 conn.Open(); sql = exec teacher_info + username + ; cmd.CommandText = sql; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() = true) label3.Text = dr2.ToString(); label5.Text = dr0.ToString(); textBox1.Text = dr3.ToString(); textBox2.Text = dr5.ToString(); textBox3.Text = dr8.ToString(); dr.Close(); conn.Close(); private void button1_Click(object sender, EventArgs e) conn.ConnectionString = str; string sql; cmd.Connection = conn; sql = exec teacher_update + username + , + textBox1.Text + , + textBox2.Text + , + textBox3.Text + ; cmd.CommandText = sql; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show(个人信息修改成功!); private void button3_Click(object sender, EventArgs e) gradeinput gradeform = new gradeinput(); gradeform.username = username; gradeform.Show(); (2) 密码修改界面 tpsdmodify1) 窗体截图 图13 密码修改界面2) 控件属性控件名称属性属性值labeltext密码修改、请输入您的当前密码:、请输入您的新密码:、再次输入新密码:textboxbottontext确定修改、退出3) 用SQL创建存储过程 教师密码修改 tpsdmodify CREATE PROCEDURE tpsdmodify psd varchar(16),tno char(8) AS update teacher set psd=psd where tno=tno4) 程序代码using System.Data.SqlClient; namespace stu_inf_adm_system public partial class tpadmodify : Form public int type = -1; public string username = ; public string password = ; string str = Data Source=;Initial Catalog=Student;Integrated Security=true; SqlConnection conn = new SqlConnection();private void button1_Click(object sender, EventArgs e) if (password = textBox1.Text) if (textBox2.Text = textBox3.Text) conn.ConnectionString = str; string sql = exec tpsdmodify + textBox2.Text + , + username + ; SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show(修改密码成功!); else MessageBox.Show(您输入的新密码不对,请重新输入!); else MessageBox.Show(原密码输入有误,无法修改密码); private void button2_Click(object sender, EventArgs e) this.Close(); (3) 输入学生成绩界面 gradeinput 1)窗体截图 图14 成绩输入界面2) 控件属性控件名称属性属性值labeltext成绩输入界面datagridviewbottontext确定输入、退出3) 用SQL创建存储过程1、输入学生成绩界面的教师授课信息显示 grade_update CREATE PROCEDURE grade_update tno char(8) AS select teach.tno,o,courselect.sno,courselect.grade,courselect.state from teach,courselect where tno=tno and o=o2、成绩更新 grade_new CREATE procedure grade_new sno char(8), cno char(8), grade int, state varchar(10) AS update courselect set grade=grade,state=state where sno=sno and cno=cno(4) 程序代码using System.Data.SqlClient;namespace stu_inf_adm_system public partial class gradeinput : Form public string username = ; string str = Data Source=;Initial Catalog=Student;Integrated Security=true; SqlConnection conn = new SqlConnect

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论