📄 main.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 + -