高软实验七报告
来源:互联网 发布:yum update 卡住 编辑:程序博客网 时间:2024/06/06 18:24
将menu设计为可重用的子系统
一、实验要求
- 为 menu 子系统设计接口,并写用户范例代码来实现原来的功能
- 使用 make 和 make clean 来编译程序和清理自动生成的文件
- 使 menu 子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令(这个视频中没有给出,请自行完成)
- 可以使用 getopt 函数获取命令行参数
二、实验思路与过程
- 利用
mkdir
命令新建 lab7 文件夹,并使用cp
命令将上上次的文件拷贝到 lab7 中 - 查看源代码,理清思路,将整个 menu 系统模块化,并编写用户范例代码 test.c 来实现以前的小菜单的功能
- 参照视频,编写 Makefile 文件以进行自动编译和清理中间文件
- 改进程序,以使得程序能够支持自定义的,带参数的命令
- 自定义带参数的命令
- 对程序中新增加的代码进行模块化,以使得整个系统更易于维护和修改
三、关键代码
menu.c
test.c
四、运行结果
五、实验中遇到的问题
- 在编写 得到命令行参数的函数过程中,需要返回两个值,argv 和 argc,而函数只能返回一个值,这就产生了矛盾。最后通过指针得到了解决
- 对于老师所用的 fgets 函数有过疑问,不明白最后为什么要去掉
\n
,最后经过实验发现,scanf 函数在将用户输入的字符串存储到内存中时,会自动将用户执行命令时 输入的\n
删除,而 fgets 函数则不会删除,它会将所有的输入字符存储到内存中去,这也是为什么我们要在代码中实现去掉\n
的原因 - strtok函数在调用时出错,经过查阅资料发现,由于 strtok 函数会改变原始字符串的内容,因此在第一次调用的时候,传递给该函数的第一个参数——即要分割的原始字符串——不能是指向字符常量的指针,比如
char * p = "Original string to be divided"
就不能作为第一个参数传递进去。第一个参数只能是一个字符数组的首地址,比如char p[] = "Original string to be divided"
就可以作为待分割的字符串传递进去
六、实验心得
- 这次实验所花的时间还是不短的,但是通过这次实验,我也学到了不少的东西,也有一部分知识还有待进一步学习,比如说 makefile
- 对于软件工程这一概念有了新的认识,尤其是其中的重用模块化 的思想
- 对于C语言的字符指针这一块有了更深入的理解
阅读全文
0 0
- 高软实验七报告
- 17高软实验七报告
- 高软实验七
- 高软实验一报告
- 高软实验二报告
- 高软实验三报告
- 高软实验四报告
- 高软实验五报告
- 高软实验五报告
- 【实验报告】高软实验1
- 【实验报告】高软实验2
- 【实验报告】高软实验3
- 【实验报告】高软实验4
- 【实验报告】高软实验5
- 【实验报告】高软实验7
- 操作系统实验七实验报告
- 17高软实验一报告
- 17高软实验二报告
- 兼容IE老版本的动态增加例子
- Mybatis逆向工程Generator
- 结合协同过滤和个性化AGENT的增强推荐(续)
- 《Web接口开发与自动化测试基于Python语言》--第14章
- HDOJ2070 Fibbonacci Number
- 高软实验七报告
- 纯CSS模态窗口实现炫酷动画效果(部分代码)
- C++基础(和函数有关1)1
- 2017.11.6工作日笔记
- JS中的4大对象
- inline函数的一些总结
- 二叉树遍历,高度,大小
- C语言 printf使用说明
- next_permutation蓝桥杯第五届b组题