当前位置: 首页 > news >正文

内江如何做百度的网站狮山做网站

内江如何做百度的网站,狮山做网站,wordpress 自定义文章类型,室内设计师个人简介本文通过STL类库的list数据结构来完成学生管理系统#xff0c;采用链表外排序#xff0c;通过函数指针实现。 注意#xff1a;此时排序规则函数定义为类静态成员函数#xff0c;等价于全局函数函数指针定义为 BY_FUNC ps[] { CStudent::byNumb,CStudent::byName,CStudent…本文通过STL类库的list数据结构来完成学生管理系统采用链表外排序通过函数指针实现。 注意此时排序规则函数定义为类静态成员函数等价于全局函数函数指针定义为 BY_FUNC ps[] { CStudent::byNumb,CStudent::byName,CStudent::byMath }; C中定义CStudent类 文件名Student.h #pragma once #include list typedef struct SUser {int nNumb;char sName[20];float fMath; }DATA;//using namespace std; //头文件中最好不要usingtypedef bool (*BY_FUNC)(DATA q, DATA m);class CStudent {std::listDATA m_list;int Menu();int Input();bool Delete();void Modify();void Print();void Sort(BY_FUNC pFunc);int SortMenu();void Load();void Save();void PrintPS(std::listDATA::iterator* ps);bool Check(int nNumb);int FindMenu();void FindbyNumb();void FindbyName();void FindbyMath();void PrintFind(std::listDATA cl);static bool byNumb(DATA q, DATA m){return q.nNumb m.nNumb;}static bool byName(DATA q, DATA m){return strcmp(q.sName, m.sName) 0;}static bool byMath(DATA q, DATA m){return q.fMath m.fMath;} public:CStudent();~CStudent();void Start(); };类成员函数实现 文件名Student.cpp #define _CRT_SECURE_NO_WARNINGS#include Student.h #include iostream #include conio.h using namespace std;CStudent::CStudent() { } CStudent::~CStudent() { }bool CStudent::Check(int nNumb) {listDATA::iterator it m_list.begin();while (it!m_list.end()){if (it-nNumb nNumb)return true;it;}return false; }typedef void(*FIND_FUNC)(); int CStudent::FindMenu() {system(cls);puts(1、按学号查找);puts(2、按姓名查找);puts(3、按数学分数段查找);puts(0、返回主菜单);//FIND_FUNC ps[] { FindbyNumb,FindbyName };int i;cin i;switch (i){case 1:FindbyNumb();break;case 2:FindbyName();break;case 3:FindbyMath();break;}return i; }void CStudent::FindbyNumb() {cout 请输入要查找的学号;int nNumb;cin nNumb;listDATA::iterator it m_list.begin();listDATA cl;while (it ! m_list.end()){if (it-nNumb nNumb){cl.push_back(*it);break;}it;}if (cl.size())PrintFind(cl);elsecout 没有找到符合的学号 endl;system(pause); }void CStudent::FindbyName() {cout 请输入要查找的姓名;char sName[20];cin sName;listDATA::iterator it m_list.begin();listDATA cl;while (it ! m_list.end()){//strchr strpbrk strstrif (strstr(it-sName,sName)) //模糊查找cl.push_back(*it);it;}if (cl.size())PrintFind(cl);elsecout 没有找到符合条件的姓名 endl;system(pause); }void CStudent::FindbyMath() {cout 请输入要查找的分数段2个数;float nMin, nMax;cin nMin nMax;if (nMin nMax)swap(nMin, nMax);listDATA::iterator it m_list.begin();listDATA cl;while (it ! m_list.end()){//strchr strpbrk strstrif (it-fMathnMin it-fMathnMax) //模糊查找cl.push_back(*it);it;}if (cl.size())PrintFind(cl);elsecout 没有找到符合条件分数 endl;system(pause);}void CStudent::PrintFind(std::listDATA cl) {cout 学号\t姓名\t成绩 endl;listDATA::iterator it cl.begin();while (it ! cl.end()){cout it-nNumb \t it-sName \t it-fMath endl;it;} }void CStudent::Start() {Load();while (Menu()); }int CStudent::SortMenu() {system(cls);puts(1.按学号排序);puts(2.按姓名排序);puts(3.按成绩排序);puts(4.不排序);puts(0.返回主菜单);int i 0;cin i;BY_FUNC ps[] { CStudent::byNumb,CStudent::byName,CStudent::byMath };switch (i){case 1:case 2:case 3://m_list.sort(ps[i - 1]);Sort(ps[i-1]);break;case 4:Print();default:return i;}return i; }void CStudent::Load() {FILE* pf fopen(stud.lv, r);if (!pf){puts(加载文件时失败);system(pause);return;}DATA t;while (fread(t, 1, sizeof(DATA), pf) sizeof(DATA))m_list.push_back(t);fclose(pf); }void CStudent::Save() {FILE* pf fopen(stud.lv, w);if (!pf){puts(保存文件时失败);system(pause);return;}listDATA::iterator it m_list.begin();while (it!m_list.end()){fwrite((*it), 1, sizeof(DATA), pf);it;}fclose(pf); }void CStudent::PrintPS(listDATA::iterator* ps) {int i 0;cout 学号\t姓名\t成绩\t endl;while (ps[i] ! m_list.end()){cout ps[i]-nNumb \t ps[i]-sName \t ps[i]-fMath endl;i;}system(pause); }int CStudent::Menu() {system(cls);//clear screenputs(\n\t\t1、浏览所有信息);puts(\t\t2、添加信息);puts(\t\t3、删除信息);puts(\t\t4、修改信息);puts(\t\t5、查找信息);puts(\t\t0、退出);printf(\t\t请选择);int i 0;cin i;switch (i){case 1:while (SortMenu());break;case 2:while (Input());break;case 3:while (Delete());break;case 4:Modify();break;case 5:while (FindMenu());}return i; }int CStudent::Input() {cout 请输入学号;DATA d;while (true){cin d.nNumb;if (Check(d.nNumb))cout 学号已存在请重新输入;elsebreak;}cout 请输入姓名和数学成绩空格间隔;cin d.sName d.fMath;m_list.push_back(d);Save();Print();cout 是否继续添加[y/n];rewind(stdin);char c getchar();return c y || c Y; }bool CStudent::Delete() {int nNumb;Print();cout 请输入要删除的学号;cin nNumb;listDATA::iterator it m_list.begin();while (it!m_list.end()){if (it-nNumb nNumb){m_list.erase(it);Print();cout 删除成功 endl;system(pause);Save();return false;}it;}cout 你输入的学号不存在是否继续删除[y/n];char c _getch();putchar(c);puts();return y c || Y c; }void CStudent::Modify() { }void CStudent::Print() {listDATA::iterator it m_list.begin();cout 学号\t姓名\t成绩 endl;while (it!m_list.end()){cout it-nNumb \t it-sName \t it-fMath endl;it;}system(pause); }void CStudent::Sort(BY_FUNC pFunc) {int n m_list.size(), i 0;listDATA::iterator* ps new listDATA::iterator[n 1];listDATA::iterator it m_list.begin();//方法一//while (in1)// ps[i] it;//方法二while ((ps[i] it) ! m_list.end())i,it;i 0;while (i n - 1){int j i 1;int m i;//*ps[m] *ps[j]是什么类型 DATAwhile (j n) //ps[m] ps[j]是什么类型 listDATA::iterator{if (pFunc(*ps[j], *ps[m]))m j;j;}if (m ! i){listDATA::iterator t ps[m];ps[m] ps[i];ps[i] t;}i;}PrintPS(ps);delete []ps; }主函数 文件名main.cpp #include Student.h void main() {CStudent st;st.Start(); }
http://www.yutouwan.com/news/485291/

