基于C++如何实现信息管理系统
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇"基于C++如何实现信息管理系统"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"基
千家信息网最后更新 2024年12月12日基于C++如何实现信息管理系统
这篇"基于C++如何实现信息管理系统"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"基于C++如何实现信息管理系统"文章吧。
1、使用类+函数实现
2、使用STL容器的vector
3、fstream的文件存储方式
4、xls文件读入 写出
5、数据的四大功能增删改查
6、一定的输入容错能力
#include#include #include #include #include #include #include #include #include #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 & 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 & 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 & 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 & 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 & 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 & 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("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\t"); 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 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;}
以上就是关于"基于C++如何实现信息管理系统"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
输入
好汉
梁山
成功
姓名
年龄
籍贯
内容
数据
赏金
文件
信息
管理系统
系统
C++
管理
名称
大小
文章
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
长沙服务器网关
网络安全认证技术的重要性
网络安全社会工程防护手册
本那红软件开发服务部
全国景点数据库下载
榆次触控垃圾分类软件开发公司
网络安全管理责任制
安徽网络技术服务概况
关注重视网络安全
dns服务器不可用
北理网络安全导师赵小林
珠海嵌入式软件开发流程费用
软件开发 笔记本选择
游戏服务器在什么地方
公安部网络安全保卫周华局
适合网络安全的小标题
数据库安全机制管理实验
邮箱签名保存在本地还是服务器上
服务器更改域名怎么操作
中国名人百科数据库
广东生网络安全招聘
北京电子计算机软件开发价目表
在国外架设服务器
甘肃医院时钟监控网关服务器
网络安全宣传周2021
网络安全的重要性总结
涡阳百视通网络技术服务有限公司
数据库中的变量
湖南商祺网络技术
造影数据库信息