版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Linux程序開發(fā)環(huán)境實驗指導(dǎo)書中南大學(xué)軟件學(xué)院
實驗3LinuxShell程序設(shè)計1、實驗?zāi)康恼莆誏inuxshell程序運行方法掌握LinuxShell程序基本語法了解Linux環(huán)境變量編寫簡單Linuxshell程序2、實驗內(nèi)容完成簡單CD唱片管理系統(tǒng)。假設(shè)你收集了大量的理假設(shè)你收集了大量的理CD□□□□□□程序至少能夠把每張
藝術(shù)家或作曲家的名字等;
曲目信息;程序要可以以
使程序具備完整性,還需要實現(xiàn)對CD唱片,現(xiàn)在為了方便管理,需要設(shè)計和實現(xiàn)一個管CD唱片的資料保存起來,如唱片的名稱、音樂類型、然后針對某張CD唱片而言,還需要保存一些簡單的CD唱片為單位進(jìn)行搜索,而不是以曲目為單位;為了CD唱片資料的輸入、修改和刪除等功能。設(shè)計把標(biāo)題信息和曲目信息分開,用兩個文本文件分別來存儲。每張CD唱片保存如下信息:編號、標(biāo)題、曲目類型(流行、爵士等)、作曲家等。曲目只保存下面兩個信息:編號和曲名。如下表所示:表1.唱片信息唱片編號標(biāo)題曲目類型作曲家CD123CoolsaxjazzBixCD234ClassicviolinclassicBachCD345Hits99popVarious表2.曲目信息目錄編號曲目編號曲名CD1231SomejazzCD1232MorejazzCD2341SonatainDminorCD3451Dizzy各項信息用逗號來分隔。實現(xiàn)程序共包含如下函數(shù):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()代碼范例:#!/bin/bash#VerysimpleexampleshellscriptformanagingaCDcollection.#Copyright(C)2010-2013CentralSouthUniversity.menu_choice=”“current_cd=”“title_file=”title.cdb”tracks_file=”tracks.cdb”temp_file=/tmp/cdb?$$trap‘rm-f$temp_file’EXITget_return(){echo-e“Pressreturn\c”readxreturn0}get_confirm(){echo-e“Areyousure?\c”whiletruedoreadxcase“$x”iny|yes|Y|Yes|YES)return0;;n|no|N|No|NO)echoecho“Cancelled”return1;;*)echo“Pleaseenteryesorno”;;esacdonesetmenuchoice()clearecho“Options:-“echoecho“a)AddnewCD”echo“f)FindCD”echo“c)CounttheCDsandtracksinthecatalog”if[“$cdcatnum”!=“口口;thenecho“l(fā))Listtrackson$cdtitle”echo“r)RemoVe$cdtitle”echo“u)Updatetrackinformationfor$cdtitle”fiecho“q)Quit”echoecho-e“Pleaseenterchoicethenpressreturn\c”readmenuchoicereturn}insert_title(){echo$*>>$title_filereturn}insert_track(){echo$*>>$tracks_filereturn}add_record_tracks(){echo“EntertrackinformationforthisCD”echo“Whennomoretracksenterq”cdtrack=1cdttitle=”“while[“$cdttitle”!=“q”口doecho-e“Track$cdtrack,tracktitle?\c”readtmpcdttitle=${tmp%%,*}if[“$tmp”!=“$cdttitle”口;thenecho“Sorry,nocommasallowed”continuefiif[-n“$cdttitle”口;thenif[“$cdttitle”!=“口”口;theninsert_track$cdcatnum,$cdtrack,$cdttitlefielsecdtrack=$((cdtrack-1))ficdtrack=$((cdtrack+1))done}add_records(){Promptfortheinitialinformationecho-e“Entercatalogname\c”readtmpcdcatnum=${tmp%%,*}echo-e“Entertitle\c”readtmpcdtitle=${tmp%%,*}echo-e“Entertype\c”readtmpcdtype=${tmp%%,*}echo-e“Enterartist/composer\c”readtmpcdac=${tmp%%,*}CheckthattheywanttoentertheinformationechoAbouttoaddnewentryecho“$cdcatnum$cdtitle$cdtype$cdac”Ifconfirmedthenappendittothetitlesfileifget_confirm;theninsert_title$cdcatnum,$cdtitle,$cdtype,$cdacadd_record_trackselseremove_recordsfireturn}find_cd(){if[“$1”=“n”];thenasklist=nelseasklist=yficdcatnum=”“echo-e“EnterastringtosearchforintheCDtitles\c”readsearchstrif[“$searchstr”=“口口;thenreturn0figrep“$searchstr”$title_file>$temp_fileset$(wc-l$temp_file)linesfound=$lcase“$linesfound”in0)echo“Sorry,nothingfound”get_returnreturn0;;;;echo“Sorry,notunique.”echo“Foundthefollowing”cat$temp_fileget_returnreturn0esacIFS=”,”readcdcatnumcdtitlecdtypecdac<$temp_fileIFS=”“if[-Z“$cdcatnum”口;thenecho“Sorry,couldnotextractcatalogfieldfrom$temp_file”get_returnreturn0fiechoechoCatalognumber:$cdcatnumechoTitle:$cdtitleechoType:$cdtypeechoArtist/Composer:$cdacechoget_returnif[“$asklist”=“y”口;thenecho-e“ViewtracksforthisCD?\c”readxif[“$x”=“y”];thenecholisttracksechofifireturn1}update_cd(){if[-Z“$cdcatnum”口;thenecho“YoumustselectaCDfirst”find_cdnfiif[-n“$cdcatnum”口;thenecho“Currenttracksare:-“l(fā)ist_tracksechoecho“Thiswillre-enterthetracksfor$cdtitle”get_confirm&&{grep-v0D${cdcatnum},0$tracks_file>$temp_filemv$temp_file$tracks_fileechoadd_record_tracks}fireturn}count_cds(){set$(wc-l$title_file)num_titles=$lset$(wc-l$tracks_file)num_tracks=$lechofound$num_titlesCDs,withatotalof$num_trackstracksget_returnreturn}remove_records(){if[-Z“$cdcatnum”口;thenechoYoumustselectaCDfirstfind_cdnfiif[-n“$cdcatnum”口;thenecho“Youareabouttodelete$cdtitle”getconfirm&&{grep-v“H${cdcatnum},”$title_file>$temp_filemv$temp_file$title_filegrep-v“H${cdcatnum},”$tracks_file>$temp_filemv$temp_file$tracks_filecdcatnum=”“echoEntryremoved}get_returnfireturn}list_tracks(){if[“$cdcatnum”=“口];thenechonoCDselectedyetreturnelsegrep0D${cdcatnum},0$tracks_file>$temp_filenum_tracks=$(wc-l$temp_file)if[“$num_tracks”=“0”];thenechonotracksfoundfor$cdtitleelse{echoecho“$cdtitle:一“echocut-f2--d,$temp_fileecho}|${PAGER:-more}fifiget_returnreturn}rm-f$temp_fileif[!-f$title_file];thentouch$title_filefiif[!-f$tracks_file];thentouch$tracks_filefi#Nowtheapplicationproperclearechoecho
echo“MiniCDmanager”sleep1quit=nWhile[“$quit”!=“y”口;doset_menu_choicecase“$menu_choice”ina)addrecords;;r)removerecords;;f)find_cdy;;u)update_cd;;c)countcds;;l)listtracks;;b)echomore$titlefileechoget_return;;quit=y;;echo“Sorry,choicenotrecognized”esacdonerm-f$temp_fileecho“Finished”eXit0#Tidyupandleave#Tidyupandleave3、實驗記錄實驗報告中提交系統(tǒng)的完整腳本;記錄實驗過程中的心得體會。實驗4Linux高級程序設(shè)計1、實驗?zāi)康?1)了解Linux操作系統(tǒng)下應(yīng)用程序開發(fā)流程(2)掌握gun工具鏈的使用(3)了解Linux高級編程技巧(例如IPC機(jī)制、系統(tǒng)調(diào)用等)2、實驗內(nèi)容(1)編寫一個簡單的C語言程序,編寫Makefile文件。了解編譯過程,并用gdb進(jìn)行調(diào)試。(2)編寫一段程序,適用系統(tǒng)調(diào)用fork()創(chuàng)建兩個新的子進(jìn)程,此程序運行使系統(tǒng)中有三個活動進(jìn)程存在。控制讓一個進(jìn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人車輛作為抵押物債務(wù)結(jié)算合同4篇
- 2025年度消費者權(quán)益保護(hù)普法合同履行與市場監(jiān)管協(xié)議4篇
- 二零二五版美容美發(fā)產(chǎn)品原料綠色采購與環(huán)保責(zé)任合同2篇
- 直播電商在2025年的市場格局
- 二零二五年度林業(yè)苗木冷鏈物流配送合同2篇
- 課題申報參考:明代徽州心學(xué)研究
- 2025年度個人消防工程勞務(wù)合同范本2篇
- 二零二五山地承包合同書:山地生態(tài)保護(hù)與可持續(xù)發(fā)展合作框架2篇
- 二零二五年度新能源儲能技術(shù)投資入股合同-@-1
- 二零二五年度大型會議活動場地租賃合同4篇
- 環(huán)境監(jiān)測對環(huán)境保護(hù)的意義
- 2023年數(shù)學(xué)競賽AMC8試卷(含答案)
- 神經(jīng)外科課件:神經(jīng)外科急重癥
- 2024年低壓電工證理論考試題庫及答案
- 2023年十天突破公務(wù)員面試
- 《瘋狂動物城》中英文對照(全本臺詞)
- 醫(yī)院住院醫(yī)師規(guī)范化培訓(xùn)證明(樣本)
- 小學(xué)六年級語文閱讀理解100篇(及答案)
- 氣功修煉十奧妙
- 安徽省物業(yè)服務(wù)標(biāo)準(zhǔn)
- 勾股定理的歷史與證明課件
評論
0/150
提交評論