设计一个学生信息管理系统,实现常见的学生基本信息的基本管理:
1. 有交互式方式
即用户可以根据提示进行操作学生信息如修改、删除、查找学生信息等操作
2. 有文件操作
学生信息存放在文件中,文件具体的地址不限制
3. 有链表结构
学生信息的基本单元存在链表中,可以进行链表的常用操作
4. 学生基本信息
学生学号(9位数字串)、姓名、性别、年龄
5. 将应用程序与存储做到有效分离: 如将应用操作用类表示,学生负责学生基本信息,链表类负责信息管理,程序类负责界面与交互

#include<iostream>
#include<string.h>
#include<fstream>
#include<stdlib.h>
using namespace std;class Node
{public:int number;char name[20];char sex[4];int age;Node * next;
};class Operator
{public:void CreateSort();void HeadSortAdd();// void TailSortAdd();char searchPrint();Node* searchReturn();void print();void PutToFile();void InFromFile(); void del(Node* a);void Modify(Node* a);void sort();int length=0;private:Node * head;Node * tail;};//----------------------------------------------------------------------------
void Operator::sort()
{Node *h=head;//int len=length; Node * t;Node * x;t=h->next;x=h->next;while(t->next!=NULL){while(x!=NULL){if(t->number>x->number){//int e;e=t->number;t->number=x->number;x->number=e;//char a[20];strcpy(a,t->name);strcpy(t->name,x->name);strcpy(x->name,a);//char b[4];strcpy(b,t->sex);strcpy(t->sex,x->sex);strcpy(x->sex,b);//int c;c=t->age;t->age=x->age;x->age=c;}x=x->next;}t=t->next;x=t->next;}
}void Operator::Modify(Node* a)
{int x=0;Node* p;p=a->next;cout<<endl;cout<<"学号\t\t姓名\t性别\t年龄"<<endl;cout<<p->number<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<endl<<endl;while(x!=1&&x!=2&&x!=3&&x!=4){cout<<"输入修改信息"<<endl<<"1.修改学号"<<endl<<"2.修改姓名"<<endl<<"3.修改性别"<<endl<<"4.修改年龄"<<endl;cin>>x;if(x==1){cout<<"学号修改为:";cin>>p->number;}if(x==2){cout<<"姓名修改为:";cin>>p->name;}if(x==3){cout<<"性别修改为:";cin>>p->sex;}if(x==4){cout<<"修改年龄:";cin>>p->age;}elsecout<<"输入错误!"<<endl;}
} void Operator::del(Node* a)
{Node* p;Node* b;b=a->next;p=b->next;a->next=p;free(b);length--;
} Node* Operator::searchReturn()
{Node* p;Node* c;c=head;p=head->next;int se=0;int i=0;while(se!=1&&se!=2){cout<<"输入查找信息"<<endl<<"1.查找学号"<<endl<<"2.查找姓名"<<endl;cin>>se;if(se==1){int xue;cout<<"输入学生的学号:";cin>>xue;while(p!=NULL){if(xue==p->number)  {if(i==1);return c;}elsep=p->next;    c=c->next;}}else if(se==2){char sname[20];cout<<"输入学生姓名:";cin>>sname;while(p!=NULL){if(strcmp(sname,p->name)==0){if(i==1);return c;}elsep=p->next;c=c->next;}}else{cout<<"输入错误,请重新输入";    }if(i!=1){cout<<"未找到"<<endl;exit(0);}}
}void Operator::InFromFile()
{tail=head; ifstream infile("实验四.txt");if(!infile){cout<<"open error";exit(1);}Node *p;//int i=1;p=head->next;while(infile.peek()!=EOF){p=new Node;infile>>p->number>>p->name>>p->sex>>p->age;//i++;tail->next=p;p->next=NULL;tail=p;length++;}}void Operator::PutToFile()
{ofstream outfile("实验四.txt");if(!outfile){cout<<"open error";exit(1);}Node *p;p=head->next;while(p!=NULL){outfile<<p->number<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<endl;p=p->next;}cout<<"已输出到文件“实验四.txt”"<<endl;
}
//
char Operator::searchPrint()
{Node* p;p=head->next;int se=0;int i=0;while(se!=1||se!=2){cout<<"输入"<<endl<<"1.查找学号"<<endl<<"2.查找姓名"<<endl;cin>>se;if(se==1){int xue;cout<<"输入查找学生的学号:";cin>>xue;while(p!=NULL){if(xue==p->number)    {cout<<"学号\t\t姓名\t性别\t年龄"<<endl;cout<<p->number<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<endl;if(i==1);return 0;}elsep=p->next;    }}else if(se==2){char sname[20];cout<<"输入查找学生姓名:";cin>>sname;while(p!=NULL){if(strcmp(sname,p->name)==0){cout<<"学号\t\t姓名\t性别\t年龄"<<endl;cout<<p->number<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<endl;if(i==1);return 0;}elsep=p->next;}}else{cout<<"输入错误,请重新输入";  }if(i!=1){cout<<"未找到"<<endl;exit(0);}}return 0;
}
//
void Operator::print()
{Node *p;p=head->next;for(int i=0;i<length;i++){cout<<"学号\t\t姓名\t性别\t年龄"<<endl;cout<<p->number<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<endl<<endl;p=p->next; }cout<<endl;
}
//
void Operator::CreateSort()
{head = new Node;head->next=NULL;tail=head;length=0;
}void Operator::HeadSortAdd()
{Node *p;int n;cout<<"输入你要“头插法”增加的学生数目:";cin>>n;for(int i=0;i<n;i++){p=new Node;cout<<"请以此输入学号、姓名、性别、年龄"<<endl;cin>>p->number>>p->name>>p->sex>>p->age;p->next=head->next;head->next=p;length++;cout<<endl;}
}void menu(Operator A)
{system("cls");cout<<"\t\t\t\tMENU\t\t"<<endl;cout<<"\t\t\t|---------------------------|\t\t"<<endl;cout<<endl;cout<<"\t\t\t|   [1]  建立数据/继续输入  |"<<endl;cout<<"\t\t\t|   [2]     查 找 数 据     |"<<endl;cout<<"\t\t\t|   [3]     添 加 数 据     |"<<endl;cout<<"\t\t\t|   [4]     删 除 数 据     |"<<endl;cout<<"\t\t\t|   [5]    输 出 到 文 件   |"<<endl;cout<<"\t\t\t|   [6]     排 序 数 据     |"<<endl;cout<<"\t\t\t|   [7]     修 改 数 据     |"<<endl;cout<<"\t\t\t|   [8]       退   出       |"<<endl;cout<<endl;cout<<"\t\t\t|---------------------------|\t\t"<<endl;   if(A.length!=0){cout<<"已存数据为:"<<endl;A.print();}
}//------------------------
int main()
{Operator A;Node* searchpoint;int choose;while(choose!=8){menu(A);cin>>choose;switch(choose){case 1:A.CreateSort();A.InFromFile();A.print();cout<<endl; system("pause");break;case 2:if(A.length==0){cout<<"目前无数据:"<<endl;system("pause");break;}A.searchPrint();cout<<endl; system("pause");break;case 3:if(A.length==0){cout<<"目前无数据:"<<endl;system("pause");break;}A.HeadSortAdd();cout<<endl;system("pause");break;case 4:if(A.length==0){cout<<"目前无数据:"<<endl;system("pause");break;}cout<<"删除数据!"<<endl;searchpoint=A.searchReturn();A.del(searchpoint);cout<<endl;system("pause");break;case 5:if(A.length==0){cout<<"目前无数据:"<<endl;system("pause");break;}A.PutToFile();cout<<endl;system("pause");break;case 6:if(A.length==0){cout<<"目前无数据:"<<endl;system("pause");break;}A.sort();cout<<endl;system("pause");break;case 7:if(A.length==0){cout<<"目前无数据:"<<endl;system("pause");break;}cout<<"修改数据!"<<endl;searchpoint=A.searchReturn();A.Modify(searchpoint);cout<<endl;system("pause");break;case 8:exit(0);cout<<endl;system("pause");break;default:cout<<"你使用了非法字符!"<<endl;cout<<endl;system("pause");break;}}return 0;
}

文件输入文件格式:

C++/学生信息管理系统相关推荐

  1. 【VB】学生信息管理系统5——数据库代码

    这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...

  2. 【VB】学生信息管理系统4——数据库的发展

    由于连接数据的时候出现了很多不懂得问题,为什么要连接,它是怎么连接的,查着查着,就越看越多.又不舍得就这么放过这些问题,所以就耐心看看究竟是怎么回事! 1.自从出现数据库,人们渴望用数据和应用程序做交 ...

  3. 【VB】学生信息管理系统3——连接数据库的前提

    在窗体设计和编写程序代码后,需要进行数据库的连接. 大概要做的:下载安装数据库--配置数据源ODBC--测试连接数据库--进行数据库中内容的添加. 关键是这些我都不会,这才是重点! 在学习数据库的过程 ...

  4. 【VB】学生信息管理系统2——窗体设计

    这次学生系统是照着书敲的,先敲完然后开始调试!中途遇到了很多问题,查了很多,这里不容易系统的总结!所以就针对各个问题,各个击破! 问题一:VB 6.0中,状态栏控件(sbstatusbar):右击选项 ...

  5. 【VB】学生信息管理系统1——系统设计怎样开始?

    历时两周完成用VB完成的学生信息管理系统.从刚开始只会敲好玩的小程序到现在完整的做出一个像样的系统.自己的编程思维进行了很大的跨越. 这次的学生信息管理系统让我从整体的角度看到了一个系统设计的过程. ...

  6. [置顶]完美简版学生信息管理系统(附有源码)管理系统

    简版学生信息管理系统 目前为止找到的简版系统中最新.最全的java类管理系统 点击进入简版系统 如果无法直接连接,请进入: https://blog.csdn.net/weixin_43419816/ ...

  7. c语言饭卡管理系统链表文件,C语言《学生信息管理系统》链表+文件操作

    今天带来的是一个链表版本的<学生信息管理系统>,功能包括:添加.显示.查询.删除.保存.读取,等功能模块,链表是C语言的进阶内容,希望大家好好学习,这里的代码可能会有一些瑕疵,希望大家提供 ...

  8. Python系列教程之学生信息管理系统

    1.上传图片/文件等资源 有时候需要添加一些附件,例如,新生刚入学,大家相互之间还不熟悉,希望能通过照片来加深印象,并且方便教学管理. 首先,对demo/urls.py文件进行改造,给urlpatte ...

  9. 教你如何运用python实现学生信息管理系统

    这篇文章主要为大家详细介绍了使用python实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现学生信息管理系统的具 ...

  10. php编写一个学生类_PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

最新文章

  1. C语言实现RC4序列密码
  2. 好久没写了,重装了系统重新配置的Live Writer,看看效果:
  3. Linux shell脚本基础学习详细介绍(完整版)一
  4. Python编程基础:第五十五节 map函数Map
  5. 数学建模学习笔记——微分方程建模
  6. python数据类型和数据运算
  7. ASP.NET Core 认证与授权[4]:JwtBearer认证
  8. python pytest allure_python测试框架pytest和测试报告allure的联合使用-----测试套件
  9. java long.max_value,Long + Long不大于Long.MAX_VALUE
  10. 微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能
  11. Docker学习のDocker初识
  12. Python-爬取我去图书馆座位编码
  13. 调查称82%网友面对安全问题无从下手
  14. 读取TXT文档数据生成词云图
  15. import错误:undefined symbol: _ZN6caffe26detail37_typeMetaDataInstance_preallocated_32E
  16. IEEE 754二进制浮点数算术标准
  17. Beyond Homophily in Graph Neural Networks: Current Limitations and Effective Designs 论文理解
  18. 学号,课程名查询成绩
  19. 云原生CI/CD:Tekton之trigger介绍
  20. 如何通俗地理解合同矩阵

热门文章

  1. Linux-Day3笔记
  2. 基于撮合交易的物流产业信息化
  3. 【UML建模】(3) UML建模之类图
  4. fiori 换行_《[家教初代]Cielo》七子姬 ^第31章^ 最新更新:2010-10-22 23:30:40 晋江文学城_手机版...
  5. 2019年回头看,英特尔要如何突破存储瓶颈?
  6. 2023年批量下载和改名音频专辑(系列3之selenium-wire方式)
  7. Shell编程——sed编辑器使用方法(详细图解各种使用方法例题)
  8. c语言用迭代法求最大公约数,用迭代法求两个数的最大公约数和最小公倍数
  9. SCI,EI收录的中国期刊
  10. 数学建模笔记-第十四讲-主成分分析