linux下的多终端访问的学生管理系统

要求:
1.能够记录学员的相关信息。
2.所有学员的信息由守护进程保存。
3.终端程序负责读取用户的输入命令。
    1)将用户输入的学员信息发送给守护进程,由守护进行保存。
    2)能够输入学员编号查找到学员信息,如果没有此学员需要显示无此学员信息。


记录内容(100个):
1.学员编号
2.姓名(20字节)
3.成绩

共享内存段的数据组织形式:
1.1个字节的请求类型:type
2.1个字节的返回结果:res
3.学员信息(28个字节)。info


c到d的添加学员信息的情况:
1.将sem1的value做-1操作。
2.type设置为0.
3.向info写入学员信息。
4.将sem2的value做+1。
5.将sem3的vlaue做-1。
6.读取res。
7.将sem1的value做+1。
8.打印是否成功,以及原因。

c到d的查找学员信息的情况:
1.将sem1的value做-1操作。
2.type设置为1.
3.向info的学员学号写入用户输入的学员的学号。
4.将sem2的value做+1。
5.将sem3的vlaue做-1。
6.读取res,如果res是3,则读取info。如果res是2,则认为学员查找失败。
7.将sem1的value做+1。
8.打印学员结果。

d所做任务:
1.创建共享内存(30字节)与信号量。
2.循环:
 1)将sem2的value做-1.
 2)读取type数值。
 3)判断用户操作并做相应操作(含操作info)。
 4)将sem3的value做+1.


判断用户操作并做相应操作(含操作info)。
1.读取type数值。
2.如果type是0,则读取info的所有信息并添加至自己的数组中,并根据结果操作做res。
3.如果type是1,则读取info中的学号,跟自身数组的学号进行对比。
 1)如果找出对应的数据,将其拷贝到info中,在res中写入3。
 2)如果没有找出对应的数据,则在res中写入2。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值