信息删除.cpp

来自「学生通讯录系统」· C++ 代码 · 共 104 行

CPP
104
字号
#include<iostream>
#include<fstream>
#include<iomanip>
#include"学生信息定义.h"
using namespace std;
void student::shanchu ()
{
	int i,j,a;
	student stu[60];
    string name;
	
    ifstream infile("studentnum.txt",ios::in);
	if(!infile)
	{
		cerr<<"studentnum.txt open error:"<<endl;
		exit(1);
	}
	infile>>stu_num;
	infile.close();
    ifstream infile1("student.txt",ios::in);
    if(!infile1)
	{
		cerr<<"student.txt open error:"<<endl;
		exit(1);
	}
	
    for(i=0;i<=stu_num;i++)
	{
    infile1>>stu[i].name
		>>stu[i].number
		>>stu[i].age
		>>stu[i].sex
		>>stu[i].addr
		>>stu[i].phone
		>>stu[i].room_num;
	}	
	infile1.close();
	cout<<"请输入您要删除的学生姓名:"<<endl;
   	cin>>name;
	for(i=0;i<=stu_num;i++)
	{

		if(name==stu[i].name)
		{
		cout<<"您要删除学生的信息为:"<<endl;
		cout<<""<<endl;
		cout<<"姓名  学号  年龄   性别        家庭住址        电话        寝室号"<<endl;
    cout<<setw(2)<<stu[i].name
		<<setw(7)<<stu[i].number
		<<setw(6)<<stu[i].age
		<<setw(6)<<stu[i].sex
		<<setw(16)<<stu[i].addr
		<<setw(17)<<stu[i].phone
		<<setw(8)<<stu[i].room_num<<endl;
		}
		a=i;
	}
	
	ofstream outfile("student.txt",ios::out);
	if(!outfile)
	{
		cerr<<"student.txt open error:"<<endl;
		exit(1);
	}
	for(i=0;i<=stu_num;i++)
	{
	
		if(name==stu[i].name)
		{
			for(j=1;j<a;j++)
			{
				outfile<<stu[i].name
					<<" "<<stu[i].number
					<<" "<<stu[i].age
					<<" "<<stu[i].sex
					<<" "<<stu[i].addr
					<<" "<<stu[i].phone
					<<" "<<stu[i].room_num<<endl;
			}//outfile.close();
			for(j=a+1;j<stu_num;j++)
			{
				outfile<<stu[i].name
					<<" "<<stu[i].number
					<<" "<<stu[i].age
					<<" "<<stu[i].sex
					<<" "<<stu[i].addr
					<<" "<<stu[i].phone
					<<" "<<stu[i].room_num<<endl;
			}
		}
	}
	outfile.close();
	cout<<"信息删除成功!"<<endl;
	stu_num--;
	ofstream outfile1("studentnum.txt",ios::out);
	if(!outfile1)
	{
		cerr<<"open error:"<<endl;
		exit(1);
	}
	outfile1<<stu_num;
    outfile1.close();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?