这次作业老师要求我们读一段别人写的小程序,并写写自己的感悟。

emmmmmmmmmmmm

首先找到一段这样的代码就十分不容易...毕竟网上许多代码都是伪代码Orz

感谢室友提供的去年小学期大作业

首先,这段代码给我的第一印象就是:这好说歹说也算是个管理系统,居然都写在一个cpp文件里......强迫症表示有些不爽

其次,这段代码一看就知道,典型的VC6.0的风格!!!这里先放一小段出来...

#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
struct Ticket
{char add[20];                                  int num; char time[20];
}a[10]={"上海到广州",1,"7月9日8:00","上海到北京",2,"7月9日9:00","上海到深圳",3,"7月9日10:00","上海到山西",4,"7月9日11:00","上海到山东",5,"7月9日12:00","上海到广西",6,"7月9日13:00","上海到重庆",7,"7月9日14:00","上海到四川",8,"7月9日15:00","上海到成都",9,"7月9日16:00","上海到天津",10,"7月9日17:00",};
struct user
{int account,password;
}b[5]={1759220,123,1759221,123,1759222,123,1759223,123,1759224,123};
class menu{
public:
void print_menu()
{system("cls");putchar('\n');cout<<"      火车票售票系统 \n";cout<<"**************************\n";cout<<"1.查询车票\n";cout<<"2.购买车票\n";cout<<"3.退订车票\n";cout<<"4.退出\n";cout<<"**************************\n";cout<<"\n请选择:";
}
};

我之所以这么痛恨VC6.0,是因为这个IDE不会自动首行缩进!!因为根据我个人的编程习惯,每进入一个循环(或者类型循环的部分,反正就是要打括号的),我都会再原先的基础上首行缩进2个字符

因为,在有首行缩进的情况下,更容易检查出是否有存在括号漏打导致的编译错误的问题,同时也避免你的IDE被漏了“}”的代码所误导!!(因为之前有人来找我帮忙找程序编译错误的时候,曾经就有因为一个“}”漏打的情况,让IDE在编译的时候出现问题。重点是,IDE提示的时候,并没有像以往一样提示“miss ‘}’ ”这类的,而是以其他方式报错,并且提示的可能错误行也不在那一行。于是那个“}”我们找了半个多小时,直到从头到尾把程序全部读一遍之后才找到)

可想而知,如果是在一个大型项目里面,从头到尾把所有代码检查一遍是根本不可行的,费时又费力。所以,需要在一开始编写的时候就彻底杜绝这个问题。或者,括号成对打也行。(其实,括号成对打并不是我在大学里学到的,而是高中的时候玩机器人的时候学到的。虽然当时的编程还都是模块化十分小儿科的,但是在里面学到的许多方法至今都十分具有实用价值)

好了 废话不多说 我们来看一看这段代码吧

首先,他的这段代码写的是一个订票系统,是我们上一次小学期的大作业。首先他这个代码是有错误的,在后面涉及文件的部分存在一点小问题,比如无法打开文件等。(因为当时是要求要使用文件保存数据的)总的来说,这个软件的功能就是基本的增删改查,以及加了一小部分简单的UI设计以及将数据保存在本地的文件中。我认为,对于这样一个系统来说,换行、首行缩进什么的就足以让我这样的强迫症抓狂了。这么长的代码,我觉得如果可以分成模块,写在头文件里可能会更加清晰易读,并且也便于后期修改。

下面就放一部分我自己写的出来吧(这是个头文件) 格式有哪里不规范的地方还请老师帮忙指出来(emmmmmmm 我承认我一直都没有写注释的习惯,我知道这是一个致命的错误,我会改的...)

#include <iostream>
#include "order.h"
#include <fstream>
#include <stdlib.h>
using namespace std;int search(Order a[],int num,int range) {int i;for (i = 0; i < range; i++) {if (a[i].num == num) {return i;}}return 20;//20为超过范围的数,用于判断是否找到相同项
}void orderDelete(Order a[], int i, int count) {for (i++; i < count; i++) {a[i - 1] = a[i];}
}int fileSave(Order a,int num) {int i;ofstream fout("f1.dat", ios::app);if (!fout) {cout << "Cannot open file";return 1;}fout << a.num;for (i = 0; i < 8; i++) {fout << a.getDishNum(i);}fout.close();return 0;}void fileSearch(int num) {ifstream fin("f1.dat", ios::in);if (!fin) {cout << "file cannot be opened" << endl;}int i;char a;char b[8];fin >> a;cout << "a=" << a << endl;while ((( a - '0' ) != num)&&!fin.eof()) {fin.seekg(8*sizeof(char), ios::cur);fin >> a;cout << "a=" << a << endl;}if (fin.eof()) {cout << "404" << endl;}else {for (i = 0; i < 8; i++) {fin >> b[i];}cout << a << endl;for (i = 0; i < 8; i++) {cout << b[i] << endl;}Order od;od.num = num;od.setOrder(b);od.printOrder();fin.close();}
}

  

转载于:https://www.cnblogs.com/JeremySW/p/10468582.html

软件工程综合实践专题——个人博客作业1相关推荐

  1. 软件工程综合实践专题第一次作业

    软件工程综合实践专题第一次作业 题目:NBA数据库程序分析 来源:SQL SERVER数据库课程同学的小组大作业 create table Coach_information( cname char( ...

  2. 软件工程 in MSRA 第一周博客作业

    1. 自我介绍 大家好-我是陈海峰,哈尔滨工业大学计算机学院的一名大四学生,大四开始在 MSRA 的 KC 组进行实习.作为一个标准的"肥宅",对运动没什么兴趣的我,主要的兴趣点就 ...

  3. 软件工程综合实践专题第三次个人博客作业

    一.简介 Mockplus(摹客)是一款简洁快速的原型图设计工具.适合软件团队.个人在软件开发的设计阶段使用.其低保真.无需学习.快速上手.功能够用.并能够很好地表达自己的设计 二.安装 先在官网下载 ...

  4. BUAA-2023软件工程第二次博客作业

    BUAA-2023软件工程第二次博客作业 项目 这个作业属于哪个课程 2023北航敏捷软件工程 这个作业的要求在哪里 个人作业-软件案例分析 我在这个课程的目标是 学习并实践软件工程开发的方法论.在把 ...

  5. 2022北航敏捷软件工程 第二次博客作业

    2022北航敏捷软件工程 第二次博客作业 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 个人作业-软件案例分析 我在这个课程的目标是 了解软件工程的方法论.在实践 ...

  6. 2022北航敏捷软件工程 第一次博客作业

    2022北航敏捷软件工程 第一次博客作业 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 个人阅读作业-阅读和调研 我在这个课程的目标是 了解软件工程的方法论.在实 ...

  7. 2022北航敏捷软件工程 第四次博客作业

    2022北航敏捷软件工程 第四次博客作业 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 个人作业-提问回顾与个人总结 我在这个课程的目标是 了解软件工程的方法论. ...

  8. 设计模式之工厂方法模式、抽象工厂模式的概念和实现及使用“反射技术+读取配置文件”的方法对工厂模式进行改进(软件工程综合实践课程第三周个人作业)

    文章目录 一.实验目的 二.知识总结 1.工厂方法模式简介 2.抽象工厂模式简介 3.工厂模式小结 4.利用"反射技术+读取配置文件"的方法改进程序 三.实验内容 1. 工厂模式实 ...

  9. 初窥构建之法——记2020BUAA软工个人博客作业

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 完成一次完整的软件开发经历 并以博客的方式记录开发过程的心得 ...

最新文章

  1. 碰疼了会躲!这个植入“迷你大脑”的AI机器人,可感知疼痛,还能自我愈合...
  2. HGOI 20181103 题解
  3. C++ 对引用的理解
  4. qt sizePolicy属性
  5. C++ 偏微分数值计算库_一文带你了解计算流体力学CFD及其应用领域
  6. 【Statistics】均值
  7. js数字比较【牢记】
  8. kali linux捉肉鸡教程,简单扫4899端口捉肉鸡菜鸟教程详细版
  9. 嵌入式BI助力ISV厂商决胜大数据时代
  10. Redis安装与开机启动
  11. gis在线编辑服务器,WebGIS教程 使用Geoserver和PostGIS开发WebGIS 在线编辑
  12. 第十六章 python Pygame的使用
  13. 我为大家分享永久免费空间 云专家
  14. 左偏树(XJT Love Trees,玲珑杯 Round#8 C lonlife 1081)
  15. 猫眼爬取专业评分的python技术
  16. 寒武纪MLU270安装运行Pytorch yolov3实录
  17. 【Linux 内核 内存管理】分区伙伴分配器 ② ( free_area 空闲区域结构体源码 | 分配标志位 | GFP_ZONE_TABLE 标志位区域类型映射表 |分配标志位对应的内存区域类型 )
  18. Android写入txt文件
  19. 西瑞克斯机顶盒cy-jc1320安装APP
  20. 中国IPv6千万不要“起大早,赶晚集”

热门文章

  1. 实例12:python
  2. linux 下建立多个tomcat
  3. Centos7构建NFS服务器和连接
  4. Centos7jdk安装
  5. QT 开发openSSL CSR证书请求工具
  6. Qt treeWidget 查找指定字段内容的条目并跳转到该条目
  7. assert函数_PHP 之 assert()函数
  8. Apache实验-目录别名
  9. python一些方便excel行操作的函数(一)
  10. PostgreSQL 、springboot 、spring data jpa 集成