资源描述:
《实验3--linux-shell程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux程序开发环境实验报告项目名称LinuxShell程序设计专业班级软件1303班学号姓名实验成绩:批阅教师:批阅日期:2016年06月15日实验3LinuxShell程序设计1、实验目的(1)掌握Linux环境下使用C语言编写应用程序。2、实验内容使用curses库完成CD唱片管理系统的C语言简单用户界面版。实验步骤见附录。(1)首先,包含所有必需的头文件,并定义一些全局变量:#include#include#include#include#include#de
2、fineMAX_STRING(80)/*Longestallowedresponse*/#defineMAX_ENTRY(1024)/*Longestalloweddatabaseentry*/#defineMESSAGE_LINE6/*Misc.messagesgohere*/#defineERROR_LINE22/*Thelinetouseforerrors*/#defineQ_LINE20/*LineforQuestions*/#definePROMPT_LINE18/*Lineforpromptingon*/(2)现在需要定义一些全局变量。变量current
3、_cd用于保存正在处理的当前CD唱片的标题。该变量的第一个字符被初始化为空字符null,表示用户还未选择CD唱片。current_cat用于记录当前CD唱片的分类号。staticcharcurrent_cd[MAX_STRING]=" ";staticcharcurrent_cat[MAX_STRING];(3)接下来是一些文件名的声明。为简单起见,这个版本的文件名都是固定的,临时文件的文件名也是如此。constchar*title_file="title.cdb";constchar*tracks_file="tracks.cdb";constchar*temp
4、_file="cdb.tmp";(4)最后,给出所有函数的原型定义:/*Prototypesforlocalfunctions*/voidclear_all_screen(void);voidget_return(void);intget_confirm(void);intgetchoice(char*greet,char*choices[]);voiddraw_menu(char*options[],inthighlight,intstart_row,intstart_col);voidinsert_title(char*cdtitle);voidget_stri
5、ng(char*string);voidadd_record(void);voidcount_cds(void);voidfind_cd(void);voidlist_tracks(void);voidremove_tracks(void);voidremove_cd(void);voidupdate_cd(void);(1)在查看这些函数的具体实现之前,需要定义一些菜单结构。当一个菜单选项被选中时,其第一个字母被返回。/*Menustructures.Thefirstcharacteristhecharactertoreturnwhenthechiceissele
6、cted,theremainingtextistobedisplayed.*/char*main_menu[]={"aaddnewCD","ffindCD","ccountCDsandtracksinthecatalog","qquit",0,};/*TheextendedmenuisdisplayedwhenaCDiscurrentlyselected*/char*extended_menu[]={"aaddnewCD","ffindCD","ccountCDsandtracksinthecatalog","llisttracksoncurrentCD","rre
7、movecurrentCD","uupdatetrackinformation","qquit",0,};上面的程序结束了程序的初始化过程,接下来可以进入程序的各子函数部分了。但首先需要了解这些函数之间的关系,共16个函数,分为三大类,之间的关系如下图所示:ü绘制菜单ü将CD唱片资料添加到数据库中ü获取和显示CD唱片资料main函数intmain(){intchoice;initscr();do{choice=getchoice("Options:",current_cd[0]?extended_menu:main_menu);switch(choice){ca