Linux自动答题系统课程设计,Linux操作系统课程设计.docx

Linux操作系统课程设计.docx

课 程 设 计 报 告课程名称 Linux 操作系统课程设计 指导教师 起止日期 2016-03-21 至 2016-06-13 学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 班级/学号 成 绩 指导老师签字 1. 课程设计概述课程编号0BS17101课程性质专业基础课,必修适用专业电子信息工程学时数16学分1指导教师段中钰1.1 课程设计的目的Linux 操作系统课程是电信专业的一门重要的专业基础课。本课程设计是Linux 操作系统课程在实践教学环节上的必要补充。本课程设计包含了一组综合设计实验,其目的是通过实践加深学生对操作系统原理的理解,提高综合运用 Linux 系统解决实际问题的能力。1.2 课程设计的内容本课程设计的内容与理论课程讲授的内容相配合,同步进行。在我们掌握 Linux 基本知识的基础上,通过相应的实验内容来加深对所学知识的理解,提高实际应用能力。除了理论课程已经学习过的内容之外,课程设计还包含了部分新的知识内容,以煅炼我们自行学习和研究的能力。这部分需要我们通过查阅 man 手册、教材、以及互联网上的资料等自行学习。 课程设计分为如下 3 个题目1. Linux 基本操作利用 Shell 命令进行文件处理和 C 编程等基本操作,目的是熟悉基于命令的 Linux 操作方式,加深对命令的理解。2. Linux 进程控制利用进程控制相关的系统调用编程进行进程控制实验,观察进程从创建、运行到终止的控制过程,加深对进程概念的理解。3. Linux Shell 程序设计利用 Shell 语言编写脚本实现综合应用,提高 Linux 应用水平。本次为实验一1.3 设计原理本实验的目的是使学生理解 Shell 程序的执行环境和执行过程,掌握 Shell 语言的一般语法规则,能用 bash 编写简单的 shell 程序。实验用时 5 学时,其中讲解 2 学时,上机 3 学时。上机内容包括 编写一个 shell 脚本 routine,实现日程提醒功能; 编写一个 shell 脚本 makememo,实现备忘录管理功能; (选作)修改脚本,改进或增加新的功能。2. 实验步骤按以下步骤进行实验,记录关键步骤的运行结果。2.1 基本操作(本实验在/ 2014010923/exp3/目录下进行。 )2.1.1 编辑备忘录在 exp3 目录下,编辑一个备忘录文件 memo,其中的每行为一项日程安排,格式是yyyy-mm-dd 日程提示以下是一个 memo 文件的例子2014-06-03 mothers birthday2014-06-08 lunch with joe2014-06-12 call zhang2014-06-14 meeting 4pm2014-06-15 shopping with mary 2.1.2 编写日程提醒脚本在 exp3 目录下编写一个 Shell 脚本 routine,完成以下功能2.1.2.1 显示初启信息脚本启动时首先输出一些初始信息,包括程序名称与编者、当前的日期与时间、适当的问候语等,格式自定。例如* routine v1.0 by your-sid *Good Evening用户名Today is Tue Mar 12 192530 CST 2014提示根据当前时间显示问候语的方法参考教材例 10.48,当前用户名是USER(echo USER) ,当前日期时间用 date 命令求出(echo Today is date) 。 图 12.1.2.2 提醒用户当日的日程安排查询备忘录文件 memo,显示今日的日程安排(如果有的话) 。可参考实验方法说明 1) 。2.1.3 运行脚本2.1.3.1 执行脚本为 routine 脚本设置执行权(chmod 755 routine) ,运行 routine 脚本(./routine) ,调试并检查运行结果。提示变换 memo 文件内容,检查日程提示是否正确。图 22.1.3.2 自动执行脚本编辑主目录下的.bashrc 文件,将 /your-sid/exp3/routine 命令行加到文件末尾(注意将 your-sid替换为你的学号) 。重新启动“终端” ,检查脚本是否能成功地自动执行。图 32.1.4 编写备忘录管理脚本在 exp3 目录下编写一个 Shell 脚本 makememo,完成以下功能2.1.4.1 显示初启信息及菜单显示程序初启信息(程序名、编者学号等信息) ,显示程序的菜单,例如makememo v1.0 by your-sid* MENU *1. xxxxx2. xxxx3. xxxxxx4. 2.1.4.2 接收并处理用户的输入根据用户的输入的菜单编号,执行相应的功能。2.1.5 运行脚本运行./makememo,调试并检查运行结果。图 4图 52.1.6 (选做)修改脚本修改 routine 和/或 makememo 脚本,改进或添加功能。可做的修改包括改善界面,增加查询功能(如查询某日或某月的日程安排) ,完善添加与删除功能(如增加对输入错误的处理) ,以及其他你认为可以做的改进。 图 6实验结论与评价这次课设实验很有意思,我学会了如何使用简单的 linux 编写 shall 程序,使用字符串比较命令时一定要注意格式一致。定义文件路径时必须与实际文件路径一致。3. 程序清单3.1 routine echo “*routine v1.0 by 2014010923*“hourdate Hcase hour in08|09|10|11|12 echo “Good MorningUSER“13|14|15|16|17 echo “Good AfternoonUSER“18|19|20|21|22 echo “Good EveningUSER“* echo “HelloUSER“esacecho Today is dateecho -n “memo“daydate Fgrep day HOME/2014010923/exp3/memo echo Nothing.3.2 makememo/bin/bashecho “makememo v1.0 by 2014010923“MEMOFILEHOME/2014010923/exp3/memoadd_memoecho -n “输入要添加的日程项“read itemecho item MEMOFILEsort -o MEMOFILE MEMOFILEecho “日程添加以完成“del_by_dateecho -n “输入要删除的日程项(dd/mm/yy)“read itemsed -i “/item/d“ MEMOFILEecho “日程删除完成“del_by_numset wc -l MEMOFILEecho -n “输入要删除的日程项编号(1-1)“read numsed -i “numd“ MEMOFILEecho “日程删除以完成“print_menu echo “* MENU *“echo “1. 显示日程 2. 添加日程“echo “3. 删除日程按日期 4. 删除日程按序号“echo “5. 显示菜单 6. 退出“echo “*“print_menuwhile truedoecho -n “输入操作选择(1-6)“read choicecase choice in 1 cat -n MEMOFILE2 add_memo3 del_by_date4 del_by_num 5 print_menu6 echo Bye; break* echo Illegal Optionesac done3.3 makememo选作/bin/bashecho “makememo v1.0 by 2014010923“MEMOFILEHOME/2014010923/exp3/memoadd_memoecho -n “输入要添加的日程项“read itemecho item MEMOFILEsort -o MEMOFILE MEMOFILEecho “日程添加以完成“del_by_dateecho -n “输入要删除的日程项(yyyy-mm-dd)“read itemsed -i “/item/d“ MEMOFILEecho “日程删除完成“del_by_numset wc -l MEMOFILEecho -n “输入要删除的日程项编号(1-1)“read numsed -i “numd“ MEMOFILEecho “日程删除以完成“print_menu echo “* MENU *“echo “1. 显示日程 2. 添加日程“echo “3. 删除日程按日期 4. 删除日程按序号“echo “5. 显示菜单 6. 查询日程“echo “7. 退出“echo “*“chaxunecho “ 请输入您所要查询日程的日期yyyy-mm-dd“read mydayif grep -q “myday“ MEMOFILEthenecho “-日程查询“sed -n “/myday/p“ MEMOFILEecho “日程查询已完成“echo “-“elseecho “-日程查询“echo “myday 没有日程“echo “谢谢“echo “-“fiprint_menuwhile truedoecho -n “输入操作选择(1-7)“read choicecase choice in 1 cat -n MEMOFILE2 add_memo3 del_by_date4 del_by_num 5 print_menu6 chaxun7 echo Bye; break* echo Illegal Optionesac done参考文献1 张玲. Linux操作系统 基础、原理与应用,北京清华大学出版社,2014年2月。2 Neil Matthew, Richard Stones. Linux程序设计(第3版). 陈健等译. 北京人民邮电出版社, 2007.3 Mark G. Sobell. Linux命令、编辑器与Shell编程. 杨明军等译. 北京清华大学出版社, 2007.4 。 。 。按以上文献规范书写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包含源代码以及测试说明 题目如下: 1. 系统管理员每天要做大量任务,请编写shell脚本来减轻工作负担吧。要求如下: (1)首先编写一个主文本菜单,通过输入各菜单项的编号,调用以下(2)到(6)小题的功能; (2)添加“账号管理”子菜单。其有3项功能:a.添加帐号,允许交互式输入账号名和密码;b.删除账号,允许交互式输入账号名,需要验证账号是否存在;c.从使用者指定的文件中批量添加20个账号。 (3)添加“磁盘管理”子菜单。其有3项功能:a.查看当前系统硬盘分区情况;b.监控根分区磁盘容量,小于给定值(该值可由使用者手动设置)时通过邮件向管理员报警;c.计算各账户家目录占用磁盘空间的大小,找出前十名账户,生成一个以当前日期命名的报告。 (4)添加“网络管理”子菜单。其有2项功能:a.测试本地局域网整个网段中哪些主机处于开机状态,哪些主机处于关机状态;b.实时显示本地网卡(使用者可指定)发送的数据包流量。 (5)自动备份功能:要允许设置时间周期,需要备份的源文件目录,生成的归档文件要求是一个以日期时间命名的压缩文件。 (6)添加“文件管理”子菜单。其有3项功能:a. 统计某目录(由使用者指定)下有多少个文件,并显示这些文件名;b. 给某目录下(由使用者指定)的所有文件批量改名;c. 修改指定文件的权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值