private int mStdId;
//leaf 0 是根 1是叶子
private boolean[] aryNodeStatus = new boolean[100];
private List<CourseIsBuy> ListBuyTree = new ArrayList<CourseIsBuy>();
public void CreateCourseBuyRec(Course cs, boolean isBuy, boolean isRoot) {
CourseIsBuy ss = new CourseIsBuy();
ss.setCs(cs);
ss.setIsBuyed(isBuy);
ss.setIsRootCourse(isRoot);
System.out.println(ss.getCs().getCname()+" isbuy:"+ss.isIsBuyed());
ListBuyTree.add(ss);
}
public List<CourseIsBuy> findTreeForBuy(int stdId) {
mStdId = stdId;
ListBuyTree.clear();
List<Course> list = (List<Course>) stdCourseDao.findStdCourseByPid(0);
if(list==null) return ListBuyTree;
for (Course course : list) {
//不是叶子
//0是叶子 1非叶子
if (course.getLeaf().equals("1")) {
boolean bIsBuy = stdCourseDao.findStdCourseByScId(stdId,
course.getCid());
CreateCourseBuyRec(course, bIsBuy, bIsBuy);
aryNodeStatus[0] = true;
this.treeBuy(course.getCid(), 0, aryNodeStatus, bIsBuy);
} else {
boolean bIsBuy = stdCourseDao.findStdCourseByScId(stdId,
course.getCid());
CreateCourseBuyRec(course, bIsBuy, false);
}
}
return ListBuyTree;
}
/**
* function :找到整个树并找到已购的课程
*
* @param:
*/
private void treeBuy(Integer cid, Integer level, boolean[] aryIsLastNode,
boolean isBuyFlag) {
int index = 0;
List<Course> list = (List<Course>) stdCourseDao.findStdCourseByPid(cid);
if (list==null) return;
for (Course course : list) {
String symbol = "";
String symbolf = " ";
index++;
// 先画上级节点延续下来的"|"+空格,空格具体数目由层数决定
for (int lev = 0; lev < level; lev++) {
if (aryIsLastNode[lev] == false)
symbolf += "│ ";
else
symbolf += " ";
}
// 是否为最后一个节点
if (index == list.size()) {
symbol = "└";
} else {
symbol = "├";
}
String cname = symbolf + symbol + course.getCname();
course.setCname(cname);
boolean bIsBuy = false;
if (course.getLeaf().equals("0")) {
// 判断一下他的上级是否已经是被购买了
//Course cs, boolean isBuy, boolean isRoot
//isBuyFlag false
if (!isBuyFlag) {
bIsBuy = stdCourseDao.findStdCourseByScId(mStdId,
course.getCid());
CreateCourseBuyRec(course, bIsBuy, bIsBuy);
isBuyFlag = bIsBuy;
}else{
CreateCourseBuyRec(course, true, false);
}
} else {
// 判断一下他的上级是否已经是被购买了
//!isBuyFlag==true 上级没被购买 isBuyFlag==false上级被购买
if (!isBuyFlag) {
//不显示横线
//这里上级没被购买
bIsBuy = stdCourseDao.findStdCourseByScId(mStdId,
course.getCid());
CreateCourseBuyRec(course, bIsBuy, bIsBuy);
isBuyFlag = bIsBuy;
} else {
//显示横线
CreateCourseBuyRec(course, true, false);
}
course.setLevel(level + 1);
if (index == list.size()) {
aryIsLastNode[level] = true;
} else {
aryIsLastNode[level] = false;
}
treeBuy(course.getCid(), course.getLevel(), aryIsLastNode,
isBuyFlag);
}
}
}
分享到:
相关推荐
值得注意的是,GoBug还支持远程调试,这对于分布式系统或云服务的调试非常有帮助。通过配置远程调试服务器,开发者可以在本地调试运行在远程机器上的Go服务。 总的来说,GoBug作为一款32位的Go语言调试工具,以其...
即使是有多年经验的单片机程序员,也很难一次通过测试就编写出完全无BUG的程序。 BUG的分类: 单片机程序BUG可分为两种类型,一种是显而易见的BUG,如保险管烧毁炸裂等;另一种是条件性BUG,即只有在特定条件下才会...
此“3dmax2018子菜单bug修补程序”是针对该版本软件中出现的一个特定问题进行修复的更新。在3D Max的用户界面中,子菜单是其功能布局的重要组成部分,它允许用户方便地访问和操作各种工具和命令。然而,在3D Max ...
这个名为"Java白板程序(有Bug,真的有Bug!!!)"的资源显然聚焦于一个包含错误的Java程序,可能是用于教学或实际项目中的一个白板应用。白板程序通常指的是用于画图、演示或教学目的的软件,而在这里,它显然存在...
bug报告.zip程序开发文档软件开发文技术档下载bug报告.zip程序开发文档软件开发文技术档下载bug报告.zip程序开发文档软件开发文技术档下载bug报告.zip程序开发文档软件开发文技术档下载 1.合个人学习技术做项目参考...
原生小程序开发过程中遇到的奇怪bug以及解决方案
在微信小程序开发过程中,开发者经常会遇到各种bug,这些bug可能在开发工具中表现良好,但在实际设备上却会出现意想不到的问题。以下是一些常见的微信小程序bug及其解决方案。 1. **textarea的padding问题**: ...
本人所说的小程序,都是基于mpvue框架而上的,因此BUG可能是原生小程序的,也有可能是mpvue的。 问题描述 在小程序input组件中,如果使用v-model进行双向绑定,在输入时会出现光标闪烁的BUG。 原因 造成这个BUG的...
感触还是有的,现对于某几个相关的问题写了一些个人的想法,这次说的是关于bug曲线图的问题, 我们大部分人都知道所有的测试执行完成后,都会有测试报告,而测试报告的一个最关键的因素就是bug曲线图,一般都会有2...
BugFree是一款开源的缺陷跟踪系统,专为程序代码的bug管理设计,旨在简化软件开发和测试过程中的问题追踪。在软件开发中,bug是不可避免的,BugFree提供了一个高效的平台来记录、跟踪、修复这些问题,确保项目的顺利...
标题"CHM_BUG.rar"暗示这是一个修复CHM文件问题的程序,可能是作者为了帮助用户解决上述常见问题而创建的。通过这个压缩包,我们可以获取到作者提供的解决方案,即"CHM_BUG"程序,它旨在简化修复过程,使得非技术...
### 如何减少程序中的Bug 在软件开发过程中,减少程序中的Bug是提高软件质量和稳定性的重要环节。本文将根据“如何减少程序中的bug.pdf”的标题、描述及部分内容,深入探讨几种有效的减少Bug的方法。 #### 一、...
Delphi2007 系统带有一个Bug,即程序编译后在退出时会报错。这个工具是修复那个bug,只需要执行后退出d2007重新打开即可修复!
中级类 bug 是指较严重错误,如后台程序错误、程序接口错误等。低级类 bug 是指一般性错误,如操作界面错误、打印内容格式错误、简单的输入限制未放在前台进行控制等。 文档还对返工率计算统计方法进行了详细的描述...
主要用于测试php程序使用,直接my_debug($content)将其输出,会提示您测试代码行数,便于定位跟踪测试程序使用,希望对大家有用处
BugBrain (虫脑)是关于人工神经网络的策略类游戏,是关于虫子女士的养成类游戏; 游戏以已经获得广泛应用的的阶越激励函数神经元为基础,要求玩家构建神经网络,实现与环境的交互,使虫子拥有基本的生存技能; ...
针对这些问题,开发人员已经推出了Win11任务栏搜索Bug修复程序的升级版。 这个升级版修复程序具有一个小巧的用户界面,使得用户可以更直观地进行问题排查和修复。与原版无界面的版本相比,新版本提供了更友好的交互...
作为EMMIS使用的用户,将这个BUG测试程序拷贝到EMMis目录,执行遇到程序bug或者错误的时候,将在[D:EMMIS]盘根目录写下日志文件。
微信小程序入门介绍(自制PPt)。本人已开发2款小程序,公司分享会,需要介绍小程序。固出此ppt介绍小程序入门,及自己遇到的坑,和一些小门路,存在的bug及解决方案。
bug跟踪流程,以图表的形式详细说明了如何发现BUG,回归BUG