PSP个体软件过程作业
福师12秋《软件过程管理》练习题
福师12秋《软件过程管理》练习题注:本课程练习题所提供的答案仅供学员在学习过程中参考之用,有问题请到课程论坛提问。
一、填空题1.软件过程是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例、用户手册等)的一套行为、、及。
考核知识点:软件过程的概念2.在软件过程中,基本过程包括获取过程、、等。
考核知识点:软件过程的分类3.个体软件过程(Personal Software Process,PSP)是一个过程描述、和的结构化集合,能够帮助软件工程师改善其个人性能。
考核知识点:个体软件过程4.可将过程分为、和三大类。
考核知识点:过程的分类二、名称解释1.软件过程模型考核知识点:软件过程模型2、软件过程改进考核知识点:软件过程改进三、单项选择题1. CMM2(可重复级)重点关注的是下列哪一个级别的软件过程。
A. 企业B. 机构C. 项目D. 小组参考答案:C2. 下面有关CMM模型的描述中,不正确的是。
A. CMM模型定义了成熟的软件过程的实践活动B. CMM模型提供了改进软件开发过程的结构化模型C. CMM模型给出了适用于各种应用范围的专门技术D. 按照CMM模型改进软件过程需要相当可观的费用参考答案:D3. 以下哪一个KPA不是CMM2(可重复级)关键过程域。
A. 软件需求管理B. 软件质量保证C. 软件配置管理D. 定量过程管理参考答案:D4. 直接在测试环境中修改源代码违反了下列哪一个KPA的规定。
A. 需求管理B. 配置管理C. 项目计划D. 过程变更参考答案:B5. 以下哪一项是实施OPF(组织过程焦点)活动的前提条件。
A. 成立SEPG组B. 进行同行评审C. 制定软件项目计划D. 识别软件工作产品参考答案:A6. “定期地评估过程,理解过程的强项和弱项”是哪一个KPA的活动。
A. SQA(软件质量保证)B. OPD(组织过程定义)C. OPF(组织过程焦点)D. SCM(软件配置管理)参考答案: C7. OPF(组织过程焦点)的验证工作是由来承担的。
PSP个人软件过程试题(附答案)
PSP个⼈软件过程试题(附答案)1.答:在两个⽇志的头部分有关于项⽬的⼀些通⽤信息;时间⽇志(Time Recording Log):时间⽇志⽤来记录时间数据。
关于时间数据需要填写的内容有:Phase:选择你正在⼯作的这条时间记录是属于哪个阶段。
Start::记录你开始⼯作的⽇期时间。
双击即可在⼯具中输⼊现在的⽇期和时间。
Int.:以分钟为单位输⼊中断时间。
Stop::记录你结束⼯作的⽇期时间。
双击即可在⼯具中输⼊现在的⽇期和时间。
Delta Time:该条记录的合计时间,将被⾃动计算。
Comments:⽤于描述中断,你正在做的任务或者其他任何对你的⼯作有显著影响的事情。
缺陷⽇志(Defect Recording Log):缺陷⽇志⽤来记录时间数据。
关于缺陷数据需要填写的内容有:Type:记录缺陷类型,该缺陷类型为缺陷类型标准中定义的⼗种缺陷类型之⼀。
Date:记录发现该缺陷的⽇期时间。
双击输⼊现在的⽇期时间。
Phase Injected:选择或者输⼊你判断该缺陷是在哪个阶段引⼊的。
Phase Removed:记录你发现并修复该缺陷的阶段。
Fix time:记录你找到和修复该缺陷总计花费的时间。
你可以精确计时,或者使⽤你的最佳估计值。
Fix defect:如果这个缺陷是在修复另⼀个缺陷时引⼊的,记录那个缺陷的编号。
Description:记录有关缺陷是什么的解释(不是解释症状,是解释这个缺陷的根本原因!)2.答:·Yield、A/FR、PQI(Process Quality Index)。
Yield:Phase yield 度量产品中某阶段发现和移除的缺陷的百分⽐。
Yield 能⽤于度量设计和编码复审,审查,编译以及测试的有效性。
计算式如下:Yield (for a phase) = 100 * (defects found) / (defects found + not found) Process yield 是在这个阶段之前引⼊的缺陷is the percentage of defects injected before a phase that were found before that phase.。
2013-PSP上级实验15页PPT
《个体软件过程》
郑州大学软件学院
徐婷
experiment-8
实验
实验三
• 实验内容:
1、比赛中,有10个评委为参赛的选手打分,分数为1~100 分。选手最后得分为:去掉一个最高分和一个最低分后 其余8个分数的平均值。请编写程序实现。 注意输入检查 ,超出范围的为无效分数,不计入统计。
2、一个正整数等于其各个数字的立方和,则称该数为阿姆 斯特朗数(亦称为自恋性数)。如 407=43+03+73就是一个 阿姆斯特朗数。求1000以内的所有阿姆斯特朗数。
实验
个体软件过程上机实验
• 实验一 • 实验二 • 实验三 • 实验四 • 实验五
《个体软件过程》
郑州大学软件学院
徐婷
experiment-1
实验
实验一
• 实验要求:
– 按照要求用C语言完成程序,并将时间、规模和缺陷的估 计和总结以及设计算法记录在你的工程记事本中。
– 编写程序前估计:
• 完成程序(测试成功)所花费的时间 • 程序可能的缺陷数(编译和测试阶段发现并修改的缺陷) • 程序可能规模(代码行 LOC)
– 请确定每天究竟是哪位大夫值班?考虑一周情况 2、记录分析数据结构实验任一程序的数据。
《个体软件过程》
郑州大学软件学院
徐婷
experiment-13
谢谢!
14
15
《个体软件过程》
郑州大学软件学院
徐婷
experiment-7
实验
实验三
• 实验要求:
– 按照要求用C语言完成程序。 – 完成程序并填写表格
• Defect Recording Log • Project Plan Summary(不包括缺陷的估计部分)
个体软件过程
如何加强软件过程管理与训练,提高个体软件过程能力,做一个合格的软件工程师11软工A1 田伟个体软件过程是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)的Watts s. Humphrey领导开发的,于1995年推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。
PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。
PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。
在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。
根据对参加培训的104位软件人员的统计数据表明,在应用了 PSP后,软件中总的差错减少了58.0%,在测试阶段发现的差错减少了71.0%,生产效率提高了20.0%。
PSP的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。
而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段引发了3一5个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。
因此,PSP保障软件产品质量的一个重要途径是提高设计质量。
PSP的原则和思想一个基本的PSP原则是:每个人都是不同的,对于某个工程师有效的方法不一定适合另一个,PSP帮助工程师测量和跟踪他们自己的工作,使得他们能够找到最适合自己的方法。
多数软件工程师总喜欢把自己当作精英,崇尚个人主义,以编码速度快二骄傲。
管理人员进行项目管理时,往往会采用统一死板的模式或方法,将规定强加于工程师身上,效果不一定好。
PSP过程该井正式针对这一情况,采用以人为本的方针,以自身为出发点,从本人坐起。
工程师根据自身的情况,亲自搜集有关本人的开发数据,基于这些自身的数据来制定最适合自己的改进目标和具体的改进措施,实行自我监督、自觉地不断改进和提高自己。
第二讲 个体软件过程PSP
10
1.7 高质量工作的重要性
? 软件工程师可能开发较大规模的产品或系统 中的一部分,潜伏在其中的任何缺陷和错误 都可能毁坏整个系统
? 由于细小的错误在产品中留下缺陷,可能给 用户带来极大的麻烦甚至造成设备的损坏
11
2、PSP原则和思想
? 基本原则:每个人都是不同的,对于每个工 程师有效的方法不一定适合另一个,PSP 帮 助工程师测量和跟踪他们自己的工作,使他 们能找到最适合自己的方法。
12
2.1 PSP思想
?采用以人为本的方针,以自身为出 发点,从本人做起
13
2.2 PSP的目的
?为了改善软件工程师的开发性能
14
? 提高性能在于早期对项目有一个比较准确的 把握
26
5.4 个体循环过程
? PSP3的目标是把个体开发小程序能达到的生 产效率和生产质量延伸到大型程序
? 可采用螺旋式上升过程,即迭代增量式开发 方法
? 首先把大型程序分解成小模块,按PSP2.1描 述过程进行开发,最后集成为完整的软件产 品(分而治之策略)
27
个体循环过程
? 在新一轮开发循环中,可采用回归测试的方 法,集中力量考察新增加的产品特性是否符 合要求
PSP2.1 设计模板
PSP1.1 计划任务 计划时间表
? 个体质量过程
PSP0 目前的过程 时间记录 缺陷记录
PSP0.1 代码规范 规模度量 过程改进建议
缺陷类别标准
22
5.1 个体度量过程
? PSP0的目的是建立个体过程基线 ? PSP0.1增加了编码标准规范、程序规模度量
和过程改善建议等3个关键过程域
PSP个体软件过程作业
个体软件过程1、输入n个数(实数或整数),输出其最大最小值。
#include<stdio.h>int main(){int a,n,max,min;while(scanf("%d",&n)==1){printf("now input %d integers: ",n);scanf("%d",&a);max = min = a;for(int i = 1;i < n;i++){scanf("%d",&a);if(a > max) max = a;if(a < min) min = a;}printf("The biggest number is %d,and the smallest is %d:!\n",max,min);}return 0;}2、输入n个数和一个整数K, 输出n个数中第K个最大最小值。
要求有输入错误判断及相应错误信息。
#include<iostream>using namespace std;#include<algorithm>int main(){double arr[10000];int n;while(scanf("%lf",&n)==1){printf("input the %d elements: ",n);for(int i = 0;i < n;i++){scanf("%lf",&arr[i])if(arr[i]-(int)arr[i]!=0){printf("This number is not a integer!begin the next!\n");flag = 0;break;}}if(!flag) continue;sort(arr,arr+n);printf("Now input K: ");scanf("%d",&k);printf("The %dth biggest element is :%.0lf\n",k,arr[n-k]);}return 0;}3、输入n个数,用任意算法对其进行排序并按从小到大顺序输出。
软件过程与管理(第2~4章PSP)
第2~4章个体软件过程(PSP)●个体软件过程(Personal Software Process,简称PSP):包括了数据记录表格、过程操作指南和规程在内的结构化框架,个人级用于控制、管理和改进软件工程师个人工作方式的持续改进过程;最早由卡内基梅隆大学软件工程研究所(CMU/SEI)的Humphrey领导开发;与后续的TSP很好的弥补了CMM的缺陷,形成了个体软件工程师、小组再到组织的完整的过程改进体系。
●PSP基本原则⏹软件系统的整体质量由该系统中质量最差的某些组件所决定;⏹软件组件的质量取决于开发这些组件的软件工程师,更加确切的说,是由这些工程师所使用的开发过程所决定;⏹作为合格的软件工程师,应当自己度量、跟踪自己的工作,应当自己管理软件组件的质量;⏹作为合格的软件工程师,应当从自己开发过程的偏差中学习、总结,并将这些经验教训整合到自己的开发实践中,也就是说,应当建立持续地自我改进机制。
●PSP成熟度级别●PSP过程度量:仅仅考虑最基本的三个度量项,即时间、缺陷和规模,并由这三个基本度量项衍生出数个统计指标,如PQI、A/FR等。
度量时间和度量缺陷见下面给的考题的第1题,缺陷再看一张表书P53表2-2,英文不想改了,需要的看下书对应上就好。
⏹度量规模:PSP对于规模度量没有明确的定义,可以定义并且使用任何合适的规模度量方式;但PSP对于规模度量方式的选择提供了参考的标准,即◆选择的规模度量方式必须反映开发成本;◆选择的度量方式必须精确;◆选择的度量方式必须能用自动化方法来统计;◆选择的度量方式必须有助于早期规划;⏹规模度量这块注意一个问题:代码行(LOC)—分为逻辑行和物理行和功能点(FP)的对比;精确的度量方式往往不便于早期规划;有助于早期规划的度量往往难以产生精确度量结果;LOC可以很精确的度量软件产品规模,也方便开发相应的规模统计工具,但是,在项目初始阶段,往往很难估算程序的代码行;FP在项目早期容易识别,但是,一来功能点的度量往往比较粗略,而且几乎不存在可以对功能点进行自动化统计的方法。
个体软件过程的研究与实施
关键词 : 个体软件过程 (PSP) ; 软件质 量; 过程框架; 软件过程
1、引言
Dem ing称为操作过程, 也是用户在使用过程时 应该遵守的一系列步骤, 当软件工程师按照这
些脚本工作时, 他们按时记录所用时间和缺陷 数据及缺陷日 并在工作最后, 志 在后置处理阶 段, 日 从 志记录中总结所用时间和缺陷数据, 测 量程序规模, 并把它们添人项目 计划总结表中。 所有这些完成后, 连同完成的计划总结表一起 交付给最终的产品。 ( 1) 个体度量过程PSPO和PSPO PSPO .1o 的目的是建立个体过程基线, 通过这一步, 学会
2006年3月 科杖任济市场
个 软 过 的究 实 体 件 程研 与施
陈友明 文海英(湖南 科技学院 计算 机与信息 科学系 湖南永州 425000)
摘 要: 个体软件过程 (PSP) 是 当前软 件行业的重要技术,给开发者提供 了一个进行 软件开发标准化框架, 本文在阐述了个体软件 过程 (PSP) 原理的基础上 ,结合软件过程的 实施过程,探讨了实施个体软件过程PSP时要 注意的问题 ,力求帮助软件从业人员发展个人
一个增量都具有很高的质量 。在这样 的前提
PSP设计是基于下述计划和质量原理进行 的: 每一个工程师都是不同的, 他们有 自己的 特点; 为了能发挥 自己最大工作效率, 每个工 程师们必须作自己的工作计划, 而且必须依据 他们自己的个人数据来做他们的计划; 为了协 调一致的改进他们的性能,工程师们必须使用 精心定义和度量的过程; 为了生产高质量的产 品, 工程师们必须对他的产品质量负责, 好产 品是无缺陷生产的, 所以每个工程师们必须致
软件过程 (Softw Process) 是人们用来 are
开发和维护软件及其附属产品 (如项 目计划、 设计文档、代码、 用户手册等等) 的活动、方 法和实践。PSP制定了一系列软件过程来指导 软件工程师提高工作效率和保证软件质量。
个体软件过程PSP新版恨死高分下载
84
2
软件工程师对自已的要求
• 一个软件工程师的任务就是在预定的进度下交 付高质量的软件产品。
• 软件工程师常常关心个人技术技能,但往往不 太注意个人技术技能的发挥效率以及方法。
• 为了稳定的生产高质量的产品,工程师必须计 划、度量和跟踪产品的质量,而且必须从工作 的开始就关注产品的质量。
• 软件规模估计的前提是要清楚所需完成 的任务,并对任务做一定的分解,并且要 分解到可估算以及尽量接近估算准确的 程度,软件规模估计是计划的前提。
• 任务分解与开发方法和实现技术有较大 的关系。
• 问题:解释这种关系
84
17
个体计划过程PSP1.1
• PSP1.1的主要过程是任务和进度的规划。 • 计划的主要内容包括完成什么任务,完成
84
6
CMM、TSP、PSP之间的关系
• CMM的18个关键过程域中,有12个与PSP 紧密相关,有16个TSP紧密相关。
• 学习PSP和TSP不仅有助于工程师改善工作 效率,而目也非常有利于组织的改善过程。
• 据统计,软件项目开发成本的70%取决于软 件开发人员个人的技能、经验和工作习惯。
• 因此,软件开发人员如能接受PSP培训,对 该单位软件能力成熟度的升级是一个有力的 保证。
84
41
阶段计划
• 阶段计划就是将一个大的任务分为若干 小阶段以分段执行。
• 分段执行的优点是便于计划、实施、跟 踪、检查和改进。
84
42
产品计划
• 制定产品计划的活动
– 收集历史项目数据 – 估算程序和文档规模 – 制定程序和文档规范、标准
人软件过程(PSP)简介
个人软件过程(PSP)简介一、前言个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。
PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。
PSP能够说明个体软件过程的原则;帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
二、个体软件过程简介1. 综述在本次课上,我学习了个人软件过程(Personal Software Process,PSP)的相关知识,在本次报告中,将结合一些资料对个人软件过程的相关概念进行介绍,并写一下我自己的观点。
要开发高质量的软件,必须改进软件生产过程,这是软件工程的常识。
目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。
但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们"应该做什么",而没有告诉我们"应该怎样做",并未提供有关实现关键过程域所需要的具体知识和技能。
为了弥补这个欠缺,Humphrey又主持开发了个体软件过程(Personal Software Process,PSP)。
2. 个体度量过程PSP0和PSP0.1PSP0是建立个体过程的第一步。
通过这一步,学会使用PSP的各种表格采集过程的有关数据,此时执行的是该软件开发单位的当前过程,通常包括计划、开发(包括设计、编码、编译和测试)以及后置处理三个阶段,并要作一些必要的试题,如测定软件开发时间,按照选定的缺陷类型标准、度量引入的缺陷个数和排除的缺陷个数等,用作为测量在PSP的过程中进步的基准。
PSP0.1增加了编码标准、程序规模度量和过程改善建议等三个关键过程域,其中过程改善建议表格用于随时记录过程中存在的问题、解决问题的措施以及改进过程的方法,以提高软件开发人员的质量意识和过程意识。
个人软件过程
个人软件过程个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。
PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。
PSP能够说明个体软件过程的原则;帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。
目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。
但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们"应该做什么",而没有告诉我们"应该怎样做",并未提供有关实现关键过程域所需要的具体知识和技能。
为了弥补这个欠缺,Humphrey又主持开发了个体软件过程(Personal Software Process,PSP)。
在CMM1.1版本的18个关键过程域中有12个与PSP有关,据统计,软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。
按照PSP规程,改进软件过程的步骤首先需要明确质量目标,也就是软件将要在功能和性能上满足的要求和用户潜在的需求。
接着就是度量产品质量,有了目标还不行,目标只是一个原则性的东西,还不便于实际操作和判断,因此,必须对目标进行分解和度量,使软件质量能够"测量"。
然后就是理解当前过程,查找问题,并对过程进行调整。
最后应用调整后的过程,度量实践结果,将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。
PSP进化框架共有四级,各级及其增强版的主要元素如图所示。
项目管理-TSPPSP
PSP/TSP 个人 团 个人/团 队软件过程
钟爱平
PSP个人软件过程
1、何谓PSP 、何谓PSP
•个体软件过程(personal software process ,psp)是由 美国carnegie mellon大学软件工程研究所(cmu/sei)的 watts s. humphrey领导开发的,于1995年它的推出, 在软件工程界引起了极大的轰动,可以说是由定向软件 工程走向定量软件工程的一个标志。
PSP个人软件过程
③
④
召集所有团队成员开PSP会议,这一步相 当重要。在这一步,需要确认项目整体目 标,项目风险管理,责任到人,工期评估, 工作量饱和度评估,缺陷注入评估(质量 管理),变更管理。一次会议是远远不够 的。 PSP把每个任务都分为不同的阶段,一般 来说有HLD,DLD,DLDR,Code,CR,Unit Test, IT这几个阶段,项目定义分工明确以后, 应该严格按照这几个阶段实施。
PSP个人软件过程
•psp是一种可用于控制、管理和改进个人工作方式的自 我改善过程,是一个包括软件开发表格、指南和规程的 结构化框架。 •psp为基于个体和小型群组软件过程的优化提供了具体而 有效的途径,例如如何制订计划,如何控制质量,如何 与其他人相互协作等等。 •自己就是自己的项目经理是PSP的宗旨
TSP/PSP
附PSP/TSP工作薄
Microsoft Office Excel 97-2003 工作表
TSP团队软件过程
最终目的在于指导开发人员如何在最少的时间内,以预定 的费用生产出高质量的软件产品,所采用的方法是对群组 开发过程的定义、度量和改进。
TSP团队软件过程
2、实现tsp方法需要具备的条件 、实现 方法需要具备的条件 需要有高层主管和各级经理的支持,以取 得必要的资源 整个软件开发小组至少应在cmm的第二级 (可重复层)。 全体软件开发人员必须经过psp的培训, 并有按tsp工作的愿望和热情。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
个体软件过程1、输入n个数(实数或整数),输出其最大最小值。
#include<stdio.h>int main(){int a,n,max,min;while(scanf("%d",&n)==1){printf("now input %d integers: ",n);scanf("%d",&a);max = min = a;for(int i = 1;i < n;i++){scanf("%d",&a);if(a > max) max = a;if(a < min) min = a;}printf("The biggest number is %d,and the smallest is %d:!\n",max,min);}return 0;}2、输入n个数和一个整数K, 输出n个数中第K个最大最小值。
要求有输入错误判断及相应错误信息。
#include<iostream>using namespace std;#include<algorithm>int main(){double arr[10000];int n;while(scanf("%lf",&n)==1){printf("input the %d elements: ",n);for(int i = 0;i < n;i++){scanf("%lf",&arr[i])if(arr[i]-(int)arr[i]!=0){printf("This number is not a integer!begin the next!\n");flag = 0;break;}}if(!flag) continue;sort(arr,arr+n);printf("Now input K: ");scanf("%d",&k);printf("The %dth biggest element is :%.0lf\n",k,arr[n-k]);}return 0;}3、输入n个数,用任意算法对其进行排序并按从小到大顺序输出。
#include<iostream>using namespace std;#include<algorithm>int main(){double arr[10000];int n;while(scanf("%lf",&n)==1){printf("input the %d elements: ",n);for(int i = 0;i < n;i++){scanf("%lf",&arr[i])if(arr[i]-(int)arr[i]!=0){printf("This number is not a integer!begin the next!\n");flag = 0;break;}}if(!flag) continue;sort(arr,arr+n);printf("Now input K: ");scanf("%d",&k);printf("The %dth biggest element is :%.0lf\n",k,arr[n-k]);}return 0;}4、对给定一个英文文本文件,统计并输出26个英文字母(不区分大小写)的出现频率,并统计定冠词‘the’的出现次数及频率。
package javaexample;import java.util.*;public class tongji {/*** @param args* @author ranmaosheng*/public static void main(String[] args){String a;Scanner sc = new Scanner(System.in);System.out.println("Please input the line you want to test:");while(sc.hasNextLine()){a = sc.nextLine();System.out.println("The line you tape in is: "+a);String a1=a.toLowerCase();double b = a1.length();int start = 0;int ia=0,ib=0,ic=0,id=0,ie=0,iF=0,ig=0,ih=0,ii=0,ij=0,ik=0,il=0,im=0,in=0,io=0,ip=0,iq=0,ir=0,is=0,it=0 ,iu=0,iv=0,iw=0,ix=0,iy=0,iz=0;char c;while(start<b){c=a1.charAt(start);switch(c){case'a':ia++;break;case'b':ib++;break;case'c':ic++;case'd': id++;break; case'e': ie++;break; case'f': iF++;break; case'g': ig++;break; case'h': ih++;break; case'i': ii++;break; case'j': ij++;break; case'k': ik++;break; case'l': il++;break; case'm': im++;break; case'n': in++;break; case'o': io++;break; case'p': ip++;break; case'q': iq++;break; case'r':break;case's':is++;break;case't':it++;break;case'u':iu++;break;case'v':iv++;break;case'w':iw++;break;case'x':ix++;break;case'y':iy++;break;case'z':iz++;break;default: break;}start++;}System.out.println("A或a出现的频率是:"+ia/(b+1)*100+"%");System.out.println("B或b出现的频率是:"+ib/(b+1)*100+"%");System.out.println("C或c出现的频率是:"+ic/(b+1)*100+"%");System.out.println("D或d出现的频率是:"+id/(b+1)*100+"%");// TODO Auto-generated method stubSystem.out.println("E或e出现的频率是:"+ie/(b+1)*100+"%");System.out.println("F或f出现的频率是:"+iF/(b+1)*100+"%");System.out.println("G或g出现的频率是:"+ig/(b+1)*100+"%");System.out.println("H或h出现的频率是:"+ih/(b+1)*100+"%");System.out.println("I或i出现的频率是:"+ii/(b+1)*100+"%");System.out.println("J或j出现的频率是:"+ij/(b+1)*100+"%");System.out.println("K或k出现的频率是:"+ik/(b+1)*100+"%");System.out.println("L或l出现的频率是:"+il/(b+1)*100+"%");System.out.println("M或m出现的频率是:"+im/(b+1)*100+"%");System.out.println("N或n出现的频率是:"+in/(b+1)*100+"%");System.out.println("O或o出现的频率是:"+io/(b+1)*100+"%");System.out.println("P或p出现的频率是:"+ip/(b+1)*100+"%");System.out.println("Q或q出现的频率是:"+iq/(b+1)*100+"%");System.out.println("R或r出现的频率是:"+ir/(b+1)*100+"%");System.out.println("S或s出现的频率是:"+is/(b+1)*100+"%");System.out.println("U或u出现的频率是:"+iu/(b+1)*100+"%");System.out.println("V或v出现的频率是:"+iv/(b+1)*100+"%");System.out.println("W或w出现的频率是:"+iw/(b+1)*100+"%");System.out.println("X或x出现的频率是:"+ix/(b+1)*100+"%");System.out.println("Y或y出现的频率是:"+iy/(b+1)*100+"%");System.out.println("Z或z出现的频率是:"+iz/(b+1)*100+"%");String d=a1.trim();int e = d.length();char f;String the;int start1=0;double count1=0,count2=0;while(start1<e){if(d.charAt(start1)==''||d.charAt(start1)==','||d.charAt(start1)=='.'||d.charAt(start1)=='!'||d.charAt(start1)=='?'||d.charAt(start1)==';'|| d.charAt(start1)==':')count1++;start1++;}int f1=0;char f2;f1=d.indexOf("the",0);//f2=d.charAt(f1+3);while(f1>=0 ){f2=d.charAt(f1+3);if(f2==''||f2==','||f2=='.'||f2=='?'||f2=='!'||f2==':'||f2==';')count2++;f1=d.indexOf("the",f1+1);}System.out.println("在语句中The或the出现的次数是:"+count2);System.out.println("在语句中The或the出现的频率是:"+count2/(count1+1)*100+"%");}}}5、任意输入一个带有+,-,x,/和()的算术表达式,输出表达式的值。