1、c+课程设计福建农林大学计算机与信息学院计算机类课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:项目管理姓 名:xxx系:计算机与信息学院专 业:计算机科学与应用(专升本)年 级:2010学 号:xxxxxxxxxxxxx指导教师:xxxx职 称:讲师2011年 5月 25 日福建农林大学计算机与信息学院计算机类课程设计结果评定评语:评分项目分值得分 课程设计报告符合规范10 类层次结构图和类图合理30 主要技术路线正确30 设计报告条理清晰,重点突出20 有一定的创新性,难易程度10成绩:指导教师签字:任务下达日期:2011年3月7日评定日期:2011年6月 日目 录1 设计目的
2、 42 设计要求 43 设计方案 44 设计内容 54.1 算法描述 54.2 算法流程图 54.3 调试过程 64.4 程序代码 85 总结 116 参考文献 12项目管理1 设计目的面向对象程序设计课程设计是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。2 设计要求1、掌握使用一
3、种面向对象程序设计语言如Borland C+或Visual C+等。2、培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。3、通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:(1)通过调查研究和上机实习,收集和调查有关技术资料。(2)掌握设计课题的基本步骤和方法。(3)根据课题的要求进行上机实验调试。4、课程设计完成后,提交课程设计报告。3 设计方案1、系统特点(1)项目信息的初始化。(2)项目信息的添加、修改、删除、查找。(3)项目信息的输出。(4)将项目信息保存为文件。(5)在项目信息中按项目编号、项目名称、项目等级排序。 2、分工我们小组设计的是小
4、型项目管理系统,我负责的模块是重载插入符、提取符以及对信息进行添加、修改、删除、查找操作后进行文件保存的方法和读取保存后的文件的方法。4 设计内容4.1 算法描述当程序运行遇到插入符“”时调用ostream& operator”时调用istream& operator (istream& is, Project_gl& project_gl) 函数将逐个输入项目编号,项目名称,项目等级,项目经理信息。对项目信息的保存和读取的方法是文件流的操作:保存为文件的方法bool Project_gl:SaveInfo()首先对链表是否为空进行判断,为空则返回到信息输入的函数,不为空则以输出方式打开文件P
5、roject.txt文件,流类用ofstream。用while循环来从链表的第一个节点开始逐个将信息写到文件中,一条记录写完用换行来标志。直到指向的节点为空时循环结束,输出保存成功,关闭文件。对文件读取的方法是void Project_gl:ShuruInfo(),新建个Project类型的链表节点,以输入方式打开文件,流类应用为ifstream,首先也是判断Project.txt文件是否为空,为空的话输出失败返回到主函数,否则就逐一读取文件里的数据。最后关闭文件。4.2 算法流程图保存文件函数的流程图如下:图表 14.3 调试过程a.运行程序,没有Project.txt文件输出文件打开失败,
6、浏览信息为空。图表 2b.输入两条记录,退出时保存数据,成功操作。图表 3c.检查输入的信息不保存时正常图表 4d. 检查输入的信息保存后能否正常输出图表 5打开文件,提示成功。图表 64.4 程序代码重载“”ostream& operator (ostream& os,const Project_gl& project_gl) os 项目编号: project_gl.xm_no t 项目名称: project_gl.xm_name t项目等级: project_gl.xm_level t 项目经理: project_gl.xm_manager ”istream& operator (istr
7、eam& is, Project_gl& project_gl) Project *s;door1:cout project_gl.xm_no; if(project_gl.xm_no = 0) return is; /项目编号 输入0结束输入 for(s = Project_gl:head; s != NULL; s =s-next) if(project_gl.xm_no999|project_gl.xm_no0) cout项目编号输入有误project_gl.xm_no) project_gl.xm_no = ; cout 项目编号 已存在! 请重新输入! endl; return is
8、; cout project_gl.xm_name; door:cout project_gl.xm_level; if(project_gl.xm_level5|project_gl.xm_level0) cout项目编号输入有误endl;goto door; cout project_gl.xm_manager; return is; 从文件中读取信息void Project_gl:ShuruInfo() Project *p = new Project; ifstream input; /input.open(Project.dat, ios:in|ios:binary); /打开文件
9、input.open(Project.txt); /打开文件 if(!input) cout 文件打开失败! endl; return; while(input) cout project_gl; input.read(char*)&p-project_gl, sizeof(p-project_gl); input.close(); /关闭文件 cout 读取成功! endl; system(pause); Project_gl:ShowInfo();保存信息到文件中bool Project_gl:SaveInfo() char flag; cout 是否要保存?(Y/N) flag; if(
10、flag != Y & flag != y) cout 保存失败! endl; return false; if(!head) cout 当前没有信息!请添加信息! next; ofstream output; / ofstream output(Project.txt); output.open(Project.txt, ios:out|ios:app|ios:binary); if(!output) cout 文件打开失败! endl; return false; while(p) output project_gl.xm_notproject_gl.xm_namet project_gl
11、.xm_level t project_gl.xm_managerproject_gl, sizeof(p-project_gl); p = p-next; cout 信息保存成功! endl; output.close(); system(pause); /关闭文件 return true;5 总结最初学习课本上的内容是,觉得自己都掌握了相关知识,都会理解,应该能轻松编写出程序代码,可是当真正独立用运这些知识去实现程序功能时,才发现实际编程还是有相当的难度。通过这次面向对象课程设计的学习和程序代码的编写,学习掌握了插入符和提取符重载以及I/O流中文件流操作等的程序实现,对文件打开方式、文件读
12、写的相关问题有了比较深刻的理解。体会很深刻,刚开始的一段时间基本都是通过上网或者去图书馆查找资料,看是否有类似的题目和实例,找了很多,可都是一大堆或者一整个完整的复杂的系统,对我来说太复杂看不懂,我是写io流中文件保存和读取的函数,致使后来脑子完全没有了概念,后来经过和我们组长叶世海还有其他组员一起讨论才慢慢游点儿思绪,最后根据书本上的知识点,经过认真修改调试,才终于把我负责的任务完成,再经过我们组的所有成员一起努力才把整个小系统完成。回头想想,其实我们编写的程序都不是非常难的,每个小模块的实现,都可以用之前学习过的知识来完成,只是太久没有拿起来用而有淡忘,所以平时一定要认真学习、认真温习学过
13、的知识,说不定哪天就派得上用场了。还有心理因素也是很重要的,不要一看到题目就呆住,觉得这么复杂的程序我写不出来,要有信心,再复杂的程序也都可以慢慢分析化简到一个个简单而容易实现的小模块,这是我这次课程设计最重要的体会。还有印象深刻的是在编写程序代码过程中一定要细心,由于输入大意而导致的一些程序的功能上出问题,花费大量的精力和时间来排错,结果却是自己不细心造成的,给自己造成的麻烦那还好,如果要是在开发大型程序上会因为你个人的一点疏忽,会造成整个团队的工作量大大增加,所以我们要养成仔细认真的好习惯。不管是对以后的生活中还是工作都会有所帮助的。课程设计考验的是我们的学习态度,独立思考问题,和解决问题的能力,经过这次的顺利完成,我的收获真的很大。6 参考文献1 马石安、魏文平.面向对象程序设计教程。清华大学出版社20092 马石安、魏文平. 面向对象程序设计教程题解与课程设计指导。清华大学出版社2010
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1