2021-06-30

Java课程设计
(阶段一文档)

二〇二一年六月
目 录
1 选题 1
2 系统需求分析 2
2.1 系统可行性分析 2
2.2 系统需求分析 2
2.3 项目进度安排 2
3 系统设计 4
3.1 系统设计 4
3.11 算术运算测试
3.12 猜数字游戏
3.2 数据库设计 4
4 系统实现 ……………………………………………………………………………………………
5 结论和心得 9

1 选题
选题一 算数运算测试
题目要求

功能基本要求:实现100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断是否正确,如错误将显示正确答案,同时判断是否继续玩,每题10分,最后计算分数。说明:要求数随机,运算符也随机,可以多次游戏,做对一题加10分,直到用户不想玩。
能力要求:1.沟通表达能力;2:资料搜集能力;3. 自主学习能力;4.时间规划能力
5.独立完成项目能力;6.文档撰写能力;7.面向对象编程思维和软件工程思想。

使用Java知识

Java基本输入输出、运算符、随机数、while循环、for循环、continue、break、数据类型转换、选择分支、异常、函数调用。

选题二 猜数游戏
题目要求

功能基本要求:计算机产生随机数(1-100之间),猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到;给出所用的时间和评语,保留用户最好的成绩存进数据库,输出排行榜。说明:猜到了也可以继续玩,直到用户不想玩(最好成绩指的是所用时间最短)。
能力要求:1.沟通表达能力;2:资料搜集能力;3. 自主学习能力;4.时间规划能力
5.独立完成项目能力;6.文档撰写能力;7.面向对象编程思维和软件工程思想。
使用Java知识

Java基本输入输出、随机数、while循环、break、选择分支、随机数、类型转换、函数调用、数据库等

2 系统需求分析
2.1 系统可行性分析
一、算数运算测试
1.技术可行性
该程序使用Eclipse编译器,采用的Java语言,Java面向对象,GUI图形界面,技术上是可行的。
2经济可行性
该程序使用Eclipse编译器是免费的,该软件能满足设计的基本的需求,不需要额外的开销,经济上是可行的。
3.操作可行性
该程序只需用户安装Eclipse编译器并配置好环境变量就可以使用,GUI也在Eclipse编译器上安装了WindowBuilder插件,操作简单便捷。符合大部用户的使用习惯。操作上是可行的。
二 、猜数游戏
1技术可行性
该程序使用Eclipse编译器,采用的Java语言,Java面向对象,GUI图形界面与JDBC数据库,技术上是可行的。
2.经济可行性
该程序使用Eclipse编译器是免费的,该软件能满足设计的基本的需求,不需要额外的开销,经济上是可行的。
3.操作可行性
该程序只需用户安装Eclipse编译器并配置好环境变量就可以使用,JDBC数据库也安装了开源软件,操作简单便捷。符合大部用户的使用习惯。操作上是可行的。

2.2系统需求分析
一、算数运算测试
实现100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断是否正确,如错误将显示正确答案,同时判断是否继续玩,每题10分,最后计算分数。
二、猜数游戏
计算机产生随机数(1-100之间),猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到;给出所用的时间和评语,保留用户最好的成绩存进数据库,输出排行榜。

2.3 进度安排
阶段一进度安排如表3-1所示。
表3-1 进度安排表
阶段 持续时间 阶段描述 输出
构思阶段 2h 需求分析 需求说明,功能模块图
设计阶段 1h 系统设计 设计说明-可以画流程图;数据库设计
实现阶段 1h 编写代码 项目工程源代码
2h 系统测试 进行黑盒测试(功能测试)-测试说明
运行阶段 1h 部署、运行 系统使用说明、运维报告、录制视频

3 系统设计

3.2 数据库设计
一、算数运算测试

二、猜数游戏

4 系统实现

4.1算数运算测试

4.2猜数字游戏

5 结论和心得
心得:构思这个小项目花了两天时间,对于不熟悉的知识认真学习,找了各种资源,B站,百度,博客,老师给的资料等等,期间也出现了很多问题,也及时的询问老师和通过组内交流解决了这些问题,最后做成功的那一瞬间 真的很喜悦,很激动,前期虽然很辛苦,但是做出来的时候真的非常高兴,也非常有成就感。

