<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
基於c++設計的資訊管理系統,供大家參考,具體內容如下
1、使用類+函數實現
2、使用STL容器的vector
3、fstream的檔案儲存方式
4、xls檔案讀入 寫出
5、資料的四大功能增刪改查
6、一定的輸入容錯能力
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <iostream> #include <windows.h> #include <vector> #include <fstream> #include <iterator> #define Num 20 #define FALSE 0 #define TRUE 1 #define PATH "./file.xls" using namespace std; class LiangshanHeros { public: char name[Num]; //梁山好漢姓名 int age; //年齡 char loc[Num]; //籍貫 double bounty; //懸賞金 public: LiangshanHeros() { age = 18; bounty = 6666; } LiangshanHeros(char* _name, int _age, char* _loc, double the_bounty) { strcpy(name, _name); age = _age; strcpy(loc, _loc); bounty = the_bounty; } ~LiangshanHeros() { } public: char* getName(); char* getLoc(); double getBounty(); int getAge(); public: int setName(char*); int setAge(int); int setLoc(char*); int setprice(double); public: void showMenu(); }; class params : public LiangshanHeros { public : params() { } ~params() { } public: void InitSet(); void showMensu(); }; char* LiangshanHeros::getName() { return name; } char* LiangshanHeros::getLoc() { return loc; } double LiangshanHeros::getBounty() { return bounty; } int LiangshanHeros::getAge() { return age; } int LiangshanHeros::setName(char* _name) { if (strlen(_name) > 20 || strlen(_name) < 2) { cout << "重新輸入梁山好漢姓名 長度[0 - 20]" << endl; return FALSE; } else { strcpy(name, _name); return TRUE; } } int LiangshanHeros::setAge(int _age) { if (_age > 100 || _age < 0) { cout << "重新輸入年齡 大小[0 - 100]" << endl; return FALSE; } else { age = _age; return TRUE; } } int LiangshanHeros::setLoc(char* _loc) { if (strlen(_loc) > 20 || strlen(_loc) < 2) { cout << "重新輸入梁山好漢籍貫 長度[0 - 20]" << endl; return FALSE; } else { strcpy(loc, _loc); return TRUE; } } int LiangshanHeros::setprice(double the_Bouney) { if (the_Bouney < 0) { cout << "重新輸入價格 大小[0 - &]" << endl; return FALSE; } else { bounty = the_Bouney; return TRUE; } } void setAll(LiangshanHeros* par) { while (1) { cout << "輸入梁山好漢姓名: " << endl; char n[Num] = { 0 }; cin >> n; if (par->setName(n) == TRUE) break; } while (1) { cout << "輸入年齡: " << endl; int a; cin >> a; if (par->setAge(a) == TRUE) break; } while (1) { cout << "輸入梁山好漢籍貫: " << endl; char l[Num] = { 0 }; cin >> l; if (par->setLoc(l) == TRUE) break; } while (1) { cout << "輸入賞金: " << endl; double p; cin >> p; if (par->setprice(p) == TRUE) break; } } LiangshanHeros* set() { LiangshanHeros* par = new LiangshanHeros; //do set setAll(par); return par; } void search(vector<LiangshanHeros*>& vec, char* name) { int i = 0; int flag = 0; for (i = 0; i < vec.size(); i++) { if (strcmp(vec[i]->name, name) == 0) { cout << "查詢成功 " << endl; cout << vec[i]->getName() << endl; cout << vec[i]->getAge() << endl; cout << vec[i]->getLoc() << endl; cout << vec[i]->getBounty() << endl; flag = 1; } } //case faild if (flag == 0) { cout << "查詢失敗" << endl; } } void deletePar(vector<LiangshanHeros*>& vec, char* name) { int i = 0; int flag = 0; for (i = 0; i < vec.size(); i++) { if (strcmp(vec[i]->name, name) == 0) { cout << "查詢成功 " << endl; cout << vec[i]->getName() << endl; cout << vec[i]->getAge() << endl; cout << vec[i]->getLoc() << endl; cout << vec[i]->getBounty() << endl; vec.erase(vec.begin() + i); //sp case i--; cout << "刪除成功 " << endl; flag = 1; } } if (flag == 0) { cout << "未找到該梁山好漢" << endl; } } void change(vector<LiangshanHeros*>& vec, char* name) { int i = 0; int flag = 0; for (i = 0; i < vec.size(); i++) { if (strcmp(vec[i]->name, name) == 0) { cout << "查詢成功 " << endl; cout << vec[i]->getName() << endl; cout << vec[i]->getAge() << endl; cout << vec[i]->getLoc() << endl; cout << vec[i]->getBounty() << endl; cout << "請輸入需要修改變數的值:" << endl; cout << "1.梁山好漢姓名 2.年齡 3.籍貫 4.賞金" << endl; int choice; while (1) { cin >> choice; if (choice > 4 || choice < 0) continue; else break; } cout << "輸入修改後的值" << endl; switch (choice) { case 1: { while (1) { cout << "輸入梁山好漢姓名: " << endl; char n[Num] = { 0 }; cin >> n; if (vec[i]->setName(n) == TRUE) break; } break; } case 2: { while (1) { cout << "輸入年齡: " << endl; int a; cin >> a; if (vec[i]->setAge(a) == TRUE) break; } break; } case 3: { while (1) { cout << "輸入梁山好漢籍貫: " << endl; char l[Num] = { 0 }; cin >> l; if (vec[i]->setLoc(l) == TRUE) break; } break; } case 4: { while (1) { cout << "輸入賞金: " << endl; double p; cin >> p; if (vec[i]->setprice(p) == TRUE) break; } break; } } flag = 1; } } if (flag == 0) { cout << "未找到該梁山好漢" << endl; } } void inputFile(vector<LiangshanHeros*>& vec) { ofstream ofs; ofs.open(PATH, ios::ate | ios::binary); int i = 0; if (vec.size() < 0) { cout << "還未錄入資料" << endl; return; } for (i = 0; i < vec.size(); i++) { ofs << vec[i]->name << "t" << vec[i]->age << "t" << vec[i]->loc << "t" << vec[i]->bounty; ofs << "n"; } cout << "資料錄入成功 儲存於 ./file.xls中" << endl; ofs.close(); } void outputFile(vector<LiangshanHeros*>& vec) { ifstream ifs; ifs.open(PATH, ios::binary | ios::in); if (ifs.fail()) { cout << "檔案未建立 請先錄入資料" << endl; return; } int i = vec.size(); int age; double price; char loc[Num] = { 0 }; char name[Num] = { 0 }; //判斷是否為檔案結尾 while (!ifs.eof()) { LiangshanHeros* par = new LiangshanHeros; ifs >> par->name >> par->age >> par->loc >> par->bounty; vec.push_back(par); } cout << "file.xls 檔案讀入成功 資料已寫入" << endl; ifs.close(); } void showAllParam(vector<LiangshanHeros*>& vec) { int i = 0; for (i = 0; i < vec.size(); i++) { cout << "這是 第" << i + 1 << "位梁山好漢 :" << endl; cout << " 姓名 :" << vec[i]->name << endl; cout << " 年齡 :" << vec[i]->age << endl; cout << " 籍貫 :" << vec[i]->loc << endl; cout << " 賞金 :" << vec[i]->bounty << endl; cout << endl; } } void LiangshanHeros::showMenu() { HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//控制程式碼 SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED); printf("t基於梁山好漢的檔案儲存系統n"); SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED); printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓n"); printf("t丨 1.新增梁山好漢 n"); printf("t丨 2.查詢梁山好漢 n"); printf("t丨 3.刪除梁山好漢 n"); printf("t丨 4.修改梁山好漢資訊 n"); printf("t丨 5.讀取已存在資訊 n"); printf("t丨 6.儲存資訊 n"); printf("t丨 7.查閱所有資訊 n"); printf("t丨 8.退出 n"); SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED); printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓nt"); SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_BLUE); printf("輸入您的選擇(1-8):"); } int main() { system("mode con cols=135 lines=30");//控制檯 寬度135 高度20 HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//控制程式碼 SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED); LiangshanHeros* par = new LiangshanHeros; par->showMenu(); vector<LiangshanHeros*> vec; char name[Num] = { 0 }; SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED); while (1) { int num; cin >> num; switch (num) { case 1: { vec.push_back(set()); cout << "新增成功" << endl; break; } case 2: { printf("輸入查詢的梁山好漢名稱:"); cin >> name; search(vec, name); break; } case 3: { printf("輸入刪除的梁山好漢名稱:"); cin >> name; deletePar(vec, name); break; } case 4: { printf("輸入查詢的梁山好漢名稱:"); cin >> name; change(vec, name); break; } case 5: { outputFile(vec); break; } case 6: { inputFile(vec); break; } case 7: { showAllParam(vec); break; } case 8: { cout << "kill process .. " << endl; exit(0); break; } } system("pause"); system("cls"); par->showMenu(); } return 0; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45