Java周总结之无套不欢

本篇文章主要讲的是:上一周通过做《数组版DVD租借系统》的编程思想及冒泡排序

摘要:作为一名程序员要知道一点,没有做不到的只有想不到的。只有先把思路想好了,后面的实现就不是什么大问题了。那么要怎么理清思路呢?
无非程序设计包括以下几大点:1.数据的存储2.数据的操作3.数据的显示。得到了数据,然后逻辑实现对数据的操作,最后显示出来。

下面以DVD租借系统为例细说:

一.整体框架思路

1.数据存储
*找出需要存储的数据:
1)DVD编号  2)DVD的名称   3)DVD的状态  4)DVD的租出日期  5)DVD的租金(元/天)
(这是拿到要求后初步得出的数据)

2.数据的操作
*找出需要操作的功能:
1)查看   :查看当前库里面存在的DVD所有信息
2)添加   :添加一条DVD信息进入库里
3)删除   :从库里删除一条或多条DVD信息
4)借出   :修改DVD的状态(以借出/可借),并加上借出日期
5)归还   :清楚借出日期,修改DVD状态为(可借),并清算租借金额
6)排行榜:根据租金的贵低排行
7)退出   :结束程序

3.数据的显示
在操作台显示所需要的DVD数据,具体显示具体出来。
例如,我要查找可借的DVD,可删的DVD,查看所有的DVD信息。查看排行最高的DVD。
等等。

二.框架的具体内容

1.存储定义已知信息:

//初步可知需定义的数据
int id []=new int[100]; //存储编号
String name []=new String[100]; //存储DVD名
String state []=new String[100]; //存储状态
String date []=new String[100]; //存储时间,我是初始时间
double money []-new double[100]; //存储租金
//---------------------------
//根据需求添加的定义
Scanner sc=new Scanner(System.in);//定义一个输入的对象sc

2.定义功能方法

public void show(){}	//查看功能
public void add(){}		//添加功能
public void delete(){}	//删除功能
public void loan(){}	//借出功能
public void giveback(){} //归还功能
public void crollife(){} //排行榜
public void quit(){} 	//退出功能

3.具体显示
1)主菜单:首先我们需要作出一个主菜单来,并拥有对功能方法选择的功能,也就是用户输入对应的按键,调用对应的功能方法,例如按1调用==add()==方法,利用switch选择结构做选择。具体生活中需要

public void mainmenu(){
	System.out.println("提示信息");
	System.out.println("按1查看");
	//取到用户输入的值
	int selectnumber=sc.nextInt();
	//选择的功能显示界面
	switch(selectnumber){
	case 1:
		addWindows();
		break;
	...//其他功能就不一一书写了
	}
}

2).返回菜单:通过调用主菜单

public void gomainmenu(){
	//为了不会调用立马调转,添加一个按任意键返回的操作
	System.out.print("提示信息");
	String n=sc.next();
	mainmenu();
}

3).界面显示:把显示和功能实现分开来写,更加的清晰明了,并且能够节省时间,因为显示代码大同小异,可以重复利用。

public void addWindows(){
	//显示啥就打印啥
	System.out.println("要显示的内容");
	//逻辑实现放下的方法里面
	add();
	//操作完成返回主菜单调用返回主菜单方法
	gomainmenu();
...
//根据需要显示的功能的个数来定义多个方法	
}

4).初始化:为了可以直观的看到效果,先给系统添加了几条信息

public void into() {
		id[0] = 1;
		state[0] = "已借出";
		name[0] = "罗马假日";
		date[0] = "2019-02-13";
		money[0] = 2;
		id[1] = 2;
		state[1] = "可借";
		name[1] = "美国队长";
		date[1] = "\t";
		money[1] = 4;
		id[2] = 3;
		state[2] = "可借";
		name[2] = "安徒生童话";
		date[2] = "\t";
		money[2] = 6;
	}
三.具体功能的实现

选择的是排行榜功能。
排行榜分析:1)不能打乱原有库的内容。2)找到需要排序的数据,并重新定义新数组,存储这些信息。3)如何排序,并修改数据在数组中的位置。(利用冒泡排序的方法)

1.重新定义两个数组临时保存排行榜数据

//在外层定义两个新数组
double sortmoney[]=new double[100];
String sortname[]=new String[100];

2.得到库里面的数据。初始化新数组

//初始化新数组
public void init(){
		for(int i=0;i<id.length;i++){
			if(id[i]==0){
				break;
			}
			sortmoney[i]=money[i];
			sortName[i]=name[i];
		}
	}

3.排序:利用冒泡排序的思想,对sortmoney数组进行排序,联动修改sortname数组,同步排序。

//冒泡排序由大到小排列
public void Sort(){
		//调用初始化数组方法
		init();
		for (int i = 0; i < id.length-1; i++) {
			for(int j=0;j<id.length-1-i;j++){
				if(sortmoney[j]<sortmoney[j+1]){
					//排序交换,大的就往前换
					double tmp;
					tmp=sortmoney[j];
					sortmoney[j]=sortmoney[j+1];
					sortmoney[j+1]=tmp;
					String Str;
					Str=sortName[j];
					sortname[j]=sortName[j+1];
					sortname[j+1]=Str;
				}
			}
		}

学习总结:本周的收货,一个设计程序的套路,无套不欢,套套更轻松。
也就是以上的设计框架啦:把功能、显示、初始化等。每一个涉及到的相同意义或相同分类的方法写在一起。即方便查看,又方便修改。减少来代码的重复,和耦合性,让思路更清晰。让我们一起期待下一周的到来吧。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值