Advertisement

北京工业大学算法分析与设计作业一:邮局选址问题Java代码解决方案

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本作业为北京工业大学《算法分析与设计》课程中关于“邮局选址问题”的Java编程实践,旨在通过优化算法实现最小化服务成本。 在北京工业大学的算法分析与设计课程作业01中探讨了邮局选址问题。题目设定在一个城市里,这个城市的街区按照东西方向(用x坐标表示)和南北方向(用y坐标表示)划分成规整形状。n个居民点随机分布在这个城市的各个街区之中,每个居民点的位置可以用(x, y)这样的坐标来确定。 任务是为这些分散的居民区选择一个合适的邮局位置,使得所有n个居民点到选定邮局的距离总和最小化。这道题可以利用带权中位数的概念(结合分治算法)来进行求解。 要求使用的编程语言是Java。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Java
    优质
    本作业为北京工业大学《算法分析与设计》课程中关于“邮局选址问题”的Java编程实践,旨在通过优化算法实现最小化服务成本。 在北京工业大学的算法分析与设计课程作业01中探讨了邮局选址问题。题目设定在一个城市里,这个城市的街区按照东西方向(用x坐标表示)和南北方向(用y坐标表示)划分成规整形状。n个居民点随机分布在这个城市的各个街区之中,每个居民点的位置可以用(x, y)这样的坐标来确定。 任务是为这些分散的居民区选择一个合适的邮局位置,使得所有n个居民点到选定邮局的距离总和最小化。这道题可以利用带权中位数的概念(结合分治算法)来进行求解。 要求使用的编程语言是Java。
  • 课程编程.zip
    优质
    此ZIP文件包含北京邮电大学算法设计与分析课程的所有编程作业及部分实验报告,适用于对该课程内容进行学习和复习。 仅供学弟学妹们参考思路,请勿直接当作作业提交,严禁发生抄袭等学术不端行为。
  • Java
    优质
    本课程是北京邮电大学计算机专业的一门基础课,旨在通过实践项目教授学生Java编程语言的核心概念和开发技巧。学生将完成一系列设计与编码任务,以提升解决问题的能力和团队合作精神。 实验1:类的定义与对象数组使用 **任务一** 创建一个名为`Student`的学生类。该类包含以下属性和方法: - **非静态属性** - `String studentNumber`: 学生学号。 - `String studentName`: 学生姓名。 - `int markForMaths`, `markForEnglish`, 和 `markForScience`: 分别表示数学、英语与科学科目的成绩。 - **构造方法** - `Student(String number, String name)`: 构造函数,用于初始化学号和名字。 - `Student()`: 默认构造器(无参数)。 - **其他方法** - `String getNumber()` : 返回学生学号。 - `String getName()`: 返回学生姓名。 - `void enterMarks(int markForMaths, int markForEnglish, int markForScience)`: 输入三门课程的成绩。 - `int getMathsMark()`, `getEnglishMark()`, 和`getScienceMark()`:分别返回数学、英语和科学成绩。 - `double calculateAverage()`: 计算平均分,注意除数应为3.0而非整型数值以确保结果准确。分数初始值设置问题讨论:若将每个科目的初始分为零,则可能与实际得分为零的情况混淆;建议使用其他默认值或在输入前进行验证。 - `String toString()`: 返回包含学生信息的字符串,包括学号、姓名和各科目成绩及平均分。 编写`StudentTest`类来测试上述定义的功能。运行效果展示如下: ``` 请输入学生学号:2011211301 请输入学生姓名:王晓 请输入三门课成绩(数学,英语,科学):88,79,90 输出: 学号: 2011211301 姓名: 王晓 数学成绩: 88 英语成绩: 79 科学成绩: 90 平均分: 85.67 ``` **任务二** 创建一个名为`StudentList`的类,用于存储多个学生对象。定义如下属性和方法: - **成员变量** - `Student[] list`: 存储学生对象。 - `int total`: 记录当前数组中的元素个数。 - **构造函数** - `StudentList(int length)`: 初始化一个具有给定长度的列表来存储学生信息。 - **方法** - `boolean add(Student stu)` : 向列表中添加一个新的`stu`对象,成功返回true,否则false。 - `boolean remove(int no)` 和 `remove(String number)`: 分别根据位置或学号删除一个元素,并反馈操作结果(布尔值)。 - `boolean isEmpty()`: 检查数组是否为空并给出相应的判断结果。 - `Student getItem(int no)` 和`getItem(String number)`: 根据索引和学号返回对应的对象,若找不到则返回null或错误信息。 - `int getTotal()`:获取当前学生总数。 编写测试类`StudentListTest`以验证功能: ``` 菜单如下,请输入1~8代表您要执行的操作: 1. 添加一个新学生 2. 按学号删除学生 3. 根据位置移除学生信息 4. 判断列表是否为空 5. 通过索引获取指定的学生信息 6. 使用学号查找特定的记录 7. 展示所有学生的数据 8. 结束程序 操作实例: 输入1添加新用户,后续会要求你依次填写:学号、姓名及三门课的成绩。 ``` 作业命名规则为`_学号(8位)_姓名_第几次作业(1位)_类名.java`。例如: - `_09211195_王晓_1_Student.java` - `_09211195_王晓_2_studentList.java` 注意:提交时,仅上传`.java`文件而非压缩包,并确保源代码中的类名称与文件名一致以方便批改。
  • Java3
    优质
    本作业为北京邮税大学Java课程第三阶段的学习任务,涵盖面向对象编程、数据结构及算法等核心内容,旨在提升学生的编程实践能力。 实验3 继承与多态 定义以下五个类: - Employee:包含属性 firstName(名字)、lastName(姓氏) 和 socialSecurityNumber(社保号)。该类中应定义一个抽象方法 earning,用于计算员工的月工资。 - SalaridEmployee:继承自 Employee 类,并新增 weeklySalary 属性表示周薪。其月工资计算方式为:weeklySalary * 4。 - HourlyEmployee:同样继承自 Employee 类,包含 wage(每小时工钱)和 hours(每月工作时长)。该类的月工资计算公式是:wage * hours。 - CommisionEmployee:基于 Employee 类创建,并新增 grossSales(销售额) 和 commissionRate(提成比率)两个属性。此员工类型的月收入为:grossSales * commissionRate。 - BasePlusCommisionEmployee:同样继承自 Employee,增加了 baseSalary 属性表示基本月薪。此类的月工资计算公式是:(grossSales * commissionRate) + baseSalary。 每个类都应包括构造方法、toString 方法以及所有属性的 get 和 set 方法(对于 socialSecurityNumber 只提供 getter)。firstName 和 lastName 除了 getter/setter 外,还应在构造函数中初始化。 接下来需要创建一个包含10个员工对象的数组,通过随机数决定生成哪种类型的员工,并将这些对象存储在数组内。最后遍历这个数组调用每个对象的 toString 方法输出其信息以及 earning 方法计算并展示月工资。 注意:上述描述未涉及任何具体实现细节、代码示例或联系信息。
  • C++ 中使用
    优质
    本文章介绍如何在C++中运用分治算法解决经典的邮局选址问题,通过递归方式寻找最优解,旨在优化服务区域内的总距离。 C++ 分治法解决邮局选址问题,内容详尽地包含了代码、算法分析、测试文件和结果,非常值得拥有!
  • 西实验
    优质
    本课程为西北工业大学开设的一门计算机科学专业核心课程的实践环节,旨在通过实际编程项目和案例研究,帮助学生深入理解并掌握算法分析与设计的基本理论及其应用技巧。 西北工业大学学院开设的算法实验部分涵盖了多种方法的答案,包括贪心法、回溯法、分支限界法以及遗传算法等等。
  • Java实现
    优质
    本项目提供了一种基于Java语言解决邮局选址问题的代码实现。通过优化算法,旨在寻找最优解以最小化服务区域内的总距离。适合研究与学习使用。 请根据提示输入要测试的数据文件编号(1-5)。数据文件中的第一行表示居民数量,其余每行为一个居民的位置坐标及其权值,格式为“横坐标,纵坐标,权值”(例如:1,2,3)。在输入了数据文件的编号后,程序将开始运行,并依次输出排序后的x轴和y轴坐标及对应的权值。最后会输出满足距离最小条件的邮局位置。
  • 网络机网络
    优质
    本资源提供了北京邮电大学网络工程专业计算机网络课程的课后习题详细解答,适用于学生巩固课堂知识、提高解题能力。 该资源是北邮网络工程专业计算机网络课程布置练习题的答案。
  • 航空航天机研究生HomeAswork_1
    优质
    本作业为北航计算机专业研究生课程《算法设计与分析》的第一项任务,旨在通过实践加深学生对基本算法原理和技巧的理解。 本段落介绍了一个递推式C(n)及其非递归表达式的导出方法,并提供了定理1来支持这一过程。根据该定理,可以得出C(n)的非递归表达式为bnxlogcn + dnx,其中a、b、c、d和x均为非负整数或常数。此外,文章还提出了一种解决方案:令F(n) = C(n) – 1,并由此推导出F(n)等于0的结果。
  • 西合集.zip
    优质
    该资源为西北工业大学学生整理的算法设计与分析课程相关代码集合,涵盖多种经典算法实现及其应用示例。 西工大算法设计与分析代码集合.zip