相关文章:

  • 网站开发遇到的问题湖北做网站价格
  • wordpress 音乐站主题网站建设费的会计分录
  • 华为弹性云做网站湖南做网站 f磐石网络
  • 建设银行河南分行网站电子商务网站是什么
  • 织梦网站专题页面如何做网站版面布局设计的原则
  • 网站建设内部链接怀宁做网站
  • 什么是网站建设技术个人建个网站多少钱
  • 什么网站用vue做的wordpress首页幻灯片插件
  • 中山优化网站手机网站 html
  • 湖南响应式网站方案做图素材网站开通会员哪个好
  • 网站设计培训学校有哪些公关到底做什么
  • 靖州网站建设兴趣电商平台有哪些
  • 优秀电商设计网站有哪些内容wordpress 经典案例
  • 网站负责人核验照片小程序定制开发哪家好
  • 旅游网站模板html免费下载网络优化有哪些主要流程
  • 无锡网站制作网站建设石家庄住房和城乡建设部网站
  • 一键制作单页网站郑州专业高校网站建设公司
  • 可以建网站的平台襄阳网站建设公司招聘
  • 绍兴模板建站代理网站空间怎么弄
  • 站长数据国外媒体报道
  • 古典 网站模板江苏省建筑工程集团有限公司
  • 浙江久天建设有限公司网站网站的结构类型
  • 教育网站官网入口重庆市建设工程信息网官网打不开
  • 百度网站做不做无锡网站制作优化
  • 网站备案被注销微信网站域名
  • 青岛南丰网站建设公司qq空间个人网站
  • 进度跟踪网站开发百度网盟网站有哪些
  • 医院网站实例莱芜都市网官网
  • 网站 语言切换怎么做暗色系网站
  • 学做网站有没有前途网站怎么营销推广