请大家帮我理清思路

csdn5211 2003-08-25 03:07:19
正在做一个机考系统(c语言),要求可以对题库实现增删操作。首先想到链表,但马上知道不对,因为要储存到磁盘上,可是在磁盘上怎样实现像链表一样的结构呢?
另外,为了实现随机出考卷,是不是需要把题库全部加栽到内存,然后再用一个随即算法实现呢?
...全文
42 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaofei7569 2003-08-28
  • 打赏
  • 举报
回复
不能把题库全部加栽到内存.
acidprince 2003-08-28
  • 打赏
  • 举报
回复
不能用数据库,意味着很多管理数据库的功能,比如说:插入,删除,查找,等等功能函数(相对于c语言)都要自己编写
就我认为,用结构体链表方式,不宜于管理,特别是插入操作涉及动态的内存分配。
用多维(二维)的结构体数组可能会好些
开始就为数组分配一个比较大的存储空间,这样适于各种功能函数的编写
题库可以考虑放到一个专门的文件中,标上号。先产生一个随机数,再去取题目。取时,可以直接读文件,寻找标号,缺点是:每访问文件一次都是遍历性质的(如果是找最后一道题,前面的题目都得遍历到。也许有更好的算法。)这种方法可以说比较“土”。但也符合你的要求
xdspower 2003-08-28
  • 打赏
  • 举报
回复
现在又有一个问题就是,要限制考试时间,设计一个时间中断定时器就可以了。
acidprince 2003-08-26
  • 打赏
  • 举报
回复
既然数据库提供了最好的数据管理方法,为什么不用呢
shishiXP 2003-08-26
  • 打赏
  • 举报
回复
开一个进程或线程进行实时监测

简单的办法就是当出题时检测,这个不太好但容易实现,最多让人多做一题
csdn5211 2003-08-26
  • 打赏
  • 举报
回复
xdspower和shishiXP的方法不错,现在又有一个问题就是,要限制考试时间。我想应该是用一个变量存储时间,当他的值超过一个值就exit,但是该如何时时刻刻都判断这个值呢?
sharkhuang 2003-08-26
  • 打赏
  • 举报
回复
数据结构和你存储的位子没有关系!
shishiXP 2003-08-26
  • 打赏
  • 举报
回复
不用数据库也行啊

你自己把题目链表写到文件中去就行了啊,不过可能不太安全,最好再加个密

如果题少,可以把题全读到内存中,在随机选

如果题多,就只见在文件中选择读取吧(这要看你的存储格式)

至于具体怎么做,你想想吧
xdspower 2003-08-26
  • 打赏
  • 举报
回复
外排序,其实你只需要对题号筛选就可以了(最多加上对题型筛选),其实你在加入题的时候就要保证唯一性,题号等信息相当于一个索引,你对它先进行筛选在按选中的题进行抽取不就成了,当然这个工作用数据库来完成就更方便了,其实你相当于在自己设计一个数据库结构和应用框架。
csdn5211 2003-08-26
  • 打赏
  • 举报
回复
可是我还没学数据库呢!

另外,如果想删除一道题,应该怎么办呢?
csdn5211 2003-08-26
  • 打赏
  • 举报
回复
实话说了吧,其实这是我的课程设计,但是老师要求不许用数据库,用数据库的方法都不行!
我想每道题用一个文件都不行!
paulxj 2003-08-26
  • 打赏
  • 举报
回复
我也认为要借助数据库
leafxx 2003-08-26
  • 打赏
  • 举报
回复
把题库全加到内存里,似乎不是一个好办法吧
嗯,应该随机的从题库里选题,也就是
fseek()随机定位,然后取题,取满题后退出,当然还要解决可能重复取题的问题

如果对题型搭配有要求,比如选择题50道,填空题20道
那么你选择题和填空题应该分别存在两个文件中
随机在选择题题库里选50次...
anothermxw 2003-08-25
  • 打赏
  • 举报
回复
题库应该存在数据库里面吧,这些问题在数据库方面的函数就都给你做好了啊
singleperson 2003-08-25
  • 打赏
  • 举报
回复
哎,这个太难了,不也不会啊,帮不上忙啊! 同情

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