实验二:命令行菜单小程序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种命令的命令行解释调用。在本次实验中,也了解了代码书写规则,并开始严格遵循其要求,写出了规范的程序代码。

软件工程课程实验报告:实验二相关推荐

  1. 第四周课程总结实验报告(二)

    Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...

  2. java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc

    java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...

  3. 【实验报告】二 网络嗅探与欺骗

    中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验二 网络嗅探与欺骗 学生姓名 岳婷 年级 14级 区队 二区队 指导 ...

  4. web用css做网页实验报告,web前端技术实验报告实验二

    <web前端技术实验报告实验二>由会员分享,可在线阅读,更多相关<web前端技术实验报告实验二(7页珍藏版)>请在装配图网上搜索. 1.Web前端技术实验报告课程名称:Web ...

  5. MySQL数据库 实验报告(二)

    实验报告(二) 1.实验目的 (1)掌握Select子句的功能和检索数据的方法 (2)掌握对查询结果排序的方法 2.实验预习与准备 (1)了解数据检索时利用Select对指定属性查询的方式 (2)了解 ...

  6. 计算机网络课程设计综合实验,计算机网络课程设计报告实验报告

    计算机网络课程设计报告实验报告 (21页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 24.9 积分 中南大学课程设计报告课程:计算机网络课程设计 题目: ...

  7. Web前端开发技术课程实验报告实验3:Vue路由实验

    实验代码:实验3第2题实验参考.rar-互联网文档类资源-CSDN下载 Web前端开发技术课程实验报告 实验3:Vue路由实验 姓名:_ __ _ ___ ___   班级:_ _ _ ___ _ _ ...

  8. 武汉科技大学java题库答案_武汉科技大学 java实验报告 实验二

    <武汉科技大学 java实验报告 实验二>由会员分享,可在线阅读,更多相关<武汉科技大学 java实验报告 实验二(9页珍藏版)>请在金锄头文库上搜索. 1.注:"实 ...

  9. 计算机仿真技术应用报告,计算机仿真技术实验报告-实验二

    计算机仿真技术实验报告-实验二 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <仿真技术与应用>实验报告计算机仿真技术实验 ...

  10. 空间分析实验报告 实验二 度假村选址

    空间分析与应用实验报告 实验名称:实验二  度假村选址 ======================================================================== ...

最新文章

  1. Java IO 流 学习 总结
  2. python数据池连接PG
  3. 转载: Python os 模块的功能以及子函数介绍
  4. 目标检测--Wide-Residual-Inception Networks for Real-time Object Detection
  5. 第十六届全国大学生智能车竞赛线上比赛(广东+西南科技大学)成绩排名与获奖信息
  6. 【C++】19. 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
  7. 查看mysql库和表的大小(空间)
  8. Java输入输出入门 A+B
  9. boost::lambda::ret用法的测试程序
  10. 4.3英寸屏双核 LG Prada K2通过FCC认证
  11. 解决ASP.NET MVC 下使用SQLite 报no such table的问题
  12. 使用 Docker 打造超溜的前端环境
  13. MyBatis Generator逆向工程生成实体、接口、映射文件等代码
  14. silverlight读取mysql_silverlight访问数据库
  15. 国内最常用的坐标系大全
  16. mysql where id_MySQL where 子句
  17. 【Hbu数据库】第七周 数据库完整性 存储过程和函数
  18. 互相关函数以及Matlab仿真
  19. mysql 只显示第一条记录_MySQL:此种查询结果,怎么仅保留第一条记录?
  20. PLM系统的技术现状和发展趋势

热门文章

  1. C语言怎么解决闪退问题
  2. No.017 <软考>《(高项)备考大全》【第02章】信息系统项目管理基础
  3. java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)
  4. PWN lotto [pwnable.kr]CTF writeup题解系列10
  5. 生活中的泊松分布(为什么你等的公交车总不来)Python模拟的结果图直观展示
  6. 微信PC端3.0可以刷朋友圈了(附带下载方式)
  7. 配置一个vue-cli3.0项目
  8. 一对一直播引流系统,松鼠直播管家
  9. python逻辑流程图_Python大牛历时一个月打造的Python系统学习流程图,超详细!
  10. pc端android端 倒数日,这款倒数日 App,让你的 Android 桌面好看又好用