第一篇:图书馆信息管理系统设计实验报告
JAVA课程设计报告
设计题目:图书馆管理信息系统设计开发
专业:电子商务
班级:09-2班
学号:20075056
学生:沈万青
指导教师:惠刚、靳鹏
时间:2009-12-19——2009-12-30
2011年12月30日
目录
1.实验目的………………………………………………………………2
2.实验要求………………………………………………………………2
3.实验内容………………………………………………………………3
3.1图书采购系统……………………………………………………4
3.2图书编目系统……………………………………………………7
3.3图书检索系统……………………………………………………8
3.4流通管理系统……………………………………………………8
3.5连续物出版……………………………………………………11
3.6期刊编目系统……………………………………………………13
4.实验步骤………………………………………………………………14
4.1可行性分析………………………………………………………14
4.2组织结构分析……………………………………………………15
4.3业务流程分析……………………………………………………16
4.4数据流程分析……………………………………………………17
5.实验结果………………………………………………………………21
5.1总体设计…………………………………………………………21
5.2物理配置方案设计………………………………………………22
6.实验总结……………………………………………………………………22 7附件………………………………………………………………2
3一、实验目的《JAVA 高级应用》课程是电子商务专业的面向对象编程的提高课程。本课程设计是《JAVA 高级应用》课堂教学的重要组成部分,可以加深学生对课堂讲授内容的理解,提高学生对JAVA语言各部分内容特别是数据库编程和网络编程的综合使用能力,帮助学生初步掌握JAVA语言在web程序开发中的应用,为电子商务系统设计与开发奠定基础。java课程设计是电子商务专业的主要实践性教学环节之一,是围绕java并运用所学课程的知识,结合实际应用设计而进行的一次综合分析设计能力的训练。要求按照实验题目的要求,使用java开发工具,用所学的java编程知识,编写具有指定功能的程序,并在计算机上编译运行,分析运行结果,判断程序是否正确。
因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行是非常困难的。其次,借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往往是人工操作所难以胜任的,而且经常会出现这样那样的差错。同时,图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。使用图书借出与管理系统可以大大地提高工作效率,减少工作中可能出现的错误,是提高学校图书馆自动化水平的重要手段之一。其开发主要包括后台数据库的建立和维护以及前端应用程序界面开发两个方面。对于后台数据库的建立和维护要求建立起数据的一致性和完整性强、数据安全性好、符合3NF范式库。而前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。在中国软件行业日益进步的今天,利用这些资源来能有效地减轻工作人员的负担,同时能让读者更加方便的查询相关的信息。
通过学校图书借出与管理系统的设计,熟练掌握java、SQL Server 2000等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。
二、实验要求
图书馆管理系统是一个面向管理员的子系统。完成该项目有以下功能要求:①管理员可以通过网络使用用户名和密码登录电子图书馆的管理系统;②该管理系统可以帮助管理员进行日常工作;③管理员拥有图书管理权限,如图书的入库、清理、转库等;管理员拥有读者管理权限,如读者办证、退证、证件挂失等;管理员拥有图书流通管理权限,可以管理图书的流通,如办理借书、还书;④管理员可以有多个,分别拥有不同的权限,完成不同的任务。
在实验过程中,还有以下实验要求,(1)问题描述准确、规范;(2)设计出正确、完整、满足功能要求的应用程序;(3)程序结构合理,调试数据准确、有代表性;(4)界面布局整齐,人机交互方便;(5)输出结果正确;(6)正确撰写实验报告。
三、实验内容
六、实验总结
经过两个星期的学习,我们终于把这个图书馆管理系统做出来了,虽然做得不是很完美,但是却是我们这个小组的每一个成员辛苦了两个星期的成果,我们为此感到开心。
说实话,我们这一组的有好几个同学JAVA学得不是很好,上课虽然能听得懂,但毕竟动手变这么大型的系统还不是有相当难度的,所以在刚开始做的时候,我们每一个人都认为这是一个非常艰巨的任务。但在在为期两个星期的课设中,我们始终以一个积极认真的态度来面对我的课题。我想用我的态度来弥补一些我在技术和能力上的不足。刚开始我们根本不知道该如何动手,想根据课本上的例题仿做一个!可是后来看到其他组都在认真的做任务,并且根据查相关的资料,我们了解了许多关于图书馆系统制作方案,不会的的地方去请教会的人,我们学到了许多,因为学习就是从不会到会的!
经过激烈的讨论,我们根据各自的擅长的领域在第一次上机时我们把任务分配好了。但是有两天做实验我们把大部分的时间浪费了,也没有做出来什么,只是把一个简单的登录界面做好了。不过我们也很开心了,因为至少是我们自己做出来的,虽然没有太完善。
第三四次上机我们开始做每一个版块的功能模块,一共要完成三个版块,我们四个人分成四组,我要完成最近一个系统维护版块,这个版块包括两大模块,更改密码和用户管理,而我个人主要做的是用户管理这个版块。在实训的过程中我还学到了JAVA的图形化界面。这让我们很轻松的就能把一个界面弄出来,而不需要让我们打很我繁琐的程序代码,当然我的这个模块的界面我花了半天就做出来了,做出来之后,接下来就是接监听,这对我来说是一个难点,基础java学的不是很好,起初我基本是一点也不会,自己看书也只是看得懂,但也编不出来,我只能去请教组里其他同学,伙伴们给了我很大帮助,很耐心的讲解给我听,后来基本明白了,根据同伴们的建议,我终于把监听器做出来了。
第二个星期,是我们大家共同讨论难点的时候,因为我们把所有界面都做出来,监听弄好了,最主要的是如何把所有功能模块连接到一起,因为各自编的程序代码有很大差异,这对我们来说是一个不小的挑战,第刚开始我们一点头绪都没有,而且觉得特别麻烦,要改很多地方,刚开始处理的时候,出现了很
多问题,后来经过不断地调试终于把各个版块结合在一起形成一个整体。
就这样,实训两周的时间就结束了,我们也基本实现了图书馆管理系统大部分功能。在实训期间,让我重新认识了JAVA这门课。在设计开发过程中,有很多难题不可能靠我自己一个人解决,多亏了身边的同学与我的指导老师,给了我很多帮助。希望自己在以后的学习生活中,可以改掉在课社中出现的浮躁问题,更上一层楼。
但本系统也存在设计上的不足,首先因为初次设计此类的系统,在初期阶段需求分析和考虑数据库设计的时候都做的不全面,以至不能很好的保证数据的完整性,在长时间使用删除一些数据后,会有一些脏数据留存,也可能有其他一些问题发生。其次,仍然有一些地方没有及时的给用户反馈,没有做操作可逆的处理。另外,对教材科工作的了解不够深入,会有些功能和操作方式还没有考虑到。
经过这次合作,我们四个人更加默契了。这次课程设计由高峰担任组长。由于时间紧张,并且还要准备高级java考试,我们每个人的任务都很重。每个人都有自己的特长,出现问题和困难时,能够一起解决。在课程设计过程中也出现了分歧,都由大家商量决定解决。通过这次课程设计,增加了四个人之间的默契度,也让我们学会了如何进行团队合作。
这次课程设计让我们对《JAVA课程设计报告》这么课程有了更深的理解,同时更加了解管理信息系统的过程,基本掌握了各个阶段的要点,能够在进行实际操作过程中运用所学知道,将理论用在实际上。虽然最后的成果我们并不是很满意,但是我们尽了最大的努力。
最后的系统还是存在很多错误和漏洞,原因在于我们的技术不成熟,还有时间的不够充裕。相信以后做图书馆管理信息系统的时候,这次的课程设计将成为我们的一次宝贵经验,从失败中我们学到了更多,不仅仅是做课程设计的经验,还有团队合作的经验。经过两个星期的开发和设计,图书馆管理信息系统基本开发完成。其功能基本符合用户的需求,能够完成大量的信息录入,提供方便的查询功能和部分系统维护功能。使用能户方便进行资料修改、更新、删除。同时也考虑到减少数据冗余的问题,对于数据的一致性的问题也通过程序进行了有效的解决。通过本次课程设计,我基本掌握了java编程,使我更进一步了解了面向对象编程的内涵,领略了JSP网页程序的方便、高效。我也认识到自己在编程方面还有许多欠缺。在今后的日子里,我要加紧学习和工作,争取掌握更多的编程技巧,丰富和补充自己。在开发过程中,通过老师的指导和监督,我们能按照进度一步一步地进行开发设计。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益非浅。无论在理论上还是在实践中,都给予我很大的帮助,这对于我以后的工作和学习都有一种巨大的帮助。在本次的课程设计过程中,我们学到了很多,不仅仅是知识方面的收获,还有与人合作上的技巧和勇于探索的精神。
虽然,在技术上我们还存在着很多的不足甚至是错误,但是我们相信只要我们在今后的学习生活中不断的创新和探索,我们就会不断取得进步。
第二篇:学生信息管理系统实验报告
重庆科创职业学院
实 训 报 告
题目: 学生信息系统管理
专业:计算机信息管理班级:计信管ZB421201学号:2012701287姓名:胡航成绩:指导教师:廖 小 娟
完成日期:年月日
第一章前言
1.1 历史现况及其发展方向
科技时代的到来,人们对于科技的需求也随之变大。各种工作的办公坏境
也都是自动化了,对学校来说也一样。现在物质生活的提高和人们收入的提高也促成了许多学校招生的增加。随着学生大量的增加,对于学生的管理也就变成了当代学校比较重视的一个问题。老式的管理也不再适合现在的管理模式。
那么对于科技时代的更新我们应该怎么才能更好的对学生有一个更加全面
和系统的管理呢?我想着也许是可以引起我的深思的话题。以往学生的数量还在我们的控制之内,每个老师或者每个机构可以利用一对多的模式来对学生进行分类来管理。每天的都会有不同的事情在发生,老师们都不可能每件事都要亲自亲为。为了减轻老师们的负担和更好的对学生有一个了解,在这个科技时代学生管理系统也就随之诞生了。
学生管理系统淘汰了原先老式的管理方法,实现了足不出户也能更好的了
解学生各个方面的信息,为现阶段的学校节省了许多不必要的时间的同时也可以让学生更好的了解自己所在的学校。
1.2行业作用表现
各行各业的发展都离不开历史和创新,教育行业也一样。特别是在我们中
国这个人口大国,据可靠数据显示中国每年的大学毕业生多达700与万,着还只是大学生的当然还有中学小学。这是一个非常可观的数字。对于如此多的学生,如果没有一个机制来去管理这样的学生人群,那么中国的教育产业将会变成什么样呢?所以对于开发学生管理的软件很多企业都在大胆的创新,各式各类的管理系统也就不言而喻了。
很多版本的系统都有统一的特征,那就是学生可以自主登陆管理系统查询
自己的资料,不仅如此。作为教育工作者也可以通过这种系统去了解学生的各项资料。大多数的学校对于这块还是做的比较好的。通过这些客观的数据我们不难想象,该行业的发展潜力是巨大的。有的人通过学生的数据也能联想到教育工作者是否也需要这样的一个平台来进行管理呢?答案是肯定的。
这是一个面向对象的管理行业,在未来,知识的普及也会大众化,这意味
着什么呢?意味这有越来越多的人会踏入学校,那么对于这方面的管理也就会加大力度。多以这是一个很有潜在竞争意义的行业。因为它不仅体现在教育行业,各企业对于员工的管理;图书馆对于图书的管理很多行业都可以用管理系统来代替以前老式的管理坏境。
第二章 可行性分析
2.1可行性要求
对于任何一个软件的开发,前期都需要对该开发软件进行全面的市场调查和可行性进行分析和预测。要对软件完成后的未来市场有一个大致的了解,大概需要以下几点:
1.现有条件分析:目前拥有的设备和坏境哪呢过否支持设计软件。
2.开发人员的配备:一拥有的工作团队是否具有开发软件的能力。
3.软件开发策划案:对开发的软件要有一个大概的模型设计,知道设计的软件成品的样子和开发软件所需要的框架。
4.问题的解决:开发过程中会遇到很多的技术问题,能否解决这些问题怎么样去解决需要一个相对比较完美的方案。
2.2经济可行性
学生管理系统的开发和管理从传统的意义上来说都不属于什么大规模的软件开发,也不需要很多专业的人员和技术设备。只需要几台电脑和几个相对比较了解电脑的从业人员就可以开发出一个简单的管理系统。开发这种系统的成本不仅很低,而且从某个方面来看还可以带来经济利益。
所以从经济可行性方面来看,一个相对比较专业的学生团队就可以独立的开
发出一个学生管理系统。
2.3技术可行性
本系统采用B/S的结构模式来设计。大概的模型如图2.1所示
图2.1如图所示,该管理系统大致的分布图,有一个统一的登入入口,登陆时
会提供用户选着是用学生端登陆还是用教师端登陆。不同端口的登陆会进入不同的管理界面。在教师和学生管理界面中各自设多个子页面来管理不同方面的信息。在总的框架和子页面的设计中,所需要的开发人员不多,会简单的操作代码的编写即可。技术层面的设施在机房内便可可以完成。
2.4开发坏境和软件选择
开发的环境和软件的选着是一个很容易完成的阶段,大多数的学校都会有一
个计算机实验房间提供给学生进行各种各样的计算机的简单操作和实验。
对于开发环境的选折让用户有了更大的空间。很多学校或者开发团队都选用的是winds xp的系统。相对于现在的winds7来说,xp系统很少存在兼容性的问题而且系统上手也比较方便,界面可以更加直观的表现出一些数据以至于更加了解所开发软件的性能等。Winds7系统也可以选折,但是由于很多软件的老化不适应,很多功能都无法实现,相对来说xp系统能更好的开发软件。
开发系统的软件有很多,比如说visual c++,visual studio2005等等。c++是一
门较难的语言,对于编写人员的要求比较严格,而且在程序编译执行的过程中容
易出错。visual studio 2005就不一样了,虽然都需要写代码,但是visual studio 2005的代码更容易实现,采用c#的代码和winds窗口的方式来完成软件的建设相对于c++来说,更加容易也比较节省时间和经济成本。
第三章需求分析
3.1 设计目的 学生信息是学校管理中一项繁琐的工作。管理人员需要建立学生的学籍,计
算每学期考试不合格的学生,及这些学生的详细情况;学生完成一门课程的学习后,教师学要录入学生的考试成绩,计算平均成绩,汇总各分数段的人数;学生需要查询已结业的各门课的成绩;班主任需要查询本班学生的学习情况,包括各门课程的平均成绩和每个学生的考试通过情况。为此,设计一套实用的学生信息管理系统就可以大大简化管理人员、班主任和任课教师的工作,方便学生查询自己的学习情况。
学生信息管理系统须具备学生信息的输入、查询、修改、删
除和排序等功能,通过这个系统的使用,实现学生信息管理工作系统化,为教师的日常管理和学生的学习提供便利。这个系统的使用者主要是管理员,即完全由管理员完成对学生个人信息和成绩数据的输入和维护。数据存储在文件中。进入系统后能够读入相应的学生信息文件和学生成绩文件。实现对学生数据按照学号或者姓名进行查询。对于学生的成绩,能够进行简单的统计和查询。
3.2 用户需求
系统使用者:管理人员、班级辅导员(或班主任)、教师、学生等。
系统运行环境:网络运行。
表为系统主要功能。
图3.2 学生信息管理系统模块图
密码验证和修改模块:该模块主要完成身份验证和密码管理功能。管理员通过这个模块登录。注销和退出。学生信息管理模块:该模块主要实现对学生姓名、性别、出生日期、联系电话院系信息的录入、修改、查询、浏览和删除功能。学生成绩管理模块:该模块主要实现对学号、考试成绩的录入、修改、查询、浏览和删除功能,并实现各科目成绩的汇总和排序。3.5分析设计
3.5.1.系统的原点和汇点。
根据系统初步要求,管理人员、班主任、教师学生等都需要产生数据,通过使用本系统得 到 所 需 的 查 询 统 计 结 果,因 此 管 理 人 员、班主任、教师、学生等是数据输入的源点和数据输出的汇点。
3.5.2.系统所需的存储文件。
系 统 中 需 要 存 储 学 生 信 息、课 程 信 息、考 试 成 绩 信 息、教 师 信 息 以 及 各 类 的 编 码,因此需要学生基本信息、教师信息、课程信息、教学计划、考试成绩 等数据存储文件。
3.5.4.数据流。
管理人员提供教学计划信息,课程 基本信息、学生基本信息、教 师 基 本 信 息、编 码对 应 关系,学生信息管理系统为管理员提供提供学生信息情况汇总,考试情况汇总等。教师提供学生考试成绩,学生信息管理系统为教师提供学生成绩表,并汇总各分数段人数平均成绩。班主任提供查询统计条件,获得考试通过情况。学生输入成绩查询条件,获得考试成绩。
第三篇:《学生信息管理系统》实验报告
《学生信息管理系统》课程设计
一,实验目的掌握一些access数据库的表,查询,窗体,报表和宏的应用和技巧。
二,使用环境
Access2003
三,内容与设计思想
1.系统主要有:
班级信息表,课程学年信息表,学生信息表,各科信息表,总成绩表,课程信息表,获奖信息表。
2.系统的设计思想:
(1)为了记录班级信息,需要建立班级信息表。
(2)为了记录信息信息,需要建立学生信息表。
(3)为了记录课程信息,需要建立课程信息表。
(4)为了记录课程学年信息,需要建立课程学年表。
(5)为了记录学生各科成绩信息,需要建立各科信息表。
(6)为了记录学生总成绩信息,需要建立总成绩信息表。
(7)为了记录获奖信息,需要建立课获奖信息表。
3.完成的主要功能:
(1)浏览功能,这功能包括:浏览班级信息,浏览学生信息,浏览学生各科成绩,浏览
学生总成绩,浏览获奖学生信息
(2)查询功能,这功能包括:学生成绩查询,班级信息查询,个人信息查询。
(3)添加功能,这功能包括:添加课程学年信息,添加班级信息,添加学生信息,添加
课程信息,添加学生各科成绩,添加学生总成绩,添加获奖学生信息。
(4)删除功能,这功能包括:删除课程学年信息,删除班级信息,删除学生信息,删除
课程信息,删除学生各科成绩,删除学生总成绩,删除获奖学生信息。
(5)打印功能,这功能包括:打印学生信息,打印班级信息。
(6)菜单栏功能,这功能包括:打开,浏览,查询,添加,删除,打印。
四,实验过程
1.登录界面模块
此功能模块主要作用是将用户的用户名和密码来登录,进入学生信息管理系统界面。设计此模块时运用了相关的宏。
2.主界面模块
此功能模块主要作用是用切换面板形式连接到其他界面。
设计此模块时运用了相关的宏。
3.浏览模块
此功能模块主要作用是将用户已输入好的各种信息按用户选择浏览模式集成到一个
界面。
4.查询模块
此功能模块主要作用是将用户想查询的信息按各种查询方式来实现。
主要用的查询方式是:交叉表查询,选择查询。
设计此模块切换面板时运用了相关的宏还在VB代码窗口写了一些有关的代码,比如
说:按用户选择的查询方式来显示一些文本框和按钮,主要用了它们的Enabled, Value, Visible属性。
5.添加模块
此功能模块主要作用是将数据库所有的信息集成到各个界面,用户选择添加的内容并
输入完后保存到相关的数据库表中。
6.删除模块
此功能模块主要作用是将数据库所有的信息集成到各个界面,用户选择删除的内容并
按删除按钮时从相关的数据库表中删除此信息。
设计此模块切换面板时运用了相关的宏。
7.打印模块
此功能模块主要作用是将用户想要的信息转换成报表形式。
此模块利用了查询与报表等功能。
设计此模块切换面板时运用了相关的宏还在VB代码窗口写了一些有关的代码,比如说:按用户选择的打印方式来显示一些文本框和按钮,主要用了它们的Enabled, Value, Visible属性。
8.菜单栏模块
此功能模块主要作用是将本系统所有的模块集成到菜单形式。
设计此模块运用了相关的宏。
五,实验结果
在此次系统的设计中我遇到了一些问题,第一个是:因建的关系错误,输入数据时输入不成功,反复做了一些调整还加了一些表终于解决了此问题。第二个是:做查询窗体时解决不了把查询结果集成到窗体的形式来显示,但是反复试试和看课程教材终于解决了此问题,由于一次性看到所查询的信息把学生信息查询的结果没集成到窗体形式。查询班级信息和个人信息时查询结果都是窗体的形式来显示。
在设计此次系统各个功能和模块式时我运用了一些宏知识和VB知识。宏主要用在登录窗口,菜单栏和各个窗体的切换功能。VB代码主要是用在查询和打印这两个窗体,为了按用户所选的查询和打印方式来显示需要的控件,这些控件包括:文本框和按钮。主要用了它们的Enabled, Value, Visible属性来实现显示需要的控件。为了窗体的外观好看用photoshop设计了窗体背景,由于时间的关系还一些窗体的背景还没做完。
通过本次课程设计我学会了有关宏的概念,作用,还学会了ACCESS在实际生活中的应用。在本次课程设计中我独立完成了所有功能,遇到困难时反复做实验参考我们的课本。我在本系统中实现了浏览,查询,添加,删除,打印,菜单栏功能。这些功能里面用的时间比较多的是查询功能和菜单栏功能。在做查询和窗体的设计方面有了较高的认识和进步。
第四篇:毕业论文 图书馆信息管理系统
毕业论文 图书馆信息管理系统,共35页,12771字,附源程序
摘要
图书馆信息管理系统是一种在学校中常用的一种系统。它从图书的入库登记到查询浏览,从读者的管理到图书的借阅,形成了一个整体自动化管理模式。本论文以学校的图书馆为例。系统主要有三个方面的内容:一方面是图书管理,主要包括新书入库 图书整理 图书信息的修改等方面。一方面是图书借阅,主要包括图书的借阅和归还。第三方面是信息查询,主要包括图书目录查询 读者信息查询等。论文设计以这三个方面展开,形成一套完整的图书馆信息管理系统。
本设计为图书管理系统,是根据图书馆,用户,管理员等的实际情况为基础,是数据库系统的开发。把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。
因此本人结合开入式图书馆的要求,对数据库管理系统、SQL语言原理、VB应用程序设计,VB数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆管理员的需要。
关键词:图书,Visual basic6.0,ACCESS,借阅
第五篇:车辆信息管理系统实验报告新
课程设计报告格式
面向对象程序设计I
课程设计报告
题目:车辆信息管理系统 学院:计算机科学与工程学院 专业:软件工程专业 班级: 学号: 姓名: 指导老师:
设计日期:2014.12.17-12.23
于文件的格式的实现。了解system函数对于命令行指令的调用,cls指令实现清屏及color指令改变控制台的前景色和背景。
还应用了左对齐setiosflags(ios::left),设置域宽setw()等函数。
3.链表这种数据结构相关增删改查基本功能实现相关知识。3.功能设计或算法设计
车辆信息管理系统由两个子系统构成,它的主要功能如下: <1>.轿车信息管理系统 1.添加车辆信息
主要添加的车辆信息包括5各方面,分别是:桥车的车牌号(编号不唯一),车辆名字,车辆的价格,车辆的生产日期,车辆的生产地等。2.修改车辆信息 输入车辆的编号,就会显示全部车辆信息,然后根据提示写出修改信息,并会保存在相应的文件中。3.删除车辆信息 输入要删除的车辆编号,就会将此车辆信息从相应的文件中删除,示用户车辆信息已删除。并提
4.查询车辆信息 输入查询车辆的编号,就会从文件中调取记录,显示信息。5.显示所有车辆信息
显示文件中所有车辆信息。6.清除所有车辆信息 清除所有车辆信息。7.总的轿车车辆数 利用类中的变量count来计算车辆数,通过文件读取存入,也会在运用面向对象的思想,直接将问题抽象成对象,运用类的派生,实现了代码的复用,运用类的多态性生成多个实例,实现对同一事物的不同响应。功能结构图
类图
4.程序定义的类及函数说明
1.(主要部分)轿车信息管理系统:
将轿车信息定义为一个car类,在类中包含私有数据成员string name String number string price string date string place,分别表示车名,车辆编号,车辆价格,买车时间及车辆的价格。add_car(),modify_car(),delete_car(),search_car(),show_all(),clear_all(),save_all(),count_all(),分别用来添加车辆信息,修改车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,清除所有车辆信息和统计总的轿车车辆数。
然后定义一个menu()菜单函数,使功能菜单显示在运行窗口以提
数据结构采用链表实现对类中数据的管理。
5.程序清单
#include
car();void add_car();void modify_car();void delete_car();void search_car();
112
} cin>>date;fflush(stdin);cout<
ofstream outData(“temp.txt”,ios::out);ifstream inData(“littlecar.txt”,ios::in);if(!outData ||!inData){
} cout< } } cout< } } { } out.close();in.close();cout<<“ 此车辆信息已修改.”< ofstream out(“temp.txt”,ios::out);;ifstream in(“littlecar.txt”,ios::in);cout<<“ 你要删除的车辆编号:”;bool flag=true;string s;cin>>s;fflush(stdin);string record;while(in>>number) 价格“<<” } } { } out.close();in.close();ofstream out(“littlecar.txt”,ios::out);ifstream in(“temp.txt”,ios::in);if(!out ||!in){ } while(getline(in,record)){ } out.close();in.close();cout<<“ 已经删除了!”< 0 价格“<<” } if(flag){ cout<<“ 无此车辆信息!”< cout<<“ ”< aa< } //轿车车辆信息登陆界面 void login_car(){ system(“color 0a”);system(“cls”);cout<<“ -------------------------轿车管理信息FILE *fp = fopen(”count.txt“,”r“);int a;fscanf(fp,”%d“,&a);fclose(fp);return a;} aa.close();------------------------”< 查询车 清除所 退出轿车车辆 } c1.add_car();c1.count=c1.count_car()+1;ofstream out(“count.txt”,ios::out);out< } else if(a==4){ } c1.search_car();c1.delete_car();c1.count=c1.count_car()-1;ofstream out(“count.txt”,ios::out);out< } } else if(a==8)break;/*************************************************/ //全局数据,对象 double Cge;//客车的基本维护费用 double Sge;//小轿车的基本维护费用 double Mge;//卡车的基本工资 int ID;//车辆编号(要保证唯一)class Emcar //车辆种类 { protected: int Num;//编号 char Pname[20];//车牌号 char Compa[10];//车辆公司 int Borntime;//买车时间 int Age;//车龄 int Duty;//车型 8{ private: double Wload;//耗油量 public: Pascar(char ID,char *Ename,char *Esex,int Eborntime,int Eduty,double Eworkload):Emcar(ID,Ename,Esex,Eborntime,Eduty) { } double GetWload(){ } void SetWload(double Amount){ } void Calcge(){ Fee=Cge+Wload*2000;this->Wload=Amount;return Wload;this->Wload=Eworkload; 0 return Wload;} void SetWload(double Amount){ this->Wload=Amount;} void Calcge(){ Fee=Sge+Wload*20+1000;//20为油价 } void Output(){ Getage(); Calcge();cout< 年cout< *Esex,int Eborntime,int Eduty):Emcar(ID,Ename,Esex,Eborntime,Eduty){} void Calcge(){ } void Output(){ Getage();Calcge(); 年Fee=2500;//火车的耗油量固定 cout< } p=p->next;delete Cker;Cker=p;Cker=0;double Awge();//计算平均费用 double Aage();//计算平均车龄 void Add();//增加车辆信息 void Modify();//修改车辆信息 void Delete();//删除车辆信息 void Query();//查询车辆信息 void Set();//基础数据设置 void Count();//简单统计信息 void Save();//数据存入磁盘(包括基础数据,车辆数据)void Load();//数据载入内存(包括基础数据,车辆数据)};void Company::Clear()//清除内存中车辆数据(内部使用){ Emcar *p=Cker; cout<<“输入车辆牌号:”;cin>>Pname;cout<<“输入制造公司:”;cin>>Compa;cout<<“输入买车时间:”;cin>>Borntime;cout<<“输入车型(1:客车 2:轿车 3:卡车 4:火车):”;cin>>Duty;while(Duty!=1&&Duty!=2&&Duty!=3&&Duty!=4){ } if(Duty!=4){ } //创建新汽车的结点 switch(Duty){ case 1:p=new Pascar(ID,Pname,Compa,Borntime,Duty,Wload);break;case 2:p=new Limou(ID,Pname,Compa,Borntime,Duty,Wload);break;cout<<“耗油量:”;cin>>Wload;cout<<“输入有误,请重新输入:”< } cout<<“新增车辆成功!”< void Company::Modify(){ int Num;//编号 char Pname[20];//车牌号 char Compa[10];//汽车制造公司 int Borntime;//买车时间 int Duty;//车型 double Wload;//耗油量 cout< //查找要修改的结点 Emcar *p1,*p2;p1=Cker;while(p1){ if(p1->Num==Num)break;else 0 //创建新汽车结点 Emcar *p3;switch(Duty){ case 1:p3=new Pascar(p1->Num,Pname,Compa,Borntime,Duty,Wload);break;case 2:p3=new Limou(p1->Num,Pname,Compa,Borntime,Duty,Wload);break;case 3:p3=new Truck(p1->Num,Pname,Compa,Borntime,Duty,Wload);break;case 4:p3=new Train(p1->Num,Pname,Compa,Borntime,Duty);break; } ((Limou ((Truck ((Pascar } } } cout<<“修改车辆信息成功!n”;else //未找到结点 { } cout<<“错误:未找到该车辆信息!n”;void Company::Delete()//删除车辆信息 { int Num;cout<<“n***********删除车辆***********n”;cout<<“ID:”;cin>>Num;//查找要删除的结点 Emcar *p1,*p2;p1=Cker;while(p1){ if(p1->Num==Num) } cout<<“找到并删除n”;} else //未找到结点 { cout<<“错误:未找到该车辆信息!n”;} } void Company::Query(){ int check,count(0);cout<<“n**********查询车辆信息**********:n”;cout<<“编号t”<<“车牌号t”<<“制造公司”<<“车龄”<<“ ”<<“t”<<“车型t”<<“总费用(元/月)”< } } } { } else if(p4->Duty==4){ }((Train *)p4)->Output();count++;break;((Truck *)p4)->Output();count++;break;else { } p4=p4->next;if(count==0)cout<<“错误:未找到该车辆信息!”< } } Averwge=sum1/Totalnum;//计算平均费用 cout<<“平均费用为:”< int Totalnum=0;//车辆总数 while(p){ } Average=sum2/Totalnum;//计算平均车龄 cout<<“平均车龄为:”< 0-