电子科大2020Linux高级环境编程大作业

电子科大2020Linux高级环境编程大作业

总体要求

linux环境下,采用C或C++
存储一张表,然后能对该表进行查询、添加等操作
上述功能以API的形式提供给应用使用

存储要求

利用已学的文件操作API,在文件系统中存储一张表
该表有100个属性,每个属性都是8字节大小(int64_t)
需要支持的最大行数为1百万行

添加要求

提供API函数,实现向表格添加一行的功能(添加到表格的末尾)

搜索要求

提供API函数,实现对表格的某一个属性进行范围查找或精确查找的功能。例如:
查找在属性A上,大于等于50,小于等于100的所有行,当上下限相等时,即为精确查找
用户可以指定在哪一个属性上进行搜索
当搜索结果包含的行数过多时,可以只返回一小部分,如10行等

索引要求

提供API函数,为表格的某一个属性建立索引结构,以实现快速搜索
自行选择使用哪种数据结构,建立索引结构,比如B+树等
建立的索引结构,需要保存到一个文件中(索引文件);下次重启应用程序,并执行搜索任务时,应先检查是否已为相应属性建立了索引结构,即,搜索功能实现时,需要查找是否有索引文件存在,若有,则使用该文件加速搜索
并发要求

应用程序可以以多线程的方式,使用我们提供的上述API

要保证多线程环境下,表、索引结构、索引文件的一致性(考虑互斥的要求)

测试要求

表中的数据随机生成
测试用例要覆盖主要的需求
附加

插入、删除、修改表中的数据不做要求
要求使用C或C++语言

完整代码

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值