软件系统课程设计---操作系统:用银行家算法实现资源分配.doc

软件系统课程设计---操作系统:用银行家算法实现资源分配.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件系统课程设计---操作系统:用银行家算法实现资源分配

青岛农业大学 理学与信息科学学院 软件系统课程设计报告 设 计 题 目 编译原理:词法分析器 学生专业班级 学生姓名(学号) 设计小组其他同学姓名(学号) 指 导 教 师 完 成 时 间 设 计 地 点 信息楼139机房 2012年 6 月 7 日 (二)编译原理部分 一、实习题目 将词法分析器设计成单独的程序或供语法分析器调用的子程序,功能包括:要求能够识别数字、标识符、关键字、运算符等。 二、设计思路及算法描述 词法分析程序的功能: 输入源程序,输出单词符号,如图所示: 源程序 单词符号 处理过程:在扫描源程序字符串时,一旦识别出关键字、分隔符、标识符、无符号常数中之一,即以单词形式(各类单词均采用相同的结构,即二元式编码形式)输出。每次调用词法分析程序,它均能自动继续扫描下去,形成下一个单词,直至整个源程序全部扫描完毕,并形成相应的单词串形式的源程序。本程序规定: (1)关键字begin,end,if,then,else,while,write,read, do, call,const,char,until,procedure,repeat (2)运算符:+,-,*,/,= (3)界符:{,},[,],;,,,.,(,),:(4)其他标记 如字符串,表示以字母开头的标识符。(5)空格、回车、换行符跳过。 在屏幕上显示如下:( 1 , 无符号整数) ( begin , 关键字 ) ( if , 关键字 ) ( +, 运算符 ) ( ; , 界符 )( a , 普通标识符 ) 1.预处理:把源文件一个字符一个字符的读入词法分析程序设置的输入字符结构体数组中(输入缓冲区),读入过程要删除多余的空格;2.源程序字符数组中获得单词, 编码为二元式.:二元式采用结构体数组存储, 把单词类型和词元记录下来。 流程图 Y N Y N Y Y N Y N N N Y N N Y Y N 三、程序代码: #include iostream #includestring using namespace std; #define??MAX 22?????????? char ch = ; string key[15]={begin,end,if,then,else,while,write,read, do, call,const,char,until,procedure,repeat}; int Iskey(string c){?????????//关键字判断 ???int i; ???for(i=0;iMAX;i++) { ??????if(key[i].compare(c)==0) return 1; ???????}? ????return 0; } int IsLetter(char c) {????????//判断是否为字母 ????if(((c=z)(c=a))||((c=Z)(c=A))) return 1; ????else return 0; } int IsDigit(char c){??????????//判断是否为数字 ?????if(c=0c=9) return 1; ?????else return 0; } void fenxi(FILE *fpin){ ????string arr=;?????????? ????while((ch=fgetc(fpin))!=EOF) { ????????????arr=;???????? ?????????if(ch== ||ch==\t||ch==\n){}????? ? ?????????else if(IsLetter(ch)){ ?????????????????while(IsLetter(ch)||IsDigit(ch)) { ????????????????????????????????if((ch=Z)(ch=A)) ch=ch+32;??? ????????????????????????

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档