兰州商学院网络教务管理系统.docx
- 文档编号:25041319
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:35
- 大小:594.42KB
兰州商学院网络教务管理系统.docx
《兰州商学院网络教务管理系统.docx》由会员分享,可在线阅读,更多相关《兰州商学院网络教务管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
兰州商学院网络教务管理系统
兰州商学院教学管理系统设计
课程名称:
管理信息系统分析与设计
班级:
09信管一班
姓名:
任志雄
学号:
一、概述
1.1项目背景---------------------------------------------------------3
1.2编写目的---------------------------------------------------------3
1.3开发环境---------------------------------------------------------4
二、需求分析
2.1信息要求-----------------------------------------------------------4
2.2处理要求-----------------------------------------------------------4
2.3安全性与完整性要求-------------------------------------------6
三、概要设计
3.1系统功能图---------------------------------------------------------7
四、概念结果设计
4.1基本E-R图设计----------------------------7
五、逻辑结构设计
5.1E-R图的转换----------------------------------------------------9
六、主要模块的设计以及代码---------------------11
6.1登录模块设计-----------------------------------------------------12
6.2管理员、教师、学生模块设计------------------------------13
6.3存储过程-----------------------------------------------------------28
七、总结
7.1遇到的问题以及解决方法---------------------29
7.2设计的体会-------------------------------------------------------30
一、概述
1.1项目背景
随着科学技术、管理方法的不断进步,传统的方式、方法和手段已经不能适应现代化管理的需要,作为培养高质量合格人才为宗旨的高等学校,总是走在科技的最前沿,教学管理的计算机化已成为高校管理现代化、决策科学化的一个重要环节,是开创教学管理工作新局面的必由之路。
教学管理系统是一个辅助学校教务人员完成日常工作中,涉及学籍管理、教师管理、课程管理和成绩管理等项目的日常比较繁重的工作。
它应用计算机在数据处理和数据整理保存方面的优异性能,帮助工作人员提高工作的效率、减少出错情况。
同时还能提供快速的查询检索功能。
1.2编写目的
本系统的设计旨在实现管理员、教师以及学生对信息的查询、修改以及更新提供便利性。
教学管理系统是一个辅助学校教务人员完成日常工作中,涉及教师管理、课程管理和成绩管理等项目的日常比较繁重的工作。
它应用计算机在数据处理和数据整理保存方面的优异性能,帮助工作人员提高工作的效率、减少出错情况。
1.3开发环境
经过思考和选择,决定以.netC#来实现本系统。
二、需求分析
2.1信息要求
本次系统设计主要需要的信息如下所示,这些信息都是以表的形式存在数据库中,当需要输入、删除、修改等信息时可以通过执行SQL语句来实现。
1、学生信息:
学号、姓名、性别、出生日期、入学成绩、所在系号。
2、教职工信息:
职工号、姓名、性别、出身年月、所在系号、职称、专业及教学方向。
3、系的基本信息:
系号、系名称、系的简介。
4、课程信息:
课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间。
5、成绩信息:
学号、课程号、平时成绩、考试成绩、总评成绩。
2.2处理要求
1、学生基本信息管理
新生信息录入、学生信息修改:
按学号查询出某学生的信息并做信息修改。
学生转学(转入和转出),学生毕业等。
毕业和转学的学生有关信息存储到历史库中。
2、系基本信息管理:
系的基本信息输入、修改、删除
3、课程信息管理:
课程信息的输入、修改、删除
4、教职工信息管理:
教职工信息的输入、修改、删除
5、选课管理:
每学期所选课程的学分不能超过15分、学生可以同时选修一门或多门课程、可以同时为多个学生选修某一门或某几门课程、删除和修改选课信息。
6、成绩管理:
按课程输入和修改成绩、按学生输入和修改成绩。
7、信息查询:
按学号、姓名、系号查询学生基本信息。
按职工号、姓名、系号查询教职工基本信息。
按系号、系名称查询系的基本信息。
按课程号、课程名称、上课教师姓名查询课程基本信息。
按学号、学生姓名、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。
若查询涉及多门课程,则按课程分组。
每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)。
8、统计报表
成绩登记表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)、选课学生名单(学号、姓名、性别),每个学生的平时成绩(空格)、考试成绩(空格)和总评成绩(空格),按学号排序:
顺序输出所有课程的成绩登记表。
按课程号、课程名称、教师姓名输出对应课程的成绩登记表。
按系号输出对应课程的成绩登记表(本系所有教师担任的课程)。
成绩报表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩,>=90分、>=80分、、>=70分、>=60分及不及格学生的人数及比例,按学号排序:
顺序输出所有课程的成绩报表。
(报表格式自己订制,可以参考学校的系统的输出格式)
按课程号、课程名称、教师姓名输出对应课程的成绩报表。
按系号输出对应课程的成绩报表(本系所有教师担任的课程)。
2.3安全性与完整性要求
在数据库中,各个表之间是有联系的,它们存在着参照完整性,在删除数据时,要考虑到一个表中的数据删除的同时也要删除另一个表中对应的数据项。
三、概要设计
3.1系统功能图结构
兰州商学院教学管理系统的功能结构图如下:
四、概念结果设计
4.1基本E-R图设计
E-R图设计:
E-R图中实体有:
教师、学生、系部、课程
实体属性
学生:
学号、姓名、性别、出生日期、入学成绩、所在系号
教师:
职工号、姓名、性别、出身年月、所在系号、职称、专业及教学方向
系:
系号、系名称、系的简介
课程:
课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间
其中各个之间的关系如下:
学生可以选多个课程,一个课程可以被多个学生选修。
学生存在一个系中,一个系可以存在多个学生。
一个教师可以教多个课程,一个课程可以被多个教师教。
一个教师只能在一个系中,一个系中可以有多个教师。
学生:
学生
学号
姓名
性别
出生日期
所在系号
入学成绩
教师:
教师
职工号
姓名
性别
出生日期
职称
所在系号
专业及教学方向
系:
系
系号
系名
系简介
课程:
课程
课程号
课程名
教师号
学时
上课时间
学分
上课地点
考试时间
全局E-R图:
五、逻辑结构设计
5.1E-R图的转换
表一览:
Account(用户登录表)、Course(课程表)、Student(学生表)、Teacher(教师表)、Dept(系表)、Grades(成绩表)。
表结构:
1、Account(用户登录表)
2、Course(课程表)
3、Student(学生表)
4、Teacher(教师表)
5、Dept(系表)
6、Grades(成绩表)
六、主要模块的设计以及代码
在本系统中,为方便对数据库的连接、SQL语句的执行以及数据库的关闭。
本程序封装了一个SQLDatabase类,类中定义了一系列的函数来完成数据库的连接等操作。
代码及说明如下:
classSQLDatabase
{ publicSqlConnectionSQLConnection;
publicSqlCommandMyCommand;
publicSqlDataAdaptersdr;
staticpublicstringServerIP;
publicvoidGetServerIP(stringIP)
ServerIP=IP;
publicvoidSQLDataConnectionOpen()
{//本函数完成对数据库的连接
SQLConnection=newSqlConnection();
SQLConnection.ConnectionString="Server="+ServerIP+";Userid=sa;pwd=;DataBase=TeachingManagementSystem";
SQLConnection.Open();}
publicvoidSQLDataConnectionClose()//实现数据库的关闭
SQLConnection.Close();
publicintSQLExecuteNonQuery(stringstr)
{//ExecuteNonQuery方法:
执行不返回结果的命令
MyCommand =newSqlCommand(str,SQLConnection);
returnMyCommand.ExecuteNonQuery();}
publicobjectSQLExecuteScalar(stringstr)
{//只返回结果集中第一行的第一列
MyCommand=newSqlCommand(str,SQLConnection);
returnMyCommand.ExecuteScalar();}
publicSqlDataAdapterSQLDataAdapter(stringstrCmd)
{
sdr=newSqlDataAdapter(strCmd,SQLConnection);
returnsdr;}
public SqlDataReaderSQLExecuteReader(stringstrCmd)
{//执行返回数据集的Select语句,返回一个DataReader对象
MyCommand=newSqlCommand(strCmd,SQLConnection);
SqlDataReadersdr=MyCommand.ExecuteReader();
returnsdr;
}
}
6.1登录模块设计
在本程序的登录模块中,当用户输入用户名、密码及其登录权限后,会对数据与数据库的数据进行对比,若相同则进入相应的权限界面,以进行相应的操作。
登录界面如下图所示:
登录按钮的单击消息响应:
当用户输入用户名、密码,单击登录按钮后,数据会与数据库的数据进行对比,若相同则通过,否则会提示用户相应的错误报告。
代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(string.IsNullOrEmpty(textBox1.Text))
{MessageBox.Show("用户名不能为空,请输入用户名!
","提示");
textBox1.Focus();return;}
elseif((string.IsNullOrEmpty(textBox2.Text))
{MessageBox.Show("密码不能为空,请输入密码!
","提示");
textBox2.Focus();return;}
}
stringidentity="0";
if(radioButton1.Checked)
identity="3";
elseif(radioButton2.Checked)
identity="2";
elseif(radioButton3.Checked)
identity="1";
SQLDatabaseSQLConn=newSQLDatabase();
SQLConn.GetServerIP(textBox1.Text);
SQLConn.SQLDataConnectionOpen();
stringstrCmd="select*fromAccountwhereAname='"+textBox2.Text+"'andApassword='"+textBox3.Text+"'"+"andApermissions='"+identity+"'";
SqlDataReadersdr=SQLConn.SQLExecuteReader(strCmd);
intn=0;
while(sdr.Read())
{
n=1;
Form2form2=newForm2(identity,textBox1.Text);
form2.Show();this.Hide();
}
if(n==0)
{MessageBox.Show("没有此用户!
\n或者用户名或密码错误!
\n请重新输入或者注册当前用户!
","提示");
label6.Text=ProduceCheckCode();}
sdr.Close();
SQLConn.SQLDataConnectionClose();
}
6.2管理员、教师、学生模块设计
本程序的操作端是通过TabControl控件实现的,各个tabPage页都放在了一个对话框上,对于不同的登录权限,会在对话框的初始化函数中通过调用tabControl1.TabPages.Remove();函数来实现某个tabPage页的隐藏,以体现不同的权限功能。
所以这里只需要对管理员端的各个操作进行说明即可,整个界面如下图所示:
tabPage1:
学生管理
在学生管理页面中,管理员可以对学生信息进行查询、删除、修改、录入、及其转学/毕业操作等。
另外,各个表之间是有联系的,当删除一个学生的信息后,如果此学生选了课,并且有了成绩,系统会同时把此学生的选课记录、成绩记录删除。
当录入一个学生的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该学生的信息,若存在提示不能重复。
其录入按钮的单击消息相应函数代码为:
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("学号不能为空,请输入学号!
","提示");
textBox1.Focus();return;
}
elseif(string.IsNullOrEmpty(textBox2.Text))
{MessageBox.Show("姓名不能为空,请输入姓名!
","提示");
textBox2.Focus();return;
}
stringsex="";
if(radioButton1.Checked)
sex="男";
elseif(radioButton2.Checked)
sex="女";
SQLDatabaseSQLConn=newSQLDatabase();
SQLConn.GetServerIP(SerIP);
SQLConn.SQLDataConnectionOpen();
stringstrCmd;
stringstrCmd2;
stringstrCmd3;
strCmd="insertintoStudentvalues('"+textBox1.Text+"','"+textBox2.Text+"','"+sex+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"');";
strCmd2="select*fromStudentwhereSno='"+textBox1.Text+"';";
strCmd3="select*fromDeptwhereDno='"+textBox5.Text+"';";
objectob=SQLConn.SQLExecuteScalar(strCmd2);
if(Convert.ToString(ob)!
="")
{
MessageBox.Show("已存在学号为"+textBox1.Text+"的信息!
\n请重新输入!
","提示");
textBox1.Text="";textBox2.Text="";
textBox3.Text="";textBox4.Text="";
textBox5.Text="";
textBox1.Focus();
SQLConn.SQLDataConnectionClose();
return;
}
objectob1=SQLConn.SQLExecuteScalar(strCmd3);
if(Convert.ToString(ob1)=="")
{
if(textBox5.Text!
="")
{
MessageBox.Show("不存在系号为"+textBox5.Text+"的系信息!
\n请重新输入!
","提示");
textBox5.Text="";textBox5.Focus();
}
SQLConn.SQLDataConnectionClose();
return;
}
SQLConn.SQLExecuteNonQuery(strCmd);
MessageBox.Show("录入成功!
","提示");
//控件清空!
textBox1.Text="";textBox2.Text="";
textBox3.Text="";textBox4.Text="";
textBox5.Text="";textBox1.Focus();
SQLConn.SQLDataConnectionClose();
button5_Click(sender,e);
}
tabPage2:
系管理
在系管理页面中,管理员可以对系的信息进行查询、删除、修改、输入。
另外,各个表之间是有联系的,当删除一个系的信息后,在该系的所有学生记录会同时删除,与此相应的选课、成绩记录也会被删除。
当录入一个系的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该系的信息,若存在提示不能重复。
其输入按钮的单击消息相应函数代码为:
privatevoidbutton7_Click(objectsender,EventArgse)
{
if(textBox7.Text=="")
{string.IsNullOrEmpty(textBox7.Text)
MessageBox.Show("系号不能为空,请输入系号!
","提示");
textBox7.Focus();return;
}
elseif(string.IsNullOrEmpty(textBox8.Text))
{
MessageBox.Show("系名不能为空,请输入系名!
","提示");
textBox8.Focus();return;
}
SQLDatabaseSQLConn=newSQLDatabase();
SQLConn.GetServerIP(SerIP);
SQLConn.SQLDataConnectionOpen();
stringstrCmd;
stringstrCmd2;
strCmd="insertintoDeptvalues('"+textBox7.Text+"','"+textBox8.Text+"','"+textBox9.Text+"');";
strCmd2="select*fromDeptwhereDno='"+textBox7.Text+"';";
objectob=SQLConn.SQLExecuteScalar(strCmd2);
if(Convert.ToString(ob)!
="")
{
MessageBox.Show("已存在系号为"+textBox7.Text+"的信息!
\n请重新输入!
","提示");
textBox7.Text="";textBox8.Text="";
textBox9.Text="";textBox7.Focus();
SQLConn.SQLDataConnectionClose();
return;
}
else
SQLConn.SQLExecuteScalar(strCmd);
MessageBox.Show("输入成功!
","提示");
//控件清空!
textBox7.Text="";textBox8.Text="";
textBox9.Text="";textBox7.Focus();
SQLConn.SQLDataConnectionClose();
button10_Click(sender,e);
}
tabPage3:
课程管理
在课程管理页面中,管理员可以对课程信息进行查询、删除、修改、输入。
另外,各个表之间是有联系的,当删除一个课程的信息后,选择此课程的选课记录,成绩记录也会被同时删除。
当录入一个课程的信息时,系统提供了判断机制,系统会先检查数据库中是否已存在该课程的信息,若存在提示不能重复。
其输入按钮的单击消息相应函数代码为:
privatevoidbutton12_Click(objectsender,EventArgse)
{
if(string.IsNullOrEmpty(textBox10.Text))
{
MessageBox.Show("课程号不能为空,请输入课程号!
","提示");
textBox10.Focus();
return;
}
elseif(string.IsNullOrEmpty(textBox11.Text))
{
Mess
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兰州 商学院 网络 教务 管理 系统