免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
桂林电子科技大学信息科技学院实训报告 桂林电子科技大学信息科技学院嵌入式操作系统实训报告学 号 1152100135 姓 名 殷浩 指导教师:韩桂明,赵志鹏,张锟 2014 年 4 月 6 日实训题目:机房辅助管理系统 1 系统设计1.1 设计要求1.1.1 设计任务 以VM ware虚拟机软件和Red hat 9.0操作系统为平台,使用shell脚本编写程序,编辑生成上机课表并自动生成上机用户,进行用户课前和课后的管理1.1.2 性能指标要求 定义起始登陆界面,要求有主菜单选择不同功能。 根据登录用户显示欢迎对象、根据系统时间显示欢迎内容个性化的欢迎信息,有系统初始化、系统管理和退出三个菜单项操作提示菜单,能显示当前上课的具体时间和系统当前状态。 生成本机房的上机安排表,安排表至少包含十条记录(包括课程、上课班级、起始周、节数等信息)能对安排表进行显示、添加、删除、修改、复制、插入、排序等操作。 生成本机房的上机用户:根据上机安排表自动生成对应的上机用户,一个用户对应于安排表的一条记录,且账号= 班级+课程;密码=班级+课程号。 课前准备:包括为用户创建一个工作环境:工作空间和用户资料、挂载U盘、拷贝上课文件资料、设置文件目录的权限属性等。 课后整理:释放用户空间,更改文件目录权限,打包压缩文件,卸载U盘,删除用户目录下创建的工作目录等。1.2 设计思路及设计框图1.2.1设计思路对于题目的理解,我决定这次机房管理分作两个部分,分别是教师管理,和学生用户管理。进入教师界面后,会相应的有密码设置,系统初始化,以及对学生资料的设置。而在系统初始化中,要有对一个课程安排表的一些操作,添加删除显示等等。在学生资料界面中,同样也是对学生资料进行添加删除显示等。教师管理中的学生资料很重要,因为学生用户输入的账号和密码,是与教师管理的学生资料对应的,账号是要从资料中读取班级和课程,密码则是班级和课号。在进入学生管理界面后,需要有以下的一些操作,比如创建一个工作空间,能够对一些文件夹进行压缩打包,关闭一个文件夹的使用权限,以及U盘挂载等等。1.2.2总体设计框图 主界面学生界面管理员界面课前创建工作环境创建文件课后学生资料安排表入口1.打包压缩1.添加学生1.添加 2.删除文件夹2.显示学生2.显示3.挂载U盘3.修改学生3.修改4.退出4.删除学生4.删除5.复制系统流程图2 各个模块程序的设计2.1 登陆界面模块登陆界面可以根据登录用户显示欢迎对象、根据系统时间显示欢迎内容个性化的欢迎信息,有系统初始化、系统管理和退出三个菜单项操作提示菜单,能显示当前上课的具体时间和系统当前状态2.2 管理员模块2.2.1 管理员欢迎界面从主界面登录到管理员界面需要输入帐号和密码,帐号和密码固定为admin和admin,如果想修改,可以进入程序内修改即可。管理员可以对学生的课程作出安排,并且可以查看修改安排表。同时也能对上课学生的信息进行查看、添加、修改、删除。2.2.2 安排表管理模块管理员可以对学生上课的安排表进行查看、添加、修改、删除。2.2.3 学生资料管理模块管理员可以对上课学生的信息进行查看、添加、修改、删除。2.3 学生模块2.3.1 学生欢迎界面模块 学生登陆后可以显示对应的问候语,同时能显示出当前的时间。2.3.2 学生课前模块 学生在上课之前可以先创建工作环境,创建对应的文件夹和上课所需的文件。2.3.2 学生课后模块 下课后,学生可以对上课做的东西进行打包并复制到U盘,同时删除自己的文件,避免影响后面来上课的学生。3 调试过程编写程序时完全不知道从哪里下手,无奈只能去查找网上的资料,翻看了好几本书,但在编程过程中还是遇到了很多问题。首先执行不了的是删除程序,我用的是case语句,用户可以输入想要删除的课程的所有相关信息,比如输入math,那么系统会找到math这个课程的所有相关信息,但是运行后发现会显示错误,并且还把所有课程安排都删除了。后来参考了别的同学的程序,知道可以用sedd这样的语句进行删除,但是删除只能删除一整行,而不能根据之前的想法找到再删除,并且上网查找,也找不到更好的删除方式,于是就用了这样的方法,并且做了修改,后来就能成功删除了。另外在整个程序中,纠结了最久的就是学生用户登陆输入账号和密码这一块。这一部分需要用到一个txt文件,我把教师界面的学生信息都放到这个txt文件中,之后在学生管理方面,我用了一个sh文件对txt文件中的每一行的班级、课程、课号进行了读取,使它们分别等于一些变量,之后再在学生登陆的时候用了case语句,判断输入的变量是否与班级、课程、课号构成的账号和密码相对应。在做完这些工作以后,运行发现无论怎么输入,都会显示error。第一次检查程序的时候发现是读取txt的sh文件并米有输入#!/bin/sh,所以这个文件便执行不了。再运行一次以后,发现还是输入错误,若是一直按回车键,结果却又是正确的,可是反复检查,发现并没有语法错误,逻辑也都对着。后来找了个同样是这种方法并且能运行正确的同学帮我看了程序,一开始我们把var中括号的值全部减小了1,再运行的时候发现还是不对,最后我们又检查了一下case语句的所在位置,猜想可能是判断case $zh$ pw in 中的变量出现了问题,于是试着把变量输入了两回,$zhzh$pwpw,再运行的时候,就成功了。还有最后一个问题,就是学生管理界面中的删除文件夹这一块。在执行删除用户文件夹前,我先创建一个用户文件夹,那么到要删除的时候就该是删除此文件夹,可是我的程序运行出来以后,删除的是上一次创建的用户文件夹,而这一次创建的用户文件夹则在下次删除时才被删除。但是在检查程序的时候,也没有看出什么不正确,试过把user user.txt这个语句给屏蔽掉,但是出来的结果是把该用户文件夹同一个目录下的所有的文件和文件夹会全部删去,所以删除这个部分还是并没有最终成功。4 功能测试4.1 测试仪器与设备 笔记本VM ware虚拟机Red hat 9.0操作系统4.2 性能指标测试 主程序测试:运行main.sh,输入1时能进入管理员界面的密码输入功能,并且输入登陆以后,会显示用户名为欢迎对象。输入2时进入学生管理界面的密码输入功能,且密码输入正确的话会进入管理界面,如果不正确则会显示错误并回到main界面。按3时会退出管理系统。 管理员界面测试:当管理登陆后,选择1可以对学生的安排表进行查看、修改、添加、删除;选择2可以对上课学生的信息进行修改、删除等操作。 学生界面测试:按1是能够在当前目录下建立一个学生用户的文件夹,由if语句提问是否要在这个文件夹里新建文件或文件夹,选择是以后能建立在用户文件夹里,若选择不是则退回到学生管理界面。按2则是可以对任一文件夹进行打包。按3是能够进行U盘挂载,会首先先生成一个usb为名字的文件夹,之后U盘中的所有文件夹会在该文件夹中显示。按4则是能够删除1时所新建的学生用户文件夹。按5则是退回到main的界面。5 实训心得体会刚拿到题目的时候其实很迷惑,不太清楚究竟是要分多少个方面来进行编程,以及究竟是要实现多少功能。刚开始按照自己的理解,我只做了在一个界面下包括密码设置,系统初始化和学生资料设置,之后后来去实验室跟同学聊起题目的时候,才知道题目上的上机用户应该是指学生,所以还要创建一个学生界面,而且学生界面登陆账号和密码就是教师管理下的学生资料设置中的班级+课程,班级+课号。另外学生界面中需要有一些功能,分别是创建用户空间,压缩,关闭使用权等,后来就又重新写了一份整个系统的各部分结构设计图。这次实训做下来,其实很多想法都是用到像c语言中的思想,因为同样都有while,case,if语句,虽然只是命令的表示不一样,但是思想是相同的。利用这些,就基本把本次实训的总体框架构建了出来。另外在这次实训中,我还学会了一种新的思想,就是可以读取一个文本文件中的内容,以及添加内容,删除内容等到文本文件中。首先要先创建一个文本文件,之后用read语句,可以读取文本中的内容,用echo “”txt还可以把新添加的内容添加到文本中。通过上网查询一些指令,使用一些命令,让我更熟悉一些命令的使用,比如复制文件夹cp -r,删除文件或文件夹rm -rf,改变文件夹的权限chmod *。在程序中,我多次用到了echo -e E031;42m,这个语句是改变窗口颜色的,只要修改里面的数值,就可以变出不同的颜色。这次实训将上学期所学到的嵌入式理论融入到实际中,让我加深了不少印象。在之前学完嵌入式理论课后,我个人感觉已经把这个基础都差不多弄懂了,可在实训中我才深深的明白自己掌握的不够,各种语法,形式不能自如的运用,还是需要多下心思研究,一门语言是十分深奥的,需要很多时间的铺垫才能很好的掌握。这次的实训让我收获不少,不仅巩固了我的理论知识,同时增强了我的动手能力!6 参考文献(1)嵌入式Linux 应用编程 许信顺 贾智平 机械工业出版社.附录附录:程序清单主界面程序:#! /bin/shecho -e E031;42mflag=1while($flag)doecho *echo Welcome echo 1.admin 2.studentecho 3.exitecho *echo date +%D date +%Tread ucase $u in1) ./teacher.sh ;2)./xspassword.shecho input your class+courseread zhecho input your passwordread -s pexport zhcase $zhzh$pwpw in$A$B)./xueshengjiemian.shbreak;$C$D)./xueshengjiemian.shbreak;$E$F)./xuehsengjiemian.shbreak;$G$H)./xueshengjiemian.shbreak;$I$J)./xueshengjiemian.shbreak;$K$L)./xueshengjiemian.shbreak;$O$P)./xuehsengjiemian.shbreak;$Q$R)./xuehsengjiemian.shbreak;$S$T)./xueshengjiemian.shbreak;$U$W)./xueshengjiemian.shbreak;*)echo error;esac;3)echo -e E030;47mflag=0exit 0;esacdone管理员登录程序:#! /bin/shecho -e E031;40mecho input your nameread xexport xecho input passwordread -s zexport z if $x = admin & $z = admin then./zhujiemian.shelse echo your password is wrong!./teacher.shFi管理员界面程序:#! /bin/shecho *echo $tn,welcome to use the computerecho *main menu*echo 1.ai pai biaoecho 2.xue sheng zi liaoecho 3. exitecho *echo *read acase $a in1) ./chushihua1.sh;2) ./chuangjianxinyonghu.sh;3) ./main.sh;*) echo error;esac安排表管理程序:#! /bin/shflag=1flag2=1flag3=1N=nwhile ($flag)doecho * *echo *ke cheng an pai*echo 1.add 2.display 3.deleteecho 4.modify 5.copy 6.exitecho *read bcase $b in1)echo courseread courseecho classread classecho startread startecho endread endecho numread numecho course class start end numecho $course $class $start $end $numecho $course $class $start $end $num anpaibiao.txt;2)echo course class start end numcat anpaibiao1.txtcat anpaibiao1.txtmv anpaibiao1.txt anpaibiao.txt;4)./modify.sh;5)while($flag3)doecho input the file way and name you want to copyread fnecho input the tempread tempcp -r /home/$fn /$templs /$tempecho continue copy?y/nread ynif $yn = $N thenflag3=0fidone;6)flag=0./zhujiemian.sh;esacdone安排表修改程序:#!/bin/bashSAVEDIFS=$IFSIFS=:flag4=1Y=yN=nwhile($flag4)docat anpaibiao.txtecho Please input line no. to be changed: read noecho Please input new infomation in line:read bIFS=$SAVEFIDFSsed $noc$b anpaibiao.txt anpaibiao2.txtcat anpaibiao2.txtmv anpaibiao2.txt anpaibiao.txtecho continue modify?y/nread ynif $yn = $N thenflag4=0./chushihua.shfidone学生信息管理程序:#! /bin/shSAVEDIFS=$IFSflag3=1flag4=1N=nwhile($flag3)doecho *echo * informations of students *echo *echo * 1.add student 2.modify *echo * 3.display 4.delete *echo * 5.exit *echo *read sgcase $sg in1)echo classread classecho nameread nameecho IDread idecho seatread seatecho courseread courseecho course numread cnumecho class name ID seat course course num echo $class $name $id $seat $course $cnumecho $class $name $id $se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内科学总论角膜疾病防治课件
- 内蒙古威信保安押运服务有限责任公司2025年度公开招聘备考题库附答案详解
- 2026年东莞市竹溪中学招聘体育临聘教师备考题库及参考答案详解一套
- 同仁堂集团2026届高校毕业生招聘备考题库及答案详解1套
- 外科学总论正中神经损伤康复要点课件
- 2026年湖北环宇工程建设监理有限公司外包员工招聘备考题库及答案详解一套
- 2026年中央芭蕾舞团招聘备考题库(芭蕾舞演员)完整参考答案详解
- 吴家店镇中心卫生院2025年度公开招聘合同制人员备考题库及一套完整答案详解
- 2026年四川九州电子科技股份有限公司招聘技术员的备考题库及一套参考答案详解
- 西安美术学院2026年博士教师岗位招聘备考题库有答案详解
- 2025年安徽省普通高中学业水平合格性考试英语试卷(含答案)
- 合法效收账协议书
- 一级建造师考试机电工程管理与实务试卷及答案(2025年)
- 2025年天津市直机关遴选公务员面试真题及解析
- 糖尿病周围神经病护理查房
- 2026年潍坊护理职业学院单招职业倾向性考试必刷测试卷及答案1套
- 医保政策学习课件
- 2025浙江省自由贸易发展中心招聘工作人员5人(第二批)参考笔试试题及答案解析
- 老公情人签约协议书
- 4、蓝恒达QC小组活动基础知识与实务培训课件
- 小学六年级科学上册2025年期末检测卷(含答案)
评论
0/150
提交评论