运动会分数统计 java语言
运动会分数统计java语言
运动会分数统计*
设计内容:
参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m叶+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分别为:7、5、3、2、1,前三名的
参加运动会有n个学校,学校编号为1……n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1……M,女子m叶+1……M+W.不同的项目取前五名或前三名积分;取前五名的积分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20, n<=20)
积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定.(m<=20,n<=20)
设计要求:
输入各个项目的前三名或前五名的成绩,能统计各学校总分;(1)按学校编号或名称、学校总分、男女团体总分排序输出;
(2)按学校编号查询学校某个项目的情况,按项目编号查询取得前三或前五名的学校;
(3)数据存入文件并能随时查询﹔
(4)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称
(5)输出形式:有合理的提示,各学校分数为整形;
(6)界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相关的功能;
代码:
包名:com.school.view
/**
*创建菜单
*/
package com.school.view;
import java.util.Scanner;
public class Main {
@SuppressWarnings(“resource”)
public static void main(String[] args) {
System.out.println(“欢迎使用运动会管理系统*”);
Scanner scan = new Scanner(System.in);
System.out.println(“请输入参加的学校个数:”);
Integer schoolNum = scan.nextInt();
System.out.println(“请输入男生项目个数:”);
Integer bNum = scan.nextInt();
System.out.println(“请输入女生项目个数:”);
Integer gNum = scan.nextInt();
View.showView(schoolNum,bNum,gNum);
}
}
package com.school.view;
import java.util.ArrayList;
import java.util.Scanner;
import com.school.controller.InputScore;
import com.school.controller.InputScoreImpl;
import com.school.controller.OutputByOrder;
import com.school.controller.OutputByOrderImpl;
import com.school.controller.SearchOutput;
import com.school.controller.SearchOutputImpl;
import com.school.model.Project;
import com.school.model.School;
import com.school.utils.IOUtil;
import com.school.utils.IOUtilImpl;
public class View {
@SuppressWarnings(“resource”)
public static void showView(Integer schoolNum, Integer bNum, Integer gNum) {
Scanner scan = new Scanner(System.in);
InputScore inputscore = new InputScoreImpl();
OutputByOrder output = new OutputByOrderImpl();
SearchOutput searchoutput = new SearchOutputImpl();
IOUtil util = new IOUtilImpl();
ArrayList listProject = new ArrayList();
ArrayList listSchool = new ArrayList();
boolean bol = true;while (bol == true) {System.out.println(" **********运动会分数统计系统**********");System.out.println("\r\n");System.out.println(" ******1.信息输入******");System.out.println(" ******2.排序输出******");System.out.println(" ******3.信息查询******");System.out.println(" ******0.退出系统****** ");System.out.println("===============================================================================");System.out.println("\r\n");System.out.println("请您输入要执行的序号<0-3>:");int num = scan.nextInt();switch (num) {case 1:// 信息输入inputscore.InputInfo(bNum, gNum, schoolNum);listProject = inputscore.getProject();listSchool = inputscore.getSchool();util.writeToFile(listProject,listSchool);System.out.println("输入完毕,是否返回主菜单? 1.是 2.否");int n = scan.nextInt();if (n == 1)break;else {System.out.println("感谢使用!");bol = false;}case 2:// 排序输出System.out.println("请输入您的排序方式:");System.out.println("****1.按学校编号****");System.out.println("****2.按学校总分****");System.out.println("****3.按男团总分****");System.out.println("****4.按女团总分****");n = scan.nextInt();if (n == 1) {// 学校output.showBySchoolId(listSchool);} else if (n == 2) {// 学校总分output.showBySumPoint(listSchool);} else if (n == 3) {// 男团总分output.showByBoyPoint(listSchool);} else if (n == 4) {// 女团总分output.showByGirlPoint(listSchool);} else {System.out.println("ERROR!!您输入的序号有误!");}System.out.println("\r\n");System.out.println("===============================================================================");System.out.println("\r\n");System.out.println("统计完毕,是否返回主菜单? 1.是 2.否");n = scan.nextInt();if (n == 1)break;else if (n == 2) {System.out.println("感谢使用!");bol = false;}elseSystem.out.println("ERROR!!您输入的序号有误!");break;case 3:// 信息查询System.out.println("请输入您的查询方式:");System.out.println("****1.按学校编号查询****");System.out.println("****2.按项目编号查询****");n = scan.nextInt();if (n == 1) {// 学校编号查询searchoutput.SearchBySchoolId(listSchool, listProject);} else if (n == 2) {// 项目编号查询searchoutput.SearchByProjectId(listSchool, listProject);} else {System.out.println("ERROR!!您输入的序号有误!");}System.out.println("\r\n");System.out.println("===============================================================================");System.out.println("\r\n");System.out.println("查询完毕,是否返回主菜单? 1.是 2.否 ");n = scan.nextInt();if (n == 1)break;else if (n == 2) {System.out.println("感谢使用!");bol = false;}elseSystem.out.println("ERROR!!您输入的序号有误!");System.out.println("\r\n");System.out.println("===============================================================================");System.out.println("\r\n");break;case 0:// 退出系统System.out.println("感谢使用!");bol = false;break;default:System.out.println("********对不起,您输入的序号有误,请重新输入*********");}}
}
}
包名:com.school.model
/**
*创建School实体类
*/
package com.school.model;
/**
- @author Russell Westbrook
/
public class School {
/*
* 学校编号
/
private Integer id;
/*
* 男子项目总分
/
private Integer bSumPoint;
/*
* 女子项目总分
/
private Integer gSumPoint;
/*
* 项目总积分
*/
private Integer sumPoint;
public Integer getId() {return id;
}
public void setId(Integer id) {this.id = id;
}
public Integer getbSumPoint() {return bSumPoint;
}
public void setbSumPoint(Integer bSumPoint) {this.bSumPoint = bSumPoint;
}
public Integer getgSumPoint() {return gSumPoint;
}
public void setgSumPoint(Integer gSumPoint) {this.gSumPoint = gSumPoint;
}
public Integer getSumPoint() {return sumPoint;
}
public void setSumPoint(Integer sumPoint) {this.sumPoint = sumPoint;
}
}
/**
*创建Project实体类
*/
package com.school.model;
/**
- @author Russell Westbrook
/
public class Project {
/*
* 项目编号
/
private Integer id;
/*
* 积分
/
private Integer score[];
/*
* 名次信息
/
private Integer range[];
/*
* 学校编号
*/
private Integer schoolId;
/*** 获奖次数*/
private Integer s; public Integer getS() {return s;
}
public void setS(Integer s) {this.s = s;
}
public Integer getSchoolId() {return schoolId;
}
public void setSchoolId(Integer schoolId) {this.schoolId = schoolId;
}
public Integer[] getRange() {return range;
}
public void setRange(Integer[] range) {this.range = range;
}
public Integer getId() {return id;
}
public void setId(Integer id) {this.id = id;
}
public Integer[] getScore() {return score;
}
public void setScore(Integer[] score) {this.score = score;
}
}
包名:com.school.controller
/**
*InputScore接口
*作用:输入男生,女生项目总数和学校总数
*/
package com.school.controller;
import java.util.ArrayList;
import com.school.model.Project;
import com.school.model.School;
public interface InputScore {
/*** 输入项目及学校信息的接口方法* * @param bNum showView方法调用时传入的男生项目总数* @param gNum showView方法调用时传入的女生项目总数* @param schoolNum showView方法调用时传入的学校总数*/
void InputInfo(Integer bNum, Integer gNum, Integer schoolNum);ArrayList<Project> getProject();ArrayList<School> getSchool();
}
/**
*实现InputScore接口
*/
package com.school.controller;
import java.util.ArrayList;
import java.util.Scanner;
import com.school.model.Project;
import com.school.model.School;
public class InputScoreImpl implements InputScore {
Scanner scan = new Scanner(System.in);
private Integer[] score = { 5, 3, 2 };
ArrayList<Project> listProject = new ArrayList<Project>();
ArrayList<School> listSchool = new ArrayList<School>();@Override
public void InputInfo(Integer bNum, Integer gNum, Integer schoolNum) {for (int i = 0; i < schoolNum; i++) {Integer bPoint = 0;Integer gPoint = 0;Integer allPoint = 0;School school = new School();school.setId(i + 1);System.out.println("" + (i + 1) + "号学校:");for (int j = 0; j < bNum; j++) {Project project = new Project();project.setId(j + 1);project.setSchoolId(i + 1);System.out.println("参加" + (j + 1) + "号男子项目:");System.out.println("获奖次数:");int s = scan.nextInt();project.setS(s);Integer range[] = new Integer[3];for (int a = 0; a < s; a++) {System.out.println("获得的名次为:");range[a] = scan.nextInt();bPoint = bPoint + score[range[a] - 1];}project.setRange(range);project.setScore(score);listProject.add(project);}for (int j = bNum; j < bNum + gNum; j++) {Project project = new Project();project.setId(j + 1);project.setSchoolId(i + 1);System.out.println("参加" + (j + 1) + "号女子项目:");System.out.println("获奖次数:");int s = scan.nextInt();project.setS(s);Integer range[] = new Integer[3];for (int a = 0; a < s; a++) {System.out.println("获得的名次为:");range[a] = scan.nextInt();gPoint = gPoint + score[range[a] - 1];}project.setRange(range);project.setScore(score);listProject.add(project);}school.setbSumPoint(bPoint);school.setgSumPoint(gPoint);allPoint = bPoint + gPoint;school.setSumPoint(allPoint);listSchool.add(school);}
}
public ArrayList<Project> getProject(){return listProject;
}
public ArrayList<School> getSchool(){return listSchool;
}
}
/**
*OutputByOrder接口
*作用:按照题目要求顺序输出
*/
package com.school.controller;
import java.util.ArrayList;
import com.school.model.School;
public interface OutputByOrder {
/*** 按照学校id输出学校及男女团体总分* @param school 学校集合*/
void showBySchoolId(ArrayList<School> listSchool);/*** 按照总分排序输出学校及男女团体总分* @param school 学校集合*/
void showBySumPoint(ArrayList<School> listSchool);/*** 按照男子团体成绩排序输出学校及男女团体总分* @param school 学校集合*/
void showByBoyPoint(ArrayList<School> listSchool);/*** 按照女子团体成绩排序输出学校及男女团体总分* @param school 学校集合*/
void showByGirlPoint(ArrayList<School> listSchool);
}
/**
*实现OutputByOrder接口
*/
package com.school.controller;
import java.util.ArrayList;
import com.school.model.School;
import com.school.utils.SortUtil;
import com.school.utils.SortUtilImpl;
public class OutputByOrderImpl implements OutputByOrder {
SortUtil sort = new SortUtilImpl();@Override
public void showBySchoolId(ArrayList<School> listSchool) {System.out.println("学校编号 男团成绩 女团成绩 总成绩");for (int i = 0; i < listSchool.size(); i++) {System.out.print(listSchool.get(i).getId() + " \t\t");System.out.print(listSchool.get(i).getbSumPoint() + " ");System.out.print(listSchool.get(i).getgSumPoint() + " ");System.out.println(listSchool.get(i).getSumPoint());}}@Override
public void showBySumPoint(ArrayList<School> listSchool) {Integer[] sumPoint = new Integer[listSchool.size()];Integer[] point = new Integer[listSchool.size()];for (int i = 0; i < listSchool.size(); i++) {sumPoint[i] = listSchool.get(i).getSumPoint();point[i] = listSchool.get(i).getSumPoint();}Integer[] sortSumPoint = sort.Sort(sumPoint);System.out.println("学校编号 男团成绩 女团成绩 总成绩");for(int i = 0;i < sortSumPoint.length;i++) {for(int j = 0;j < point.length;j++) {if(sortSumPoint[i] == point[j]) {System.out.print(listSchool.get(j).getId() + " \t\t");System.out.print(listSchool.get(j).getbSumPoint() + " ");System.out.print(listSchool.get(j).getgSumPoint() + " ");System.out.println(listSchool.get(j).getSumPoint());}}}}@Override
public void showByBoyPoint(ArrayList<School> listSchool) {Integer[] bPoint = new Integer[listSchool.size()];Integer[] point = new Integer[listSchool.size()];for (int i = 0; i < listSchool.size(); i++) {bPoint[i] = listSchool.get(i).getbSumPoint();point[i] = listSchool.get(i).getbSumPoint();}Integer[] sortBPoint = sort.Sort(bPoint);System.out.println("学校编号 男团成绩 女团成绩 总成绩");for(int i = 0;i < sortBPoint.length;i++) {for(int j = 0;j < point.length;j++) {if(sortBPoint[i] == point[j]) {System.out.print(listSchool.get(j).getId() + " \t\t");System.out.print(listSchool.get(j).getbSumPoint() + " ");System.out.print(listSchool.get(j).getgSumPoint() + " ");System.out.println(listSchool.get(j).getSumPoint());}}}
}@Override
public void showByGirlPoint(ArrayList<School> listSchool) {Integer[] gPoint = new Integer[listSchool.size()];Integer[] point = new Integer[listSchool.size()];for (int i = 0; i < listSchool.size(); i++) {gPoint[i] = listSchool.get(i).getgSumPoint();point[i] = listSchool.get(i).getgSumPoint();}Integer[] sortGPoint = sort.Sort(gPoint);System.out.println("学校编号 男团成绩 女团成绩 总成绩");for(int i = 0;i < sortGPoint.length;i++) {for(int j = 0;j < point.length;j++) {if(sortGPoint[i] == point[j]) {System.out.print(listSchool.get(j).getId() + " \t\t");System.out.print(listSchool.get(j).getbSumPoint() + " ");System.out.print(listSchool.get(j).getgSumPoint() + " ");System.out.println(listSchool.get(j).getSumPoint());}}}
}
}
/**
*SearchOutput接口
*作用:按照题目要求查询
*/
package com.school.controller;
import java.util.ArrayList;
import com.school.model.Project;
import com.school.model.School;
public interface SearchOutput {
/*** 按照学校编号查询该学校某项目情况* @param school 学校集合* @param project 项目集合*/
void SearchBySchoolId(ArrayList<School> school,ArrayList<Project> project);/*** 按照项目编号查询取得名次学校信息* @param school 学校集合* @param project 项目集合*/
void SearchByProjectId(ArrayList<School> school,ArrayList<Project> project);
}
/**
*实现SearchOutput接口
*/
package com.school.controller;
import java.util.ArrayList;
import java.util.Scanner;
import com.school.model.Project;
import com.school.model.School;
public class SearchOutputImpl implements SearchOutput {
/*
* 按照学校编号查找
*/
@SuppressWarnings(“resource”)
public void SearchBySchoolId(ArrayList school, ArrayList project) {
Scanner scan = new Scanner(System.in);
int m, n;
System.out.println(“请输入您要查询的学校编号:”);
m = scan.nextInt();
System.out.println(“请输入您要查询的项目编号:”);
n = scan.nextInt();
for(int i = 0;i < project.size();i++) {
if(m ==project.get(i).get SchoolId()) {
if(n == project.get(i).getId()) {
Integer s = project.get(i).getS();
for(int j = 0;j < s;j++) {
Integer a = project.get(i).getRange()[j];
Integer score = project.get(i).getScore()[a-1];
System.out.println(“学校得分 学校名次”);
System.out.println(score + " " + a);
}
}
}
}
}
/** 按照项目编号查找*/
@SuppressWarnings("resource")
public void SearchByProjectId(ArrayList<School> school, ArrayList<Project> project) {int n;System.out.println("请输入您要查询的项目编号:");Scanner scan = new Scanner(System.in);n = scan.nextInt();for(int i=0;i<project.size();i++){if(project.get(i).getId()==n){for(int j = 0;j<project.get(i).getS();j++){int a = project.get(i).getSchoolId();Integer b =project.get(i).getRange()[j];System.out.println("学校编号"+" "+"学校名次");System.out.println(a+" "+b);}}}
}
}
包名:com.school.utils
/**
*I/O流
*/
package com.school.utils;
import java.util.ArrayList;
import com.school.model.Project;
import com.school.model.School;
public interface IOUtil {
void writeToFile(ArrayList<Project> listProject,ArrayList<School> listSchool);void readToProjectFile();void readToSchoolFile();
}
/**
*实现IOUtil接口
*/
package com.school.utils;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import com.school.model.Project;
import com.school.model.School;
public class IOUtilImpl implements IOUtil {
ArrayList<Project> listProject = new ArrayList<Project>();
ArrayList<School> listSchool = new ArrayList<School>();@Override
public void writeToFile(ArrayList<Project> listProject, ArrayList<School> listSchool) {// 封装目的地BufferedWriter bw1;BufferedWriter bw2;try {// 写项目信息bw1 = new BufferedWriter(new FileWriter("project.txt"));for (Project list : listProject) {bw1.write(String.valueOf(list.getId()));Integer s = list.getS();for (int i = 0; i < s; i++) {bw1.write(String.valueOf(list.getRange()[i]));}bw1.write(String.valueOf(list.getSchoolId()));bw1.newLine();bw1.flush();}bw1.close();// 写学校信息bw2 = new BufferedWriter(new FileWriter("school.txt"));for (School list : listSchool) {bw2.write(String.valueOf(list.getId()));bw2.write(String.valueOf(list.getbSumPoint()));bw2.write(String.valueOf(list.getgSumPoint()));bw2.write(String.valueOf(list.getSumPoint()));bw2.newLine();bw2.flush();}bw2.close();} catch (IOException e) {e.printStackTrace();}}@Override
public void readToProjectFile() {BufferedReader br;try {br = new BufferedReader(new FileReader("project.txt"));// 封装目的地(创建集合对象)ArrayList<String> newProjectList = new ArrayList<String>();// 读取数据到集合中String line = null;while ((line = br.readLine()) != null) {newProjectList.add(line);}// 遍历数组,检查结果for (String s : newProjectList) {System.out.println(s);}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}@Override
public void readToSchoolFile() {BufferedReader br;try {br = new BufferedReader(new FileReader("school.txt"));// 封装目的地(创建集合对象)ArrayList<String> newSchoolList = new ArrayList<String>();// 读取数据到集合中String line = null;while ((line = br.readLine()) != null) {newSchoolList.add(line);}// 遍历数组,检查结果for (String s : newSchoolList) {System.out.println(s);}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}
}
/**
*SortUtil接口
*作用:实现排序算法
*/
package com.school.utils;
public interface SortUtil {
/*** 排序算法* @param args[] 成绩数组*/
Integer[] Sort(Integer []args);
}
/**
*实现SortUtil接口
*冒泡排序
*/
package com.school.utils;
public class SortUtilImpl implements SortUtil {
@Override
public Integer[] Sort(Integer[] args) {int x = 0;Integer []m = new Integer[args.length];for(int i = 0;i < args.length; i++){for(int j = 0;j < args.length-1-i;j++){if(args[j] > args[j+1]){x = args[j+1];args[j+1] = args[j];args[j] = x;}}}for(int i = 0;i < args.length; i++) {m[i] = args[i];}return m;
}
}
运行结果:
学校的名次可以并列
名次信息输入完毕,可以返回主菜单
- 排序输出:
1按学校编号
2 按学校总分
3 按男团总分
4 按女团总分
- 信息查询
1 按学校查询
2 按项目查询
退出:
文件中储存的数据:
望采纳,谢谢!
运动会分数统计 java语言相关推荐
- 运动会分数统计——C语言数据结构题目
C语言数据结构题目 1.问题描述 参加运动会有n个学校,学校编号为1--n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1--m,女子m+1--m+w.不同的项目取前五名或前三名积分:取前五名 ...
- 运动会分数统计 C语言
问题描述 参加运动会有n个学校,学校编号为1~n.比赛分为m个男子项目,和w个女子项目.项目编号为男子1~m,女子m+1~m+w.不同的项目取前五名或前三名积分.取前五名的积分分别为:7.5.3.2. ...
- c语言编程运动会分数统计系统报告,独家稿件:定稿运动会分数统计系统设计报告_完整版...
<运动会分数统计系统设计报告_.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)运动会分数统计系统设计报告_(完整版)>相关文档资源请在帮帮文库(www.woc88.c ...
- c语言编程运动会分数统计系统,东华大学数据结构设计C语言运动会分数统计系统...
东华大学数据结构设计C语言运动会分数统计系统 东华大学数据结构设计 C 语言运动会分数统计系统东华大学数据结构课程设计 实验报告实验名称: 运动会分数统计系统指导教师:学生姓名:学生学号:实验日期:1 ...
- 运动会分数统计系统c语言,运动会分数统计系统
<运动会分数统计系统>由会员分享,可在线阅读,更多相关<运动会分数统计系统(18页珍藏版)>请在人人文库网上搜索. 1.运动会分数统计系统罗慧明1. 需求分析为了简便地对运动会 ...
- java数据结构运动会分数统计,数据结构实验报告(运动会分数统计系)..doc
数据结构实验报告(运动会分数统计系). 运动会分数统计系统 问题描述: 参加运动会有n个学校,学校编号为1--n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1--m,女子m+1--m+w.不 ...
- java 运动会分数统计_数据结构题目-运动会分数统计
题目描述 在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排列,从而自动产生冠军.亚军和季军.现在要求编写一程序模拟实 ...
- 运动会分数统计(数据结构课程设计)
参加运动会有n个学校,学校编号为1--n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1--m,女子m+1--m+w.不同的项目取前五名或前三名积分:取前五名的积分分别为:7.5.3.2.1, ...
- 数据结构实训——运动会分数统计
题目1: 运动会分数统计(限1 人完成) 任务: 参加运动会有n个学校,学校编号为1--n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1--m,女子m+1--m+w.不同的项目取前五名或前三 ...
最新文章
- 技术图文:02 创建型设计模式(上)
- CentOS 安装NTFS-3G,让系统支持NTFS分区的方法
- 【总结整理】关于IE6的兼容性
- boost::transform_iterator用法的测试程序
- Blazor University (6)组件 — 组件事件
- js 读取json文件_JavaScript 项目中常见配置文件介绍
- react打包后图片丢失_给 React 组件自动加上 react-hot-loader
- 软件工程和数据库中必考的ER图
- 量子计算机前置同态加密技术,什么是具有抗量子计算机攻击潜质的全同态加密技术?...
- 监控网页内容,发现需要的内容后弹框和声音提醒
- Day3 函数 参数 变量 递归——python学习之路
- java类名不能以数字开头_java变量为什么不能以数字开头
- 云数智驱动数据高速增长,浪潮存储提供EB级容量扩展
- MySQL数据库W版与L版转换_mysql博文总结
- 划重点 传输层协议 tcp三次握手和四次挥手
- 程序员找媳妇的要求是什么呢?
- 微信小程序设置缓存过期时间
- upx壳的一些简单脱壳,望大牛勿喷。
- 深入浅出Linux操作系统搭建JavaEE环境(五)
- 做个网页游戏送女票当情侣礼物