C#教务管理系统设计与实现Word文档格式.docx
《C#教务管理系统设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《C#教务管理系统设计与实现Word文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
教务管理系统是每个学校的一项必不可少的内容,它的好坏直接影响到学校里的主要工作,一旦此系统瘫痪,学校将会受到非常严重的损失,也会影响到每一个学生。
所以现如今设计一个功能完整、操作简单以及界面友好的教务管理系统变得非常重要.
四、课程设计内容
1.系统总体结构
2。
数据库模块
由用户的需求分析和概念结构设计,最终设计了名为教务管理数据库的数据库,一部分数据库中的表如下所示:
表1-1admin表
表1-2teacher表
表1-3student表
表1—4class表
2.运行界面如图1—1所示:
图1-1主界面
图1—2课程界面
五、课程设计核心代码
Login。
aspx代码如下:
protectedvoidLogin1_Authenticate(objectsender,AuthenticateEventArgse)
{
try
stringusertype=((System.Web.UI。
WebControls。
ListControl)(this.Login1。
FindControl("
RadioButtonList1”)))。
SelectedValue;
intre=userinfo.usercheck(usertype,Login1.UserName,Login1.Password);
if(re!
=0)
{
e.Authenticated=false;
if(re==1){Login1。
FailureText="
用户登录失败!
”;
}
if(re==2){Login1.FailureText=”用户不存在!
”;
}
else
Session["
User_id"
]=Login1。
UserName;
Session[”user_power"
]=usertype;
e。
Authenticated=true;
catch(Exception)
return;
addclass。
aspx主要代码如下:
protectedvoidBtnadd_Click(objectsender,EventArgse)
stringsql="
insertintoclass(Class_id,Class_name,Class_college,Class_teacherid)values('
”+TBxCid。
Text+”'
,'
”+TBxCname。
Text+"
'
,’”+TBxCollege。
'
"
+DDLtid.SelectedValue+"
)"
;
intresult=connection。
ExecuteSql(sql);
if(result〉=1)
Response。
Write(MyUtility.Alert(”插入成功!
”));
Write("
〈scriptlanguge=’javascript'
〉window。
location.href=’addclass.aspx'
〈/script〉”);
}
choosecourse.aspx主要代码如下:
protectedvoidPage_Load(objectsender,EventArgse)
stringsql,Islocked;
DataSetds;
if(!
IsPostBack)
sql="
SELECTx.Course_id,x.Course_name,x。
Course_credit,x.Course_PreCId,teacher_course.SCno,teacher_course.Teacher_id,teacher_course.CMax,teacher_course。
Class_id,teacher.Teacher_name,(SELECTCourse_nameFROMcourseASyWHERE(Course_id=x。
Course_PreCId))ASCPreCourse_nameFROMteacher_courseINNERJOINteacherONteacher_course。
Teacher_id=teacher。
Teacher_idINNERJOINcourseASxONteacher_course。
Course_id=x。
Course_idWHERE(x。
Course_kind='
2’)”;
ds=connection.ExecuteSelectSql(sql);
if(ds!
=null&
&
ds。
Tables。
Count〉0)
dgCourse.DataSource=ds。
Tables[0];
dgCourse。
DataBind();
for(inti=0;
i<
ds.Tables[0]。
Rows.Count;
i++)
selectcount(*)fromstudent_coursewhereCourse_id=”+ds。
Tables[0]。
Rows[i]["
Course_id”]。
ToString()+"
andSCno="
+ds.Tables[0]。
Rows[i][”SCno"
].ToString();
DataSetds1=connection.ExecuteSelectSql(sql);
if(ds1!
=null&&ds1.Tables。
Count>
0&
ds1。
Tables[0].Rows.Count>
0)
dgCourse.Items[i].Cells[6].Text=ds1.Tables[0]。
Rows[0][0]。
ToString();
sql=”SELECTSLockedFROMstudentwhereStudent_id=’"
+Session["
]。
SqlCommandcoursecommand=newSqlCommand(sql,connection。
getconnection());
coursecommand.Connection。
Open();
Islocked=coursecommand.ExecuteScalar()。
ToString();
Close();
if(Islocked==”1”)
Session["
Locked"
]=true;
else
Locked”]=false;
sql=”selectcourse。
Course_name,course.Course_credit,course.Course_kind,Teacher。
Teacher_name,Teacher.Teacher_id,student_course.*fromstudent_course,Teacher,course,teacher_coursewherestudent_course.Student_id='
+Session[”User_id"
]。
ToString()+”’andstudent_course.SCno=teacher_course。
SCnoandstudent_course.Course_id=Course。
Course_idandteacher_course.Teacher_id=Teacher。
Teacher_idandteacher_course。
Course_id=course.Course_id"
ds=connection。
ExecuteSelectSql(sql);
&ds.Tables。
dgselectedCourse。
DataSource=ds。
Tables[0];
DataBind();
boollocked=bool.Parse(Session["
Locked”]。
ToString());
if(!
locked)
lbLock.Text="
您尚未锁定选课信息!
选课信息已被锁定!
Label1。
Text=”您所要学习的课程(必修和选修的):
btnLock。
Visible=false;
Columns[8].Visible=false;
Columns[10]。
addgrade.aspx主要代码如下:
stringsql;
protectedvoidPage_Load(objectsender,EventArgse)
sql=”selectteacher_course。
SCno,teacher_course.Course_id,course.Course_namefromcourse,teacher_coursewhereteacher_course.Teacher_id='
ToString()+”'
andteacher_course.Course_id=course。
Course_id”;
DataSetds=connection。
if(ds!
=null&&
ds.Tables.Count>
DataViewdv=newDataView(ds。
Tables[0]);
GVcourse.DataSource=dv;
GVcourse.DataBind();
GVcourse。
SelectedIndex=—1;
}
protectedvoiddgSC_EditCommand(objectsource,System.Web.UI.WebControls。
DataGridCommandEventArgse)
dgSC.EditItemIndex=e.Item。
ItemIndex;
sql=”selectstudent_course。
*,Student_namefromstudent_course,studentwhereCourse_id='
”+Lblcid.Text+”'
andSCno=’”+Lblscno。
Text+”'
andstudent_course.Student_id=student.Student_id"
;
dgscdatabind(sql);
六、课程设计心得体会
本系统通过一组数据的测试后,可以实现基本的功能,但是功能不是很完善。
管理员登陆后的功能还不够完善,有的地方效率不高,而且随着使用者的不同,系统的明朗度不够,所以系统的维护是非常重要的。
我觉得应该要对三方面进行维护。
一是对功能的维护,随着经济的发展等等社会因素,使用者对系统功能的要求越来越高。
所以系统设计者就要对功能进行进一步的分析.二是对数据库的维护,数据库是非常重要的东西,对数据结构进行修改,更新数据文件等。
三是代码的维护。
代码的可读性和可更新性非常重要,随着技术的发展,旧的代码不能适应新的技术,必须进行更新.
在教务管理系统的开发过程中,碰到了一些问题。
一些是因为粗心而导致了,一些是技术不过关的原因,碰到问题总结如下:
1.数据的关联性。
如删除了学生信息却没有将选课信息中相应学生选课信息进行删除.
2.在多表查询时,定义表的简称时出问题了,还有多表之间的连接,如果是用AND语句的话,每一个字段都必须指定已知值,内连接则不然。
通过查有关资料将此问题解决了。
3.实现数据的插入出错,一个表中的数据改动,将牵连到其他表中相关的数据,由于没有及时更新其他表中的数据。
导致其他信息的显示出错,提示没有任何记录,后来根据反复思考,终于找到了根本原因。
4.系统界面设计的困难,由于审美观欠缺,总觉得系统总的不好看,多次改动,引起其他更多问题,后来想还是做个模板好,可最终还是没用上模板。
由于学习asp时间不是很长,系统在设计过程中,难免存在不足之处。
在程序结构上系统设计得还不够紧密,对一些问题,如数据库的设计上没有统一,造成部分数据冗余。
其次,安全性上考虑不够仔细等等。
虽然毕业设计已接近尾声,但我想我的这个设计不会因为毕业设计的结束而停止,在今后的学习中,再就这些问题进行完善,争取做出一个完全能够适当教务管理的系统。
七、参考文献
VisualStudioC#2005案例
ASP.NET2。
0案例教程