行编辑程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机系
上机实验报告
实验项目名称行编辑程序
所属课程名称数据结构
实验类型综合型实验
班级
完整学号
姓名
成绩
实验概述:
【实验目的】
1.练习行编辑程序并写出栈的逻辑结构表示
2.掌握栈的特点并实现栈的存储表示
3.用栈解决行编辑的问题
【实验环境】(使用的软件)
Visual C++ 6.0 控制台编程环境
实验内容(不够附页):
【实验方案设计与实验过程】(分析、设计、实验步骤、测试数据、实验结果)一、分析
行编辑程序的功能:接受用户从终端输入的程序或数据,并存入用户的数据区。
较好的做法:设立一个输入缓冲区,用来接收用户输入的一行字符,然后逐行存入用户数据区。
例如,当用户发现刚刚键入放入一个字符是错的时,可补符进一个退格符“#”,以表示前一个字符无效;如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符“@”,以表示当前行中的字符均无效。
二、设计
使用栈结构实现输入缓冲区
从终端接收一个字符进行判断:
1、不是“#”也不是“@”则压入栈顶
2、是“#”,则栈顶元素出栈
3、是“@”,则栈清空
4、接收到行结束符或全文结束符将数据送入用户数据区
三、实验步骤
四、测试数据
【实验小结】(实验过程中出现的问题、结果分析、出错原因分析等)(实验过程中出现问题举例)
1.问题:
在程序实现过程中,编译时没有出现错误:
但在运行结果时却出现如下错误:
仔细检查程序,发现是由于少写了如下一段程序:case'@':{
while(!StackEmpty(S))
Pop(S,c);
};break;//构造空栈S
加上以上语句,再编译执行,程序运行正常。
成绩:
批阅日期: