软件工程综合实践专题——个人博客作业1
這次作業(yè)老師要求我們讀一段別人寫的小程序,并寫寫自己的感悟。
emmmmmmmmmmmm
首先找到一段這樣的代碼就十分不容易...畢竟網(wǎng)上許多代碼都是偽代碼Orz
感謝室友提供的去年小學(xué)期大作業(yè)
首先,這段代碼給我的第一印象就是:這好說歹說也算是個管理系統(tǒng),居然都寫在一個cpp文件里......強(qiáng)迫癥表示有些不爽
其次,這段代碼一看就知道,典型的VC6.0的風(fēng)格!!!這里先放一小段出來...
#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<<" 火車票售票系統(tǒng) \n";cout<<"**************************\n";cout<<"1.查詢車票\n";cout<<"2.購買車票\n";cout<<"3.退訂車票\n";cout<<"4.退出\n";cout<<"**************************\n";cout<<"\n請選擇:"; } };我之所以這么痛恨VC6.0,是因?yàn)檫@個IDE不會自動首行縮進(jìn)!!因?yàn)楦鶕?jù)我個人的編程習(xí)慣,每進(jìn)入一個循環(huán)(或者類型循環(huán)的部分,反正就是要打括號的),我都會再原先的基礎(chǔ)上首行縮進(jìn)2個字符
因?yàn)?#xff0c;在有首行縮進(jìn)的情況下,更容易檢查出是否有存在括號漏打?qū)е碌木幾g錯誤的問題,同時也避免你的IDE被漏了“}”的代碼所誤導(dǎo)!!(因?yàn)橹坝腥藖碚椅規(guī)兔φ页绦蚓幾g錯誤的時候,曾經(jīng)就有因?yàn)橐粋€“}”漏打的情況,讓IDE在編譯的時候出現(xiàn)問題。重點(diǎn)是,IDE提示的時候,并沒有像以往一樣提示“miss ‘}’ ”這類的,而是以其他方式報(bào)錯,并且提示的可能錯誤行也不在那一行。于是那個“}”我們找了半個多小時,直到從頭到尾把程序全部讀一遍之后才找到)
可想而知,如果是在一個大型項(xiàng)目里面,從頭到尾把所有代碼檢查一遍是根本不可行的,費(fèi)時又費(fèi)力。所以,需要在一開始編寫的時候就徹底杜絕這個問題。或者,括號成對打也行。(其實(shí),括號成對打并不是我在大學(xué)里學(xué)到的,而是高中的時候玩機(jī)器人的時候?qū)W到的。雖然當(dāng)時的編程還都是模塊化十分小兒科的,但是在里面學(xué)到的許多方法至今都十分具有實(shí)用價值)
好了 廢話不多說 我們來看一看這段代碼吧
首先,他的這段代碼寫的是一個訂票系統(tǒng),是我們上一次小學(xué)期的大作業(yè)。首先他這個代碼是有錯誤的,在后面涉及文件的部分存在一點(diǎn)小問題,比如無法打開文件等。(因?yàn)楫?dāng)時是要求要使用文件保存數(shù)據(jù)的)總的來說,這個軟件的功能就是基本的增刪改查,以及加了一小部分簡單的UI設(shè)計(jì)以及將數(shù)據(jù)保存在本地的文件中。我認(rèn)為,對于這樣一個系統(tǒng)來說,換行、首行縮進(jìn)什么的就足以讓我這樣的強(qiáng)迫癥抓狂了。這么長的代碼,我覺得如果可以分成模塊,寫在頭文件里可能會更加清晰易讀,并且也便于后期修改。
下面就放一部分我自己寫的出來吧(這是個頭文件) 格式有哪里不規(guī)范的地方還請老師幫忙指出來(emmmmmmm 我承認(rèn)我一直都沒有寫注釋的習(xí)慣,我知道這是一個致命的錯誤,我會改的...)
#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為超過范圍的數(shù),用于判斷是否找到相同項(xiàng) }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();} }
轉(zhuǎn)載于:https://www.cnblogs.com/JeremySW/p/10468582.html
總結(jié)
以上是生活随笔為你收集整理的软件工程综合实践专题——个人博客作业1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视觉slam重点知识笔记
- 下一篇: opencv的pnp()算法接口是相对于