付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、可编辑版学号202210159308武汉科技大学城市学院课程设计报告课程设计名称 JAVA程序设计课程设计题目 A C M院系 信息工程学部专业 软件工程班级姓名指导教师2022年 6 月 23 日Word完美格式可编辑版课程设计评分表评分标准:1.学生是否严格遵守课程设计纪律,根据规定时间完成设计任务(占30%)2.程序设计的质量与标准:(占40%)(1)任务书上的题目是否完成,并选做了 ACM题目(2)成功提交的ACM题目的数题及难度(3)是否采用了良好的设计方法,独立完成程序设计(4)程序是否运行正常,未见运行错误3.课程设计报告书的质量与标准(占30%)教师评分:1.学生出勤得分A.优
2、 B.良2 .程序设计得分A.优B.良3 .设计报告得分A.优B.良C.中D.及格E.不及格C.中D.及格E.不及格C.中D.及格E.不及格总分: 教师评语:根据该生在课程设计期间,是否严格遵守课程设计纪律,根据规定时间完成设计任务,完成的程序设计的质量与标准,提交的课程设计报告书的质量与标准等多方面的评分,该生本次课程设计的评分为: 教师签名:日期:年 月 日Word完美格式可编辑版JAVA编程课程设计指导书学时:1周,学分:11 .课程设计目的:JAVA®程课程设计属于软件开发类课程设计.该课程设 计培养学生熟练应用当前主流的JAVA软件开发语言,检验软件的设计、编码与 测试,具
3、备较强的JAVA语言软件开发水平.2 .课程设计方式:(1) JAVA编程课程设计方式采取ACMM试的方式,利用所学的面向对象程 序设计JAVA知识,培养学生具有分析应用问题的水平,能够独立完成应用程 序的编制与调试工作.3每个同学必须完成8-12道题,每题写出解题报告,解题报告内容:1.题目标题.题目描述.解题思路4.源码5.小结3 .课程设计平台:eclipse 或Myeclipse4 .课程设计考核方式1学生独立提交软件设计作品和“课程设计报告书,指导教师根据学 生组提交的软件设计作品和“课程设计报告书的质量,为学生组评定“优 “良 “中 “及格或“不及格;2根据各组学生所选题目的难易程
4、度以及验收结果,为学生评定“优“良 “中 “及格或“不及格.“课程设计报告书包括:课程设计工程名称,课程设计任务,课程设计任 务功能说明及功能模块图,数据库设计,各模块功能说明,使用的算法描述 如果需使用算法,各模块界面设计,各模块中关键代码段功能说明与代码行 注释,测试说明,参考文献等.5 .参考文献1张思民.Java语言程序设计第 2版M.北京:清华大学出版社, 2022.12姜华.Java工程实战教程M.北京:清华大学出版社,2022.93陈喧.Java程序设计教程M.北京:清华大学出版社,2022.54美Echel,B .Java编程思想第四版M.北京:机械工业出版社,20225 Mi
5、chael Main.数据结构:Java语言描述第二版国外经典计算机科学教材M.北京:中国电力出版社,2022Word完美格式可编辑版目录1星系炸弹15.1 问题描述15.2 解题思路15.3 代码15.4 小结22小光棍数32.1 问题描述32.2 解题思路32.3 代码32.4 小结43零起点学算法12求2个日期之间的天数.52.5 问题描述52.6 解题思路52.7 代码52.8 小结64零起点学算法34继续求多项式74.1 问题描述74.2 解题思路74.3 代码74.4 小结8Word完美格式可编辑版5零起点学算法35再求多项式含浮点 .95.1 问题描述95.2 解题思路95.3
6、代码95.4 小结106 3n+1 问题116.1 问题描述116.2 解题思路116.3 代码116.4 小结127根底练习Huffuman树137.1 问题描述137.2 解题思路137.3 代码147.4 小结147.5 15Word完美格式可编辑版1星系炸弹1.1 问题描述在X星系的广袤空间中漂浮着许多 X星人造“炸弹,用来作为宇宙中的路 标.每个炸弹都可以设定多少天之后爆炸.比方:阿尔法炸弹2022年1月1日放置,定时为15天,那么它在2022年1 月16日爆炸.有一个贝塔炸弹,2022年11月9日放置,输入定时天数,例如定时为1000 天,请你计算它爆炸的准确日期.请填写该日期,格
7、式为yyyy-mm-dd 即4位年份2位月份2位日期.比方: 2022-02-19输入:输入炸弹引爆延迟的天数.输出:对于每个输入天数,输出符合题目要求的格式的日期.样例输入:1000样例输出:2022-08-051.2 解题思路1,分析题意可知,此题是求一个日期,想到了Calendar.2,输入的数据是这个日期距离 2022-11-09的天数,想到了 add方法.3,用set设置起始日期2022-11-09 11月在代码中表现为10.4,用add方法设置偏移值,偏移值由键盘输入获取 scanner.5,用getTime获取偏移后的Date对象.6,自定义格式把对象转换成字符串输出,格式为:y
8、y-MM-dd.1.3代码import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Scanner;public class Main /*param argsthrows IOException*/public static void main(String args) throws IOException / TODO Auto-generated method stubWord完美格式可编辑版Scanner sc=new Scanner(System
9、.in); while(sc.hasNext()(Calendar c=Calendar.getInstance();c.set(2022, 10, 9);int amount=sc.nextInt();c.add(Calendar.DATE,amount);Date date =c.getTime();DateFormat format = newSimpleDateFormat("yyyy-MM-dd");String str=format.format(date);System.out.println(str);1.4 小结Calendar对象可以灵活地设置修改日期,
10、非常好用,还有就是要注意在java中日期的数字表示:月是用011的整数表示的,0表示1月,1表示2月.11表示12月.日是用131的整数表示.小时用023的整数表示.Word完美格式可编辑版2小光棍数2.1 问题描述为了迎接一年一度光棍节的到来,让我们一起来看看小光棍数吧.倘假设一个数的三次方最后三位数是 111,这样的数称为小光棍数.从0开始计数,第一个小光棍数是 471(471A3=104487111),请问第m个小 光棍数是多少.输入第一行一个整数T表示有T组测试数据接下来T行每行有一个数m输出输出第m个小光棍数每次输出占一行样例输出1 1样例输出4712.2 解题思路1,分析题意可知,
11、第一次输入的数据表示测试数据有几组,也就是限制循 环的次数.2,第二次输入的数据表示查找第几个小光棍数,想到了定义一个变量作为 计数器,查找到一个记一次数,计数器的值等于输入的数据就停止查询, 并输出查到的数据.3,循环限制着一个查找功能,数字的三次方要保证是三位数,不是就不用 查找了,用if条件语句限制.直接把三次方处理后的数据对 1000取余数得出的 值就是最后三位,如果是111就满足条件,这个数字就是小光棍数.2.3 代码import java.util.Scanner;public class Main public static void main(String args) Scan
12、ner scanner=new Scanner(System.in);int n=scanner.nextInt();while(n-!=0)long m=scanner.nextLong();Word完美格式可编辑版System.out.println(471+(m-1)*1000);)2.4 小结这种特殊数字的查找原本在不用数学方法的情况下,计算量十分大,但是对计算机而言却不是很大,以后这种数据找不到规律可以直接用java写一个程序快速计算.但要注意对循环的限制.Word完美格式可编辑版3零起点学算法12求2个日期之间的天数2.2 问题描述水题输入输入2个日期,日期根据年月日,年月日之间用
13、符号 -隔开(题目包含多组 数据)输出求出这2个日期之间的天数(不包括自身),每组测试数据一行样例输入:2022-1-12022-1-5样例输出:32.3 解题思路1,分析题意可知,此题使用了日历,想到了Calendar.2,分别用两个字符串接收输入的数据,并且把接收到的字符串中的年、月、日切割出来,想到了 split方法.3,分别用set设置起始日期和终止日期.4,分别用getTime方法获取Date对象,再把Date对象转化为毫秒值.5,用后一个毫秒值减前一个毫秒值,并把毫秒转化成大打印.2.4 代码import java.util.Date;import java.util.Calend
14、ar;import java.util.Scanner;public class Main/* param args*/public static void main(String args) / TODO Auto-generated method stubCalendar c1=Calendar.getInstance();Calendar c2=Calendar.getInstance();Word完美格式可编辑版Scanner sc=new Scanner(System.in);while(sc.hasNext() (String s1=sc.nextLine();String s2=
15、sc.nextLine();if(s1.equals(s2)return;String str1=s1.split("-");String str2=s2.split("-");c1.set(Integer.parseInt(str10),Integer.parseInt(str11),Integer.parseInt(str12);c2.set(Integer.parseInt(str20),Integer.parseInt(str21),Integer.parseInt(str22);if(c1 pareTo(c2)>0) return;Dat
16、e date1=c1.getTime();Date date2=c2.getTime();long time1=date1.getTime();long time2=date2.getTime();long t=time2-time1;int day=(int) (t/1000/3600/24)-1;System.out.println(day); 2.5小结对日期进行运算首先要想到,将日期转化为毫秒值,转化后就可以使用数学 方法计算,从而得到日期结果,这种想法很方便.Word完美格式可编辑版4零起点学算法34继续求多项式4.1 问题描述输入1个正整数n,计算 1+ (1+2) + (1+2+
17、3) +.+(1+2+3+.+n)输入输入正整数n (多组数据)输出输出 1+ (1+2) + (1+2+3) +.+(1+2+3+.+n) 的值(每组数据一行)样例输入:2样例输出:44.2 解题思路1,看到这个式子想到了循环,把一个数据从1累加到n0但这只是完成了一个小括号内部的运算.2,继续思考,想到了递归,定义一个方法add实现累加功能,运算完一次就把传入的值减一,把每次累加后的值相加.3,如果n的值等于1,就停止递归,把最终的和返回.4.3 代码import java.util.Scanner;public class Mainpublic static void main(Stri
18、ng口 args)Scanner sc=new Scanner(System.in);while(sc.hasNext() int sum=0;int a=0;int n=sc.nextInt();for(int i=1;i<=n;i+) a=a+i;sum=sum+a;System.out.println(sum);Word完美格式可编辑版4.4小结在方法中自己调用了自己,就要想到递归.使用递归要注意:1.递归一定要 有结束条件.2.递归次数不能过多,容易引起内存溢出.Word完美格式可编辑版5零起点学算法35再求多项式(含浮点)5.1 问题描述输入一个整数n,计算1+1/ (1-3)
19、 +1/ (1-3+5) +.+1/(1-3+5-.+2n-1) 的值输入输入一个整数n (多组数据)输出出 1+1/ (1-3) +1/ (1-3+5) +.+1/(1-3+5-.+2n-1) 的值,保存 2 位小 数(每组数据一行)样例输入:1样例输出:1.005.2 解题思路1,建立一个名称为fun的方法计算1-3+5-.+2n-1的值.2,建立一个名称为 operation 的方法计算 1+1/ (1-3) +1/ (1-3+5) +.+1/ (1-3+5.+2n+1)的值,分母的值调用fun方法得到,分子为1,运用递归知识, 和上一题思想一样.3,调用operation方法得到返回值
20、,将返回值以保存两个小数的固定格式输 出.5.3 代码import java.text.DecimalFormat;import java.util.Scanner;public class Main public static void main(String口 args)Scanner sc=new Scanner(System.in);while(sc.hasNext() int a;double b=0;double c=0;int flag=1;a=sc.nextInt();for(int i=1;i<=a;i+) Word完美格式可编辑版c=c+flag*(2*i-1);b=
21、b+1.0/c;flag=-flag;)DecimalFormat df=new DecimalFormat("#0.00");System.out.println(df.format(b); )5.4 小结在方法中自己调用了自己,就要想到递归.使用递归要注意:1.递归一定要 有结束条件.2.递归次数不能过多,容易引起内存溢出.以固定格式输出可以考 虑String类中的静态方法format方法.Word完美格式可编辑版6 3n+1 I可题6.1 问题描述任给一个正整数n,如果n为偶数,就将它变为n/2,如果为奇数,那么将它 乘3加1 即3n+1.不断重复这样的运算,经过有限
22、步后,一定可以得到1输入:输入1个正整数n n<=10A10多组数据输出:输出变化的次数每组数据一行样例输入:3样例输出:76.2 解题思路1,获取输入的数据,判断是否满足 n<=10A10o2,定义一个变量count为计数器.3,用if判断n为奇数还是偶数,按各自要求分别处理数据,直到 n值为1 每处理一次count就加1,循环结束打印counto6.3代码import java.util.Scanner;public class Main public static void main(String args) Scanner sc=new Scanner(System.in)
23、;while(sc.hasNext()int num=sc.nextInt();if(num<=Math.pow(10, 10)int count=0;while(!(num=1)if(num=0)break;if(num%2=0) num=num/2;else num=num*3+1;)count+;)System.out.println(count);)Word完美格式可编辑版)sc.close();)6.4小结但凡遇到和次数有关的问题,就要想到能否认义一个计数器来记录次数, 合 适的定义变量可以很好地限制和显化代码的执行.Word完美格式可编辑版7根底练习 Huffuman树7.1
24、 问题描述Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构给出一列数pi=p0, p1,pn-1,用这列数构造Huffman树的过程如1 .找到pi中最小的两个数,设为pa和pb,将pa和pb从pi中删除掉, 然后将它们的和参加到pi中.这个过程的费用记为pa + pb o2 .重复步骤1,直到pi中只剩下一个数.在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费此题任务:对于给定的一个数列,现在请你求出用该数列构造 Huffman树的 总费用.例如,对于数列pi=5, 3, 8, 2, 9, Huffman树的构造过程如下:1 .找到5,
25、3, 8, 2, 9中最小的两个数,分别是2和3,从pi中删除它们并将和5参加,得到5, 8, 9, 5,费用为5.2 .找到5, 8, 9, 5 中最小的两个数,分别是5和5,从pi中删除它们 并将和10参加,得到8, 9, 10,费用为10.3 .找到8, 9, 10中最小的两个数,分别是8和9,从pi中删除它们并 将和17参加,得到10, 17,费用为17.4 .找到10, 17中最小的两个数,分别是10和17,从pi中删除它们并 将和27参加,得到27,费用为27.5 .现在,数列中只剩下一个数27,构造过程结束,总费用为5+10+17+27=59 输入输入的第一行包含一个正整数 n (n<=100).接下来是n个正整数,表示p0, p1,pn-1 ,每个数不超过1000.输出输出用这些数构造Huffman树的总费用.样例输入:67 3 8 2 9样例输出598 .2解题思路1 .分析题意知道先输入数列的总数,然后输入数列,可以用数组进行存储数 列.2 .用循环,当数列不为空,对数组进行排序,进行运算,直至队列为空,输 出结果.Word完美格式可编辑版7.3代码import java.util.Arrays;import java.util.Scanner;public class O pub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南吉利汽车职院高职单招职业适应性测试考试模拟试卷(各地真题)附答案详解
- 2026年河南省漯河市单招综合素质考试题库附完整答案详解【全优】
- 2026年靖边职业学院单招综合素质考试题库【模拟题】附答案详解
- 2026年青海省西宁市高职单招职业适应性测试考试题库附完整答案详解【夺冠系列】
- 2026年南阳职业学院单招职业技能考试模拟试卷附完整答案详解(各地真题)
- 2027年河南焦作山阳职业学院高职单招职业技能考试题库及一套完整答案详解
- 2024年宁夏回族自治区高职单招职业技能考试模拟试卷及参考答案详解(精练)
- 2026年乐山技师学院市中高职部单招综合素质考试题库(夺冠)附答案详解
- 2025年湖南常德鼎城职业学院高职单招职业技能考试模拟试卷(原创题)附答案详解
- 2027年重庆长江临港职业学院高职单招职业技能考试模拟试卷及完整答案详解(夺冠)
- 临时用电施工专项施工方案
- 2026广东深圳市急救中心招聘120调度员2人笔试参考题库及答案详解
- (2026)行政执法人员考试题库附答案
- 启动高水平应用型本科高校双优建设实施方案
- 广东广州市三校2025-2026学年高一下学期7月期末物理试卷(含答案)
- 2025-2026中国商飞公司秋季校园招聘笔试历年典型考点题库附带答案详解
- 2026年全国新高考2卷数学试卷(含答案及解析)
- 2026中国智慧城市大脑系统建设进度与区域落地案例分析报告
- 2026中国碳捕集技术发展现状及未来应用前景分析报告
- 鼎和财产保险股份有限公司招聘笔试题库2026
- 气象新员工业务入职培训手册
评论
0/150
提交评论