程序设计训练课程设计.docx
《程序设计训练课程设计.docx》由会员分享,可在线阅读,更多相关《程序设计训练课程设计.docx(42页珍藏版)》请在冰豆网上搜索。
程序设计训练课程设计
经济管理学院
程序设计训练A
(二)课程设计
课程设计题目:
高等院校科研管理信息系统
专业班级:
信管101班
学生姓名:
张沛梅
学号:
100201138
指导教师:
李庆恒王玉恒陈军霞董绍辉
2013年1月18日
1.系统描述
1.1背景
某高等学校拟建立一套科研管理信息系统,实现对科研工作的信息化管理,要求系统对数据的存储完整,查询迅速,操作方便。
教职员工分属于各个学院下的系或行政机关,在学院的教职员工分属于不同的系,在行政机关的教职员工分属于不同的部门如教务处,人事处,财务处等。
各级单位均有单位名称,单位地址,电话等属性。
教职员工基本信息包括姓名,性别,出生年月,政治面貌,籍贯,毕业院校,所学专业,学历,学位,研究方向,联系电话等信息;教职员工的科研工作主要包括撰写论文,著作和承担课题的研究,发明创造等工作,其研究成果主要包括论文,著作,课题,专利四大类。
撰写的论文信息包括论文名称,所有作者姓名,出版刊物名称,刊号,时间,刊物级别(核心期刊,一般期刊,报纸杂志,会议论文),是否被三大索引收录等信息。
著作主要包括书名,出版社,出版时间,著作类别(专著、编著、教材、译著),字数,作者姓名及其分工等。
课题包括三个环节,立项,鉴定,获奖。
课题基本情况包括课题名称,编号,承担单位,合作单位,课题立项情况包括课题来源分为纵向(国家,省部,厅局,一般)横向(其他单位),课题性质(自然科学,软科学,社会科学等),还包括立项时间,完成时间,课题成员,经费等;鉴定包括鉴定时间,鉴定级别(国家,省部,厅局,一般),人员,成果等级(国际先进,国际领先,国内先进,国内领先)等;获奖包括获奖时间,级别(国家,省部,厅局),等级(一等奖,二等奖,三等奖),人员等。
专利包括专利号,名称,专利类型(发明,实用新型,外观设计等),授予时间,人员等。
每位教职员工会参与多项课题,论文,著作和专利。
每项科研也会有多人参加。
教职员工的科研工作成果评价和他参与科研的数量和质量都有关系。
根据科研参与人数的不同和该教职员工的排名不同,他可以获得相应的科研分数,所以科研的总体信息和各人的对应信息必须完整。
最终提供的数据模式可以使用户按照不同年份,人员,单位等各种口径进行查询及统计工作,要求信息完整,设计规范。
1.2目的和意义
目的是使教职员工科研管理工作更加的简捷,管理更加先进。
其意义是通过系统开发使学生更深入的理解相关编程知识,同时开发出有实际作用的系统,用实践带动学习积极性。
2.程序功能介绍
程序从登陆窗口进入,根据角色不同进入的主页不同。
当是用户登录时,进入到个人科研信息系统页面,在这个页面教职员工可以实现以下功能:
(1)查看个人的详细信息;
(2)修改个人的密码;
(3)可以进行参加论文,著作,课题,专利信息的录入;
(4)可以查询个人参加不同科研项目的基本信息与得分。
当是管理员登录时,进入到管理员的主页,可以实现以下功能:
(1)可以查看管理员自己的详细信息;
(2)修改个人密码;
(3)可以查看全部教职员工的登录密码;
(4)可以查看参加不同科研项目的详细情况,进行录入,删除,更新科研信息的操作;
(5)可以按时间段对不同项目进行时间检索,查看某个时间段某个项目的具体信息;
(6)对科研项目的评分规则进行修改。
3.系统实现
3.1开发环境
软硬件本系统适用于微型机,内存容量2G,应配备的外部设备有鼠标、键盘、显示器、主机等.软件环境MicrosoftVisualStudio2010和SQLserver2005.本系统的设计采用的是ASP.NET语言,在Windows7操作系统下MicrosoftVisualStudio2010和SQLserver2005软件环境下使用。
3.2程序调试情况
1、调试登陆窗口遇到的问题
在写登陆按钮的单击事件代码是出现了错误,此登陆功能是:
如果输入的职工号是管理员,就倒转到管理员的界面,如果输入职工号是用户,就跳转到用户界面。
因为没有写对代码,导致没有跳转正确。
解决方案:
if((Eid1!
=null)&&(paw1!
=null)&&(js1=="管¨¹理¤¨ª员¡À"))
{
Session["CurrentValue"]=user.Text;
Response.Redirect("LiuyiDefault2.aspx");
}
if((Eid1!
=null)&&(paw1!
=null)&&(js1=="用®?
户¡ì"))
{
Session["CurrentValue"]=user.Text;
Response.Redirect("LiuyiDefault.aspx");
}
2.调试按时间检索参加各项项目的具体情况出现的问题
如上图,我以论文时间检索为例,时间检索论文的详细情况,需要调用数据库的存储过程。
但是起初没有调用,导致检索不出结果。
解决方案:
myCommand.CommandText="time_select_Eplw";
SqlParameterparInput=myCommand.Parameters.Add("@time1",SqlDbType.DateTime);
parInput.Direction=ParameterDirection.Input;
parInput.Value=Convert.ToDateTime(DropDownList1.Text+"/"+DropDownList2.Text+"/"+DropDownList3.Text);
SqlParameterparInput2=myCommand.Parameters.Add("@time2",SqlDbType.DateTime);
parInput2.Direction=ParameterDirection.Input;
parInput2.Value=Convert.ToDateTime(DropDownList4.Text+"/"+DropDownList5.Text+"/"+DropDownList6.Text);
3.调试评分规则管理时出现的问题
如上图,以著作评分规则修改为例,要修改评分规则需要查询出数据库中原始的评分,但是在查询单击事件的代码没有写对,执行了很多次都没有成功。
解决方案:
SqlConnectionmyCon=null;
SqlCommandmyCom=null;
try
{
stringmyConStr="DataSource=S-PC;InitialCatalog=KYGLSystem;UserID=sa;password=sa";
myCon=newSqlConnection(myConStr);
myCon.Open();
stringsql="selectZZgradefromzz_sumwherezzlx='"+DropDownListZZjb.Text+"'";
myCom=newSqlCommand(sql,myCon);
SqlDataReaderresult=myCom.ExecuteReader();
if(result.Read())
{
TextBoxZZfz.Text=result["ZZgrade"].ToString();
}
}
catch(Exceptionoe)
{
Response.Write("数ºy据Y库a操¨´作Á¡Â失º¡ì败㨹"+oe);
}
finally
{
if(myCon!
=null)
{
myCon.Close();
}
3.3结论
本系统是高等院校教职员工科研管理信息系统,能够简单的处理个人科研信息,界面清晰,易于理解,操作简单方便。
用户可以进入用户界面查询个人参加项目的情况,修改密码,可以进行科研申报。
管理员通过进入管理界面查询各个项目的具体情况,可以对参加项目的人员或其他信息进行更新,删除等工作,管理参加人员。
管理员还可以根据需要更改各项目的评分规则。
但是还存在一些问题,不能做到按折线图或饼图的形式输出,也不能按报表的形式输出。
完善方案如下:
(1)应该做到用折线图或饼图输出各项目的情况;
(2)应该做到各个工能灵活使用。
4.结束语
通过做本次课程设计,我有很大的感受,也学到了很多的东西。
首先,我明白了自身所处的位置,我掌握的知识还很有限,在课程设计过程遇到很多问题,常常需要花很多时间去解决一个问题,这是因为没有充分掌握相关知识,这就需要我在课下多学习。
如果毕业后想从事这方面的工作,课余时间还应该多看看有关的知识。
另外,还应该在课余多做一些类似的系统,多接触这种做系统的练习,让自己对数据库和编程这方面做到熟练,总结出经验,以便于在以后做系统时能处理好,出现类似的错误能尽快的解决。
其次,我明白了自己在做界面和编写代码时还是做得不够好,还是经常出现错误,在编程方面的能力也还是十分有限的,不能灵活掌握课本的知识。
自己有不明白的问题时,应该尽快的询问老师或者参考其他资料。
自己编写代码时考虑问题还欠缺全面性,不能做到令人很满意。
最后,我明白了开发一个系统不是一朝一夕的事情,虽然三个星期的时间不算太长,但是也有很多其他的同学做的很好。
经过这次训练,自己要加油,下次能做得更好。
附录:
源代码清单
1.登陆页面
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassdl:
System.Web.UI.Page
{
protectedvoidButtsure_Click(objectsender,EventArgse)
{
stringEid1=null;
stringpaw1=null;
stringjs1=null;
Stringsqlconn="DataSource=S-PC;InitialCatalog=KYGLSystem;UserID=sa;password=sa";
SqlConnectionmyConnection=newSqlConnection(sqlconn);
myConnection.Open();
stringsqlsel="selectEid,paw,jsfromdlwhereEid='"+user.Text+"'andpaw='"+paw.Text+"'";
SqlCommandmyCommand=newSqlCommand(sqlsel,myConnection);
SqlDataReaderresult=myCommand.ExecuteReader();
if(result.Read())
{
Eid1=result["Eid"].ToString();
paw1=result["paw"].ToString();
js1=result["js"].ToString();
}
if((user.Text==null)&&(paw.Text==null)){Response.Write("请?
输º?
入¨?
用®?
户¡ì名?
和¨ª密¨¹码?
!
ê?
!
ê?
!
ê?
");}
if((Eid1!
=user.Text)&&(paw1!
=paw.Text))
{
Response.Write("if(confirm('用®?
户¡ì名?
或¨°密¨¹码?
不?
正y确¨¡¤!
ê?
!
ê?
!
ê?
')){window.navigate('dl.aspx');}");
}
if((Eid1!
=null)&&(paw1!
=null)&&(js1=="管¨¹理¤¨ª员¡À"))
{
Session["CurrentValue"]=user.Text;
Response.Redirect("LiuyiDefault2.aspx");
}
if((Eid1!
=null)&&(paw1!
=null)&&(js1=="用®?
户¡ì"))
{
Session["CurrentValue"]=user.Text;
Response.Redirect("LiuyiDefault.aspx");
}
myConnection.Close();
}
protectedvoidButtonCZ_Click(objectsender,EventArgse)
{
user.Text="";
paw.Text="";
}
}
2.管理员界面
2.1管理员人员基本信息
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassglyJbxinix:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
Stringsqlconn="DataSource=S-PC;InitialCatalog=KYGLSystem;UserID=sa;password=sa";
SqlConnectionmyConnection=newSqlConnection(sqlconn);
myConnection.Open();
SqlCommandmyCommand=newSqlCommand("selectEmployee.*,Section.Sname,Department.DnamefromEmployee,Section,DepartmentwhereEmployee.Eid='"+Session["CurrentValue"]+"'andSection.Sid=Employee.SidandDepartment.Did=Section.Did",myConnection);
SqlDataReadermyReader;
myReader=myCommand.ExecuteReader();
if(myReader.Read())
{
Label4.Text=myReader["Eid"].ToString();
Label2.Text=myReader["Ename"].ToString();
Label6.Text=myReader["Esex"].ToString();
Label14.Text=myReader["Sname"].ToString();
Label8.Text=myReader["Ebri"].ToString();
Label20.Text=myReader["Esxzy"].ToString();
Label10.Text=myReader["Emm"].ToString();
Label12.Text=myReader["Ejg"].ToString();
Label18.Text=myReader["Ebyxy"].ToString();
Label16.Text=myReader["Dname"].ToString();
Label22.Text=myReader["Exw"].ToString();
Label24.Text=myReader["Exl"].ToString();
Label26.Text=myReader["Eyjfx"].ToString();
Label28.Text=myReader["Etel"].ToString();
}
myReader.Close();
myConnection.Close();
}
}
2.2管理员密码修改
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassglymima1:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
SqlConnectionmyCon=null;
SqlCommandmyCom=null;
SqlDataReaderresult=null;
SqlCommandcomm=null;
stringpaw1=null;
try
{
stringmyConStr="DataSource=S-PC;InitialCatalog=KYGLSystem;UserID=sa;password=sa";
myCon=newSqlConnection(myConStr);
myCon.Open();
myCom=newSqlCommand();
myCom.Connection=myCon;
stringoldmm=ysmm.Text.Trim();
stringnewmm=xmm.Text.Trim();
stringsqlsel="selectpawfromdlwhereEid='"+Session["CurrentValue"]+"'";
comm=newSqlCommand(sqlsel,myCon);
result=comm.ExecuteReader();
if(result.Read())
{
paw1=result["paw"].ToString();
}
if(paw1==ysmm.Text)
{
if(result!
=null)
{
result.Close();
}
//stringstrUpdate="UpdatestusetstuName='李¤?
芳¤?
',XyDm='02',ZyDm='0201'wherestuNum='091001'";
stringstrUpdate="Updatedlsetpaw='{0}'whereEid='{1}'";
stringsql=string.Format(strUpdate,newmm,Session["CurrentValue"]);
myCom.CommandType=CommandType.Text;
myCom.CommandText=sql;
myCom.ExecuteNonQuery();
Response.Write("alert('数ºy据Y库a内¨²容¨Y修T改?
成¨¦功|!
ê?
!
ê?
!
ê?
')");
}
else
{
if(result!
=null)
{
result.Close();
}
Response.Write("if(confirm('此ä?
原-始º?
密¨¹码?
与®?
数ºy据Y库a中D的Ì?
不?
符¤?
!
ê?
!
ê?
!
ê?
请?
重?
新?
输º?
入¨?
!
ê?
!
ê?
')){window.navigate('glymima1.aspx');}");
}
}
catch(Exceptionoe)
{
Response.Write("数ºy据Y库a操¨´作Á¡Â失º¡ì败㨹"+oe);
}
finally
{
if(myCon!
=null)
{
myCon.Close();
}
}//try结¨¢束º?
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("LiuyiDefault2.aspx");
}
3.用户密码修改代码(同管理员密码修改的代码)
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlC