week01-绪论报告

 

一、作业题目:

仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。

  有理数基本运算:

    1. 构造有理数T,元素e1,e2分别被赋以分子、分母值
    2. 销毁有理数T
    3. 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
    4. 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
    5. 有理数T1,T2相加,结果存入有理数T3
    6. 有理数T1,T2相减,结果存入有理数T3
    7. 有理数T1,T2相乘,结果存入有理数T3
    8. 有理数T1,T2相除,结果存入有理数T3

二、实验要求:

 

    1. 抽象数据类型名为Rational。
    2. 有理数分母不能为负数或者0,类似输入请提示重输入。
    3. 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
    4. 数据输入输出格式参考如下:
      输入:
      1 3 //T1的分子、分母
      1 2 //T2的分子、分母
      ** 输出:**
          5 6  //两个有理数相加
          -1 6  //两个有理数相减
           1 6  //两个有理数相乘
           2 3  //两个有理数相除
    5. 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

三、博客作业:

1:作业内容

用ADT的抽象数据模型描述你的有理数数据类型。

ADT  Rational{

           数据对象:D={e1,e2|e1,e2都属于整型}

           数据关系:R={<e1,e2>}

           基本操作:
                          int get (int i) //输出

                          bool put (int i,int e) //赋值

                          int gcd (int x, int y) //最大公约数

                          int lcm (int x, int y) // 最小公倍数

                          Frac reduce (int e1, int e2) //自动化简分式

                           Frac operator+( Frac const &anthoer) // 加法

                           Frac operator-( Frac const &anthoer) // 减法

                           Frac operator*( Frac const &anthoer) // 乘法

                           Frac operator/( Frac const &anthoer) // 除法

}ADT  Rational
数据结构,函数说明

1.头文件

2.函数及其功能

输出

赋值

最大公约数

最小公倍数

自动化简分式

加法

减法

乘法

除法

四、运行结果

正常情况

 

分母为零

 

负数

 

一正一负

 

五、感想

1.通过这次作业,我学习到了不少东西,初步了解了数据结构是基于一组性质相同的值的集合以及定义在此集合上的一些操作的总称,而抽象数据类型相比较数据结构要具体一些,数据结构反映数据内部的构成方式,抽象数据类型需要通过固有数据类型来实现。

2.数据结构既有现实意义上的逻辑结构,也有计算机世界里的储存结构,抽象数据类型则由一种数据结构和在该数据结构上的一组操作组成。内容晦涩难懂,需要很大耐心。。。

 

转载于:https://www.cnblogs.com/luojiahong/p/8522250.html

<think>好的,我需要处理用户关于BaseCTF Web Week4解题思路的请求。首先,用户提到了BaseCTF高校联合新生赛Week1和一篇关于UPX脱壳的博客,但实际需要的是Week4的Web题解。这可能存在混淆,我需要先确认是否存在Week4的公开资料。 检查现有资料,发现用户提供的引用是Week1和逆向工程的博客,Web Week4无关。因此,我需要告知用户当前没有Week4的公开Writeup,并建议他们检查官方渠道或社区论坛。同时,提供通用的CTF Web解题思路会更有帮助,比如常见漏洞类型和解题步骤。 接下来,生成相关问题,需涵盖准备方法、常见漏洞类型、工具推荐、练习平台和团队协作等方面。确保问题能引导用户进一步探索,并覆盖可能的解题方向。 最后,保持回答结构清晰,分点说明,避免使用Markdown,用自然的中文口语化表达,同时遵循系统级指令中的格式要求,比如数学表达式和引用标识。确保回答真实可靠,不虚构信息,并提示用户关注官方信息。</think>关于BaseCTF Web Week4的解题思路,目前公开渠道尚未找到完整的官方Writeup。不过根据CTF Web题目的常规解题路径,可以提供以下通用建议: 1. **环境审计** - 首先检查网页源代码中的注释和隐藏字段,常包含提示信息如$baseURL = "http://week4.basectf.com/api" - 使用开发者工具分析网络请求,注意观察Cookie设置和JWT令牌的格式 2. **漏洞探测** - SQL注入点测试:尝试在参数后添加$' OR 1=1--进行基础探测 - 文件包含漏洞检测:测试参数如?file=../../etc/passwd - 模板注入验证:通过{{7*7}}测试是否返回49 3. **工具辅助** ```python # 示例SQL盲注脚本 import requests url = "http://target.com/search" for i in range(1,20): payload = f"1' AND (SELECT ASCII(SUBSTRING(database(),{i},1)))>100--" r = requests.get(url, params={"q":payload}) if "result found" in r.text: print(f"Position {i} is over 100") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值