欢迎来到天天文库
浏览记录
ID:49615102
大小:161.11 KB
页数:12页
时间:2020-03-02
《Linux shell编程 CD唱片管理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux程序开发环境实验报告项目名称LinuxShell程序设计专业班级软件学号姓名实验成绩:批阅教师:批阅日期:2016年6月1日实验3LinuxShell程序设计1、实验目的(1)掌握Linuxshell程序运行方法(2)掌握LinuxShell程序基本语法(3)了解Linux环境变量(4)编写简单Linuxshell程序2、实验内容完成简单CD唱片管理系统。(1)需求假设你收集了大量的CD唱片,现在为了方便管理,需要设计和实现一个管理CD唱片的程序。程序至少能够把每张CD唱片的资料保存起来,如唱片的名称、音乐类型、艺术家或作曲家的名字等;然后针对
2、某张CD唱片而言,还需要保存一些简单的曲目信息;程序要可以以CD唱片为单位进行搜索,而不是以曲目为单位;为了使程序具备完整性,还需要实现对CD唱片资料的输入、修改和删除等功能。(2)设计把标题信息和曲目信息分开,用两个文本文件分别来存储。每张CD唱片保存如下信息:编号、标题、曲目类型(流行、爵士等)、作曲家等。曲目只保存下面两个信息:编号和曲名。如下表所示:表1.唱片信息唱片编号标题曲目类型作曲家CD123CoolsaxjazzBixCD234ClassicviolinclassicBachCD345Hits99popVarious表2.曲目信息目录编号
3、曲目编号曲名CD1231SomejazzCD1232MorejazzCD2341SonatainDminorCD3451Dizzy各项信息用逗号来分隔。(3)实现程序共包含如下函数:get_return()get_confirm()set_menu_choice()insert_title()insert_track()add_record_tracks()add_records()find_cd()update_cd()count_cds()remove_records()list_tracks()3.实验步骤(1)版权信息;#!/bin/bash#V
4、erysimpleexampleshellscriptformanagingaCDcollection.#Copyright(C)2010-2013CentralSouthUniversity.(2)设置实验脚本程序将要用到的全局变量,包括标题文件、曲目文件和一个临时文件,同时设置Ctrl+C组合键的中断处理,确保在用户中断脚本程序时删除临时文件;menu_choice=”“current_cd=”“title_file=”title.cdb”tracks_file=”tracks.cdb”temp_file=/tmp/cdb.$$trap‘rm-f$t
5、emp_file’EXIT(3)现在开始定义函数。最开始两个简单的工具型函数;get_return(){echo-e“Pressreturnc”readxreturn0}get_confirm(){echo-e“Areyousure?c”whiletruedoreadxcase“$x”iny
6、yes
7、Y
8、Yes
9、YES)return0;;n
10、no
11、N
12、No
13、NO)echoecho“Cancelled”return1;;*)echo“Pleaseenteryesorno”;;esacdone}(4)接下来是主菜单函数,菜单的内容是动态变化的,当用户选择
14、了某张CD唱片后,主菜单中会多出几个选项;set_menu_choice(){clearecho“Options:-“echoecho“a)AddnewCD”echo“f)FindCD”echo“c)CounttheCDsandtracksinthecatalog”if[“$cdcatnum”!=“”];thenecho“l)Listtrackson$cdtitle”echo“r)Remove$cdtitle”echo“u)Updatetrackinformationfor$cdtitle”fiecho“q)Quit”echoecho-e“Pleasee
15、nterchoicethenpressreturnc”readmenu_choicereturn}(5)然后是两个很小的函数insert_title和insert_track,这两个函数用户向数据库文件中添加数据,在此基础上是一个比较大的函数add_record_tracks,该函数会用到上述两个小函数,使用模式匹配确保用户未输入逗号(因为本实验脚本把逗号用做数据字段之间的分隔符),使用算术操作在用户输入曲目时递增当前曲目的编号;insert_title(){echo$*>>$title_filereturn}insert_track(){echo$*
16、>>$tracks_filereturn}add_record_tracks()
此文档下载收益归作者所有