c++课程终极作业,也有计算机大神的帮忙。。。

#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
struct Score{ double chinese;//语文成绩 
double math;//数学成绩 
double english;//英语成绩
};
struct Student{ string no;//学号 
string name;//姓名
 Score score;//成绩
};
/*第一个参数是学生结构体数组,第二个参数是人数*/
void print(Student stu[],int n)//输出
{ 
	for(int i=0;i<n;i++)
	{
		cout<<endl;
		cout<<"学号:"<<stu[i].no<<",姓名:"<<stu[i].name<<endl;
        cout<<"语文成绩:"<<stu[i].score.chinese<<endl;
        cout<<"数学成绩:"<<stu[i].score.math<<endl;
        cout<<"英语成绩:"<<stu[i].score.english<<endl;
        cout<<endl; }
}
void file_print(Student stu[],int n)//用于文件输出
{
	ofstream outfile("学生成绩文件.txt",ios::out);
	for(int i=0;i<n;i++)
	{
		outfile<<"学号:"<<stu[i].no<<",姓名:"<<stu[i].name<<endl;
        outfile<<"语文成绩:"<<stu[i].score.chinese<<endl;
		outfile<<"数学成绩:"<<stu[i].score.math<<endl;
		outfile<<"英语成绩:"<<stu[i].score.english<<endl;
		outfile<<endl;
	}
	cout<<"保存完成"; outfile.close();
}
/*放入学生结构体指针,返回人数*/
int input(Student *stu)//输入
{ 
	int n=0; while(true)
	{ 
		cout<<"请输入第"<<n+1<<"个学生的资料:"<<endl;
		cout<<"学号:";
		cin>>(stu+n)->no;
		if((stu+n)->no=="exit") break;
		cout<<"姓名:";
		cin>>(stu+n)->name;
		cout<<"语文成绩:";
		cin>>(stu+n)->score.chinese;
		cout<<"数学成绩:";
		cin>>(stu+n)->score.math;
		cout<<"英语成绩:";
		cin>>(stu+n)->score.english;
		cout<<"退出,请输入 exit "<<endl;
		cout<<endl;  n++; } return n;
}
/*第一个参数是学生结构体指针,第二个参数是学生学号,第三个是学生人数,返回人数*/
int del(Student *stu,string no,int n)//删除
{
	int index=-1;
	for(int i=0;i<n;i++)
	{
		if((stu+i)->no==no)
		{
			index=i;break;
		}
		if(index==-1)
		{
			cout<<"没有学号为"<<no<<"的学生!"<<endl;
			return n;
		}
		else{
			while(index<n-1)
			{
				*(stu+index)=*(stu+index+1);
				index++;
			}
			cout<<"删除成功!"<<endl; return n-1;}
	}
}
	/*第一个参数是学生结构体指针,第一个参数是学号,第三个是学生总人数*/
	bool change(Student *stu,string no,int n)//修改成绩
	{
		int index=-1;
		for(int i=0;i<n;i++)
		{
			if((stu+i)->no==no)
			{ 
				index=i;break;
			}
		}
		if(index==-1)
		{
			cout<<"没有学号为"<<no<<"的学生!"<<endl;
			return false;
		}
		else {cout<<"请输入语文成绩:"<<endl;
		cin>>(stu+index)->score.chinese;
		cout<<"请输入数学成绩:"<<endl;
		cin>>(stu+index)->score.math;
		cout<<"请输入英语成绩:"<<endl;
		cin>>(stu+index)->score.english;
		return true;
		}
	}
	/*第一个参数是学生结构体指针,第二个是学生人数,返回新的人数*/
	int add(Student *stu,int n)//添加
	{
		cout<<"学号:";
		cin>>(stu+n)->no;
		cout<<"姓名:";
		cin>>(stu+n)->name;
		cout<<"语文成绩:";
		cin>>(stu+n)->score.chinese;
		cout<<"数学成绩:";
		cin>>(stu+n)->score.math;
		cout<<"英语成绩:";
		cin>>(stu+n)->score.english;
		cout<<"退出,请输入 exit "<<endl;
		cout<<endl; return n+1;
	}

int main()
{
	Student *stu=new Student[100];
	int n;
	string str;
	cout<<"|================================================|"<<endl;
	cout<<"|          ★☆★学生成绩管理系统★☆★          |"<<endl;
	cout<<"|------------------------------------------------|"<<endl;
	cout<<"|           --制作人 :小蓝                       |"<<endl;
	cout<<"|================================================|"<<endl;
	cout<<"|------------------------------------------------|"<<endl;
	cout<<"|-------------------***登录***-------------------|"<<endl;
	cout<<"|------------------------------------------------|"<<endl;
	cout<<"|================================================|"<<endl;
	char* password="admin";
	char temppassword[255];
	do{
		cout<<"请输入你的密码:";
		cin>>temppassword;
		cout<<endl;
	}
	while(strcmp(temppassword,password));
	cout<<"登录成功!";
	cout<<"请建立你的数据!"<<endl; n=input(stu);
	while(true)
		cout<<"*******************************"<<endl;
	cout<<"*    输出学生信息,请输入1    *"<<endl;
	cout<<"*    删除学生信息,请输入2    *"<<endl;
	cout<<"*    修改学生成绩,请输入3    *"<<endl;
	cout<<"*    添加学生信息,请输入4    *"<<endl; cout<<"*    输出文件保存,请输入5    *"<<endl;
	cout<<"*    打开文本文件,请输入6    *"<<endl;  cout<<"*    退出,请输入 exit        *"<<endl;
	cout<<"*******************************"<<endl;
	cout<<endl;  cin>>str;
	if(str=="1") print(stu,n);
	else if(str=="2")
	{
		string no;
		cout<<"请输入要删除学生的学号";
		cin>>no;
		n=del(stu,no,n);
	}
	else if(str=="3")
	{
		string no;
		cout<<"请输入要修改成绩学生的学号:";
		cin>>no;
		if(change(stu,no,n)==false)
			cout<<"修改失败!"<<endl;
		else cout<<"修改成功!"<<endl;
	}
	else if(str=="4")
	{
		int bl=n;
		bl=add(stu,n);
		if(bl==n)
			cout<<"添加失败!"<<endl;
		else
		{
			cout<<"添加成功!"<<endl;
			n=bl;
		}
	}
	else if (str=="5")
	{
		file_print(stu,n);
	}
	else if (str=="6")
	{
		system("学生成绩文件.txt");
	}
	else if(str=="exit") return 0;
	else cout<<"您的输入有误!!"<<endl;
}
	/*cout<<"谢谢使用,再见!!"<<endl;
	return 0;*/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值