教务辅助管理系统.docx
《教务辅助管理系统.docx》由会员分享,可在线阅读,更多相关《教务辅助管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
![教务辅助管理系统.docx](https://file1.bdocx.com/fileroot1/2022-11/16/0afda3a3-6fba-418c-99df-be08413e9604/0afda3a3-6fba-418c-99df-be08413e96041.gif)
教务辅助管理系统
课程设计
课程名称:
实训程序设计基础
专业班级:
学生姓名:
学号:
指导教师:
学期:
2010-2011学年第二学期
专业课程设计任务书
学生姓名
专业班级
学号
题目
教务辅助管理系统
课题性质
其它
课题来源
老师
指导教师
同组姓名
无
主要内容
学习掌握并熟练运用C#语言进行程序设计;
学习使用窗体;
根据具体题目进行简单的需求分析,给出设计方案。
任务要求
综合运用和融化所学理论知识,提高分析和解决实际问题的能力,做一个教务辅助管理系统
主要实现以下功能:
1)对上课教师基本信息进行管理。
2)对全院开设的课程进行管理。
3)录入教师基本上课信息。
4)实现自动排课功能。
5)计算工作量
参考文献
《C#程序设计教程》(第二版)电子工业出版社刘浦迎王蓉刘光会
《C#数据库程序设计》清华大学出版社林成春马朝东孟湘来
审查意见
指导教师签字:
教研室主任签字:
年月日
1需求分析
教务辅助管理系统:
是帮助学校进行更好的管理,其中包括教师信息,学生信息和上课信息的查询,录入,添加,修改。
对上课信息进行处理,分析,自动排出课程表。
减轻学校管理的工作量。
1)对上课教师基本信息进行管理。
在系统界面可以对老师的基本信息进行查询,其中包括教师的编号,姓名,年龄,性别,学历
2)对全院开设的课程进行管理。
对于全院的公开课程查询,包括课程的编号,课程名,课程序号,代课教师,
上课教室,学分等。
其中管理员可以对课程内容进行修改,例如增加新的课程等。
学生登录只能查询,不能对其做任何的修改。
3)录入教师基本上课信息。
教师的基本上课信息包括教师编号,教师名,所教课程,上课时间。
学生只能查询不能修改。
4)实现自动排课功能。
在上课信息中,点击按钮,进入选课界面,然后学生进行选课,当选课完毕后,按确定按钮,直接显示课程表。
当所选课程上课时间有冲突时则不能显示课程表。
5)计算工作量。
在每一个界面都将显示,所有记录总数和当前记录所在的位置。
注意显示的是数据库中的记录总数,在插入时,记录总数自动增加,单击保存后才将数据回流到数据库。
2概要设计
数据结构
教师信息表:
教师编号(char(10))不准许为空;
教师姓名(char(10))不准许为空;
性别(char
(2))不准许为空;
学历(char(10))不准许为空;
年龄(int)准许为空;
全员公开课程表:
课程名(char(10))不准许为空;
课程号(char(10))不准许为空;
课程序号(char
(2))不准许为空;
代课老师(char(10))不准许为空;
教室(char(4))不准许为空;
学分(char
(2))不准许为空;
上课信息表:
教师编号(char(10))不准许为空;
教师名(char(10))不准许为空;
课程名(char(10))不准许为空;
星期几(char(6))不准许为空;
第几大节(char(8))不准许为空;
密码表:
T_U_USERNAME(char(10))不准许为空;
T_U_PASSWORD(char(10))不准许为空;
说明:
在上面的数据表中依次将“教师编号”“课程号”“课程名”设置为主键。
⑵模块划分
共划分为四个模块:
第一:
登录模块,当程序运行时,首先进入登陆模块,输入用户名和密码,当密码正确,进入到“选择登陆界面”界面。
三次输入不正确,系统自动退出。
第二:
到达登陆界面可以选择进入“”教师信息“公开课程”“上课信息”,同时也可以退出。
第三:
1、当进入教师信息查询模块时,在此模块中,显示记录总数,当前记录,可对信息全部查询“上一条”“下一条”“首记录”“未记录”“添加”“删除”“保存”“选择查询”“进入课程查询”“进入录入上课信息”“退出”。
进行查看信息。
信息包括教师编号,教师姓名,性别,学历,年龄。
2、当进入公开课查询时,可以查到课程的编号,课程序号,课程名,代课老师,教室,学分等信息。
3、当进入上课信息查询时,可以看到教师编号,教师名,课程名,上课时间等。
说明:
在每个查询界面都有相应的按钮,帮助你查询。
“上一条”“下一条”“首记录”“未记录”还可以进行“选择查询”。
管理员可以进行“添加”“删除”“保存”等功能。
⑶程序总体框架
密码错误3次
密码正确
3详细设计
第一、登陆界面:
单击“确定”有系统判断密码是否正确,则必须先连接到数据库,TABLE_USER表来判断:
stringconnectionString=GetConnectionString();
SqlConnectionconnection=newSqlConnection(connectionString);
SqlCommandcommand=newSqlCommand();
command.CommandText="Select*FromTABLE_USERwhereT_U_USERNAME='"+textBox1.Text.Trim()+"'andT_U_PASSWORD='"+textBox2.Text.Trim()+"';";
connection.Open();
staticprivatestringGetConnectionString()
{
return"IntegratedSecurity=Yes;InitialCatalog=db_jiaowu;Server=d9\\SQLEXPRESS";
}
延时时间为15秒:
command.Connection=connection;
command.CommandTimeout=15;
密码正确进入界面:
Form5f5=newForm5();
F5.Show();
密码不正确进行清空:
this.textBox2.Text="";
this.textBox1.Text="";
this.textBox1.Focus();
密码三次错误自动退出:
interror=0;
if(error>1)
{
Application.Exit();
}
error++;
退出:
this.Close();
第二、选择界面进入查询:
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form1f1=newForm1();
f1.Show();
}(教师信息)
privatevoidbutton2_Click(objectsender,EventArgse)
{
Form2f2=newForm2();
f2.Show();(公开课程)
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
Form3f3=newForm3();
f3.Show();
}(上课信息)
退出:
privatevoidbutton4_Click(objectsender,EventArgse)
{
this.Close();
}
第三教师信息查询:
数据的绑定:
stringconnectionString=GetConnectionString();
SqlConnectionconnection=newSqlConnection(connectionString);
StringMySQL="Select*Fromt_jiaoshi;";
MyAdapter=newSqlDataAdapter(MySQL,connection);
scb=newSqlCommandBuilder(MyAdapter);
MyAdapter.Fill(MyDataSet,"t_jiaoshi");
tjiaoshiBindingSource=newBindingSource(MyDataSet,"t_jiaoshi");
this.textBox1.DataBindings.Add("Text",tjiaoshiBindingSource,"教师编号");
this.textBox2.DataBindings.Add("Text",tjiaoshiBindingSource,"教师姓名");
this.textBox3.DataBindings.Add("Text",tjiaoshiBindingSource,"性别");
this.textBox4.DataBindings.Add("Text",tjiaoshiBindingSource,"学历");
this.textBox5.DataBindings.Add("Text",tjiaoshiBindingSource,"年龄");
this.DisPlayNumber();
}
staticprivatestringGetConnectionString()
{
return"IntegratedSecurity=Yes;InitialCatalog=db_jiaowu;Server=d9\\SQLEXPRESS";
}
定义:
BindingSourcetjiaoshiBindingSource;
SqlDataAdapterMyAdapter;
DataSetMyDataSet=newDataSet();
SqlCommandBuilderscb;
上一条:
if(this.tjiaoshiBindingSource.Position>0)
{
this.tjiaoshiBindingSource.MovePrevious();
}
else
{
this.tjiaoshiBindingSource.MoveFirst();
MessageBox.Show("已经到了第一条记录!
");
}
下一条:
if(this.tjiaoshiBindingSource.Position+1{
this.tjiaoshiBindingSource.MoveNext();
}
else
{
MessageBox.Show("已经到了最后一条记录!
");
}
首记录:
this.tjiaoshiBindingSource.MoveFirst();
未记录:
this.tjiaoshiBindingSource.MoveLast();
添加:
this.tjiaoshiBindingSource.AddNew();
删除:
this.tjiaoshiBindingSource.RemoveCurrent();
保存:
this.tjiaoshiBindingSource.EndEdit();
this.MyAdapter.Update(MyDataSet,"