




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C+语言完成某高校科研管理系统的设计与实现摘 要 近年来,随着各个高校校园网络建设的全面推进和科研力度的进一步加大,旧模式下的科研管理信息系统越来越不适应新形势的需要,本次课程设计利用visual c+ 6.0平台构造科研管理系统,使科研管理工作实现简单的新建,查找某科研项目简单的信息,修改某科研项目信息,删除某科研项目等功能。系统开发平台为windows 2000,采用了结构化与面向对象两种程序设计方法,为了更好的完成该科研管理系统的运行。关键词 程序设计;C+;目 录1 引言1.1 课程设计目的1.2 课程设计的内容1.3 课程设计的背景2 程序说明2.1 课程设计思路说明2.2所需库函数说明3 系统结构及系统图示3.1系统功能函数3.2系统结构 3.3程序的实现3.4程序调试4结束语致谢附录1 设计源程序清单1 引 言随着高等学校科研建设的不断深入发展,科研人员、项目、成果逐年增加,但是长期以来,科研资料及其数据以文字和表格形式存档,不但门类广而且繁杂,格式不统一,管理起来显得混乱;甚至一些资料和数据丢失或残缺,给正常的教学、科研和管理工作带来了极大的不便,管理效率较低; 由于各院校工作的特殊性,套用标准管理方式显然不十分适宜。在当前的形势下,有必要开发适合高院校使用的科研管理系统,使其能更方便、更有效和更安全地管理各种相关资料和数据,并且具备实时处理能力,提高工作效率和工作质量。某高校科研管理系统的工作重心是全心全意为广大教师和科研工作者提供一种高效率、手续简便的服务,要做到这一点必须具备一个能满足新形势需求的、先进的、高效的科研信息管理系统。 高校科研管理系统的开发,其目的是要将先进的管理技术运用到高校科研管理中来,通过该系统,不但能完成学校的科研项目日常管理工作,还可以及时向各级领导、上级主管部门提供报表、数据信息,为领导的决策提供一定的参考1。1.1 课程设计目的本次设计题目:“某高校科研管理系统的设计与实现”是 利用C+程序设计语言设计一个简单的高校管理系统用实现对高校科研信息的简单管理,如增加新科研项目;删除某科研项目;对已完成的科研项目进行存储;查询某科研项目;显示某科研项目的简单信息,等等。程序虽然简单,但对于一个计算机初学者来说是很有必要的,在程序设计过程中通过查阅资料,请教老师,请问同学,让我对C+有了更深的认识。1.2课程设计的内容 本系统分新建、删除、查询、建立已完成项目库等四大功能。其中查询是按照科研项目名查询,系统管理则包括对科研信息的新建,删除及已完成项目库的建立。本课程设计主要解决在一个学校科研信息的管理。在课程设计中,系统开发平台为Windows 2000,程序设计设计语言采用Visual C+,由于没能很好的 运用数据库,对于数据的存储还有待改进。程序运行平台为Windows 98/2000/XP程序通过调试运行,初步实现了设计目标,并且经过完善后,将可以应用在高校中解决实际问题。1.3课程设计的背景 科学研究是高等学校的重要工作之一,对于一所高等院校来说,学科门类多,科研项目及成果所涉及科学领域较广,其数量亦比较大,这给管理造成了一定的困难,通过计算机进行管理无疑是最科学和最有效的方法,一方面可提高工作效率和工作质量,同时又便于部门之间进行信息交流。科研管理信息系统是一个由人、计算机组成的能进行科研信息的搜集、传递、存贮、加工、维护和使用的系统,该系统能够实时反映高校的科研活动,为日常事务的处理和管理职能提供支持。在人类发明计算机之前,管理信息系统完全是手工作业,随着计算机技术的产生和发展,管理信息系统的结构发生了很大的改变,计算机强大的数据处理能力及现代化的网络通讯技术大大提高了管理信息系统的效能。作为高校的科研管理人员要分清楚哪些信息适合计算机处理,哪些信息更适合于手工作业,在工作中将两种方式有机地结合,互相取长补短,以求达到最佳的管理方式。因此,使科研管理工作更加规范化、科学化,建设一个科研管理信息系统已显得非常重要。高校科研管理信息系统通常包括科研人员信息管理、科研项目管理、科研成果管理、学术交流管理、业绩考核管理等。传统的科研管理方法已不再适合目前的科研管理的工作的要求,因此加强科研管理,实现管理科学化,通过管理促进科研的发展,更好地为经济建设服务,则是今后科研管理工作的指导思想。实行科学化的管理,必须尊重科学研究的规律,改变以往那种静止、封闭的行政管理为主的模式,突出科研工作动态、开放的行业性管理特点。它需要全面系统地掌握科研信息,而管理信息系统就是综合利用计算机硬件、软件、网络、数据库等现代化管理手段来满足这个需求的,科研管理信息系统的建立是实现科研管理科学化的一个重要任务1。 2 程序说明2.1 课程设计思路说明 我在对本课程设计思考与查询资料的过程中发现科研管理系统是一个十分庞大的系统,其科研管理系统可分为科研人员管理系统;科研经费管理系统;科研信息管理系统等等。想到自己还是个计算机的初学者,对数据库还不 能很好的运用,所以对于科研人员管理系统与科研经费管理系统的设计与实现还不能完成,就对科研信息管理系统做了一个简单的程序。使用了C+的一些语法知识(类,函数等)配合输入输出流(cin和cout)来解决问题。并运用了 C+中最能解决连接问题的指针:指针使用灵活,可以让你自己管理内存,在你需要的时候及时分配内存,不需要的时候释放掉;举个例子,在一般的链表中,当你要插入一个结点的时候可以为这个结点动态分配内存再插入进链表中,而你在删除完一个结点的时候释放这一部分空间以免占据多余的内存,当然指针的好处远远不止这些,比如:可以有效地表示复杂的数据结构;它能够为调用函数灵活地修改实参变量的值,在函数调用时能够获得1个以上的结果;支持动态内存分配,能够方便地实现动态数据结构(如二叉树和链表);能够直接处理内存单元地址,可以提高程序的运行速度进而提升处理问题的速度等等。当然,因为指针是直接访问地址,所以相对比较麻烦而且很容易出错2。 完成相关资料的查询后我开始设计程序。第一步,因为结构体变量做链表的结点最为合适,所以程序的第一部分我就先通过一个结构体定义了每个记录的基本形式。struct science /结构体/int id;char nameN; /字符串数组char authorN;char publishing_companyN;int date;bool state;science *next; myscience; 第二步,我定义了一个kenyan类,用来声明下面程序需要使用到的功能函数,比如lend()、find()、input()等等,同时声明一些私有成员。 第三步,功能函数的设计,分别设计了新增(input)、删除(del)、查找(find)、显示(show)、查询科研项目状态(lend)。 最后,我编写简单的主函数,定义了类对象t,用以实现程序。 2.2 所需库函数说明 为文件分配空间所用库函数:#include 打开文件用到的库函数:#include 使用字符串所需要库函数:#include C+语言输入输出流库函数:#include 在程序代码的起始处包含了上述头文件后,当需要使用到的时候就可以直接调用系统标准库里头文件信息,来完成程序调度。因此,可以不必自己在源代码中定义库函数的实现代码。勿庸置疑,在程序设计中灵活地运用这些系统自带库函数,能够为自己遍写程序带来较多便利。3 系统结构及系统图示3.1系统功能函数 高校科研管理系统需要实现的功能主要有:查找某科研项目信息、修改某科研项目信息、新增某科研项目信息、查询某科研项目的状态。其中某科研项目信息的新增与查找是整个系统的核心。 (1) find函数string na;system(cls);coutendlendlendlendlendl;couttttt 查找 endl;coutendl;coutna;p=first;while(p!=NULL)if(p-name=na)return true;elsep=p-next;return false;主要功能是通过科研项目名查找某科研项目的相关信息(2) input 函数science *t=new science;system(cls);coutendlendlendlendlendl;couttttt 新增科研状态 endl;coutendl;coutt-name;coutt-author;coutt-publishing_company;coutt-date;t-state=true;t-next=NULL;end-next=t;end=t;主要功能是增加某项科研项目,及相关信息的输入。(3)lend函数 bool t;t=find();system(cls);if(t=false)coutendlendlendlendl;coutttt 对不起,无此科研状态! state=false)coutendlendlendlendl;coutttt 项目进行中 state=false;coutendlendlendlendl;coutttt endl;coutttt 建立已完成项目 成功 ! endl;coutttt endl;p=first;coutttt;system(pause);主要功能是对科研项目当前状态的确定。 3.2 系统结构 科研管理系统新增科研信息查找科研信息建立已完成项目删除科研项目退出管理系统3.3程序的实现 (1)因为没有使用数据库,所以必需先新建几组科研项目的相关信息。登录执行截图如3-1所示 图 3-1登录执行截图 建立科研项目如3-2所示 图 3-2(2)程序正常运行,运行截面如 3-3所示 图 3-3程序运行截图3.4程序的运行 对新建的科研项目进行查找,如3-4所示 图3-4科研项目查找执行截图对新建的科研项目信息进行查找,查找结果如3-5所示 图3-5科研项目查找结果截图 3.4程序调试 程序调试是程序设计过程中很重要的的一个环节。为了便于查错、阅读,在设计该程序时我大多数情况下采用的是结构化程序方法编辑,添加了尽可能多的注释,这为我后来的调试过程带来了很多方便3。最出的调试错误过多,在修改过程中,发现很多都是因为在写完一个语句时忘了加上分号(;),变量名的输入错误;变量名未定义等等。经过仔细的初步检查后我开始了上机调试,在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译如此反复,直到顺利通过编译和连接为止。错误主要有:一、定义变量时;粗心大意错写变量名,不过这在Visual C+编译器的错误信息提示框帮助下还是很容易找到并改正的。所以我发现在定义变量名的时候应该尽可能使用相近意思的英文单词或缩写,如:name(姓名)、num(工作证号)、depart(部门)、t(temp)等等,这样一来就可以适当的减少对变量名的生疏,减少低级错误的过多产生,把更多的精力放在语法检查上。 二、语法错误;在书本以及Visual C+编译器的错误信息提示框的帮助下,能够处理好大多数基本语法错误。我个人认为,作为一个程序员应该把书本上的语法看得滚瓜烂熟,才能在程序设计时驾车就熟的去使用这些语法帮助自己更好地完成程序设计目的;在精通一门语言的同时,学习多门语言的语法知识,体会两种语言的区别,对自己阅读更好优秀程序有很大裨益 三、逻辑错误;逻辑上的错误机器不易检查出来,有时候Visual C+编译器的错误信息提示框里的错误提示或许是不准确的(提示20几个错误,实际上只要改正1处其它的错误都会随之消失),这时就需要对数据处理结果进行人工分析。这种错误是最难找的,需要编写程序的人有相当耐心和细心去找出问题所在。4 结束语 C+ 语言是在C语言的基础上为支持面向对象程序面研制的一种编程语言。为了满足管理程序的复杂性的需要,1980年,贝尔实验室的Bjarne Stroustrup 开始对C语言进行改进和扩充。在经历了三次C+修订后,于1994年制定了ANSI C+标准的草案。以后又经过不断完善,成为目前的C+。C+包含了整个C,而C是建立C+的基础。C+包含了C的全部特征和优点,同时又添加了对面向对象编程的完全支持。面向对象的程序设计方法强调直接以问题域中的事物为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为对象,以作为构成软件系统的基础。这样,在现实世界中有哪些值得注意的事物,在程序中就有哪些对象与之对应。程序设计者的任务包括两个方面:一是设计所需的各种类和对象,即决定把哪些数据和操作封装在一起;二是考虑怎样向有关对象发送消息,以完成所需的任务。经过一学期的认真学习,对C+这门计算机基础语言有了简单的认识。在本次程序设计过程中,我受益量多 。对C+这门计算机基础语言有更深入的了参考文献1 2 谭浩强.C+语言程序设计.第三版.清华大学出版社,20053 叶秉哲.C+常见问题解, 2000附录1:设计源程序清单#include#include#include#includeusing namespace std;const N=100; /常变量struct science /结构体/int id;char nameN; /字符串数组char authorN;char publishing_companyN;int date;bool state;science *next; myscience;class keyan /科研管理类private:science *first,*end,*p;public:keyan()Modify();void menu0(); /程序运行void quit()system(cls);coutendlendlendlendl;coutttt正在保存数据.endl;save();system(cls);coutendlendlendlendlendlendlendlendl;coutttt 感谢您的使用! 再见! endl;exit(1); /函数原型void Modify(); void save(); /数据存盘void lend(); /查询科研项目状态bool find(); /查询科研项目信息void input(); /新增科研项目void del(); /删除科研项目void show(); /显示科研项目信息void input1();void keyan:menu0() system(cls);int c;coutendl;coutendlttt欢迎使用本科研工资管理系统! ;coutendl;couttttt 主菜单 endl;coutttt1. 建立已完成项目 endl;coutttt2. 查找 endl;coutttt3. 新增科研项目 endl;coutttt4. 删除科研项目 endl;coutttt5. 退出系统 endl;coutc;switch(c)case 1:lend();break;case 2:show();break;case 3:input();break;case 4:del();break;case 5:quit();break;default:break;void keyan:Modify()fstream fp(tushu.bat,ios:in);if(!fp)coutendlendlendlendl;couttt 打开数据文件失败,请重新创建数据! endl; coutendl;int i; coutttt 是否新建数据?endl;coutendl;coutttt 1. 新建 endl;coutttt 2. 退出 endl;couti;switch(i) /选择运行项目case 1:input1();break;case 2:exit(0);break;default:break;elsescience *t=new science;first=t;fp.seekg(0,ios:beg);fp.read(char*)t,sizeof(myscience);p=first;t=new science;while(fp.read(char*)t,sizeof(myscience)/t=new science;p-next=t;p=t;end=t;end-next=NULL;p=first;delete t;fp.close();void keyan:save() /保存科研项目信息fstream fp(tushu.bat,ios:out);p=first;while(p!=NULL)fp.write(char*)p,sizeof(myscience);p=p-next;void keyan:lend()bool t;t=find();system(cls);if(t=false)coutendlendlendlendl;coutttt 对不起,无此科研状态! state=false)coutendlendlendlendl;coutttt 项目进行中 state=false;coutendlendlendlendl;coutttt endl;coutttt 建立已完成项目 成功 ! endl;coutttt endl;p=first;coutttt;system(pause);bool keyan:find()string na;system(cls);coutendlendlendlendlendl;couttttt 查找 endl;coutendl;coutna;p=first;while(p!=NULL)if(p-name=na)return true;elsep=p-next;return false;void keyan:input()science *t=new science;system(cls);coutendlendlendlendlendl;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酮症酸中毒预后评估-洞察及研究
- 风电场年度检修计划
- 家具厂锯床维护保养细则
- 高三历史备课组时政热点融入计划
- 小时工兼职合同(标准版)
- 砂料购销合同(标准版)
- 2025年小学三年级信息技术能力提升计划
- 糖尿病患者双向转诊制度及工作流程
- 能源企业2025年工作总结及2025年创新计划
- 三年级语文教研组教学活动统筹计划
- 北京大学情报学考研真题汇总
- 生猪屠宰加工项目可行性研究报告
- 劳动力、机械设备、材料投入计划
- 病人欠费催缴通知单
- GB/T 8627-2007建筑材料燃烧或分解的烟密度试验方法
- GB/T 3280-2015不锈钢冷轧钢板和钢带
- GB 19510.14-2009灯的控制装置第14部分:LED模块用直流或交流电子控制装置的特殊要求
- GA 576-2018防尾随联动互锁安全门通用技术条件
- 中职语文-病句修改专题复习【公开课】课件
- 企业突发环境事件隐患排查与治理工作指南课件
- 初中语文七年级现代文阅读理解精选:说明文20篇(含答案)
评论
0/150
提交评论