【作品名称】:GDUT 编译原理课程的课内实验和课程设计(含课程设计报告) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 实验环境和工具 1、源语言:PL/0语言,PL/0语言是PASCAL语言的子集,它的编译程序是一个编译解析执行系统,后缀名为.PL0; 2、目标语言:生成文件后缀为*.COD的目标代码 3、实现平台:Borland C++ Builder 6 4、运行平台:Windows 7 64位 五、课内实验和课程设计内容和要求 1. 课内实验 对PL/0作以下修改扩充: (1)增加单词:保留字 ELSE,FOR,STEP,UNTIL,DO,RETURN 运算符 *=,/=,&,||,! (2)修改单词:不等号# 改为 <> (3)增加条件语句的ELSE子句,要求:写出 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。需要有一定的基础看懂代码,自行调试代码并解决报错,能自行添加功能修改代码。
2025-05-28 09:24:55 3.07MB GDUT 课内实验 课程设计
1
基于SpringBoot的甘肃非物质文化网站,系统包含两种角色:用户、管理员,系统分为前台和后台两大模块,主要功能如下: 用户信息管理 用户信息管理页面为管理员提供了以下功能: - 查询管理用户信息 - 删除用户信息 - 修改用户信息 - 新增用户信息 - 对用户名称进行模糊查询 商品分类管理 商品分类管理页面为管理员提供了以下功能: - 查看已发布的商品分类数据 - 修改商品分类 - 作废商品分类(即删除商品分类) 申请信息管理 申请信息管理页面为管理员提供了以下功能: - 查看用户的申请信息 - 作废申请信息(即删除申请信息) 订单信息管理 订单信息管理页面为管理员提供了以下功能: - 查看用户的订单信息 - 作废订单信息(即删除订单信息)
2025-05-27 23:20:37 38.5MB 毕业设计
1
模电 直流可调稳压电源设计 Multisim14 仿真报告 利用三极管、二极管基本特性,稳压电源知识设计相应模拟电路。 (1)用集成芯片制作一个0~15V的直流电源; (2)功率≥12W; (3)电源指示灯电流≤10mA; (4)具有过压、过流保护功能; LM317 LM337芯片3087 模电技术在现代电子设计中占有重要地位,它涉及电子元件的基本工作原理及其应用。在直流可调稳压电源设计中,模电技术更是发挥着关键作用。本报告详细介绍了如何利用三极管、二极管的基本特性,结合稳压电源的知识,设计出一个直流电源,并通过Multisim14软件进行仿真。 直流可调稳压电源设计的核心在于提供一个稳定的直流电压输出,并具备一定的功率容量以满足负载需求。本设计要求制作的直流电源输出范围为0~15V,功率不小于12W,这需要在设计时仔细考虑电路的功率密度和散热问题。电源指示灯的设计也是不可或缺的部分,它需要一个电流在10mA以下的稳定工作状态,以便于用户了解电源的工作状态。此外,设计还加入了过压和过流保护功能,以确保电源在异常情况下能够自动切断输出,保护负载和电源本身。 在具体实现方面,本设计采用了LM317和LM337这两款集成芯片。LM317是一款正向可调输出的三端线性集成稳压器,而LM337则是其负向可调输出的对应产品。这两款芯片都能够提供稳定的输出电压,并且具有很好的温度系数,适合用于要求严格的直流电源设计中。3087可能是某种型号的稳压芯片或元件编号,但具体信息需查阅详细数据手册。 本报告采用的仿真软件Multisim14是一款由National Instruments开发的电子电路仿真软件,它能够提供直观的电路设计界面和详尽的电路分析工具,是电子工程设计中常用的仿真工具之一。 在文件名称列表中,我们可以看到一系列文件名,它们包含了报告的各个部分,如引言、设计过程、仿真结果等。这些文件将详细描述整个设计过程,包括理论基础、电路设计、仿真测试和结论等。文件中的图片和文档格式表明,报告将采用图文并茂的方式,使内容更加直观易懂。 根据上述信息,我们可以归纳出以下几个知识点: 1. 模电技术在直流稳压电源设计中的应用。 2. 直流稳压电源的基本要求,包括输出电压范围、功率、电源指示灯设计、过压过流保护等。 3. LM317和LM337集成稳压芯片的功能和特性。 4. Multisim14仿真软件在电路设计和测试中的作用。 5. 仿真报告的构成,包括引言、设计过程、仿真测试结果和结论等内容。 这份仿真报告不仅仅是一个直流稳压电源的设计说明书,它还涵盖了模电技术的应用,电源设计的关键技术点,以及仿真软件在工程设计中的重要性。通过这份报告,工程师和技术人员可以了解如何将理论知识应用于实际电路设计,并通过仿真软件验证设计的正确性和可行性。
2025-05-27 21:21:09 125KB 开发语言
1
当前大数据、人工智能、云计算等科技发展迅猛,互联网进一步崛起,尤其以支付宝、微信等移动支付工具为代表,科技与金融的结合以低成本、高效率的优势迅速渗透到整个银行业。传统银行在科技进步和产业升级的背景下面临越来越严峻的挑战,客户对于金融产品和服务的选择越来越多样化,商业银行原有的活期存款、理财产品、基金产品等业务不断流入互联网,传统商业银行利润被挤压,原有的优质客户大批流失。客户是商业银行生存的保障。商业银行为了应对客户流失的现状,必然要与金融科技深度融合,通过金融科技对传统业务场景进行重塑,推动客户流失问题的缓解。基于以上情况,本文建立了Logistic回归模型并且进行了参数调优。在比较了准确率、精确率、召回率和AUC值等评价指标后,最终发现逻辑回归模型能较好的对银行客户流失进行预测。同时,本文还进一步对特征变量进行重要性排序,分析了客户流失的原因,相应的提出了一些挽留客户的策略建议,帮助银行有效地集中资源,在客户真正流失前做出更明智的挽留决策,提高绩效,保持持久的竞争力。
2025-05-27 20:22:42 792KB 机器学习 逻辑回归 逻辑回归算法
1
山东大学软件学院大二下操作系统实验源代码+高分报告.7z 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业的参考资料。 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业的参考资料。 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业的参考资料。 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业的参考资料。 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业的参考资料。 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业的参考资料。 经导师指导并认可通过的高分项目,评审分98分。 主要针对计算机相关专业和需要项目实战练习的
2025-05-27 19:18:33 9.17MB 操作系统 课程实验报告
1
| | | | 否 | 否 | | | :--: | :--: | :--: | :--: | :--: | ---- | **实现了哪些功能(已实现,并且测试正确的打勾)** [√] 打印当前目录下所有文件和目录名,类似于ls简易版 [√] 打印文件/目录的文件控制块 [√] 打印整个文件分配表 [√] 切换目录,类似于cd功能 [√] 创建文件、删除文件 [√] 创建目录、删除文件 #### 2.ls简易版 ##### 2.1 实现思路及伪代码 实现思路:使用`opendir`函数打开指定的路径,如果路径无效或者无法访问,`opendir`会返回NULL,此时打印错误信息并结束函数。然后使用`readdir`函数循环读取目录中的每一个条目,`readdir`函数在读取到目录末尾时会返回NULL,因此可以用它来控制循环的结束。在读取条目的过程中,如果条目的名称不是".“或”…“,就将其打印出来,”.“和”…"在Unix系统中分别代表当前目录和父目录,通常在列出目录内容时会被忽略。 ``` 定义函数 ls(path: 字符串) ### 操作系统实验——实现FAT12文件系统的关键知识点 #### 1. FAT12文件系统的概述 FAT12文件系统是一种较早的文件系统格式,主要用于较小的存储设备,如软盘等。其主要特点在于使用12位(即1.5字节)的簇号来表示文件分配表中的链表。由于每个簇号占用12位,FAT12文件系统最多可以支持\(2^{12} - 2 = 4094\)个簇(减去两个用于标记未使用的簇和坏簇的值)。这意味着在每簇大小为512字节的情况下,该文件系统最大可以支持大约2MB的存储空间。 #### 2. 实现的功能及技术细节 - **打印当前目录下所有文件和目录名** - **实现思路**:利用标准库函数`opendir`和`readdir`。`opendir`函数用于打开一个目录流,若成功则返回一个非空的DIR结构体指针;`readdir`函数则用于读取目录流中的目录项。 - **伪代码**: ```c void ls(const char *path) { DIR *d; struct dirent *dir; d = opendir(path); if (d == NULL) { perror("opendir"); return; } printf("内容如下:\n"); while ((dir = readdir(d)) != NULL) { if (strcmp(dir->d_name, ".") == 0 || strcmp(dir->d_name, "..") == 0) continue; printf("%s\n", dir->d_name); } closedir(d); } ``` - **技术细节**:避免打印`.`和`..`这两个特殊目录,因为它们分别代表当前目录和父目录,通常在列出目录内容时被忽略。 - **打印文件/目录的文件控制块** - **实现思路**:读取磁盘上的文件控制块(FCB)信息,这些信息包含了文件的基本属性。 - **伪代码**: ```c void print_FCB(struct root_dir_entry *root_dir, const char *disk, int offset, int root_ent_cnt) { int fd = open(disk, O_RDONLY); if (fd < 0) { perror("无法打开磁盘文件"); return; } for (offset; offset <= offset + 32 * (root_ent_cnt - 1); offset += 32) { pread(fd, root_dir, sizeof(struct root_dir_entry), offset); if (root_dir->name[0] == 0xE5) continue; if (root_dir->name[0] == 0x00) break; printf("名称:"); for (int i = 0; i < 8; i++) printf("%c", root_dir->name[i]); printf("\n扩展名:"); // 打印扩展名 printf("\n属性:"); for (int i = 7; i >= 0; i--) { if ((root_dir->attributes & (1 << i)) != 0) printf("%d", 1); else printf("%d", 0); } printf("\n"); // 其他字段的打印 } close(fd); } ``` - **技术细节**:文件控制块中的属性字段通常采用位字段的方式表示不同的属性标志,例如是否为只读、是否隐藏等。通过位操作来获取各个属性。 - **打印整个文件分配表** - **实现思路**:遍历文件分配表中的每一项,并打印出每个簇的状态。 - **技术细节**:FAT12文件系统中的每个簇号使用12位表示,需要考虑如何正确地读取和解释这些簇号。 - **切换目录** - **实现思路**:通过改变当前工作目录来实现类似`cd`命令的功能。 - **技术细节**:使用`chdir`函数可以更改当前工作目录,但需要注意权限问题。 - **创建文件、删除文件** - **实现思路**:利用系统调用`open`和`unlink`来实现。 - **技术细节**:`open`函数可以用于创建新文件,而`unlink`函数则用于删除已存在的文件。 - **创建目录、删除文件** - **实现思路**:使用`mkdir`和`rmdir`函数。 - **技术细节**:`mkdir`用于创建目录,`rmdir`用于删除空目录。注意`rmdir`只能删除空目录,如果要删除非空目录,则需要先删除目录中的所有文件和子目录。 #### 3. 测试过程及案例设计 - **测试用例**:设计多种测试场景,包括但不限于: - 测试空目录的情况。 - 测试含有多个文件和子目录的目录。 - 测试包含特殊文件名(如含有空格、特殊符号等)的文件或目录。 - 测试文件或目录的创建、删除操作。 - **测试结果**:根据预期输出与实际输出的一致性来评估功能的正确性。 本实验不仅涵盖了基本的文件系统操作,还深入探讨了FAT12文件系统的工作原理及其实现细节,对于理解计算机操作系统底层机制具有重要意义。
2025-05-27 15:03:27 26KB 操作系统
1
实验报告1——软件测试方法和技术 本实验报告主要围绕“实验三 QTP 的基本使用”展开,旨在通过使用 QuickTest Professional (QTP) 进行功能自动化测试,以熟悉自动化测试工具的操作和测试用例的设计。实验内容集中在飞机订票程序的登录模块,通过黑盒测试方法中的等价类划分和边界值分析法来设计测试用例。 实验目的: 1. 掌握如何使用 QTP 设计并执行自动化测试。 2. 学习运用黑盒测试法,如等价类划分和边界值分析,进行测试用例设计。 3. 编写自动化脚本,实现对登录模块的完整测试覆盖。 实验要求: 1. 设计针对登录模块的测试用例,考虑各种可能的输入情况,包括无效输入,例如空用户名、用户名长度不足、空密码、密码长度不足以及密码错误等。 2. 使用 QTP 编写自动化脚本,以实现测试用例的自动化执行。 3. 利用 QTP 的功能,如检查点(文本、标准)、数据输入参数化(数据表)和检查点参数化,确保测试的全面性和准确性。 4. 如果需要,灵活使用 QTP 内置函数以增强测试脚本的功能。 实验内容及步骤: 在飞机订票程序中,选择登录模块进行自动化测试。测试用例包括了各种异常输入,如用户名为空、少于4位,密码为空、少于4位以及密码错误等,以验证系统是否能正确给出相应的错误提示。实验过程中,使用了数据表进行数据输入参数化和检查点参数化,确保了测试的可重复性和有效性。 实验脚本示例: 脚本中包含了使用 QTP 对登录界面的各个元素进行操作,如设置用户名和密码、点击登录按钮,然后判断是否出现错误提示页面,并将错误信息与预期结果进行比较。例如,通过 `DataTable` 导入测试数据,使用 `WinEdit` 和 `Set` 函数输入用户名和密码,用 `Click` 执行登录操作。接着,利用 `Exist` 判断错误提示是否出现,并通过 `Output CheckPoint` 或 `Check CheckPoint` 进行检查点的判断,确保实际输出与预期相符。 实验结果记录: 实验报告中列举了多个测试用例及其预期和实际结果,如输入无效用户名或密码后,系统是否正确显示了错误信息。这些测试用例涵盖了登录模块的各种边界条件和异常情况,验证了登录功能的健壮性。 总结: 本实验报告通过 QTP 的应用,展示了如何使用自动化测试工具进行功能测试,特别是对于输入验证和错误处理的测试。同时,它强调了黑盒测试方法在设计测试用例中的重要性,以及参数化和检查点在自动化测试中的应用。通过这样的实践,学生可以深入理解软件测试的流程和方法,提升测试技能,为后续的软件质量保证工作打下坚实基础。
2025-05-27 12:39:58 250KB
1
1. 实验目的 理解LR语法分析方法的原理,设计相关数据结构和程序结构,加深对自下而上语法分析方法的理解。 2. 实验内容 需要实现的功能: 1)输入文法:文法描述存储在文本文件中,文件名作为命令行参数输入; 2)输入文法的分析表(Action表和Goto表):分析表数据存储在文本文件中,文件名作为命令行参数输入; 3)输入待分析的符号串:符号串存储在文本文件中,文件名作为命令行参数输入。 4)构造LR语法分析器的总控程序; 5)对待分析符号串,输出其是否该文法正确句子的判断,并输出文本形式的分析过程(标准输出设备)。 3. 实验要求 1)文法描述文件、LR分析表文件和符号串文件的格式参见文档《实验用文件结构.doc》; 2)使用《文法实验》、《LR0分析表的构造》、《LR1分析表的构造》实验的结果。 3)文法描述文件、LR分析表文件和符号串文件是3个不同的文本文件,都作为命令行参数进行输入,文法描述文件名是第1个参数,LR分析表文件名是第2个参数,符号串文件名是第3个参数。
2025-05-27 11:34:57 689KB 编译原理 LR语法分析器 实验报告
1
双容水箱如示 通常双容水箱的设计中将通过实验进行建模,分别测定被控对象水箱在输入阶跃信号后的液位响应曲线和相关参数。通过磁力驱动泵供水,控制电动调节阀的开度大小,改变水箱液位的给定量,从而对被控对象施加阶跃输入信号,记录阶跃响应曲线。在测定模型参数中可以通过智能调节仪表改变调节阀开度,增减水箱的流入水量大小,从而改变水箱液位实现对被控对象的阶跃信号输入。单回路调节系统,一般是指用一个控制器来控制一个被控对象, 其中控制器只接收一个测量信号,其输出也只控制一个执行机构。 双容水箱水位控制系统是一种常见的过程控制系统,广泛应用于饮料、食品加工、溶液过滤和化工生产等领域。在该系统中,液位控制是关键,它通过先进的控制算法确保水位保持在设定值,以满足生产需求。本实验报告旨在探讨双容水箱液位控制系统的组成、工作原理以及 PID 控制器的应用。 双容水箱由两个相连的水箱构成,通过磁力驱动泵供水,并利用电动调节阀来控制水箱间的水流量,进而改变液位。实验建模是通过输入阶跃信号,观察液位响应曲线,以此获取模型参数。智能调节仪表则用于调整调节阀开度,实现对液位的精确控制。单回路调节系统是这个控制系统的基础,控制器接收来自液位传感器的测量信号,并通过调节阀的开度来维持液位稳定。 PID 控制器在双容水箱液位控制中起着核心作用。PID 即比例-积分-微分控制,通过调整其三个参数(P、I、D),可以有效改善系统的响应速度和稳定性。实验中,通过MATLAB软件进行动态仿真,分析不同参数设定下的系统性能。例如,增大比例参数可提高响应速度,但可能导致系统振荡;积分参数可以消除稳态误差,而微分参数有助于减少超调和改善系统稳定性。 在实验目的上,学生需要理解双容水箱液位控制系统的构成和工作原理,掌握PID控制器的调节规律和参数整定方法。实验内容包括了解系统原理,熟悉NCSLab平台的远程控制操作,以及研究不同控制器参数对系统动态性能的影响。 双容水箱的数学模型基于托里拆利定律和动态物质平衡建立,形成状态空间方程,描述了水箱液位随时间的变化。通过调整控制器参数,如图5所示,可以实现不同阶跃输入下的液位控制。例如,图6至图9展示了不同阶跃输入(10、20、30、34)时的仿真结果,这些结果反映了系统对阶跃变化的响应速度和稳定性的变化。 总结来说,双容水箱水位控制系统是一个运用单片机技术、自动化仪表技术、计算机技术和通讯技术的集成系统。通过实验建模、PID控制算法和智能调节仪表,实现对水位的精确控制。实验不仅加深了对控制理论的理解,也提供了实际应用的经验,为实际工业生产中的液位控制提供了参考。
2025-05-27 00:03:29 1.09MB
1
《模拟电子技术课程设计报告——基于LM386的音频放大器》 模拟电子技术是电子工程中的基础学科,它涵盖了电子元件、电路分析、信号处理等多个领域。在这个课程设计中,我们将聚焦于使用LM386芯片设计一个音频放大器,这是一项实践性强、理论与实践相结合的重要任务。 LM386是一款低电压、高性能的音频功率放大器集成电路,广泛应用于各种小型音响设备中。其主要特点是集成度高,只需少量外部元件即可构建一个完整的音频放大系统。LM386的主要技术指标包括输入阻抗、输出功率、电源电压范围以及信噪比等。其中,LM386的典型输入阻抗通常在20kΩ以上,输出功率可达到1W左右,适用于驱动小型扬声器。电源电压一般在4V到12V之间,能提供足够的驱动能力。此外,LM386具有良好的信噪比,使得音频信号的放大过程中,噪声干扰相对较小,确保了音质的纯净。 在实际操作中,首先需要了解功率放大电路的基本特性。功率放大器的主要任务是将微弱的音频信号放大到足够的功率,以便驱动负载(如扬声器)产生声音。在这个过程中,我们需要关注放大器的增益、效率、非线性失真等因素。对于LM386,其内部已经预设了一定的增益,通过调整外部电容和电阻可以改变放大倍数,以适应不同的应用需求。 掌握PROTEL软件的使用至关重要。PROTEL,即现在的Altium Designer,是一款强大的电子设计自动化工具,集成了电路原理图设计、PCB布局、仿真等功能。在电路设计阶段,我们需要在PROTEL中绘制电路图,清晰地表示出每个元件的连接关系。这一步骤需要对电路元件有深入理解,并能熟练运用软件的绘图工具。 在实际操作中,我们首先会在原理图编辑器中定义LM386及其他相关元件,然后连接它们形成音频放大电路。接着,进行PCB布局,考虑元件之间的物理距离、走线的长度和方向,以减少电磁干扰和提高电路性能。通过软件的仿真功能,我们可以对设计的电路进行虚拟测试,观察电路的工作状态,发现问题并及时调整。 完成电路设计后,还需要进行实物制作和调试。这包括焊接元器件、组装电路板,然后连接电源和输入输出设备。通过实际操作,不仅可以验证理论设计的正确性,还能培养动手能力和问题解决能力。 这个课程设计不仅要求我们掌握LM386音频放大器的工作原理和应用,还涉及到电路设计软件的使用、电路分析与优化、以及实践操作技能的提升。通过这样的实践,我们能更好地理解和运用模拟电子技术,为未来更深入的学习和工作打下坚实的基础。
2025-05-26 22:50:22 4.37MB Lm386 音频放大器
1