数据库课设报告.docx
- 文档编号:9428857
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:30
- 大小:724.16KB
数据库课设报告.docx
《数据库课设报告.docx》由会员分享,可在线阅读,更多相关《数据库课设报告.docx(30页珍藏版)》请在冰豆网上搜索。
数据库课设报告
教学管理系统
系统设计
设计目标
减轻教学日常信息管理的负担,方便学生、教师查询信息和学校对所有信息的管理。
以简单便捷的操作获取详尽的信息。
设计思路
1、教师查询自己教授学生的信息和成绩的录入修改
2、各门课程的安排和信息查询
3、教职工和学生的信息管理
4、学生的成绩管理、查询、统计
对日常教学管理活动的分析后,对各种信息统一规范整理,实现各种信息的自动管理。
为便于信息的查询,找出各种信息的关联性,根据各种需求设计出合理的报表。
在管理上详细区分学生、教师、管理员三者各自拥有的权限,和他们不同的需求,仔细考虑他们的不同点,合理整理信息,确保各自的需求得到最大化满足
数据库需求分析
1)信息需求:
(1)学生信息:
学号、姓名、性别、出生日期、入学成绩、所在系号。
(2)教职工信息:
职工号、姓名、性别、出身年月、所在系号、职称、专业及教学方向。
(3)系的基本信息:
系号、系名称、系的简介。
(4)课程信息:
课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间。
(5)成绩信息:
学号、课程号、平时成绩、考试成绩、总评成绩。
2)处理需求:
(1)学生基本信息管理
新生信息录入。
学生信息修改:
按学号查询出某学生的信息并做信息修改。
**学生转学(转入和转出),学生毕业等。
毕业和转学的学生有关信息存储到历史库中。
(2)系基本信息管理:
系的基本信息输入、修改、删除
(3)课程信息管理:
课程信息的输入、修改、删除
(4)教职工信息管理:
教职工信息的输入、修改、删除
(5)选课管理:
每学期所选课程的学分不能超过15分。
(创建触发器)
学生可以同时选修一门或多门课程。
可以同时为多个学生选修某一门或某几门课程。
删除和修改选课信息。
(6)成绩管理(视图)
按课程输入和修改成绩。
(查询选该门课程的学生)
按学生输入和修改成绩。
(查询该学生所选的课程)
(7)信息查询
按学号、姓名、系号查询学生基本信息。
按职工号、姓名、系号查询教职工基本信息。
按系号、系名称查询系的基本信息。
按课程号、课程名称、上课教师姓名查询课程基本信息。
按学号、学生姓名、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。
若查询涉及多门课程,则按课程分组。
每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)。
(8)统计报表
成绩登记表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)、选课学生名单(学号、姓名、性别),每个学生的平时成绩(空格)、考试成绩(空格)和总评成绩(空格),按学号排序:
顺序输出所有课程的成绩登记表。
按课程号、课程名称、教师姓名输出对应课程的成绩登记表。
**按系号输出对应课程的成绩登记表(本系所有教师担任的课程)。
成绩报表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩,>=90分、>=80分、、>=70分、>=60分及不及格学生的人数及比例,按学号排序:
顺序输出所有课程的成绩报表。
(报表格式自己订制,可以参考学校的系统的输出格式)
按课程号、课程名称、教师姓名输出对应课程的成绩报表。
**按系号输出对应课程的成绩报表(本系所有教师担任的课程)
功能模块
以管理员模式管理各个部分的功能
学生信息:
信息的查询、插入、修改、删除
教师信息:
信息的查询、插入、修改、删除
系的信息:
信息的查询、插入、修改、删除
课程信息:
信息的查询、插入、修改、删除
成绩信息管理:
信息的查询、插入、修改、删除
选课管理:
课程的选择、修改、删除
信息查询:
按学号、姓名、课程号、教师姓名、系号等查询学生成绩
统计报表:
成绩报表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩,>=90分、>=80分、、>=70分、>=60分及不及格学生的人数及比例,按学号排序:
顺序输出所有课程的成绩报表。
(报表格式自己订制,可以参考学校的系统的输出格式)
概念结构设计
表的设计
CREATETABLEDepart
(
Depart_nochar(8)NOTNULLPRIMARYKEY,
Depart_namechar(15),
Depart_Jianjievarchar(120)
)
--插入数据
insertintoDepart
values('02','英语系','成立于1985年,现有三个专业')
values('01','计算机系','成立于1980年,现有三个专业')
CREATETABLEStudent
(
SnoCHAR(8)NOTNULLPRIMARYKEY,
Snamevarchar(6)NOTNULL,
Sexchar(4),
Sbirthint,
Enter_scorchar(8),
Depart_nochar(8)FOREIGNKEYREFERENCESDepart(Depart_no)ondeletecascadeonupdatecascade,
)
--插入数据
INSERTINTOStudent
values('2008304','谭丽','女','19880706','70','02')
CREATETABLETeacher
(
Teacher_nochar(8)NOTNULLPRIMARYKEY,
Teacher_namevarchar(6)NOTNULL,
Sexchar(4),
Teacher_birthint,
Depart_nochar(8)FOREIGNKEYREFERENCESDepart(Depart_no)ondeletecascadeonupdatecascade,
ZhiChengchar(10),
ZhuanYechar(20)
)
--插入数据
INSERTINTOTeacher
--values('1002','徐绽','女','19800203','02','教授','英语')
values('1001','王明','男','19800504','01','教授','计算机系')
CREATETABLECourse
(
Cnochar(8)NOTNULLPRIMARYKEY,
Cnamechar(20),
Teacher_nochar(8)NOTNULLFOREIGNKEYREFERENCESTeacher(Teacher_no)ondeletecascadeonupdatecascade,
XueShiint,
Ccriditsmallint,
ShangKe_Timechar(10),
ShangKe_Placevarchar(20),
KaoShi_Timechar(30),
)
--插入数据
insertintoCourse
values('01','计算机文化基础','1001','40','2','18:
00','3#101','2010/6/3/8:
00')
CREATETABLEGrade
(
SnoCHAR(8)NOTNULLFOREIGNKEYREFERENCESStudent(Sno)ondeletecascadeonupdatecascade,
CnoCHAR(8)NOTNULLFOREIGNKEYREFERENCESCourse(Cno)ondeletenoactiononupdatenoaction,
PingShi_scoreint,
KaoShi_scoreint,
Sum_scoreint,
PRIMARYKEY(Sno,Cno)
)
--插入数据
insertintoGrade
values('2008304','01','10','70','80')
CreateViewGrade_Course(Sno,Cno,Cname,Ccridit)
AS
selectGrade.Sno,Grade.Cno,Cname,Ccridit
fromGrade,Course
whereGrade.Cno=Course.Cno
CREATETRIGGERCridit_Check
ONGrade
FORINSERT
AS
declare@iint,@Snochar(8)
select@Sno=Sno
Frominserted
select@i=sum(Ccridit)
fromGrade_Course
whereGrade_Course.Sno=@Sno
if(@i>15)
begin
ROLLBACKTRANSACTION
RAISERROR('你选修的学分大于15学分,请确认后选课',16,1)END
表的关系图
程序的部分代码
学生模块代码:
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="datasource=(local);initialcatalog=Teach_Mange;integratedsecurity=true";
conn.Open();
stringstrCmd;
if(textBox2.Text=="")
{
MessageBox.Show("请输入学号!
","提示");
textBox2.Focus();
}
elseif(textBox3.Text=="")
{
MessageBox.Show("请输入姓名!
","提示");
}
elseif(textBox4.Text=="")
{
MessageBox.Show("请输入性别!
","提示");
}
elseif(textBox5.Text=="")
{
MessageBox.Show("请输入出生日期!
","提示");
}
elseif(textBox6.Text=="")
{
MessageBox.Show("请输入入学成绩!
","提示");
}
elseif(textBox7.Text=="")
{
MessageBox.Show("请输入所在系号!
","提示");
}
strCmd="insertintoStudent(Sno,Sname,Sex,Sbirth,Enter_scor,Depart_no)values('"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"','"+textBox7.Text+"');";
SqlCommandMyCommand=newSqlCommand(strCmd,conn);
MyCommand.ExecuteNonQuery();
MyCommand.Dispose();
conn.Close();
MessageBox.Show("插入成功!
");
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
if(textBox2.Text=="")
{
MessageBox.Show("请输入学号!
","提示");
textBox2.Focus();
}
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="datasource=(local);initialcatalog=Teach_Mange;integratedsecurity=true";
conn.Open();
stringstrCmd1,strCmd2;
strCmd2="updateStudentsetSname='"+textBox3.Text+"',Sex='"+textBox4.Text+"',Sbirth='"+textBox5.Text+"',Enter_scor='"+textBox6.Text+"',Depart_no='"+textBox7.Text+"'whereSno='"+textBox2.Text+"';";
strCmd1="selectSnofromStudentwhereSno='"+textBox2.Text+"';";
SqlCommandMyCommand1=newSqlCommand(strCmd1,conn);
objectob=MyCommand1.ExecuteScalar();
if(Convert.ToString(ob)=="")
{
if(textBox2.Text!
="")
{
MessageBox.Show("无此学号的学生信息!
\n请重新输入!
","提示");
textBox2.Text="";
textBox2.Focus();
}
MyCommand1.Dispose();
conn.Close();
return;
}
SqlCommandMyCommand2=newSqlCommand(strCmd2,conn);
MyCommand2.ExecuteNonQuery();
MyCommand2.Dispose();
conn.Close();
MessageBox.Show("修改成功!
");
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringsqlstr="";
stringChaXun="";
objectn=comboBox1.SelectedItem;
ChaXun=comboBox1.GetItemText(n);
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="datasource=(local);initialcatalog=Teach_Mange;integratedsecurity=true";
conn.Open();
stringstrCmd;
if(ChaXun=="")
{
MessageBox.Show("请选择查询条件再进行查询");
}
elseif(ChaXun=="按学号查询")
{
if(textBox1.Text=="")
MessageBox.Show("请输入查询条件:
学号!
");
}
elseif(ChaXun=="按姓名查询")
{
if(textBox1.Text=="")
MessageBox.Show("请输入查询条件:
姓名!
");
}
if(ChaXun=="按学号查询")
{
sqlstr="Sno='"+textBox1.Text+"';";
strCmd="select*fromStudentwhere"+sqlstr;
SqlCommandcmd=newSqlCommand(strCmd,conn);
objectn1=cmd.ExecuteScalar();
if(Convert.ToString(n1)=="")
{
if(textBox1.Text!
="")
{
MessageBox.Show("无此学号的学生信息!
\n请重新输入!
","提示");
textBox1.Text="";
}
cmd.Dispose();
}
SqlDataReadersdr=cmd.ExecuteReader();
while(sdr.Read())
{
textBox2.Text=sdr["Sno"].ToString();
textBox3.Text=sdr["sname"].ToString();
textBox4.Text=sdr["Sex"].ToString();
textBox5.Text=sdr["Sbirth"].ToString();
textBox6.Text=sdr["Enter_scor"].ToString();
textBox7.Text=sdr["Depart_no"].ToString();
}
sdr.Close();
SqlDataAdaptersdr0=newSqlDataAdapter(strCmd,conn);
DataTabletable=newDataTable();
sdr0.Fill(table);
dataGridView1.DataSource=table;
conn.Close();
}
if(ChaXun=="按姓名查询")
{
sqlstr="Sname='"+textBox1.Text+"';";
strCmd="select*fromStudentwhere"+sqlstr;
SqlCommandcmd=newSqlCommand(strCmd,conn);
objectn2=cmd.ExecuteScalar();
if(Convert.ToString(n2)=="")
{
if(textBox1.Text!
="")
{
MessageBox.Show("无此姓名的学生信息!
\n请重新输入!
","提示");
textBox1.Text="";
}
cmd.Dispose();
}
SqlDataReadersdr=cmd.ExecuteReader();
while(sdr.Read())
{
textBox2.Text=sdr["Sno"].ToString();
textBox3.Text=sdr["sname"].ToString();
textBox4.Text=sdr["Sex"].ToString();
textBox5.Text=sdr["Sbirth"].ToString();
textBox6.Text=sdr["Enter_scor"].ToString();
textBox7.Text=sdr["Depart_no"].ToString();
}
sdr.Close();
conn.Close();
SqlDataAdaptersdr0=newSqlDataAdapter(strCmd,conn);
DataTabletable=newDataTable();
sdr0.Fill(table);
dataGridView1.DataSource=table;
}
if(ChaXun=="按系号查询")
{
sqlstr="Depart_no='"+textBox1.Text+"';";
strCmd="select*fromStudentwhere"+sqlstr;
SqlCommandcmd=newSqlCommand(strCmd,conn);
objectn2=cmd.ExecuteScalar();
if(Convert.ToString(n2)=="")
{
if(textBox1.Text!
="")
{
MessageBox.Show("无此系的学生信息!
\n请重新输入!
","提示");
textBox1.Text="";
}
cmd.Dispose();
}
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Close();
conn.Close();
SqlDataAdaptersdr0=newSqlDataAdapter(strCmd,conn);
DataTabletable=newDataTable();
sdr0.Fill(table);
dataGridView1.DataSource=table;
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
if(textBox2.Text=="")
{
MessageBox.Show("请输入学号!
","提示");
textBox2.Focus();
}
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="datasource=(local);initialcatalog=Teach_Mange;integratedsecurity=true";
conn.Open();
stringstrCmd1,strCmd2;
strCmd1="selectSnofromStudentwhereSno='"+textBox2.Text+"';";
strCmd2="deletefromStudentwhereSno='"+textBox2.Text+"';";
SqlCommandMyCommand1=newSqlCommand(strCmd1,conn);
objectob=MyCommand1.ExecuteScalar();
if(Convert.ToString(ob)=="")
{
if(textBox2.Text!
="")
{
MessageBox.Show("无此学号的学生信息!
\n请重新输入!
","提示");
textBox2.Text="";
textBox2.Focus()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 报告