package com.liuxt.sort;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class SortMain {
public static void main(String[] args) {
SortTemplate template = null;
//初始化模版类
try {
template = new SortTemplate();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
int dataLength=0,maxElement=0;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//boolean isExit=false;
while (true) {
try {
String arrayLength=getInputDataLength(br);
dataLength = Integer.parseInt(arrayLength);
if (dataLength < 0){
System.out.println("\n数组的长度必须大于0:");
continue;
}
break;
} catch (NumberFormatException e) {
System.out.println("\n重新输入排序数组的长度(只能输入数字):");
continue;
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
template.setDataLength(dataLength);
while (true) {
try {
String max=getInputMax(br);
maxElement = Integer.parseInt(max);
if (dataLength < 0){
System.out.println("\n数字必须大于0:");
continue;
}
break;
} catch (NumberFormatException e) {
System.out.println("\n重新输入数组的元素的最大值(只能输入数字):");
continue;
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
template.setMaxElement(maxElement);
int algorithm=0;
while(true){
showUsage();
String selectNumber = null;
try {
selectNumber = br.readLine();
try{
algorithm = Integer.parseInt(selectNumber);
}catch (NumberFormatException e) {
//e.printStackTrace();
System.out.println("请选择正确的排序算法序号!");
continue;
}
if (algorithm == 0)
System.exit(0);
else if(algorithm!=9){
try {
template.sortDataByName(SortUtil.getSortNameById(algorithm-1));
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
else {
try {
template.sortDataByAll();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
}
private static String getInputDataLength(BufferedReader br) throws IOException{
System.out.print("输入排序数组的长度:");
String arrayLength=null;
arrayLength = br.readLine();
return arrayLength;
}
private static String getInputMax(BufferedReader br) throws IOException {
System.out.print("输入数组中整数的最大值:");
//BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String max=null;
max = br.readLine();
return max;
}
private static void showUsage() {
System.out.println("\n请选择排序算法:");
System.out.println(" 1 直接插入排序 ");
System.out.println(" 2 选择法排序 ");
System.out.println(" 3 冒泡法排序 ");
System.out.println(" 4 快速法排序 ");
System.out.println(" 5 希尔法排序 ");
System.out.println(" 6 堆法排序 ");
System.out.println(" 7 归并排序 ");
System.out.println(" 9 执行所有排序 ");
System.out.println(" 0 退出 ");
}
}
分享到:
相关推荐
总之,《2019新版软件设计师教程(第五版)》是一本全面、实用的教材,对于准备参加软件设计师考试的考生,或是希望提升自身软件设计能力的从业者,都是宝贵的参考资料。通过深入学习,不仅可以为考试做好充分准备,...
8. **软件法规与标准**:教程可能涵盖知识产权、软件版权、行业标准(如ISO/IEC 12207)等相关知识,这对于职业软件设计师来说是必要的法律意识。 9. **人机交互与用户体验**:软件设计不仅关注技术实现,也关注...
《软考 中级 软件设计师教程 第四版》是针对全国计算机技术与软件专业技术资格(水平)考试(简称“软考”)中级软件设计师科目的权威学习资料。这本教程涵盖了软件设计师应掌握的核心知识,旨在帮助考生全面理解和...
《软件设计师电子书 第五版》是一本针对国家计算机技术与软件...对于准备软考中级软件设计师的考生来说,这是一本不可或缺的参考书。同时,对于已经在职的软件设计师,这本书也是更新知识、提升专业技能的宝贵资源。
《软件设计师教程 第4版》是针对中国计算机技术与软件专业技术资格(水平)考试(简称“软考”)中的中级职称——软件设计师的权威教材。该教程全面覆盖了软件设计师应掌握的各项技能和知识,旨在帮助考生系统地学习...
软件设计师考试试题分类精解(2018版)》是一部专为准备参加软件设计师行业考试的考生量身定制的参考资料。该资源包含了历年来的真题,旨在帮助考生全面理解考试内容,提升应试能力。通过对这份资料的深入学习,考生...
《软考中级 软件设计师教程(第2版)》是一本针对国家软考中级资格认证“软件设计师”的权威教程。此书旨在为备考者提供全面、深入的理论知识和实践经验,帮助他们掌握软件设计的基本原理、方法和技术,以顺利通过考试...
《软件设计师第四版教程》是一本专为准备参加软件设计师资格考试的人员编写的教材,旨在帮助考生全面理解和掌握软件设计的基本理论、方法和技术。该教程涵盖了考试大纲中的所有核心内容,是备考的重要参考资料。软件...
软件设计师是IT行业中一个至关重要的角色,他们负责规划、设计和实现高质量的软件系统,确保软件的可维护性、性能和用户体验。以下是一些关于软件设计师的重要知识点: 1. **软件设计过程**:软件设计包括需求分析...
《软件设计师经典教材》是为准备软件设计师考试的学员量身打造的一本综合教程,它涵盖了软件设计领域的诸多核心知识点,旨在帮助考生全面理解和掌握软件设计的理论与实践。本书内容丰富,深入浅出,是软件设计师考试...
这份压缩包包含了针对软件设计师考试的详细讲义,是备考者不可或缺的参考资料。以下将从多个方面对这份讲义中的知识点进行深入解析。 1. **软件工程基础**:这部分涵盖了软件开发的全过程,包括需求分析、系统设计...
【软考软件设计师试题】是针对国家计算机技术与软件专业技术资格(水平)考试中的软件设计师这一级别的考试资源。这个资源通常包含历年的考试试题,旨在帮助考生熟悉考试格式,掌握必要的知识点,提升备考效率。 ...
这份资料对于准备参加软件设计师考试的考生来说,具有极高的参考价值。通过深入学习和解答这些模拟题,考生可以更好地了解考试的题型、难度以及可能涉及的知识点,从而有针对性地进行复习。 软件设计师作为IT行业中...
《软件设计师考试历年试题解析》 软件设计师考试是中国计算机技术职业资格认证中的..."软件设计师.CHM"文件可能包含历年的试题集和解答,是备考的重要参考资料,考生应充分利用,反复研习,以期在考试中取得优异成绩。
例如,“2014年下半年 软件设计师 上午试卷 综合知识.doc”可能包含了计算机网络、操作系统、数据库系统的基础知识题,而“2017年上半年软件设计师下午试卷.doc”则可能涉及C++、Java等编程语言的设计与实现,或者...
中级软件设计师2017下半年真题及参考答案是一份重要的学习资料,主要针对的是全国计算机技术与软件专业技术资格(水平)考试中的“中级软件设计师”这一级别。这份资料包含了上午和下午两部分的试题,涵盖了软件设计...
在IT行业中,软件设计师是一个至关重要的角色,他们负责规划、设计和实现软件系统,确保产品的质量和性能满足用户需求。为了成为一位优秀的软件设计师,掌握扎实的专业知识和实践经验是必不可少的。这个压缩包“09--...
《软件设计师第4版》是针对国家软考的一项专业教材,尤其对于准备参加软件设计师考试的考生来说,这本书是不可或缺的参考资料。它涵盖了从基础知识到高级技术的全面内容,旨在帮助考生深入理解软件设计的各个环节,...
【标题】"2014年上半年软件设计师考试上午真题(标准参考答案)"与【描述】"2014年上半年软件设计师考试上午真题(标准参考答案)截图版"共同指向一个知识点:这是一场专业认证考试,针对的是软件设计领域,主要考察...
### 软件设计师上下午题技巧解析 #### 一、理解基础概念 在软件设计考试中,理解和掌握基础知识是至关重要的。以下是一些常见的专业术语及其解释: 1. **DHCP (Dynamic Host Configuration Protocol)**:动态主机...