否允许学生选课.
学生选课子系统包含查看课程信息,选修课成和退选课程3个功能模块,如图3-2所示,允许学生查看课程信息,在限定的时期内选修课程,退选课程和增选课程.
图3-2学生选课子系统结构图
管理员管理子系统包含管理学生记录,管理课程信息,修改选课期限和查看选课情况4个功能模块,如图3-3所示.允许管理员添加,删除和修改学生记录以及课程信息,可以查看选课情况以及修改选课的期限.
图3-3管理员管理子系统结构图
本选课系统分为系统和管理员子系统两部分.每个系统的建立都是使用VisualC#创建一个Windows应用程序的项目.为了提高代码的重用性和封装对存储过程的调用,每个子系统都实现了一个存取数据的公用类,提供本子系统使用.同时,为了节省本系统运行时占用的计算机资源,每个子系统的实现时都只使用一个窗体(Form),并且使用TabControl控件,界面的元素都显示在TalControl控件上的选项卡页上.
5.1学生子系统的设计
学生子系统需要实现以下功能:学生可以查看课程信息,可以在限定的时间内选修课程,可以查询自己选修课成的情况,在限定的时间之内可以取消某门已经选择的课程或者增选某门课程.如果被选课程的选修人数达到了上限,则学生不能选修该课程.下面时系统的卡发过程:
学生信息类时一个简单的数据库类,用于放在学生的基本信息,包括学号,名字,选课密码.学生信息类的实现代码如下:
PublicclassStudentDetails
{PublicstringStudentNumber;
PublicstringName;
PublicstringPassword;}
1.登陆管理
学生只能登陆成功才能进行查看课程信息和选修课程等操作.学生子系统的登陆界面如图下如所示:
登陆管理的主要逻辑在loginbutton_Click事件处理函数中,通过调用数据访问类中的StudentLogin方法判断是否登陆成功,如果登陆成功则调用GetDataSet方法返回该学生已经选择的课程信息.
2.显示课程信息
学生选修课程之前需要查看课程的详细许诺西,本系统使用TreeView控件显示课程的信息.首先显示各个院系的名称,单击每个院系的节点就能够查看该院系开设的课程.如下图:
在主窗口MainForm类的构造函数中就调用FillDirectoryTree函数初始化TreeView控件的显示.TreeView控件存放在Electivepanel这个容器中,在窗口创建的时候设置Electivepanel不可见.由于所处的容器不可见,TreeView自然页不可见.只有用户登陆后Electivepanel才可见,从而用户可以看见TreeView控件的课程信息.MainForm的构成函数的代码如下:
publicMainForm(){
InitializeComponent();
studentid=0;
courseid=0;
Electivepanel.Visible=false;
FillDirectoryTree();}
TreeView控件里面显示数据是通过调用FillDirectoryTree函数实现的.FillDirectoryTree函数首先通过GetDataSet函数从数据库中读取院系的信息返回在一个DataSet里面,然后遍历这个DataSet中的院系信息同时创建TreeView控件树的节点存放这些院系的信息.每个院系节点由通过调用AddDirectories函数为每个院系节点绑定每个院系所开设课程的信息.
FillDirectoryTree函数里面调用了AddDirectories函数.AddDirectories函数主要负责在每个院系节点下面创建该院系所开设课程的节点.
单击TreeView控件中的课程名称,在TreeView控件右部会显示课程的详细信息.如下图所示.这个功能在TreeView控件的directoryTree_AfterSelect响应事件函数里实现.
TreeView控件的directoryTree_AfterSelect响应事件函数首先要判断学生在TreeView控件树中选择的节点是表示院系还是表示课程,如果选择的是课程节点则从数据库中读取该课程的详细信息并显示出来,然后把课程编号存放在主窗口体系的成员变量里面,以便别的主窗口体系的成员函数使用.
3.选修课程
学生查看课程的详细后,如果对这门课有兴趣就可以单击"选择"按钮选择这门课程.系统首先判断是否在允许选课的时期内,如果选课已经截至或者选课尚未开始,则显示相关的提示信息,如下图所示.如果在允许选课的时期内,则判断该学生是否已经选择了这门课程.如果学生已经选择了这门课程,则显示相关的提示信息.如果最终选课成功则会有"选课成功"的信息.如下图所示:
4.退选课程
在允许选课的时期内,学生可以对已经选择的课程进行退选.首先在查看课程信息的TreeView控件中选择需要取消选择的课程,然后单击"退选"按钮.系统首先判断是否在允许选课的时期内,如果选课已经截至或者选课尚未开始,则显示相关的提示信息.然后系统要判断该学生是否已经选择了这门课程,如果该学生没有选择这门课程,则显示相关的错误提示信息.如果最终退选课程成功则显示"课程退选成功"的消息.退选课程的主要处理逻辑在Cancelbutton_Click事件处理函数里面.如下图:
5.查看已选课程
显示学生已经选择的课程信息是在前面提到的loginbutton_Click事件响应函数中实现.学生登陆成功后可以在'已选课程"的选项卡中显示该学生已经选择的课程信息.
5.2管理员子系统的设计
管理员子系统需要实现一下功能:添加和删除学生记录,可以添加,删除和修改课程信息,查看和更改选课的有效时间.
对于管理员在存取数据库的操作都封装在CSQL类里面.下面对该类尽心详细的分析:
定义私有的成员变量和构造函数,代码如下:
privatestringm_strConnString;
privateSqlConnectionm_connConnection;
publicCSQL()
{}
1.登陆管理
管理员子系统的登陆界面和学生子系统的登陆界面类似,如下图所示.由于管路员不受选课时间的限制,所以管理员子系统的登陆管理比学生子系统的登陆管理更加简单.
登陆管理的主要处理逻辑在loginbutton_Click事件处理函数中,如果登陆成功则调用GetdataSet方法获得所有学生选课的情况,以便管理员查看.
2.修改课程
管理院登陆成功后可以单击"课程设置"选项卡,在该选项卡里面的TreeView控件中选择要更新新信息的课程,该课程的详细信息就会显示出来,管理员编辑完这些课程信息后,但是"修改"按钮就可以完成修改课程的操作.如下图所示:
修改课程的主要处理逻辑在"修改"按钮的响应事件函数Modifybutton_Click函数里面.Modifybutton_Click函数调用了数据库访问类型ModifybuttonCourse方法完成修改课程的操作.
3.删除课程
管理员登陆成功后可以单击"课程设置"选项卡页,在该选项卡里面的TreeView控件中选择要删除的课程,该课程的详细信息就会列举出来,单击"删除"按钮可以删掉该门课程,操作成功显示"删除课程成功"的信息(如下图).删除该课程的同时要删掉所有学生选择这门课程的记录,还要更新TreeView控件上的课程信息的显示.如下图:
删除课程的主要处理逻辑在"删除"按钮的响应事件函数Deletedbutton_Click函数里面.Deletedbutton_Click函数调用了数据库访问类的RemoveCourse方法完成删除课程的操作.
4.添加课程
管理员登陆成功后可以单击"添加课程"选项卡页,在该选项卡里面新课程的详细信息.单击"添加"按钮可以添加这门新课程,添加操作成功后有响应的提示信息.如下图:
添加课程的主要处理逻辑在"添加"按钮的响应事件函数button2_Click里面.该函数调用了数据库访问的AddCourse方法完成添加课程的操作.
5.查看选课情况
管理员登陆成功后可以在"选课情况"的选项卡中查看所有学生的选课情况,如图:
让管理员查看所有学生选课情况是在"登陆管理"部分讲述的logingbutton_Click事件响应函数中实现的,代码
上一篇:
房地产评估系统VB_net(论文和程序)
下一篇:
病理学实验课多样化教学方法探讨