<think>好的,用户现在遇到了TinaLinux编译过程中的错误,具体是hostapd编译时找不到libubus.h的问题。用户已经提供了他们执行find命令后的结果,显示libubus.h在几个不同的路径下存在。我需要根据这些信息来帮助解决这个问题。 首先,回顾之前的对话历史,用户在编译时遇到错误,提示struct ubus_object有不完整的类型,这通常是因为头文件未正确包含或者版本不兼容。用户现在找到了libubus.h的位置,但可能编译器没有正确找到这些路径。 我需要检查用户提供的路径是否正确。用户找到的三个路径分别是: 1. ./out/v821/avaota_f1/openwrt/build_dir/target/ubus-2021-06-30-4fc532c8/ipkg-install/usr/include/libubus.h 2. ./out/v821/avaota_f1/openwrt/build_dir/target/ubus-2021-06-30-4fc532c8/libubus.h 3. ./out/v821/avaota_f1/openwrt/staging_dir/target/usr/include/libubus.h 看起来ubus的头文件确实存在,但可能在编译hostapd时没有正确指定包含路径。通常,编译时需要通过-I选项将头文件路径添加到编译器的搜索路径中。 用户之前提到的错误可能是因为在hostapd的Makefile中没有包含正确的-I路径,导致编译器找不到libubus.h。因此,解决方案应该是在编译hostapd时添加相应的包含路径。 另外,用户之前尝试交叉编译时,路径中有一个笔误,将nds32le写成了riscv,现在需要确保所有路径都是正确的架构路径,比如riscv64-linux-musl。 可能还需要检查ubus库的版本是否与hostapd兼容。用户使用的是ubus-2021-06-30,而hostapd的版本是2020-06-08,可能存在API差异。建议用户尝试更新hostapd到更高版本,或者确保两者的兼容性。 此外,用户可能需要确认在编译hostapd时是否启用了UBUS支持,即配置选项中是否有CONFIG_UBUS=y,否则即使头文件存在,也可能导致结构体未被正确声明。 总结可能的解决步骤: 1. 在hostapd的编译命令中添加-I参数指向正确的libubus.h路径。 2. 确保使用的sysroot路径正确,特别是针对RISC-V架构。 3. 检查hostapd的配置是否启用了UBUS支持。 4. 如果版本不兼容,考虑升级hostapd或降级ubus库。 需要将这些步骤以清晰的指令提供给用户,并验证每一步是否有效。同时,提醒用户可能需要注意的其他细节,比如清理之前的编译缓存,重新配置等。 </think>根据你的查找结果和编译错误信息,问题核心在于**hostapd未正确包含libubus头文件路径**。以下是完整的修复方案: --- ### **关键修复步骤** 1. **添加头文件包含路径**(选择最稳定的staging目录): ```bash # 修改hostapd的Makefile或CFLAGS CFLAGS += -I/home/ubuntu/tina-v821-release/out/v821/avaota_f1/openwrt/staging_dir/target/usr/include/ ``` 2. **强制启用UBUS支持**: ```bash # 在hostapd配置中添加 CONFIG_UBUS=y CONFIG_CTRL_IFACE_UBUS=y ``` 3. **修正sysroot路径**(重点修复): ```bash # 将错误的nds32le路径替换为riscv架构路径 -LIBS="-L/home/ubuntu/tina-v821-release/prebuilt/rootfsbuilt/riscv/nds32le-linux-musl-v5d//sysroot/usr/lib" +LIBS="-L/home/ubuntu/tina-v821-release/prebuilt/rootfsbuilt/riscv/riscv64-linux-musl/sysroot/usr/lib" ``` 4. **清理并重新编译**: ```bash make package/network/services/hostapd/clean make package/network/services/hostapd/compile V=s ``` --- ### **验证头文件完整性** ```bash # 检查libubus.h内容是否包含struct ubus_object定义 grep -r "struct ubus_object" /home/ubuntu/tina-v821-release/out/v821/avaota_f1/openwrt/staging_dir/target/usr/include/ ``` 预期输出应包含类似定义: ```c struct ubus_object { struct ubus_context *ctx; struct ubus_object_type *type; struct list_head path; struct avl_node avl; }; ``` --- ### **版本兼容性检查** 1. **ubus版本**: ```bash cat /home/ubuntu/tina-v821-release/out/v821/avaota_f1/openwrt/build_dir/target/ubus-2021-06-30-4fc532c8/VERSION ``` 2. **hostapd版本**: ```bash cat /home/ubuntu/tina-v821-release/out/v821/avaota_f1/openwrt/build_dir/target/hostapd-full-internal/hostapd-2020-06-08-5a8b3662/VERSION ``` > **注意**:ubus-2021与hostapd-2020可能存在API差异,建议: - 使用hostapd-2021+版本 - 或回退到ubus-2020版本 --- ### **应急方案**(临时禁用UBUS功能) 如果无法立即解决兼容性问题: ```c // 修改src/ap/hostapd.h文件 -#include "libubus.h" +//#include "libubus.h" -struct ubus_object ubus; +struct ubus_object ubus; // 临时注释或删除 ``` --- ### **扩展排查建议** 1. **检查依赖库**: ```bash # 确认目标系统包含libubus.so ls /home/ubuntu/tina-v821-release/prebuilt/rootfsbuilt/riscv/riscv64-linux-musl/sysroot/usr/lib/libubus.so* ``` 2. **符号链接验证**: ```bash # 确保动态链接库路径正确 readelf -d /home/ubuntu/tina-v821-release/out/v821/avaota_f1/openwrt/build_dir/target/hostapd-full-internal/hostapd-2020-06-08-5a8b3662/hostapd | grep NEEDED ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值