用C#语言和SQL设计简单教务管理系统.docx
- 文档编号:8504802
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:64
- 大小:1.81MB
用C#语言和SQL设计简单教务管理系统.docx
《用C#语言和SQL设计简单教务管理系统.docx》由会员分享,可在线阅读,更多相关《用C#语言和SQL设计简单教务管理系统.docx(64页珍藏版)》请在冰豆网上搜索。
用C#语言和SQL设计简单教务管理系统
课程设计报告
课程名称:
C#程序设计课程设计
设计题目:
教务管理系统
姓名:
学号:
专业:
班级:
设计日期:
指导教师:
(一)定义一个数据库连接类DataBaseLink…………………………………………………………17
(二)定义一个登录类Denglu……………………………………………………………………………18
(三)定义用户类…………………………………………………………………………………………………19
(四)Program类……………………………………………………………………………………………………27
(五)登录界面login……………………………………………………………………………………………28
(六)系统主界面mainform…………………………………………………………………………………30
(七)学生功能部分………………………………………………………………………………………………32
(八)教师功能部分………………………………………………………………………………………………39
实验总结…………………………………………………………………………………………………………………52
第一章教务管理系统综述
描述教务管理系统业务
教务管理系统主要由学生、教师和系统管理员组成,是对学校所有学生和教师信息管理的系统。
系统管理员实现对教师信息、课程信息、学生信息和学生成绩进行查询、添加、删除和修改操作。
学生实现对学生个人信息的查询及个人信息和登录密码的修改,网上选课,查询课表,查询个人成绩。
教师实现对教师个人信息的查询及个人信息和登录密码的修改,授课表的查询,对学生成绩的录入和修改操作。
第二章需求获取
2.1标识参与者:
管理员、教师、学生
2.2标识场景:
(1)系统管理员:
实现对教师信息、课程信息、学生信息和学生成绩进行查询、添加、删除和修改操作。
(2)学生实现对学生个人信息的查询及个人信息和登录密码的修改,网上选课,查询课表,查询个人成绩。
(3)教师:
实现对教师个人信息的查询及个人信息和登录密码的修改,授课表的查询,对学生成绩的录入和修改操作。
2.3标识用例
用例1:
学生登录教务管理系统
参与者:
学生
主事件流1:
(1)学生启动教务管理系统打开登录界面
(2)学生在登录界面上选择角色“学生”按钮
(3)学生在登录界面上相应处输入用户名和登录密码
(4)学生点击“登录”按钮
(5)系统确认用户信息
(6)显示登录成功信息学生登录成功,用例结束
用例2:
教师登录教务管理系统
参与者:
教师
主事件流2:
(1)教师启动教务管理系统打开登录界面
(2)教师在登录界面上选择角色“教师”按钮
(3)教师在登录界面上相应处输入用户名和登录密码
(4)教师点击“登录”按钮
(5)系统确认用户信息
(6)显示登录成功信息教师登录成功,用例结束
备用事件流1:
(2)a用户名不存在或登录密码错误无法登录时返回登录界面重新输入用户名和登录密码
2.4基本用例图
图1教务管理系统基本用例模型图
2.5系统组成模块图
图2
图3
图4
图5
第三章对象建模
3.1标识术语
术语即为候选对象
1、教务管理系统面向的对象
学生、教师
2、各用户对数据的操作
学生:
查询个人基本信息、选课、查询个人选课记录及成绩、修改个人密码;
教师:
查询个人基本信息、修改个人密码、输入学生成绩;
3.2标识对象的属性及方法
绘制对象图(类图)
(1)E-R图
1、分E-R图
图6学生实例E-R图
图7教师实例E-R图
图8课程实例E-R图
2、总E-R图
mn
mn
图9E-R图
(2)逻辑结构设计(将E-R图转换成关系模式)
由实体集的转换规则可知:
一个实体集转换为关系模型中的一个关系,实体集的属性就是关系的属性,实体的码的就是关系的码,关系的结构就是关系模式。
因此可得如下三个关系模式:
学生(姓名学号密码性别年龄所在系班级)
教师(姓名教师编号密码性别教龄所在系)
课程(课程号课程名称学时学分)
由总E-R图可知学生与课程之间是多对多的关系,因此要多产生一个关系,其中新关系的码是学生的码和课程的码的结合;
同理,教师与课程之间也要产生一个新关系,新关系的码是教师的码和课程的码的结合。
因此可得如下两个关系模式:
选课(学号课程号成绩状态)
授课(教师编号课程号上课时间上课地点)
(3)数据库物理结构设计(将关系模式转换成关系)
1)表的结构
1、学生表(STable)
图10
2、教师表(TTable)
图11
3、课程表(course)
图12
4、选课表(courselect)
图13
5、授课表(teach)
图14
(4)各表的内容
1、(学生表)STable:
图15
2、(教师表)TTable
图16
3、(课程表)course
图17
4、(选课表)courselect
图18
5、(授课表)teach
图19
第四章对象模型、窗体的设计及结构
(一)学生功能部分
(1)登录界面login
1)窗体截图
图20登录窗体
2)控件属性
控件名称
属性
属性值
label
text
欢迎使用教务管理系统、角色、用户名:
、密码:
radiobotton
text
学生、教师
textbox
botton
text
登录、退出
(2)系统主界面mainform
1)窗体截图
图21系统主窗体
2)控件属性
控件名称
属性
属性值
panel
text
botton
text
学生管理、教师管理、退出系统
splitContainer
text
(3)学生界面stuform
1)窗体截图
图22学生登录后的界面
2)控件属性
控件名称
属性
属性值
label
text
学生个人信息:
、姓名:
、编号:
、性别:
、年龄:
、系别:
、班级:
、选课记录:
、修改个人信息:
textbox
datagridview
botton
text
密码修改、确定修改、选课、退出
(4)密码修改界面psdmodify
1)窗体截图
图23学生密码修改界面
2)控件属性
控件名称
属性
属性值
label
text
学生密码修改、请输入当前密码:
、请输入新密码:
、请再次输入新密码:
textbox
botton
text
确定修改、退出
(5)选课界面sc
1)窗体截图
图24学生选课界面
2)控件属性
控件名称
属性
属性值
label
text
学生选课界面
datagridview
botton
text
确定选课、取消
(二)教师功能部分
(1)系统主界面mainform
1)窗体截图
图25系统主窗体
2)控件属性
控件名称
属性
属性值
panel
text
botton
text
学生管理、教师管理、退出系统
splitContainer
text
(2)登录成功后界面teacherform
1)窗体截图
图26教师登录后界面
2)控件属性
控件名称
属性
属性值
label
text
教师个人信息:
、姓名:
、编号:
、性别:
、教龄:
、系别:
、修改个人信息:
textbox
botton
text
修改密码、确定修改、输入学生成绩、退出
(3)密码修改界面tpsdmodify
1)窗体截图
图27密码修改界面
2)控件属性
控件名称
属性
属性值
label
text
教师密码修改、请输入当前密码:
、请输入新密码:
、请再次输入新密码:
textbox
botton
text
确定修改、退出
(4)输入学生成绩界面gradeinput
1)窗体截图
图28成绩输入界面
2)控件属性
控件名称
属性
属性值
label
text
学生成绩输入界面
datagridview
botton
text
确定输入、退出
第五章编码
完成所有类的功能
(一)定义一个数据库连接类DataBaseLink
代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication2
{
classDataBaseLink
{
publicstringstr=@"DataSource=.\sqlexpress;InitialCatalog=EducationManageSystem;UserID=sa;Password=123456";
publicSqlConnectionDataLink()
{
SqlConnectioncon=newSqlConnection(str);
returncon;
}
}
}
(二)定义一个登录类Denglu
代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Windows.Forms;
usingConsoleApplication2;
namespaceWindowsFormsApplication2
{
classDenglu
{
publicDataSetRst1=newDataSet();
publicDataSetRst2=newDataSet();
privateDataTableSTable;
privateDataTableTTable;
privateDataRowSRow;
privateDataRowTRow;
SUsersuser=newSUser();
TUsertuser=newTUser();
publicboolSUserConfirm(stringsname,stringspsd)
{
Rst1=suser.GetData(null);
STable=Rst1.Tables[0];
for(inti=0;i { this.SRow=STable.Rows[i]; STable.Columns.Remove(STable.Columns[1]); if(SRow[1].ToString().Trim()==sname&&SRow[2].ToString().Trim()==spsd) { mainform.blCanLogin=true; break; } } returntrue; } publicboolTUserConfirm(stringtname,stringtpsd) { Rst2=tuser.GetData(null); TTable=Rst2.Tables[0]; for(inti=0;i { this.TRow=TTable.Rows[i]; TTable.Columns.Remove(TTable.Columns[1]); if(TRow[1].ToString().Trim()==tname&&TRow[2].ToString().Trim()==tpsd) { mainform.blCanLogin=true; break; } } returntrue; } publicstringpsd{get;set;} publicstringusername{get;set;} } } (三)定义用户类 (1)学生用户类SUser 代码 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Data; usingSystem.Data.SqlClient; usingSystem.Windows.Forms; namespaceWindowsFormsApplication2 { publicclassSUser { DataBaseLinkdb=newDataBaseLink(); publicvoidAdd(String[]st) { using(SqlConnectioncon=db.DataLink()) { if(con.State==ConnectionState.Closed) { con.Open(); } try { stringsql="InsertintoSTable(sname,sno,ssex,sage,sdep,cla)Values(@sname,@sno,@ssex,@sage,@sdep,@cla)";//查询语句同学也可以参考教材上的例子编括写 SqlCommandcmd=newSqlCommand(sql,con); SqlParameterp1=newSqlParameter("@sname",st[0]); SqlParameterp2=newSqlParameter("@sno",st[1]); SqlParameterp3=newSqlParameter("@ssex",st[2]); SqlParameterp4=newSqlParameter("@sage",st[3]); SqlParameterp5=newSqlParameter("@sdep",st[4]); SqlParameterp6=newSqlParameter("@cla",st[5]); cmd.Parameters.Add(p1); cmd.Parameters.Add(p2); cmd.Parameters.Add(p3); cmd.Parameters.Add(p4); cmd.Parameters.Add(p5); cmd.Parameters.Add(p6); cmd.ExecuteNonQuery(); MessageBox.Show("信息添加成功! "); } catch(Exceptionex) { MessageBox.Show("错误: "+ex.Message,"错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error); } finally { if(con.State==ConnectionState.Open) { con.Close(); con.Dispose(); } } } } publicDataSetGetData(stringst) { DataSetds=newDataSet("STable"); using(SqlConnectioncon=db.DataLink()) { if(con.State==ConnectionState.Closed) { con.Open(); } try { stringsql="Select*FromSTable"; SqlDataAdaptersqlda=newSqlDataAdapter(sql,con); sqlda.Fill(ds); } catch(Exceptionex) { MessageBox.Show("错误: "+ex.Message,"错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error); } finally { if(con.State==ConnectionState.Open) { con.Close(); con.Dispose(); } } } returnds; } publicvoidDelete(stringid) { using(SqlConnectioncon=db.DataLink()) { if(con.State==ConnectionState.Closed) { con.Open(); } try { stringsql="DeleteFromSTableWheresno="+"'"+id+"'"; SqlCommandcomd=newSqlCommand(sql,con); comd.ExecuteNonQuery(); } catch(Exceptionex) { MessageBox.Show("错误: "+ex.Message,"错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error); } finally { if(con.State==ConnectionState.Open) { con.Close(); con.Dispose(); } } } } publicvoidUpdata(String[]st,stringid) { using(SqlConnectioncon=db.DataLink()) { if(con.State==ConnectionState.Closed) { con.Open(); } try { stringsql="UpdateSTablesetsname=@sname,sno=@sno,ssex=@ssex,sage=@sage,sdep=@sdep,cla=@clawheresno="+"'"+id+"'"; SqlCommandcmd=newSqlCommand(sql,con); SqlParameterp1=newSqlParameter("@sname",st[0]); SqlParameterp2=newSqlParameter("@sno",st[1]); SqlParameterp3=newSqlParameter("@ssex",st[2]); SqlParameterp4=newSqlParameter("@sage",st[3]); SqlParameterp5=newSqlParameter("@sdep",st[4]); SqlParameterp6=newSqlParameter("@cla",st[5]); cmd.Parameters.Add(p1); cmd.Parameters.Add(p2); cmd.Parameters.Add(p3); cmd.Parameters.Add(p4); cmd.Parameters.Add(p5); cmd.Parameters.Add(p6); cmd.ExecuteNonQuery(); } catch(Exceptionex) { MessageBox.Show("错误: "+ex.Message,"错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error); } finally { if(con.State==ConnectionState.Open) { con.Close(); con.Dispose(); } } } } } } (2)教师用户类TUser 代码 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Data; usingSystem.Data.SqlClient; usingSystem.Windows.Forms; namespaceWindowsFormsApplication2 { publicclassTUser { DataBaseLinkdb=newDataBaseLink(); publicvoidAdd(String[]st) { using(SqlConnectioncon=db.DataLink()) { if(con.State==ConnectionState.Closed) { con.Open(); } try { stringsql="InsertintoTTable(tname,tno,tsex,tage,tdep)Values(@tname,@tno,@tsex,@tage,@tdep)";//查询语句同学也可以参考教材上的例子编括写 SqlCommandcmd=newSqlCommand(sql,con); SqlParameterp1=newSqlParameter("@tname",st[0]); SqlParameterp2=newSqlParame
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 语言 SQL 设计 简单 教务 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)