⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 用链表来实现的一个学生成绩管理管理系统
💻 CPP
字号:
#include"Student.h"

Student student;                           //定义全局变量
//////////////////////////////////////////////////////////////////////////
char menu(){                                 //主菜单函数menu()
	char choose;
	cout<<endl<<"欢迎使用此学生成绩管理系统"<<endl<<endl;
	cout<<"※※※※※※※※※※※※※※※※※※※※※\n"
		<<"※                                      ※\n"
		<<"※              功能菜单                ※\n"
		<<"※   -----------------------------      ※\n"
		<<"※    ☆1.读取文件建立链表              ※\n"
		<<"※    ★2.保存链表内容到文件中          ※\n"
		<<"※    ☆3.添加学生信息                  ※\n"
		<<"※    ★4.按学生姓名查找                ※\n"
		<<"※    ☆5.按学生学号查找                ※\n"
		<<"※    ★6.按学生学号删除                ※\n"
		<<"※    ☆7.查看所有学生信息              ※\n"
		<<"※    ★8.统计学生的平均分              ※\n"
		<<"※    ☆0.退出管理                      ※\n"
		<<"※                                      ※\n"
		<<"※※※※※※※※※※※※※※※※※※※※※\n";
	cout<<endl<<"请从上面的菜单中进行选择: ";
	cin >>choose;                               
	return choose;                              //返回用户的选择
} 
///////////////////////////////////////////////////////////////////////////////////                             
char command(string str) {
	char quit;
	while(true) {
		cout<<"还想继续"<<str<<"学生信息吗?(y/n):";
		cin>>quit;
		if(quit=='Y'||quit=='y'||quit=='N'||quit=='n') break;
		else cout<<"指令错误!"<<endl;
	}	
	return quit;
}
/////////////////////////////////////////////////////////////////////////////////
void buildList() {   //通过文件的读取来建立链表
	student.clear(); //清空链表
	student.readFile(); //读取文件
}
/////////////////////////////////////////////////////////////////////////////////
void saveList() {  //保存链表信息到文本中
	ofstream outfile;                   //对文件data.xls中的内容进行刷新                         
	outfile.open("student.txt",ios::out); //先清空student.txt 
    outfile.close();                   //关闭文件
	student.writeFile();
}
/////////////////////////////////////////////////////////////////////////////////
void getAverage() {
	string name;
	char quit;
	while(true) {                                         
		cout <<"请输入要统计平均分的学生姓名: ";         //提示用户输入
		cin>>name;                                		
		student.average(name);                        //调用student的成员函数Search()
		quit=command("统计平均分");
		if(quit=='N'||quit=='n') break;
	}
	return;
}
/////////////////////////////////////////////////////////////////////////////////
void input(int& num, string& name,Subject& subject,int& term) { //输入学生信息的函数 
	 cout<<"学号\t姓名\t语文\t数学\t英语\t政治\t历史\t学期\n";    //输出标题
	 cin>>num>>name>>subject.chinese>>subject.math>>subject.english;
	 cin>>subject.politic>>subject.history>>term;	                           
     return;
}
////////////////////////////////////////////////////////////////////////////////////
void addElement() {                                 //增加记录
	int num=0;                             
	string name="";	
	Subject subject;
	char quit;
	int term=0;		
	while(true){                              
		input(num, name,subject,term);                  //调用输入信息函数
		student.addItem(num,name,subject,term);              //调用
		quit=command("添加");
		if(quit=='N'||quit=='n') break;
	}
	return;
}
//////////////////////////////////////////////////////////////////////////////////
void findNum() {                               //按学生学号查找
	int num;                                    //编号为整数类型,因此定义为整型
	char quit;
	while(true) {                                        
		cout <<"请输入要查找的学生学号: ";         //提示用户输入
		cin>>num;                                  //num存储用户从键盘输入的编号值		
		student.searchItem(num);                        //调用student的成员函数Search()
		quit=command("查找");
		if(quit=='N'||quit=='n') break;
	}                          
	return;
}
////////////////////////////////////////////////////////////////////////////////
void findName(){                               //按学生姓名查找
	string name;
	char quit;
	while(true) {                                         
		cout <<"请输入要查找的学生姓名: ";         //提示用户输入
		cin>>name;                                		
		student.searchItem(name);                        //调用student的成员函数Search()
		quit=command("查找");
		if(quit=='N'||quit=='n') break;
	}
	return;
}
///////////////////////////////////////////////////////////////////////////////
void deleteNum() {                             //删除记录  
	int num;
	char quit;
	while(true) {                                        
		cout <<"请输入要删除的学生的学号:";          //提示用户怎么操作
		cin>>num;                              		                   
		student.deleteItem(num);   
		quit=command("删除");
		if(quit=='N'||quit=='n') break;
	}                           
	return;
}
////////////////////////////////////////////////////////////////////////////////
int main() {       //主函数
	char choose;                                           
	char quit;                                                
	while(true) {                                             
		choose=menu();                                        //调用菜单函数
		switch(choose) {                
		    case '0': cout<<"确定要退出学生成绩管理系统吗?(y/n): ";     //提示用户作出是否退出系统的选择
                      cin >>quit; 
			          if(quit=='y' || quit=='Y') return 0;  //当变量s是小写的y或者大写的Y时,退出
				      break;
			case '1': buildList();        break;                //从文本中读取内容建立链表
			case '2': saveList();         break;                //保存链表中的内容到文本中
			case '3': addElement();       break;                //添加学生信息
			case '4': findName();         break;                //按学生的姓名查找学生信息
			case '5': findNum();          break;                //按学生的学号查找学生信息
			case '6': deleteNum();        break;                //根据学号删除学生信息
			case '7': student.showList(); break;            //列出所有的学生信息  
			case '8': getAverage();  break;
			default:  cout<<"所输入的字符不符合,请重新输入!\n";                  //用户的输入不正确,提示错误输入,返回主菜单
	  }
	}
	return 0;                                               
}

⌨️ 快捷键说明

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