`
heglase
  • 浏览: 3348 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

学生信息管理

 
阅读更多



 1 学生类:

#pragma once
#include <iostream>
#include <string>
using namespace std;

class Student
{
public:
	
	Student(void)
	{
	}

	Student(int id,string name,double score):_id(id),_name(name),_score(score)
	{		 
	}

	virtual ~Student(void)
	{

	}
	int GetId()
	{
		return _id;
	}
	string GetName()
	{
		return _name;
	}
	double GetScore()
	{
		return _score;
	}
	
	void SetId(int id)
	{
		 _id=id;
	}
	void SetName(string name)
	{
		 _name=name;
	}
	void SetScore(double score)
	{
		 _score=score;
	}
private:
	int _id;
	string _name;
	double _score;

};

 

 

2 学生管理类:

#pragma once
#include <deque>
#include <string>
#include "Student.h"


typedef deque<Student> STU_LIST;
typedef STU_LIST::iterator  STU_LIST_ITER;
class StudentManager
{
public:
	StudentManager(void);
	virtual ~StudentManager(void);
	void AddStu(const Student&);
	void DelStu(int);
	Student& FindStu(int);
	void PrintStuByLikeName(string);
	void Display();
	void SaveFile( );
	StudentManager& ReadFile();
	Student& FindByIndex(int);
	void EditByIndex(int,int,string,double);
	
private:
	STU_LIST _stuList;
};
//———————————————————————————————


#include "StudentManager.h"
#include "Student.h"
#include <string>
#include <deque>
#include <iostream>
#include <sstream>
#include <fstream>
#include <iterator>
using namespace std;

StudentManager::StudentManager(void)
{
	 
}

void StudentManager::AddStu(const Student& s)
{
	_stuList.push_back(s);
}

void StudentManager:: Display()
{
	STU_LIST_ITER iter;
	Student stu;
	for(iter=this->_stuList.begin();iter!=this->_stuList.end();++iter)
	{
		stu=(*iter);
		cout<<stu.GetId()<<"    "<<stu.GetName()<<"    "<<stu.GetScore()<<endl;
	}
}


void StudentManager::DelStu(int id)
{
	STU_LIST_ITER it;
	for(it=this->_stuList.begin(); it!=_stuList.end(); )
    {
		Student stu=(* it);
		if(stu.GetId() == id)
        {
            it = _stuList.erase(it);
        }
        else
        {
            ++it;
        }
    }
}

void  StudentManager::PrintStuByLikeName(string likename)
{
	STU_LIST_ITER it;
	string::size_type position;
	for(it=this->_stuList.begin(); it!=_stuList.end(); )
    {
		Student stu=(* it);
		position= stu.GetName().find(likename);
		if(stu.GetName().npos != position )
        {
            cout<<stu.GetId()<<"    "<<stu.GetName()<<"    "<<stu.GetScore()<<endl;
			++it;
        }
        else
        {
            ++it;
        }
    }

}

void StudentManager::SaveFile( )
{
	 ofstream of("c:/1.txt");
	 
	STU_LIST_ITER iter;
	Student stu;
	for(iter=this->_stuList.begin();iter!=this->_stuList.end();++iter)
	{
		stu=(*iter);
		of<<stu.GetId()<<'\t'<<stu.GetName()<<'\t'<<stu.GetScore();
		if(iter!=this->_stuList.end()-1)//最后一行的换行符不加了。否则分割后有个空白行
		of<<'\n';
	} 

}

StudentManager& StudentManager::ReadFile()
{
	StudentManager* sm=new StudentManager;
	Student stu;
	char buf[1024];
	string message;
	ifstream ifile("c:/1.txt",ios::binary);
	 
	if(ifile)
	{
		 string sub_str;
		 stringstream ss;
		 stringstream ss2;//把变量统统提到变量外边
		while(ifile.good()&&!ifile.eof())
		{
			memset(buf,0,1024);
			ifile.getline(buf,1204);
			message = buf;    
			 
			ss<<message;
			int i=0;
			string stustring[3];
			 while(getline(ss,sub_str,'\t')) //以tab为间隔分割的内容
			 {  
				stustring[i]=sub_str;
				i++;
			 }

			  stu.SetId(atoi(stustring[0].c_str()));//转换
			   stu.SetName(stustring[1]);
			    stu.SetScore(atof(stustring[2].c_str()));
			  sm->AddStu(stu);
			  ss.clear();//清空
			 
		}
	}
return (*sm);
}

 

StudentManager::~StudentManager(void)
{
	_stuList.clear();
}

Student& StudentManager::FindByIndex(int index)
{
	return this->_stuList.at(index);
}

void StudentManager::EditByIndex(int index,int id,string name,double score)
{
	Student& stu=_stuList.at(index);
	stu.SetId(id);
	stu.SetName(name);
	stu.SetScore(score);
}

 

 

 

3 main

 

#include "Student.h"
#include "StudentManager.h"
#include <iostream>
#include <string>
using namespace std;

void main()
{
	StudentManager stum;
	cout<<"新增了三个学生"<<endl;
	Student stu(1,"sss",129);
	Student stu1(2,"aas",119);
	Student stu2(3,"dds",125.5);
	stum.AddStu(stu);//增
	stum.AddStu(stu2);
	stum.AddStu(stu1);
	stum.Display();//遍历
	cout<<"删了1个学生"<<endl;
	stum.DelStu(1);//删
	stum.Display();//遍历
	 cout<<"查找名字中含有s的学生"<<endl;
	stum.PrintStuByLikeName("s");//模糊查找
	stum.SaveFile();//保存到文件中

	 cout<<"保存文件后,load出来"<<endl;
	StudentManager stum2=	stum.ReadFile();//从文件中载入内存
	stum2.Display();
	 cout<<"修改下标为零的student后"<<endl;
	stum2.EditByIndex(0,999,"nyh",150.55);
	stum2.Display();
}

 
 
 

  • 大小: 67.7 KB
分享到:
评论

相关推荐

    学生信息管理系统 学生信息管理系统

    学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生信息...

    基于SSM框架的学生信息管理系统源码.zip

    基于SSM框架的学生信息管理系统源码基于SSM框架的学生信息管理系统源码基于SSM框架的学生信息管理系统源码基于SSM框架的学生信息管理系统源码基于SSM框架的学生信息管理系统源码基于SSM框架的学生信息管理系统源码...

    javaweb学生信息管理系统

    《JavaWeb学生信息管理系统详解》 JavaWeb学生信息管理系统是一个基于Web技术的教育管理平台,主要功能是实现对学生信息的高效管理和操作。本系统利用了JavaWeb技术栈,结合Maven构建工具,提供了登录、增删改查等...

    学生信息管理系统测试计划方案

    学生信息管理系统测试计划方案 概述 学生信息管理系统测试计划方案旨在确保学生信息管理系统的质量和可靠性,通过详细的测试计划和实施,确保系统的各个方面符合要求和规范。 测试目的 学生信息管理系统测试目的...

    UML系统设计(学生信息管理系统)

    UML 系统设计(学生信息管理系统) UML 系统设计是软件工程中一个重要的设计方法,它使用统一建模语言(UML)来对系统进行建模和设计。在本文中,我们将使用 UML 设计学生信息管理系统,涵盖系统的需求分析、静态...

    数据结构学生信息管理系统大作业

    简单的学生信息管理系统,可供提交大作业使用 功能包括.1.添加学生信息 2.删除学生信息 cout 修改学生信息 4.为学生添加课程 cout 导入学生信息 6.保存学生信息 cout 按学生学号排序 8.按学生姓名排序 cout 搜索...

    java学生信息管理系统文档

    "java学生信息管理系统文档" 本文档是关于基于Java图形编程的学生信息管理系统的设计与实现。该系统旨在实现信息化管理,能够进行信息存储、查询、修改等功能。系统由六个模块构成,包括学生管理系统的主界面模块、...

    学生信息管理系统(python+GUI+mysql).zip

    学生信息管理系统(python+GUI+mysql).zip,学生信息管理系统(python+GUI+mysql).zip,学生信息管理系统(python+GUI+mysql).zip 学生信息管理系统(python+GUI+mysql).zip,学生信息管理系统(python+GUI+mysql).zip,...

    JAVA+MYsql学生信息管理系统

    《JAVA+MySQL学生信息管理系统详解》 在信息技术日益发展的今天,学生信息管理系统的构建已经成为教育机构不可或缺的一部分。本文将深入探讨一个基于JAVA编程语言和MySQL数据库的学生信息管理系统,旨在阐述其设计...

    C语言课程设计-学生信息管理系统.doc

    学生信息管理系统课程设计 本课程设计的主要任务是建立一个学生信息管理系统,以C语言为编程语言,使用VC++6.0集成开发环境,旨在巩固和加深学生对C语言程序设计知识的理解,掌握面向过程和面向对象两种设计方法的...

    asp.net学生信息管理系统

    【ASP.NET学生信息管理系统详解】 ASP.NET是一种由微软公司开发的服务器端Web应用程序框架,用于构建功能丰富的、高性能的Web应用程序。在这个“ASP.NET学生信息管理系统”中,我们可以看到一系列的网页文件,这些...

    学生信息管理系统数据流图汇总.doc

    学生信息管理系统数据流图汇总是指学生信息管理系统中的数据流程图,旨在描述学生信息管理系统中的数据流向和处理过程。该系统主要涉及学生基本信息管理、学生异动信息管理、学生考勤管理、学生公寓管理、学生处分...

    学生信息管理系统

    学生信息管理系统由用户管理、班级管理、学生信息管理、教师信息管理、课程管理以及成绩管理等功能模块组成。具体的功能模块说明如下。 用户管理模块:该模块主要负责管理系统的用户信息,包括用户名、用户密码和...

    android版学生信息管理系统

    《Android版学生信息管理系统详解》 在信息化时代,学生信息管理系统的存在至关重要,它能够高效地收集、存储、处理和检索学生数据,为学校的日常管理提供便利。在Android平台上开发的学生信息管理系统,更是将这种...

    android studio 学生信息管理系统实现源码(安卓开发教程课后练习)

    android studio 学生信息管理系统实现源码(安卓开发教程课后练习)android studio 学生信息管理系统实现源码(安卓开发教程课后练习)android studio 学生信息管理系统实现源码(安卓开发教程课后练习)android ...

    基于SSM学生信息管理系统.zip

    学生 : 仅具有学生信息管理模块的查询及添加信息的权限* 教师 : 仅具有学生信息管理模块的所有权限,且在教师信息管理模块中只具有查询及添加信息的权限 除了源码还有教程以及视频部署和图文部署教程 视频教程地址:...

    Java+MySQL学生信息管理系统源码

    管理员端主要包括了基本信息管理、学生信息管理、教师信息管理、课程信息管理、信息查询和统计。教师端主要包括了成绩信息管理、成绩查询和统计。学生端主要包括了选课信息管理、我的成绩查看以及个人信息管理。整个...

    学生信息管理系统java课程设计(含源代码)

    学生信息管理系统Java课程设计报告 一、系统描述 学生信息管理系统是一个教育单位不可缺少的部分,旨在为学校相关工作人员提供一个功能齐全、简单易用的信息管理系统。该系统旨在解决传统人工管理方式的缺点,如...

    php学生信息管理后台系统

    在信息技术日益发达的今天,学生信息管理系统的构建显得尤为重要,它能够高效地处理大量的学生数据,提高学校管理效率。本文将详细解析一款基于PHP开发的学生信息管理后台系统,深入探讨其核心功能与实现方式。 ...

    Java学生信息管理系统(GUI+MySQL).zip

    Java学生信息管理系统(GUI+MySQL),Java学生信息管理系统(GUI+MySQL),Java学生信息管理系统(GUI+MySQL),Java学生信息管理系统(GUI+MySQL),Java学生信息管理系统(GUI+MySQL),Java学生信息管理系统(GUI...

Global site tag (gtag.js) - Google Analytics