软件工程课程实验报告:实验二
实验二:命令行菜单小程序V1.0
咖啡机《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
新创建一个目录lab2完成实验。
一、实验要求
1. 代码风格规范:
- 代码风格的原则:简明、易读、无二义性;
- 缩进、命名、注释等代码编排的风格规范;
2. 具体要求:
- 实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;
- 类似ftp的help目录或者bash的help目录;
- 程序循环、接收用户的命令,如help、others等命令;
- 可以广泛通用的命令行菜单子系统组件,可方便地定制而嵌入到其他系统;
二、实验过程
1. 创建lab2文件夹,创建menu.c文件:
2. 编写程序
- 实现8个数值计算相关命令,命令选择逻辑如下:
while (1){printf("Plesea choose a command and type it:\n");scanf("%s", cmd);if (strcmp(cmd, "info") == 0){info();}else if (strcmp(cmd, "plus") == 0){plus();}else if (strcmp(cmd, "minus") == 0){minus();}else if (strcmp(cmd, "multiply") == 0){multiply();}else if (strcmp(cmd, "divide") == 0){divide();}else if (strcmp(cmd, "power") == 0){power();}else if (strcmp(cmd, "square") == 0){square();}else if (strcmp(cmd, "factorial") == 0){factorial();}else if (strcmp(cmd, "absolute") == 0){absolute();}else if (strcmp(cmd, "quit") == 0){printf("Quit the program!\n");return 0;}else{printf("Error:unsupported command!\n");printf("Type 'info' for the available commands.\n");}}
菜单命令包括以下9种:
- 介绍命令信息info()
- 加法运算plus()
- 减法运算minus()
- 乘法运算multiply()
- 除法运算divide()
- 幂运算power()
- 平方根运算square()
- 阶乘运算factorial()
- 绝对值运算absolute()
限制于报告篇幅,以上命令的具体实现代码就不在文中贴出,烦请移步github工程中查看。
https://github.com/973301529/se/tree/master/lab2
3. 编译并执行menu.c文件
初始运行情况,info()介绍可用指令的相关信息:
检测plus()、factorial()、absolute()、power()、quit()等指令的识别情况:
4. 将代码利用git同步到github:
三、实验心得
按照实验要求完成了命令行菜单小程序,实现了9种命令的命令行解释调用。在本次实验中,也了解了代码书写规则,并开始严格遵循其要求,写出了规范的程序代码。
软件工程课程实验报告:实验二相关推荐
- 第四周课程总结实验报告(二)
Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...
- java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc
java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...
- 【实验报告】二 网络嗅探与欺骗
中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验二 网络嗅探与欺骗 学生姓名 岳婷 年级 14级 区队 二区队 指导 ...
- web用css做网页实验报告,web前端技术实验报告实验二
<web前端技术实验报告实验二>由会员分享,可在线阅读,更多相关<web前端技术实验报告实验二(7页珍藏版)>请在装配图网上搜索. 1.Web前端技术实验报告课程名称:Web ...
- MySQL数据库 实验报告(二)
实验报告(二) 1.实验目的 (1)掌握Select子句的功能和检索数据的方法 (2)掌握对查询结果排序的方法 2.实验预习与准备 (1)了解数据检索时利用Select对指定属性查询的方式 (2)了解 ...
- 计算机网络课程设计综合实验,计算机网络课程设计报告实验报告
计算机网络课程设计报告实验报告 (21页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 24.9 积分 中南大学课程设计报告课程:计算机网络课程设计 题目: ...
- Web前端开发技术课程实验报告实验3:Vue路由实验
实验代码:实验3第2题实验参考.rar-互联网文档类资源-CSDN下载 Web前端开发技术课程实验报告 实验3:Vue路由实验 姓名:_ __ _ ___ ___ 班级:_ _ _ ___ _ _ ...
- 武汉科技大学java题库答案_武汉科技大学 java实验报告 实验二
<武汉科技大学 java实验报告 实验二>由会员分享,可在线阅读,更多相关<武汉科技大学 java实验报告 实验二(9页珍藏版)>请在金锄头文库上搜索. 1.注:"实 ...
- 计算机仿真技术应用报告,计算机仿真技术实验报告-实验二
计算机仿真技术实验报告-实验二 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <仿真技术与应用>实验报告计算机仿真技术实验 ...
- 空间分析实验报告 实验二 度假村选址
空间分析与应用实验报告 实验名称:实验二 度假村选址 ======================================================================== ...
最新文章
- Java IO 流 学习 总结
- python数据池连接PG
- 转载: Python os 模块的功能以及子函数介绍
- 目标检测--Wide-Residual-Inception Networks for Real-time Object Detection
- 第十六届全国大学生智能车竞赛线上比赛(广东+西南科技大学)成绩排名与获奖信息
- 【C++】19. 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
- 查看mysql库和表的大小(空间)
- Java输入输出入门 A+B
- boost::lambda::ret用法的测试程序
- 4.3英寸屏双核 LG Prada K2通过FCC认证
- 解决ASP.NET MVC 下使用SQLite 报no such table的问题
- 使用 Docker 打造超溜的前端环境
- MyBatis Generator逆向工程生成实体、接口、映射文件等代码
- silverlight读取mysql_silverlight访问数据库
- 国内最常用的坐标系大全
- mysql where id_MySQL where 子句
- 【Hbu数据库】第七周 数据库完整性 存储过程和函数
- 互相关函数以及Matlab仿真
- mysql 只显示第一条记录_MySQL:此种查询结果,怎么仅保留第一条记录?
- PLM系统的技术现状和发展趋势
热门文章
- C语言怎么解决闪退问题
- No.017 <软考>《(高项)备考大全》【第02章】信息系统项目管理基础
- java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)
- PWN lotto [pwnable.kr]CTF writeup题解系列10
- 生活中的泊松分布(为什么你等的公交车总不来)Python模拟的结果图直观展示
- 微信PC端3.0可以刷朋友圈了(附带下载方式)
- 配置一个vue-cli3.0项目
- 一对一直播引流系统,松鼠直播管家
- python逻辑流程图_Python大牛历时一个月打造的Python系统学习流程图,超详细!
- pc端android端 倒数日,这款倒数日 App,让你的 Android 桌面好看又好用