学生信息管理系统

包括:
学号
姓名
性别
年龄
系别
学生成绩

实现
****************************************"
1.增加学生信息
2、显示学生信息
3、删除学生信息
4、学生信息查找"<<endl<<endl ;
5、修改学生信息 ***************
0、系统安全退出
****************************************"
请选择:

    #include<iostream>#include<fstream>#include<iomanip>#include<stdlib.h>#include<Windows.h>#include<conio.h>using namespace std ;#define HEADER1 "      -------------------------学生成绩---------------------- \n"#define HEADER2 "     |   学号   |   姓名   |   性别   |   年龄   |   系别   |\n"#define HEADER3 "     |----------|----------|----------|----------|----------|\n"int num; //学生总数class Student             //定义学生类{public:char id[20];//学号 char name[20] ;//名字char sex[5] ;//性别int age ;//年龄char xibie[20] ;//系别Student *next ;void input() ;//输入函数void ReadFile(istream & in) ;//读取文件void show() ;//显示方法} ;void Student::input()     //输入学生信息函数{cout<<"\t\t学号:" ;cin>>id ;cout<<"\t\t姓名:" ;cin>>name ;cout<<"\t\t性别:" ;cin>>sex ;cout<<"\t\t年龄:" ;cin>>age ;cout<<"\t\t系别:" ;cin>>xibie ;}void Student::ReadFile(istream & in)        //读取文件{in>>id>>name>>sex>>age>>xibie ;}void Student::show()          //输出学生信息
{cout<<"     |"<<setw(5)<<id<<"     |"<<setw(5)<<name<<"     |"<<setw(8)<<sex<<"  |"<<setw(6)<<age<<"    |"<<setw(6)<<xibie<<"    |"<<endl ;cout<<"     |----------|----------|----------|----------|----------|\n" ;
}class StudentMassage      //定义学生信息类,包含各项处理功能
{public:StudentMassage() ;~StudentMassage() ;void ShowMenu() ;void Display() ;void AddItem() ;void Find() ;void save() ;void ModifyItem() ;void RemoveItem() ;void Swap(Student *p1 , Student *p2) ;void Sort() ;int ListCount() ;int Count() ;
private:Student *Head , *End ;ifstream in ;ofstream out ;Student *FindItem(char *id) ;Student *FindId(char *name) ;
} ;Student *StudentMassage::FindItem(char *id)
{Student *p ;for(p = Head ; p->next != End ; p = p->next)if(!strcmp(p->next->id ,id))return p ;return NULL ;
}Student *StudentMassage::FindId(char *name)
{Student *p ;for(p = Head ; p->next != End ; p = p->next)if(!strcmp(p->next->name ,name))return p ;return NULL ;
}StudentMassage::StudentMassage()   //构造函数
{Head = new Student ;Head->next = new Student ;End = Head->next ;in.open("学生成绩.txt") ;if(!in)cout<<"\n\t\t这是一个新系统,无学生信息,请先输入。"<<endl ;else{while(!in.eof()){End->ReadFile(in) ;if(End->name[0]=='\0')break ;End->next = new Student ;End = End->next ;}in.close() ;cout<<"\n\t\t读取学生信息成功!"<<endl ;}
}StudentMassage::~StudentMassage()       //析构函数
{Student *temp ;save() ;for(temp ; Head->next != End ; ){temp = Head->next ;Head -> next = Head ->next->next ;delete temp ;}delete Head , End ;
}void StudentMassage::ShowMenu()                      //显示菜单
{cout<<"\n\n\t\t\t\t 主菜单"<<endl<<endl<<endl ;cout<<"\t\t****************************************"<<endl<<endl ;cout<<"\t\t1、增加学生信息          2、显示学生信息"<<endl<<endl ;cout<<"\t\t3、删除学生信息          4、学生信息查找"<<endl<<endl ;cout<<"\t\t5、修改学生信息          ***************"<<endl<<endl ;cout<<"\t\t0、系统安全退出                         "<<endl<<endl ;cout<<"\t\t****************************************"<<endl<<endl<<endl ;cout<<"\t\t请选择:" ;
}void StudentMassage::Display()            //显示学生信息
{Student *p  ;cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;for(p = Head->next ; p != End ; p = p->next)p->show() ;cout<<"\n\n输入任意字符,继续......" ;getch() ;
}void StudentMassage::AddItem()      //添加学生信息
{End->input() ;End->next = new Student ;End = End->next ;cout<<"\n\t\t添加成功!"<<endl ;cout<<"\n输入任意字符,继续......" ;getch() ;
}void StudentMassage::Find()    //查找函数
{char id[20] , name[20] ;int x ;Student *p = NULL ;cout<<"\n\t\t****************************************\n" ;cout<<"\t\t\t  1、按学生学号查找"<<endl ;cout<<"\t\t\t  2、按学生姓名查找" ;cout<<"\n\t\t****************************************\n\n\t\t请选择:" ;cin>>x ;switch(x){case 1:                     //按学期查找{cout<<"\n\t\t请输入要查找的学生的学号:" ;int n;cin>>id ;n=StudentMassage::ListCount();cout<<"班级总人数为:"<<n;if(p = FindItem(id)){cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;for(int i=1;i <= n;i++){if(p = FindItem(id)){p->next->show() ;}}cout<<"\n请输入任意字符,继续......" ;getch() ;}else{cout<<"\t\t没有找到该学号的学生!"<<endl<<endl ;cout<<"请输入任意字符,继续......" ;getch() ;}} break ;case 2:                      //按班级查找{cout<<"\n\t\t请输入要查找的学生的班级:" ;cin>>name ;if(p = FindId(name)){cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;p->next->show() ;cout<<"\n请输入任意字符,继续......" ;getch() ;}else{cout<<"\n\t\t没有找到该班级的学生!"<<endl<<endl ;cout<<"请输入任意字符,继续......" ;getch() ;}} break ;}
}void StudentMassage::ModifyItem()     //修改学生信息
{char name[20] ;Student *p = NULL ;cout<<"\n\t\t请输入要修改的学生的姓名:" ;cin>>name ;if(p = FindItem(name)){cout<<"\n\t\t已找到该学生,请输入新的信息!"<<endl ;p->next->input() ;cout<<"\n\t\t修改成功!"<<endl ;Display() ;}else{cout<<"\n\t\t没有找到!"<<endl ;cout<<"\n输入任意字符!继续......." ;getch() ;}
}void StudentMassage::RemoveItem()      //删除学生信息
{char name[20] ;Student *p = NULL , *temp = NULL ;cout<<"\n\t\t请输入要删除的学生的姓名:" ;cin>>name ;if(p = FindItem(name)){temp = p->next ;p->next = p->next->next ;delete temp ;cout<<"\n\t\t删除成功!"<<endl ;Display() ;}else{cout<<"\t\t没有找到!"<<endl ;cout<<"输入任意字符!继续......" ;getch() ;}
}int StudentMassage::ListCount()   //返回记录的学生总数
{Student *p ;int n = 0 ;if(!Head)return 0 ;for(p = Head->next ; p != End ; p = p->next)n ++ ;num = n;return num ;
}int StudentMassage::Count()         //成绩统计
{Student *p ;int x ,count = 0 ;if(!Head){cout<<"\n\t\t没有资料可以统计!"<<endl ;return 0 ;}
}void StudentMassage::Swap(Student *p1 , Student *p2)       //交p1,p2学生信息
{Student *temp = new Student ;strcpy(temp->name , p1->name) ;strcpy(temp->id , p1->id) ;strcpy(p1->name , p2->name) ;strcpy(p1->id , p2->id) ;strcpy(p2->name , temp->name) ;strcpy(p2->id , temp->id) ;
}void StudentMassage::save()                    //存入文件
{out.open("学生成绩.txt");for(Student *p=Head->next;p!=End;p=p->next)out<<p->id<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<"\t"<<p->xibie<<"\t"<<'\n';out.close();cout<<"\n\t\t学生成绩文件保存成功!"<<endl ;cout<<"\n输入任意字符,继续......" ;getch() ;
}
int main()
{int x ;bool quit = false ;cout<<"\n\n\n\n\n\n\n\n" ;cout<<"\t\t********************************************"<<endl ;cout<<"\t\t         欢迎使用学生信息管理系统!"<<endl ;cout<<"\t\t********************************************"<<endl ;StudentMassage Grade ;Sleep(1000) ;while(!quit){system("cls") ;Grade.ShowMenu() ;cin>>x ;switch(x){case 0:quit = true ; break ;case 1:Grade.AddItem() ; break ;case 2:Grade.Display() ; break ;case 3:Grade.RemoveItem(); break ;case 4:Grade.ModifyItem(); break ;case 5:Grade.save() ; break ;case 6:Grade.Count() ; break ;}}return 0;
}

学生信息管理系统(c++源代码实现)相关推荐

  1. 学生管理系统c语言代码实验报告,C语言学生信息管理系统实验报告(含源代码).doc...

    实 验 四:结构体 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档的能力. 实验内容: 程序一:学生信息管理系统 编写 ...

  2. 快递信息管理系统源代码c++_学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生 ...

  3. JSP+SQL基于JSP的学生信息管理系统(源代码+论文+答辩PPT)

    随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长.面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然.通过该系统,可以做到信息的规范管理.科学统计和快速 ...

  4. 学生系统的java代码_java学生信息管理系统源代码

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: ...

  5. c语言编写老师信息系统源代码,学生信息管理系统c语言版源代码

    自己刚学习c语言时,老师让编写的一个学生信息管理系统,仅供参考!违版必究! ------------------------------------------------------------MR ...

  6. 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...

    这次更新的内容 1:优化了增加学生信息的函数 2:   增加了删除学生信息的功能 系统图 图片发自简书App 第一次见到的库和函数 #include "memory.h" void ...

  7. c语言程序设计课程设计学生信息管理系统,C语言程序设计课程设计报告----学生信息管理系统.doc...

    河南理工大学计算机学院 <C语言程序设计>课程设计报告 题目: 学生信息管理系统 专业: 计算机科学与技术 班级: 计算机XX班 学号: 311009033232 姓名: ***** 日期 ...

  8. 基于java的学生信息管理系统(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 内容摘要    - 2 - 引言    - 4 - 学生信息管理系统开发的意义和目的    - ...

  9. 学生成绩管理系统html代码,学生成绩管理系统(含源代码)30.doc

    学生成绩管理系统(含源代码)30 西安邮电学院 高级语言课程设计报告 题 目: 学 生 成 绩 管 理 系 统 系部名称 : 电子信息与工程系 专业名称 : 电子科学与技术 班 级 : 科技0701 ...

最新文章

  1. 截取前四位字符串_Python的字符串切片
  2. jsp,最常用的3个知识点
  3. Head First JSP---随笔三
  4. python数码时钟代码_Python+Pyqt实现简单GUI电子时钟
  5. php 删除单个文件大小,php删除指定大小的jpg文件
  6. C#LeetCode刷题之#876-链表的中间结点(Middle of the Linked List)
  7. 游标sql server_学习SQL:SQL Server游标
  8. Android Multimedia框架总结(二十)MediaCodec状态周期及Codec与输入/输出Buffer过程(附实例)
  9. 智慧城市——智慧社区解决方案
  10. 360张图围绕成为3d_3D设计将在10分钟内成为专业人士
  11. 电脑usb蓝牙的使用
  12. 抖音上坤之大强之作是什么意思
  13. 彻底解决spring mvc XSS漏洞问题(包括json的格式的入参和出参)
  14. 服务器输出音频文件,云服务器音频输出
  15. jmeter 打开报错_jmeter打开.jmx文件报错的解决办法
  16. D19-Acwing-实现DP第三节相关代码课程完结撒花~
  17. 寻仙手游服务器无响应,寻仙手游进不去解决方法 寻仙手游怎么玩不了
  18. Verilog专题(十六)移位寄存器(逻辑移位、算术移位、循环移位)
  19. ret2dl-resolve
  20. 2022年5月中国数据库排行榜:openGauss 黑马首登顶,AntDB 冲进20强

热门文章

  1. 在哪里学python-为什么要选择学python,亮点在哪呢?
  2. python自动化测试-python能够做软件的自动化测试吗?
  3. 自学python能找到工作吗-自学Python如何找工作?多久能找到工作?
  4. 语音识别在生活中的七个经典应用
  5. 消费者生产者代码之---一步一步带你写
  6. VUE图片裁剪功能vue-img-cutter
  7. android添加工程依赖工程,将项目依赖项添加到Android studio中的另一个项目
  8. linux 邮件服务器pop3,linux下用pop3收web电子邮箱_邮件服务器
  9. 用php写圣诞祝福页面,圣诞祝福文案 抖音圣诞节一句话祝福
  10. 【王道计组笔记】总线(4):总线操作和定时