学生选课系统C#讲课教案.docx
- 文档编号:10723766
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:34
- 大小:131.83KB
学生选课系统C#讲课教案.docx
《学生选课系统C#讲课教案.docx》由会员分享,可在线阅读,更多相关《学生选课系统C#讲课教案.docx(34页珍藏版)》请在冰豆网上搜索。
学生选课系统C#讲课教案
学生选课系统C#
学生选课系统
第一章:
课题背景介绍………………………2
第二章:
系统模块功能………………………3,4
第三章:
总体设计……………………………5,6
第四章:
界面设计……………………………7
第五章:
代码设计……………………………8
第六章:
总结…………………9
1.1 编写的目的
该学生选课系统需求分析报告的目的在于通过该报告,可以使系统实现如下功能:
学生选课,成绩录入,成绩查询,课程信息管理,用户信息管理,成绩信息管理。
使用户的需求能够清晰的呈现出来。
1.2 背景
● 该学生选课成绩管理系统的任务提出者c#项目实践,作者为“噔噔噔噔”小组,最终用户为所有在校学生,教师,学生选课系统的系统管理员。
● 该学生选课系统与学生信息管理系统有相互依赖关系,因为该系统中要用到的有关学生的信息要从
学生信息管理系统那里得到。
1.3 参考资料
● 《软件工程》IanSommerville,2004年4月第一版第一次印刷,72页---86页,103页---116页,
301页到313页
● 《ISO软件工程模版(4)需求说明书》
2 、任务概述
2.1 目标
现在,随着各大高校的扩招及信息化社会的到来,学校为了合理规划人力资源的利用,保证学校信息的安全性,对信息化处理数据的要求也越来越高。
学生选课系统就是为了减少学校对信息管理的工作量,增强学生选课及成绩信息管理的安全性的双重要求下出现的。
从2005年到2008年学校的学生选课系统来看,学生选课系统主要实现的功能就是学生选课,成绩录入,成绩查询,课程信息管理,用户信息管理这五个功能。
但是该学生选课系统存在一个很大的缺陷,在学生进行成绩查询后,只是能够看到自己的成绩,学生的学分绩点并不能看到,只有将成绩打印出来在辅导员处计算才能得出。
并不能由系统根据学校的学分绩点计算公式自动地计算出来。
因此在实现系统时将改进学生成绩查询这一个功能,使学生能够在查询成绩的同时看到由系统自动生成地该生本学期的学分绩点。
该系统采用B/S架构,其作用范围为所有在校本科生和在校研究生和教师和系统管理员。
使学生能够方便地通过本系统进行成绩地查询和选课,使教师能够通过系统进行成绩地录入,使系统管理员能够通过本系统方便的进行课程信息(包括已选课程信息),
用户信息地维护,切实地减少了学校对信息管理的工作量同时也提高了信息的安全性。
2.2 用户特点
本系统的最终用户就有三类:
学生,教师,系统管理员。
系统的管理员的技术特长就是能够熟练的进行数据库的维护,保证学校信息的安全性。
该学生选课系统的使用频度大概使每学期的开学选课时期和学
期末的成绩录入和成绩查询时期。
3 需求规定
3.1 对功能的规定
● 学生选课系统的系统功能模块图如图所示:
图1-1学生选课系统功能模块图
●用户登录:
输入用户名和密码,选择用户类型(学生,教师,管理员),如果验证通过以后,则根据用户类型转到不同的页面,具有不同的权限。
学生:
选课功能,成绩查询功能。
教师:
成绩录入功
能。
系统管理员:
课程信息管理功能,用户信息管理功能。
如果不存在该用户或者验证信息不正确,
则要求重新输入用户名,密码和选择用户类型。
● 课程信息添加:
管理员用户登录后,进入课程信息管理功能单元,输入课程号,课序号,课程名称,教师姓名,开设院系这些数据后提交数据,完成课程信息地添加操作,此时在选课表中将出现刚才
添加的课程的有关信息。
● 课程信息修改:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名称,教师姓名,开设院系,
提交后就得到该门课程修改后的信息。
●课程信息删除:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要删除
的课程的课序号,提交后,就将选定课程删除了。
●已选课程信息的维护:
管理员用户登录后,进入选课程功能单元,就可以看到学生已选的课程,可
以通过选择相应的课程号来将相应学生的选课记录删除。
●用户信息添加:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入了,输入用户名,用户密码,但是此时的用户必须与学生信息管理系统中的学生相对应,即用户必须是存在的。
提交后就将新用户添加到了用户组里面,即这个用户可以使用该系统了。
●用户信息修改:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入了,选择要修改的用户的用户名,点击后就可以修改该用户的密码。
点击提交后就完成了该用户信息的修改,
就得到了该用户修改后的信息。
●用户信息删除:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入了,选择要
删除的用户的用户名,提交之后就将该用户删除了。
用户组里面将不存在改用户。
● 学生选课:
学生用户登录后,进入选课管理功能单元,如果是已经登录进入了,输入课程号,课序号,提交之后系统会在已存在的课程信息表中查询该生所属专业应修的课程,如果该门课程存在就可以看到选择的课程出现在了课程列表里面,同时该记录也会出现在已选课程信息里面。
如果不存
在则输出错误提示信息“没有该门课程”。
●成绩查询:
学生用户登录后,进入成绩查询功能单元,如果是已经登录进入了,点击课程名称,就可以看到该门课程的成绩,同时点击全部课程就可以看到全部的课程信息及对应的课程成绩,和该
学期的学分绩点。
● 成绩录入:
教师用户登录后,进入成绩录入功能单元,选择相应学生的学生编号,输入该学生的成绩,提交之后就完成了成绩的录入。
该成绩即可对应的出现在相应学生相应课程的成绩列表之内。
该学生成绩管理系统还要有足够的灵活性,当用户需求发生变化时,如要求增加学生退选功能,通过增加学生的权限实现该功能。
3.2 输入输出要求
● 课程号:
8个0—9的数字表示,范围不限,1和2位表示当年开设本课程的年份,3和4位表示开设该课程的院系编号,5和6位表示该课程在本院系内的编号,7和8位表示该课程开设是秋季和春
季学期
● 课序号:
5个0--9的数字表示,范围不限,1和2位表示课程编号,3和4位表示教师编号,5位表
示为春季还是秋季。
● 课程名:
能够描述其课程名称
● 教师姓名:
能够描述教师姓名
●用户名:
10个1—9的数字表示学生,教师和管理员的编号,范围不限,对于学生的用户名来说,前两位表示学生的入学年份,3和4位说明学生所在院系编号,5和6位说明学生所数专业在本院系的编号,7和8位说明学生所在班级在专业范围内的编号,9和10位说明学生在本班的编号。
教师的用户名来说,1和2位说明教师所属院系编号,3和4位说明教师所属教研室在本院系编号,5和6位
●说明教师所属组标号,7和8说明教师在组内标号,9和10说明教师的职称。
管理员的用户名同
教师用户名的标码规则相同。
● 成绩:
0—9的3个数字表示,范围为0—100,精度是0.1
● 学分绩点:
0--9的4个数字表示,范围是0--5,精度是0.01
3.4 数据管理能力要求
该学生选课系统的要求系统能通过人工和自动两种方式进行系统数据备份,以保证系统数据的正确性,使得数据不会应为故障而丢失或破坏了。
人工系统数据备份是指通过系统管理员来队数据库进行备份。
自动备份是指设定一个时间段,每隔一个设定的时间段系统将自动对数据库进行备份。
同时对数据库的操也
要求具有方便性,使得非计算机专业用户也可以完成日常数据备份和数据库维护功能。
3.5 故障处理要求
对于该学生选课系统,用户提出的故障可能有:
软件无法安装或者软件停止运
行以及此时应该采取什么措施恢复数据。
当软件无法安装时,可以查看帮助手册,安装相关软件或者修复受损文件。
当软件停止运行时,强行关机重启后,可以根据系统的自动备份或者在操作之前的手工备份来恢复数据,保证系统数据的正确性。
3.6 安全性要求
因为学生选课系统关系到学校及学生的重要成绩信息,所以对于学校而言对安全保密性的要求非常严格,此系统是面向所有的在校学生,老师及系统管理员,大多数人都不是专业的计算机操作人员,因此对
该系统使用的方便性要求也较高
3.7 可扩充性要求
任何软件都有缺陷,对于学生选课系统但学校的需求发生变化时,增加一个新的功能模块,要求系
统能够很好地对其进行扩充,既可补充性。
3.8 可维护性要求
当操作系统平台发生变化或者支持软件学生信息管理系统发生变化时,为了适应这些变化必需对系统进行维护,即要求有可维护性。
4 运行环境规定
4.1 设备
● 服务器段:
装有MicrosoftSQLServer2000
●客户端:
WindowsXP/Windows2000/Windows2003操作系统,MicrosoftSQLServer,C#软件工具
5.界面设计
6.代码设计
系统部分代码设计
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(textBox1.Text.Trim()!
=""&&textBox2.Text.Trim()!
=""&&textBox3.Text.Trim()!
=""&&comboBox.Text.Trim()!
="")
{
stringstr="";
switch(comboBox.Text.Trim())
{
case"00电子商务":
str="20000001";break;
case"00多媒体":
str="20000002";break;
case"00数据库":
str="20000003";break;
case"00建筑管理":
str="20000004";break;
case"00建筑电气":
str="20000005";break;
case"00旅游管理":
str="20000006";break;
case"01电子商务":
str="20010001";break;
case"01多媒体":
str="20010002";break;
case"01数据库":
str="20010003";break;
case"01建筑管理":
str="20010004";break;
case"01建筑电气":
str="20010005";break;
case"01旅游管理":
str="20010006";break;
case"02电子商务":
str="20020001";break;
case"02多媒体":
str="20020002";break;
case"02数据库":
str="20020003";break;
case"02建筑管理":
str="20020004";break;
case"02建筑电气":
str="20020005";break;
case"02旅游管理":
str="20020006";break;
}
stringConnectionString="DataSource=.;InitialCatalog=xk;IntegratedSecurity=SSPI";
stringInsertString="InsertintoStudent(StuNo,StuName,Pwd,ClassNo)Values(@StuNo,@StuName,@Pwd,@ClassNo)";
SqlConnectionconn=newSqlConnection(ConnectionString);
SqlCommandcmdInsert=newSqlCommand(InsertString,conn);
cmdInsert.Parameters.Add(newSqlParameter("@StuNo",textBox1.Text.Trim()));
cmdInsert.Parameters.Add(newSqlParameter("@StuName",textBox2.Text.Trim()));
cmdInsert.Parameters.Add(newSqlParameter("@Pwd",textBox3.Text.Trim()));
cmdInsert.Parameters.Add(newSqlParameter("@ClassNo",str));
try
{
conn.Open();
cmdInsert.ExecuteNonQuery();
}
catch(Exceptionerr)
{
MessageBox.Show("错误:
"+err.Message);
}
finally
{
conn.Close();
}
showStuData();////
}
}
privatevoidcomboBoxItems()
{
comboBox.Items.Add("00电子商务");
comboBox.Items.Add("00多媒体");
comboBox.Items.Add("00数据库");
comboBox.Items.Add("00建筑管理");
comboBox.Items.Add("00建筑电气");
comboBox.Items.Add("00旅游管理");
comboBox.Items.Add("01电子商务");
comboBox.Items.Add("01多媒体");
comboBox.Items.Add("01数据库");
comboBox.Items.Add("01建筑管理");
comboBox.Items.Add("01建筑电气");
comboBox.Items.Add("01旅游管理");
comboBox.Items.Add("02电子商务");
comboBox.Items.Add("02多媒体");
comboBox.Items.Add("02数据库");
comboBox.Items.Add("02建筑管理");
comboBox.Items.Add("02建筑电气");
comboBox.Items.Add("02旅游管理");
}
privatevoidshowStuData()
{
SqlConnectioncn=newSqlConnection(@"DataSource=.;InitialCatalog=xk;IntegratedSecurity=SSPI");
SqlCommandcmd=newSqlCommand("SELECT*FROMStudent",cn);
cn.Open();
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=cmd;
DataSetds=newDataSet();
da.Fill(ds);
this.dataGridView1.DataSource=ds.Tables[0];
}
privatevoid管理员_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“xkDataSet.Teacher”中。
您可以根据需要移动或移除它。
this.teacherTableAdapter.Fill(this.xkDataSet.Teacher);
//TODO:
这行代码将数据加载到表“xkDataSet.Student”中。
您可以根据需要移动或移除它。
this.studentTableAdapter.Fill(this.xkDataSet.Student);
//
Admin();
//AdminNo.Text=Loginclass.loginId;
//AdminPwd.Text=Loginclass.loginPwd;
}
privatevoidbutton7_Click(objectsender,EventArgse)
{
if(textBox4.Text.Trim()!
="")
{
stringconStr="DataSource=.;InitialCatalog=xk;IntegratedSecurity=SSPI";
stringcmdStr="SELECT*FROMStudentWHEREStuNo=@StuNo";
SqlConnectioncon=newSqlConnection(conStr);
SqlCommandcmd=newSqlCommand(cmdStr,con);
con.Open();
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=cmd;
DataSetds=newDataSet();
da.SelectCommand.Parameters.Add("@StuNo",SqlDbType.NVarChar).Value=textBox4.Text.Trim();
da.Fill(ds);
con.Close();
dataGridView1.DataSource=ds.Tables[0];
}
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
if(textBox5.Text.Trim()!
="")
{
stringconStr="DataSource=.;InitialCatalog=xk;IntegratedSecurity=SSPI";
stringcmdStr="SELECT*FROMStudentWHEREStuNameLIKE'%"+textBox5.Text.Trim()+"%'";
SqlConnectioncon=newSqlConnection(conStr);
SqlCommandcmd=newSqlCommand(cmdStr,con);
con.Open();
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=cmd;
DataSetds=newDataSet();
da.SelectCommand.Parameters.Add("@StuName",SqlDbType.NVarChar).Value=textBox5.Text.Trim();
da.Fill(ds);
con.Close();
dataGridView1.DataSource=ds.Tables[0];
}
}
privatevoidbutton8_Click(objectsender,EventArgse)
{
if(textBox6.Text.Trim()!
="")
{
SqlConnectioncn=newSqlConnection(@"DataSource=.;InitialCatalog=xk;IntegratedSecurity=SSPI");
SqlCommandcmd=newSqlCommand("DELETEStudentWHEREStuNo=@StuNo",cn);
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=cmd;
DataSetds=newDataSet();
da.SelectCommand.Parameters.Add("@StuNo",SqlDbType.NVarChar).Value=textBox6.Text.Trim();
try
{
da.Fill(ds);
DialogResultYN=MessageBox.Show("你确实要删除吗?
\n","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if(YN==DialogResult.Yes)
{
cn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("删除成功!
\n","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
catch(Exceptionerr)
{
MessageBox.Show("数据删除失败!
\n"+err.Message,"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
cn.Close();
}
}
showStuData();
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
if(textBox7.Text.Trim()!
="")
{
SqlConnectioncn=newSqlConnection(@"DataSource=.;InitialCatalog=xk;IntegratedSecurity=SSPI");
SqlCommandcmd=newSqlCommand("DELETEStudentWHEREStuName=@StuName",cn);
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=cmd;
DataSetds=newDataSet();
da.SelectCommand.Parameters.Add("@StuName",SqlDbType.NVarChar).Value=textBox7.Text.Trim();
da.Fill(ds);
try
{
DialogResultYN=MessageBox.Show("你确实要删除吗?
\n","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 C# 讲课 教案