高校科研管理信息系统设计说明书.docx
- 文档编号:3430460
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:27
- 大小:180.24KB
高校科研管理信息系统设计说明书.docx
《高校科研管理信息系统设计说明书.docx》由会员分享,可在线阅读,更多相关《高校科研管理信息系统设计说明书.docx(27页珍藏版)》请在冰豆网上搜索。
高校科研管理信息系统设计说明书
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年秋季学期
面向对象课程设计
题目:
高校科研管理信息系统的设计与开发
专业班级:
10级计算机科学与技术4班
姓名:
杨书庭
学号:
10240408
指导教师:
朱红蕾
成绩:
目 录
一、中文摘要、关键词………………………………………………………2
二、前言………………………………………………………………………3
1课程设计概述………………………………………………………………4
1.1课程设计目的…………………………………………………………4
1.2课程设计的内容………………………………………………………4
1.3课程设计的背景………………………………………………………4
三、正文………………………………………………………………………6
2.1课程设计思路说明……………………………………………………6
2.2所需库函数说明………………………………………………………7
3详细设计……………………………………………………………………8
3.1系统结构………………………………………………………………8
3.2添加数据流程图………………………………………………………8
3.3修改数据流程图………………………………………………………9
3.4删除数据流程图………………………………………………………10
3.5查找数据流程图………………………………………………………10
4系统图示……………………………………………………………………11
4.1系统功能函数…………………………………………………………11
4.2程序的实现……………………………………………………………13
4.3程序运行………………………………………………………………16
4.4程序调试………………………………………………………………18
四、参考文献……………………………………………………………………19
五、课程设计总结………………………………………………………………20
致谢………………………………………………………………………………21
一摘要
科研和论文管理信息系统是由人、计算机、网络组成的能进行科研信息的搜集、传递、存贮、加工、维护和使用的系统,该系统能够实时反映高校的科研活动,为日常事务的处理和管理职能提供重要支持。
高校科研信息管理通常是比较复杂,由于各类信息繁多难归集,利用计算机支持高校高效率完成信息管理,是适应现代高等学校制度要求,推动高校科研信息管理走向科学化、社会化、规范化和自动化,从而提高高校科研项目的成功率,提高整体科研水品和管理科研的水平。
关键词:
科研管理、信息管理存贮加工
二前言
随着高等学校科研建设的不断深入发展,科研人员、项目、成果逐年增加,但是长期以来,科研资料及其数据以文字和表格形式存档,不但门类广而且繁杂,格式不统一,管理起来显得混乱;甚至一些资料和数据丢失或残缺,给正常的教学、科研和管理工作带来了极大的不便,管理效率较低;由于各院校工作的特殊性,套用标准管理方式显然不十分适宜。
在当前的形势下,有必要开发适合高院校使用的科研管理系统,使其能更方便、更有效和更安全地管理各种相关资料和数据,并且具备实时处理能力,提高工作效率和工作质量。
某高校科研管理系统的工作重心是全心全意为广大教师和科研工作者提供一种高效率、手续简便的服务,要做到这一点必须具备一个能满足新形势需求的、先进的、高效的科研信息管理系统。
高校科研管理系统的开发,其目的是要将先进的管理技术运用到高校科研管理中来,通过该系统,不但能完成学校的科研项目日常管理工作,还可以及时向各级领导、上级主管部门提供报表、数据信息,为领导的决策提供一定的参考[1]。
1课程设计概述
1.1课程设计目的
本次设计题目:
“高校科研管理信息系统的设计与开发”是利用C++程序设计语言设计一个简单的高校管理系统用实现对高校科研信息的简单管理,如增加新科研项目;删除某科研项目;对已完成的科研项目进行存储;查询某科研项目;显示某科研项目的简单信息,等等。
程序虽然简单,但对于一个计算机初学者来说是很有必要的,在程序设计过程中通过查阅资料,请教老师,请问同学,让我对C++有了更深的认识。
1.2课程设计的内容
本系统分新建、删除、查询、建立已完成项目库等四大功能。
其中查询是按照科研项目名查询,系统管理则包括对科研信息的新建,删除及已完成项目库的建立。
本课程设计主要解决在一个学校科研信息的管理。
在课程设计中,系统开发平台为Windows2000,程序设计设计语言采用VisualC++,由于没能很好的运用数据库,对于数据的存储还有待改进。
程序运行平台为Windows98/2000/XP程序通过调试运行,初步实现了设计目标,并且经过完善后,将可以应用在高校中解决实际问题。
1.3课程设计的背景
科学研究是高等学校的重要工作之一,对于一所高等院校来说,学科门类多,科研项目及成果所涉及科学领域较广,其数量亦比较大,这给管理造成了一定的困难,通过计算机进行管理无疑是最科学和最有效的方法,一方面可提高工作效率和工作质量,同时又便于部门之间进行信息交流。
科研管理信息系统是一个由人、计算机组成的能进行科研信息的搜集、传递、存贮、加工、维护和使用的系统,该系统能够实时反映高校的科研活动,为日常事务的处理和管理职能提供支持。
在人类发明计算机之前,管理信息系统完全是手工作业,随着计算机技术的产生和发展,管理信息系统的结构发生了很大的改变,计算机强大的数据处理能力及现代化的网络通讯技术大大提高了管理信息系统的效能。
作为高校的科研管理人员要分清楚哪些信息适合计算机处理,哪些信息更适合于手工作业,在工作中将两种方式有机地结合,互相取长补短,以求达到最佳的管理方式。
因此,使科研管理工作更加规范化、科学化,建设一个科研管理信息系统已显得非常重要。
高校科研管理信息系统通常包括科研人员信息管理、科研项目管理、科研成果管理、学术交流管理、业绩考核管理等。
传统的科研管理方法已不再适合目前的科研管理的工作的要求,因此加强科研管理,实现管理科学化,通过管理促进科研的发展,更好地为经济建设服务,则是今后科研管理工作的指导思想。
实行科学化的管理,必须尊重科学研究的规律,改变以往那种静止、封闭的行政管理为主的模式,突出科研工作动态、开放的行业性管理特点。
它需要全面系统地掌握科研信息,而管理信息系统就是综合利用计算机硬件、软件、网络、数据库等现代化管理手段来满足这个需求的,科研管理信息系统的建立是实现科研管理科学化的一个重要任务[1]。
三正文
2.1课程设计思路说明
我在对本课程设计思考与查询资料的过程中发现科研管理系统是一个十分庞大的系统,其科研管理系统可分为科研人员管理系统;科研经费管理系统;科研信息管理系统等等。
想到自己还是个计算机的初学者,对数据库还不能很好的运用,所以对于科研人员管理系统与科研经费管理系统的设计与实现还不能完成,就对科研信息管理系统做了一个简单的程序。
使用了C++的一些语法知识(类,函数等)配合输入输出流(cin和cout)来解决问题。
并运用了C++中最能解决连接问题的指针:
指针使用灵活,可以让你自己管理内存,在你需要的时候及时分配内存,不需要的时候释放掉;举个例子,在一般的链表中,当你要插入一个结点的时候可以为这个结点动态分配内存再插入进链表中,而你在删除完一个结点的时候释放这一部分空间以免占据多余的内存,当然指针的好处远远不止这些,比如:
可以有效地表示复杂的数据结构;它能够为调用函数灵活地修改实参变量的值,在函数调用时能够获得1个以上的结果;支持动态内存分配,能够方便地实现动态数据结构(如二叉树和链表);能够直接处理内存单元地址,可以提高程序的运行速度进而提升处理问题的速度等等。
当然,因为指针是直接访问地址,所以相对比较麻烦而且很容易出错[2]。
完成相关资料的查询后我开始设计程序。
第一步,因为结构体变量做链表的结点最为合适,所以程序的第一部分我就先通过一个结构体定义了每个记录的基本形式。
structscience//结构体
{
//intid;
charname[N];//字符串数组
charauthor[N];
charpublishing_company[N];
intdate;
boolstate;
science*next;
}myscience;
第二步,我定义了一个kenyan类,用来声明下面程序需要使用到的功能函数,比如lend()、find()、input()等等,同时声明一些私有成员。
第三步,功能函数的设计,分别设计了新增(input)、删除(del)、查找(find)、显示(show)、查询科研项目状态(lend)。
最后,我编写简单的主函数,定义了类对象t,用以实现程序。
2.2所需库函数说明
为文件分配空间所用库函数:
#include
打开文件用到的库函数:
#include
使用字符串所需要库函数:
#include
C++语言输入输出流库函数:
#include
在程序代码的起始处包含了上述头文件后,当需要使用到的时候就可以直接调用系统标准库里头文件信息,来完成程序调度。
因此,可以不必自己在源代码中定义库函数的实现代码。
勿庸置疑,在程序设计中灵活地运用这些系统自带库函数,能够为自己遍写程序带来较多便利。
3详细设计
3.1系统结构
3.2添加数据流程图
执行添加相关数据信息流程:
用户首先需要输入添加到数据库中的信息,系统验证是否输入正确的符合要求的信息。
输入正确信息,将数据插入到数据库中,如未输入数据系统提示用户必须输入相关信息。
重新输入数据执行添加操作,如果添加数据信息成功,系统提示添加成功,插入失败需要重新添加。
添加数据信息流程图如图3.2添加数据流程图所示。
3.3修改数据流程图
执行修改相关数据信息流程:
用户首先进入显示页面,执行修改操作,系统根据修改数据主键信息判断是否为所需修改项。
当传入的是主键信息,显示用户所要修改信息页面,否则提示没有相关信息。
当用户对信息修改完成后,系统判断是否输入正确的修改信息。
输入正确,系统修改数据库中数据,输入错误用户需要继续输入数据信息。
当修改成功,系统自动跳转倒显示页面,否则系统提示错误信息。
修改数据信息流程图如下图3.3修改数据流程图所示。
图3.2添加数据流程图
图3.3修改数据流程图
3.4删除数据流程图
执行删除相关数据信息流程:
用户首先进入显示页面,执行删除操作,系统根据删除数据主键信息判断是否为所需删除项。
当传入的是主键信息,显示用户所要删除信息页面。
当用户删除数据时,系统判断是否删除信息成功。
当删除成功,系统自动跳转倒显示页面,否则系统提示错误信息。
删除数据信息流程图如图3.4删除数据流程图所示。
3.5查找数据流程图
执行查找相关数据信息流程:
用户首先进入显示页面,在指定的文本框处输入查找信息,在数据库中查找符合要求的信息。
如果找到信息,显示详细信息,如果没有查找到系统提示没有此信息。
查找数据信息流程图如图3.5查找数据流程图所示。
图3.4删除数据流程图
图3.5查找数据流程图
4系统图示
4.1系统功能函数
高校科研管理系统需要实现的功能主要有:
查找某科研项目信息、修改某科研项目信息、新增某科研项目信息、查询某科研项目的状态。
其中某科研项目信息的新增与查找是整个系统的核心。
(1)find函数
{
stringna;
system("cls");
cout< cout<<"\t\t\t\t查找 "< cout< cout<<"\t\t\t\t请输入项目名: "; cin>>na; p=first; while(p! =NULL) { if(p->name==na) returntrue; else p=p->next; } returnfalse; } 主要功能是通过科研项目名查找某科研项目的相关信息 (2)input函数 { science*t=newscience; system("cls"); cout< cout<<"\t\t\t\t新增科研状态"< cout< cout<<"\t\t\t\t请输入科研项目名称: ";cin>>t->name; cout<<"\t\t\t\t请输入负责人姓名: ";cin>>t->author; cout<<"\t\t\t\t请输入科研经费: ";cin>>t->publishing_company; cout<<"\t\t\t\t请输入编号: ";cin>>t->date; t->state=true; t->next=NULL; end->next=t; end=t; } 主要功能是增加某项科研项目,及相关信息的输入。 (3)lend函数 { boolt; t=find(); system("cls"); if(t==false) { cout< cout<<"\t\t\t对不起,无此科研状态! "< } else { if(p->state==false) { cout< cout<<"\t\t\t项目进行中"< } else { p->state=false; cout< cout<<"\t\t\t"< cout<<"\t\t\t建立已完成项目成功! "< cout<<"\t\t\t"< } } p=first; cout<<"\t\t\t";system("pause"); } 主要功能是对科研项目当前状态的确定。 4.2程序的实现 (1)因为没有使用数据库,所以必需先新建几组科研项目的相关信息。 登录执行截图如4-1所示 图4-1登录执行截图 建立科研项目如4-2所示 图4-2 (2)程序正常运行,运行截面如4-3所示 图4-3程序运行截图 4.3程序的运行 对新建的科研项目进行查找,如4-4所示 图4-4科研项目查找执行截图 对新建的科研项目信息进行查找,查找结果如4-5所示 图4-5科研项目查找结果截图 4.4程序调试 程序调试是程序设计过程中很重要的的一个环节。 为了便于查错、阅读,在设计该程序时我大多数情况下采用的是结构化程序方法编辑,添加了尽可能多的注释,这为我后来的调试过程带来了很多方便[3]。 最出的调试错误过多,在修改过程中,发现很多都是因为在写完一个语句时忘了加上分号(;),变量名的输入错误;变量名未定义等等。 经过仔细的初步检查后我开始了上机调试,在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译……如此反复,直到顺利通过编译和连接为止。 错误主要有: 一、定义变量时;粗心大意错写变量名,不过这在VisualC++编译器的错误信息提示框帮助下还是很容易找到并改正的。 所以我发现在定义变量名的时候应该尽可能使用相近意思的英文单词或缩写,如: name(姓名)、num(工作证号)、depart(部门)、t(temp)等等,这样一来就可以适当的减少对变量名的生疏,减少低级错误的过多产生,把更多的精力放在语法检查上。 二、语法错误;在书本以及VisualC++编译器的错误信息提示框的帮助下,能够处理好大多数基本语法错误。 我个人认为,作为一个程序员应该把书本上的语法看得滚瓜烂熟,才能在程序设计时驾车就熟的去使用这些语法帮助自己更好地完成程序设计目的;在精通一门语言的同时,学习多门语言的语法知识,体会两种语言的区别,对自己阅读更好优秀程序有很大裨益 三、逻辑错误;逻辑上的错误机器不易检查出来,有时候VisualC++编译器的错误信息提示框里的错误提示或许是不准确的(提示20几个错误,实际上只要改正1处其它的错误都会随之消失),这时就需要对数据处理结果进行人工分析。 这种错误是最难找的,需要编写程序的人有相当耐心和细心去找出问题所在。 四参考文献 [1] [2]谭浩强.C++语言程序设计.第三版.清华大学出版社,2005 [3]叶秉哲.C++常见问题解,2000 [4]谢希仁.计算机网络(第二版)[M].北京: 电子工业出版社,2003.6 [5]戴志诚,赵国峰.JSP信息化系统建设案例[M].北京: 人民邮电出版社,2006.12 [6]成晓静,毕靖.网页设计三剑客完全学习手册[M].北京: 中国电力出版社,2004.11 [7]赵强.精通JSP编程[M].北京: 电子工业出版社,2006.3 五课程设计总结 C++语言是在C语言的基础上为支持面向对象程序面研制的一种编程语言。 为了满足管理程序的复杂性的需要,1980年,贝尔实验室的BjarneStroustrup开始对C语言进行改进和扩充。 在经历了三次C++修订后,于1994年制定了ANSIC++标准的草案。 以后又经过不断完善,成为目前的C++。 C++包含了整个C,而C是建立C++的基础。 C++包含了C的全部特征和优点,同时又添加了对面向对象编程的完全支持。 面向对象的程序设计方法强调直接以问题域中的事物为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为对象,以作为构成软件系统的基础。 这样,在现实世界中有哪些值得注意的事物,在程序中就有哪些对象与之对应。 程序设计者的任务包括两个方面: 一是设计所需的各种类和对象,即决定把哪些数据和操作封装在一起;二是考虑怎样向有关对象发送消息,以完成所需的任务。 经过一学期的认真学习,对C++这门计算机基础语言有了简单的认识。 在本次程序设计过程中,我受益量多。 对C++这门计算机基础语言有更深入的了解。 致谢 在此向所有在这次课程设计中给予我关心、支持和帮助的老师、朋友们,致以最诚挚的谢意,在整个的设计过程中,很多老师、同学们都给予我们莫大的帮助。 我深知,只有不断的拼搏进取、不断的前进,才是对大家最好的感谢。 老师的严谨的工作作风、亲切的待人方式,渊博的专业知识都给我留下了深刻的印象,老师细心的讲解和指点使我从课程设计之中受益匪浅,使我从实际的算法实现中更好地掌握了理论知识。 她深厚的理论水平都使我受益匪浅,无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都是一种巨大的帮助! 最后还要感谢我的同学们,感谢他们耐心的讲解和细心的指导,也感谢他们给我提出那么多的解决方案和指导性意见,帮我顺利完成我的课程设计! 附录: 源代码 #include #include #include #include usingnamespacestd; constN=100;//常变量 structscience//结构体 { //intid; charname[N];//字符串数组 charauthor[N]; charpublishing_company[N]; intdate; boolstate; science*next; }myscience; classkeyan//科研管理类 { private: science*first,*end,*p; public: keyan() { Modify(); } voidmenu0();//程序运行 voidquit() { system("cls"); cout< cout<<"\t\t\t正在保存数据......"< save(); system("cls"); cout< cout<<"\t\t\t感谢您的使用! 再见! "< exit (1); } //函数原型 voidModify(); voidsave();//数据存盘 voidlend();//查询科研项目状态 boolfind();//查询科研项目信息 voidinput();//新增科研项目 voiddel();//删除科研项目 voidshow();//显示科研项目信息 voidinput1(); }; voidkeyan: : menu0() { system("cls"); intc; cout< cout< "; cout< cout<<"\t\t\t\t主菜单"< cout<<"\t\t\t1.建立已完成项目"< cout<<"\t\t\t2.查找"< cout<<"\t\t\t3.新增科研项目"< cout<<"\t\t\t4.删除科研项目"< cout<<"\t\t\t5.退出系统"< ; cout<<"\t\t\t请选择: "; cin>>c; switch(c) { case1: lend(); break; case2: show(); break; case3: input(); break; case4: del(); break; case5: quit(); break; default: break; } } voidkeyan: : Modify() { fstreamfp("tushu.bat",ios: : in);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 科研 管理信息系统 设计 说明书