使用c#和SQL语言设计简单教务管理系统.docx
- 文档编号:8965949
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:22
- 大小:239.50KB
使用c#和SQL语言设计简单教务管理系统.docx
《使用c#和SQL语言设计简单教务管理系统.docx》由会员分享,可在线阅读,更多相关《使用c#和SQL语言设计简单教务管理系统.docx(22页珍藏版)》请在冰点文库上搜索。
一、实验目的
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图
教师
学时
学分
课 程
m
选课
成绩
学生
2、总E-R图
图3 课程实例E-R图
课程号
课程名
n
课程
n
m
授课
时间
地点
教 师
图4E-R图
注:
由于实体属性过多,故将其在E-R图中略去,详细属性见下。
(3)逻辑结构设计(将E-R图转换成关系模式)
由实体集的转换规则可知:
一个实体集转换为关系模型中的一个关系,实体集的属性就是关系的属性,实体的码的就是关系的码,关系的结构就是关系模式。
因此可得如下三个关系模式:
学生(学号密码姓名性别出生年月地址电话邮箱所在系班级)教师(教师编号密码姓名性别出生年月职称电话邮箱所在系)课程(课程号课程名称学时学分)
由总E-R图可知学生与课程之间是多对多的关系,因此要多产生一个关系,其中新关系的码是学生的码和课程的码的结合;
同理,教师与课程之间也要产生一个新关系,新关系的码是教师的码和课程的码的结合。
因此可得如下两个关系模式:
选课(学号课程号成绩状态)
授课(教师编号课程号上课时间上课地点)
(4)数据库物理结构设计(将关系模式转换成关系)
1)表的结构
1、学生表(students)
字段名称
意义
数据类型
数据长度
允许为空
主键
索引
约束条件
外键
sno
学号
char
8
是
是
psd
密码
varchar
16
1、数字、字母
2、默认0000
sn
姓名
varchar
20
sex
性别
char
20
’男’、’女’
bsd
出生年
月
char
10
是
add
地址
varchar
40
是
tel
联系电
话
char
11
是
电子邮
箱
varchar
20
是
dep
系别
varchar
20
cla
班别
char
8
2、教师表(teacher)
字段名称
意义
数据类型
数据长度
允许为空
主键
索引
约束条件
外键
tno
教师编号
char
8
是
是
psd
密码
verchar
16
1、数字、字母
2、默认0000
tn
姓名
verchar
20
’男’、’女’
sex
性别
char
2
bsd
出生年月
char
10
是
pro
职称
verchar
10
tel
联系电话
char
11
是
电子邮箱
verchar
20
是
dep
系别
verchar
10
3、课程表(course)
字段名称
意义
数据类型
数据长度
允许为空
主键
索引
约束条件
外键
cno
课程编号
char
8
是
是
cn
课程名称
verchar
20
ct
学时
int
4
cre
学分
float
8
4、选课表(courselect)
字段名称
意义
数据类型
数据长度
允许为空
主键
索引
约束条件
外键
sno
学号
char
8
是
是
是
cno
课程号
char
8
是
是
是
grade
成绩
int
4
是
state
状态
varchar
10
是
5、授课表(teach)
字段名称
意义
数据类型
数据长度
允许为空
主键
索引
约束条件
外键
tno
教师编号
char
8
是
是
是
cno
课程号
char
8
是
是
是
time
上课时间
char
8
add
上课地点
char
4
2)各表的内容
1、(学生表)students:
2、(教师表)teacher
3、(课程表)course
4、(选课表)courselect
5、(授课表)teach
3)表的约束等
1、学生性别的约束条件Creatrulerule_ssexAs@sexin(‘男’,’女’)
Execsp_bindrule‘rule_ssex’,’students.sex’
2、教师性别的约束条件Creatrulerule_tsexAs@sexin(‘男’,’女’)
Execsp_bindrule‘rule_tsex’,’teacher.sex’
3、学生密码的默认值Createdefaultdef_spsdAs‘000000’
Execsp_bindefault‘def_spsd’,’students.psd’
3、教师密码的默认值Createdefaultdef_tpsdAs‘0000’
Execsp_bindefault‘def_tpsd’,’teacher.psd’
4、窗体设计及功能实现
(一)学生功能部分
(1)登录界面 login1)窗体截图
2)控件属性
图5登录窗体
控件名称
属性
属性值
label
text
欢迎使用教务管理系统、角色、用户名:
、密码
radiobotton
text
学生、教师
textbox
botton
text
登录、退出
:
2)用SQL创建存储过程
1、学生登录 login_stu
CREATEPROCEDURElogin_stu@snochar(8),@psdvarchar(16)ASselectcount(*)
fromstudents
wheresno=@snoandpsd=@psd
2、教师登录 login_teacher
CREATEPROCEDURE login_teacher@tnochar(8),@psdvarchar(16)
ASselectcount(*)fromteacher
wheretno=@tnoandpsd=@psd
3)程序代码
usingSystem.Data.SqlClient; //注意添加此命名空间namespacestu_inf_adm_system
{publicpartialclasslogin:
Form
{tringstr=@"DataSource=127.0.0.1;InitialCatalog=Student;IntegratedSecurity=true";//链接数据库SqlConnectionconn=newSqlConnection();
privatevoidbutton1_Click(objectsender,EventArgse) //登录按钮
{ conn.ConnectionString=str;stringsql="";
if(radioButton1.Checked==true) //学生登录
{ sql="execlogin_stu'"+textBox1.Text+"','"+textBox2.Text+"'";
MessageBox.Show("欢迎您以学生身份登录教务管理系统!
");
SqlCommandcmd=newSqlCommand(sql,conn); //执行sql语句cmd.Connection.Open();
intcount1=(int)cmd.ExecuteScalar(); //返回由存储过程返回的结果(个数)
if(count1>0)
{ stuformmainform=newstuform();mainform.username=textBox1.Text;
mainform.psd=textBox2.Text; //参数传递
mainform.Show();this.Hide();
cmd.Connection.Close(); //关闭链接,以供后面的程序使用
conn.Close();
}}
elseif(radioButton2.Checked==true) //教师登录
{sql="execlogin_teacher'"+textBox1.Text+"','"+textBox2.Text+"'";
MessageBox.Show("欢迎您以教师身份登录教务管理系统!
");SqlCommandcmmd=newSqlCommand(sql,conn); //执行sql语句cmmd.Connection.Open();
intcount2=(int)cmmd.ExecuteScalar();if(count2>0)
{teacherformmainform=newteacherform();mainform.username=textBox1.Text;mainform.psd=textBox2.Text;mainform.Show();
this.Hide();cmmd.Connection.Close();}}
else
{MessageBox.Show("您输入的用户名或密码不正确!
"); //提醒信息
}}
privatevoidbutton2_Click(objectsender,EventArgse)
{this.Close(); } //退出系统
5)登录的其他界面
图6学生登录界面 图7教师登录界面
(2)学生界面 stuform
1)窗体截图
2)控件属性
图8 学生登录后的界面
控件名称
属性
属性值
label
text
您的个人信息:
、姓名:
、学号:
、性别:
、出生年月:
、系别:
、选课记录:
、修改个人信息
textbox
datagridview
botton
text
确定修改、密码修改、选课、退出
:
3)用SQL创建存储过程
1、学生选课记录 stu_courseCREATEPROCEDUREstu_course@snochar(8) AS
selectcourse.*,gradefromcourse,courselect
whereo=oandsno=@sno
2、学生个人信息 stu_infoCREATEPROCEDUREstu_info@snochar(8) AS
select*
fromstudentswheresno=@sno
3、修改学生个人信息 stu_updateCREATEPROCEDUREstu_update
@snochar(8),@sexchar(20),@bsdchar(10),@depvarchar(20) ASupdatestudents
setsex=@sex,bsd=@bsd,dep=@dep wheresno=@sno
4)程序代码
usingSystem.Data.SqlClient;namespacestu_inf_adm_system
{publicpartialclassstuform:
Form
{publicinttype=-1;
publicstringusername=""; //接收由lonin窗体程序中定义的参数publicstringpsd="";
stringstr=@"DataSource=127.0.0.1;InitialCatalog=Student;IntegratedSecurity=true";SqlConnectionconn=newSqlConnection();
SqlCommandcmd=newSqlCommand();publicstuform()
{InitializeComponent();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{ psdmodifypsdform=newpsdmodify();psdform.username=username;
psdform.password=psd; //继续将参数传递至下一窗体使用
psdform.Show();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{Application.Exit();
}
privatevoidstuform_Load(objectsender,EventArgse)
{ conn.ConnectionString=str;stringsql;
cmd.Connection=conn;
sql="execstu_course'"+username+"'";cmd.CommandText=sql;
SqlDataAdapterda=newSqlDataAdapter(sql,conn);DataSetds=newDataSet();
conn.Open();
da.Fill(ds);
//显示学生选课记录
conn.Close();
dataGridView1.DataSource=ds.Tables[0].DefaultView;
conn.Open();
sql="execstu_info'"+username+"'";cmd.CommandText=sql;
SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()==true)
{ label3.Text=dr[2].ToString();label5.Text=dr[0].ToString();textBox1.Text=dr[3].ToString();textBox2.Text=dr[4].ToString();
//显示个人信息
textBox3.Text=dr[8].ToString(); //将返回值逐个填入对应控件显示
}
dr.Close();
conn.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{ conn.ConnectionString=str;stringsql;
cmd.Connection=conn;
sql="execstu_update'"+username+"','"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"'"; //执行存储过程
cmd.CommandText=sql;
conn.Open();
cmd.ExecuteNonQuery(); //无返回参数的方法(用于insert,update等)conn.Close();
MessageBox.Show("个人信息修改成功!
");
}
privatevoidbutton3_Click(objectsender,EventArgse)
{scscform=newsc();scform.Show();
}}}
(3)密码修改界面 psdmodify
1)窗体截图
图9学生密码修改界面
2)控件属性
控件名称
属性
属性值
label
text
密码修改、请输入您的当前密码:
、请输入新密
码:
、请再次输入新密码:
textbox
botton
text
确定修改、退出
3)用SQL创建存储过程
学生密码修改 passwordmodifyCREATEPROCEDUREpasswordmodify@psdvarchar(16),
@snochar(8) AS
update studentssetpsd=@psdwheresno=@sno
4)程序代码
usingSystem.Data.SqlClient;namespacestu_inf_adm_system
{ publicpartialclasspsdmodify:
Form
{ publicinttype=-1;
publicstringusername="";publicstringpassword="";
stringstr=@"DataSource=127.0.0.1;InitialCatalog=Student;IntegratedSecurity=true";SqlConnectionconn=newSqlConnection();
privatevoidbutton1_Click(objectsender,EventArgse)
{if(password==textBox1.Text)
{if(textBox2.Text==textBox3.Text)
{ conn.ConnectionString=str;
stringsql="execpasswordmodify'"+textBox2.Text+"','"+username+"'";SqlCommandcmd=newSqlCommand(sql,conn);
conn.Open();cmd.ExecuteNonQuery();conn.Close();
MessageBox.Show("修改密码成功!
");
}
elseMessageBox.Show("您输入的新密码不对,请重新输入!
");
}
elseMessageBox.Show("原密码输入有误,无法修改密码");
}
privatevoidbutton2_Click(objectsender,EventArgse)
{this.Close();
}}}
(4)选课界面 sc1)窗体截图
2)控件属性
图10学生选课界面
控件名称
属性
属性值
datagridview
botton
text
确定选课、取消
3)用SQL创建存储过程学生选课 sc
CREATEPROCEDUREsc
@snochar(8),
@cnochar(8) AS
insertintocourselect(sno,cno) values(@sno,@cno)
4)程序代码
usingSystem.Data.SqlClient;namespacestu_inf_adm_system
{publicpartialclasssc:
Form
{ publicstringusername="";
stringstr=@"DataSource=127.0.0.1;InitialCatalog=Student;IntegratedSecurity=true";SqlConnectionconn=newSqlConnection();
SqlCommandcmd=newSqlCommand();privatevoidsc_Load(objectsender,EventArgse)
{ conn.ConnectionString=str;cmd.Connection=conn;
stringsql="select*fromcourse";cmd.CommandText=sql;
SqlDataAdapterda=newSqlDataAdapter(sql,conn);DataSetds=newDataSet();
conn.Open();
da.Fill(ds);
conn.Close();
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{ stringcno=dataGridView1.SelectedCells[0].Value.ToString();conn.ConnectionString=str;
stringsql;cmd.Connection=conn;
sql="execsc'"+username+"','"+cno+"'";cmd.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 c# SQL 语言 设计 简单 教务 管理 系统