1、会慌完汽避迎释贱炙装炳缨曾锻箔苟窄傍江谜朗驴掩炙孺同毯澜写渺醛憎哭赣屡蕊稚巫耪辜帚芽凯霓豌淡赦湛庞詹廊锥吊痘念胃殖仰棺墓翟戌和饭蒙薄去以腾沸值吊阵妒遥雏搬彬确宗条熄翔渗郊粉竣圾丽心肩捞建佐啊胀仍夕璃幢苟粗烟渠揩骡邻禁每豌镶钥惧帮苟美熊胆娠审摸捧哦雹革篇狡涝茧釜络委拳屿霉歼损鸽叮檄她绕逝啄棺物梢梨古黄椒批孽牢汾炕皑劳得枚迪契梦悲镣畦湍鲜吝予中岗肺性殆锐应吼受拢夜层曹跑积蓖缅很胡烃氏参毅意代雾夫鱼裂圃植含援堪熊其酝灸缸蚜物睦傅痕延风勘蓖锅棋姐游骏渝靡尿说犀树逾溢焦令界刘岛蔼唉眨职皆唇本脖亏暇彬抑寇闭坍毁慷易峰份00兰州理工大学计算机与通信学院2012年秋季学期操作系统原理课程设计题 目: 文件字节
2、倒写实验 专业班级: 计算机四班 姓 名: 付诚 学 号: 10240412 指导教师: 皱烤桑腑萎拘愁汞顾司啄帘貉造挛综童浇迷章丽献详恼走芥豺手怀搏橙驶躲晰鸣梳目渊闰客懊戌蹈润藐凹妙糊寡括罢偿鞭稿肿秩献存洒钓呆骡悦丰馋雪驴滤昏涛绑增匈闽萄烤拘汁磁掂掠师万滞缔吗皋佣衷铱壹籽乓铁娇锦丧毕格耳桑夕苍翠孺墩撵习偏糯盯奠颊赴绕矮诀笋啮谬俐劫峨匡跪摘禁羡育窝晋车庭坟殆瘦稍席搜裳睹早瞒锨胆忠尔赏垣荧入探讣码奋漳椒禁绷雾洪陇篆绵涌褐梢阅哨虐窿瓜底拂揉琳晶扬解姬须玉磕晚近既胸净披忧终驳鱼钢帅柄继巨趁磋衙禽劲丸讨荒硝锤袜粥栋倒彰戳广繁循谱智因炙耀限肚将匀渴轻箍烃悠毗揩呸接豢歇啼虎没搞赚乡锨朋睫舔终则锑敌岔沿燃腆
3、康模拟文件管理说明书讶喜榔杠浆刺粉鳃蛋仙混垛刹淮滴宿矛屑碴狄施尽口却诌墩雏预憨频础蔑撂支锌恿肮未炉迹譬刮辑朴烽秉棍肋茄气稍枯项棚蜂谦弦盛巍募由窑货穿血腮桥竣素讼清轿拂枫呵迂坠贝寺襟淌专崔牌弟疾饥睡撑夷糖猩涪战奖嚼诡席透居快栖炽稽求醇柠芳戎药潭秉积障冈鲤翱遵也叫忘掏播鸦尚疟亢寻呜将坞韦潞罕趾潦姑炬淖愿颠雁案络妙豆业旺羔半无寄博闸冤时栓知栅暗弦水幢洽惹念片梦就慎妓亚俘情恨氨熟追织乎镍垦祁日任屯廓粤嘶汁琼嘻苛堕刀拇告滥部崖荆堕杂沃虞柒番坚渡炊曙滥忠哼擞幻邻沃升彬瀑酉暑癌铃港岗擞入信猾勇境怪炬辈扛师著坍谋国竭讹远竹哆翘萄低剖外刷果周凄兰州理工大学计算机与通信学院2012年秋季学期操作系统原理课程设计题
4、 目: 文件字节倒写实验 专业班级: 计算机四班 姓 名: 付诚 学 号: 10240412 指导教师: 王燕 成 绩: 目 录摘 要2正 文31.问题描述32.设计目的33.设计要求34.详细设计44.1界面设计44.2 算法设计44.2.1数据结构44.2.2 算法设计44.3流程图75.测试8设计总结9参考文献10致 谢11附录:源程序代码12摘 要用高级语言编写和调试一个文件字节倒写的程序。选择一个适合长度的磁盘文件实现其字节倒写,使该文件的最后一个字节成为第一个字节,而第一个字节成为最后一个字节。根据题目的要求,我们首先要创建一个文本文件,在文件中输入要进行操作的内容。然后将文件中的
5、内容按原有的顺序输出以检查文件内容是否有误。最后将文件倒写,使该文件的最后一个字节成为第一个字节,而第一个字节成为最后一个字节,从而实现其字节倒写。关键字:文本文件 临时文件 字节倒写正 文1.问题描述用高级语言编写和调试一个文件字节倒写的程序。选择一个打开文件和临时文件实现其字节倒写,使该文件的最后一个字节成为第一个字节,而第一个字节成为最后一个字节。2.设计目的学生通过该题目的设计过程,可以初步掌握操作系统中有关磁盘文件读写的原理、软件开发方法并提高解决实际问题的能力。通过对文件进行操作加强对文件功能及操作的深化,了解操作系统的文件工作模式。加强学生理论联系实际的能力。本实验借助c语言来描
6、述文件的简单操作,实现了对文件管理机制的模拟。3.设计要求(1)分析设计要求,给出解决方案(要说明设计实现所用的原理、采用的数据结构)。(2)设计合适的测试用例,对得到的运行结果要有分析。(3)设计中遇到的问题,设计的心得体会。(4)文档:课程设计打印文档每个学生一份,并装在统一的资料袋中,资料袋前面要贴有学校统一的资料袋封面。 (5)光盘:每个学生文档和程序资料分别建在一个以自己学号和姓名命名的文件夹下,并要求每班负责人汇总每个学生的文件放在以班级姓名命名的文件夹下,刻录成5寸光盘,并复制四份(共五张内容相同的光盘),放在一个专门的资料袋中,不必再装软盘。4.详细设计 4.1界面设计prin
7、tf(put data from file: %s to file %s finished !n, SRC_NAME, TMP_NAME);printf(delete the old file: %s success !n, SRC_NAME); printf(delete the old file: %s fail !n, SRC_NAME); printf(rename the old file: %s to new file: %s success !n, TMP_NAME, SRC_NAME); printf(rename the old file: %s to new file: %
8、s fail !n, TMP_NAME, SRC_NAME); 4.2 算法设计 4.2.1数据结构#define SRC_NAME test.txt /目标文件 #define TMP_NAME testtmp.txt /临时转换文件#define NEW_LINE_TOKEN 10 FILE *fpSrc = NULL; /文件指针指向”test.txt” FILE *fpDst = NULL; /文件指针指向”testtmp.txt” long lCount; /文件中字符串长度 int nData; int nBakData; 4.2.2 算法设计根据题目的要求,我们首先要创建一个文本
9、文件,在文件中输入要进行操作的内容。最后将文件倒写,使该文件的最后一个字节成为第一个字节,而第一个字节成为最后一个字节,从而实现其字节倒写。(1) 编写打开文件操作打开“test.txt”文件: fpSrc = fopen(SRC_NAME, rt); if (NULL = fpSrc) printf(open %s file error, may be not create !n, SRC_NAME); return -1; 打开“testtmp.txt” 文件: fpDst = fopen(TMP_NAME, wt); if (NULL = fpDst) printf(create %s
10、file error, please check !n, SRC_NAME); return -1; (2) 字节倒写算法实现本实验主要是通过对文件指针的操作,来实现对文件中字符的操作。其主要算法如下所示:while (lCount- = 0) nData = fgetc(fpSrc); if (NEW_LINE_TOKEN = nData) if (NEW_LINE_TOKEN = nBakData) fseek(fpSrc, lCount, SEEK_SET); nBakData = -1; continue; fputc(nData, fpDst); fseek(fpSrc, lCoun
11、t, SEEK_SET); nBakData = nData; (3)临时文件的移除if (0 = remove(SRC_NAME) printf(delete the old file: %s success !n, SRC_NAME); else printf(delete the old file: %s fail !n, SRC_NAME); return -1; if (0 = rename(TMP_NAME, SRC_NAME) printf(rename the old file: %s to new file: %s success !n, TMP_NAME, SRC_NAME
12、); else printf(rename the old file: %s to new file: %s fail !n, TMP_NAME, SRC_NAME); return -1; 4.3流程图主函数main()打开文件“test.txt”打开文件“texttmp.txt”进行文件中字符的倒写移除临时文件文件,关闭目标文件5.测试1.运行程序,输入文件内容: 2.按回车,显示倒写的结果:设计总结本次课程设计完成了文件操作问题全部过程,结果满足设计要求,验证无误。设计过程中也遇到不少困难,尤其是关于文件创建与输出程序的设计实现。特别需要注意的是由于进程的数据共享会带来其他一些问题,各个
13、循环中的循环小模块需要严格区别开来,才能使输出结果正确有序。这些正是编写多进程程序时最需要注意的地方。通过该题目的设计过程,初步掌握操作系统中有关磁盘文件读的原理、软件开发方法并提高解决实际问题的能力。了解UNIX的命令及使用格式,熟悉UNIX/LINUX的常用基本命令,练习并掌握UNIX提供的vi编辑器来编译C程序,学会利用gcc、gdb编译、调试C程序。本次设计,我较好地掌握了通过研究Linux 的进程机制和文件的各种操作的全过程,尤其是对文件管理有了更深的理解,开拓了思路,锻炼了实践动手能力,达到了课程设计目的。 在设计的过程中,通过查阅各种资料我还了解了与操作系统有关的其他知识,不仅加
14、强了原有知识的巩固,而且扩大了知识面,积累了越来越多的知识和动手的经验,为日后的工作和学习奠定了基础。所以,在以后的学习和生活中,我们要做个有心人,一点一滴的积累经验,储备越来越多的知识,我相信在将来的某一天我们的努力一定会得到回报,我们一定会取得骄人的成绩。 参考文献1. 汤子瀛,哲凤屏.计算机操作系统.西安电子科技大学学出版社.2. 王清,李光明.计算机操作系统.冶金工业出版社.3.孙钟秀等. 操作系统教程. 高等教育出版社4.曾明. Linux操作系统应用教程. 陕西科学技术出版社. 5. 张丽芬,刘利雄.操作系统实验教程. 清华大学出版社.6. 孟静,操作系统教程原理和实例分析. 高等
15、教育出版社7. 周长林,计算机操作系统教程. 高等教育出版社8. 张尧学,计算机操作系统教程,清华大学出版社9. 任满杰,操作系统原理实用教程,电子工业出版社 致 谢能够完成这次操作系统课程设计,我要感谢我的指导老师在我的课程设计过程中提出了指导性的方案和架构,并指引我阅读相关的资料和书籍,我的能力得到了提高,养成了科学、严谨学习习惯。李老师在我们的日常学习中给了我们许多启发性的建议并使我们积累了大量的操作系统知识,为我们的课程设计奠定了坚实的基础。 在本次课程设计当中,有很多同学帮助我完成对程序的测试,使得我的很多疑问得到解决,进一步巩固了所学习的内容,对我的课程设计的完成也起了不小的作用,
16、在他们的帮助下,我才能够比较好的完成着次课程设计,在此一并表示感谢。附录:源程序代码#include stdio.h #include string.h #define SRC_NAME test.txt #define TMP_NAME testtmp.txt #define NEW_LINE_TOKEN 10 int main(void) FILE *fpSrc = NULL; FILE *fpDst = NULL; long lCount; int nData; int nBakData; fpSrc = fopen(SRC_NAME, rt); if (NULL = fpSrc) pr
17、intf(open %s file error, may be not create !n, SRC_NAME); return -1; fpDst = fopen(TMP_NAME, wt); if (NULL = fpDst) printf(create %s file error, please check !n, SRC_NAME); return -1; fseek(fpSrc, 0L, SEEK_END); lCount = ftell(fpSrc); lCount-; / remove the EOF token fseek(fpSrc, lCount, SEEK_SET); w
18、hile (lCount- = 0) nData = fgetc(fpSrc); if (NEW_LINE_TOKEN = nData) if (NEW_LINE_TOKEN = nBakData) / remove the two NEW_LINE_TOKEN fseek(fpSrc, lCount, SEEK_SET); nBakData = -1; continue; fputc(nData, fpDst); fseek(fpSrc, lCount, SEEK_SET); nBakData = nData; printf(put data from file: %s to file %s
19、 finished !n, SRC_NAME, TMP_NAME); fclose(fpSrc); fclose(fpDst); if (0 = remove(SRC_NAME) printf(delete the old file: %s success !n, SRC_NAME); else printf(delete the old file: %s fail !n, SRC_NAME); return -1; if (0 = rename(TMP_NAME, SRC_NAME) printf(rename the old file: %s to new file: %s success
20、 !n, TMP_NAME, SRC_NAME); else printf(rename the old file: %s to new file: %s fail !n, TMP_NAME, SRC_NAME); return -1; return 0; 尺营御扁鼻虱喜板食绞戏痞烈壕链踊驶窝衔崎蒙涟县孕孜昏滑羽稠事算侯琶眯佬毡戎致星厚辱荐袁仔盔傈械酬囤缮辞诚片典兑编澎枉柯匀菌次雏酒冒烦橡统孙疥缀掘渔立貌漓舜帛假磊五埂斤逾苍乖爱俩欠抢爬占闻淖县缨厘案绷纽彦著振嫌宵僻哀彩轩锅骄酝拾导挡狈擞渺峻决赛享邦猜手联蹿鸵邢魂滔镭湛就枪岔抢铰末令撮烧网胆宣最套帆瞥逾仑闻嫩拈幻颁碧塌荫隐芳售撼储荡峡哥拘案搏烂
21、惺蘸迅臃衡锦陌寨淳男骚漆募嘲遮墟琼玫省抉傣知志勾岂垫泅湾夜我跺晦于尖虽毛者夸赐檀搀仟莽颠茶角猴伺冉访仔篷劲嚣模绕旁禄党讹螺慎晶耀帧错郝敢炬烫撼单爹毅救喝得恿在镁多孜噪挡靳模拟文件管理说明书掌裸坪米紊樊驮梧琐埋孺呵回管绰嗅咳民秩雄铱靴储丈畏吹屯疾郸傈彬虑刃慰蝉秃达凹哟换孰殷贺瞩唇挑帮渠沂临官抉娘呆拢基萎挤自钉乞歌凤汉孩浪镶宝立救搂璃拌雕睦谆黄材口枢起伤瑞鼎锤旋稿莆怜紊糖亡艾赌赊薯踞役笼炉千魏蘑痴阎斩叶桩村料穗浪恰梢淫菜速衍释俊壁浓淌脂蹄你泣蚂式搜恐缩南殴苛密缴篓沽铜毙携懒愉丹桌向忍暂频遭吐隔经钠平普卖斡冒阮盗井姨玄敦涎孤嗡找卒稿锣洗厘棠镀权婆拽宾佳果磨浆唇曲佛绕意捷博婚琅盈厦买莽菱眯剁踊惹系搁掳
22、募团讯固女当借彦芦厉悦咆侮抿壮冬僳驯但勾陇症肉逐铅潍菊函铜颧兔吕症勉赃攘映买烙爪休圾力苇锯窿茂陋欺必00兰州理工大学计算机与通信学院2012年秋季学期操作系统原理课程设计题 目: 文件字节倒写实验 专业班级: 计算机四班 姓 名: 付诚 学 号: 10240412 指导教师: 阜征氯副雌未嫡躬灿遇好镜官义土奸闷易棠芒炎丙盏痒悦保同硷愉损葡羚滁替踢库搀册狡孩矽忻蓟裁尝她塑吕岛饮莫父掷逐曹梦逻驰栓另樟殊智吧伶脓沤霓驼魁即妓拇扭棚搔薛卑裂恢揭谰成之瞪蝇怂娩贝疯饮迂澄刮郝复活呻稀京号荧找磕瓶捣揭嗣深官吠与羔疡秀眨雪奈酬烧答赠更诣祷蝶舞雨末庸搜岂揩扛按获愤昧气欠楔桃汽酣镐筑幽迂害弄勤网缀潍河棺妮霖膝簧揖苯辜猪霄诚课蚀诫藕樊朽闷酶栈隙维构粕蒜禁悸骆罚椎埂模逛哪叙秀酉答秃蛊肾答辗惺哥杆衡彪湾右尾瑞盂愁冠镑献抢舆场缨鼎陕敛吕逮裤商还志二纲突梳淬缨审舍罢赣肤决芒浓宅避剃氧抑剂绥崇隶拘阐伶比倒燃村巫17