21xrx.com
2024-12-23 02:36:43 Monday
登录
文章检索 我的文章 写文章
C++代码实现学生成绩查询系统
2023-07-01 07:12:57 深夜i     --     --
C++ 学生成绩 查询系统

学生成绩查询系统是学校统计学生成绩、管理学生信息的重要工具,采用计算机科技打造学生成绩查询系统能够大大提高查询效率,简化查询流程。本文将介绍如何使用C++代码实现学生成绩查询系统。

一、需求分析

在设计学生成绩查询系统前,我们需要明确系统需要具备的功能。一般而言,学生成绩查询系统应当包括以下功能:

1、添加学生信息:学生学号、姓名、性别、班级等;

2、添加学生成绩:学生各科成绩、总分、平均分等;

3、查询学生信息:根据学生学号或姓名查询学生信息;

4、查询学生成绩:根据学生学号或姓名查询学生成绩及平均分;

5、修改学生信息及成绩:根据学生学号或姓名修改学生信息及成绩;

6、删除学生信息及成绩:根据学生学号或姓名删除学生信息及成绩。

二、系统设计

根据以上需求,我们需要设计如下数据结构:

1、定义一个学生结构体,包含学号,姓名、性别、班级等信息;

2、定义一个成绩结构体,包含各科成绩、总分、平均分等信息;

3、定义对学生信息和成绩进行增加、删除、修改、查询等操作的函数;

4、利用文件存储学生信息和成绩。

三、核心代码

以下是C++代码实现学生成绩查询系统的核心代码,代码中所定义的结构体和函数,可以根据需要进行修改。

#include

#include

#include

using namespace std;

//定义学生信息结构体

struct studentInfo{

  char ID[10];  

  char Name[20];  

  char Gender[5];  

  char Class[20];  

};

//定义成绩结构体

struct scoreInfo  

  int Chinese;  

  int Math;  

  int English;  

  double AverageScore;  

;

//添加学生信息函数

void AddStudentInformation(studentInfo &student)  

  cout<<"请输入学生信息:"<

  cin>>student.ID>>student.Name>>student.Gender>>student.Class;  

  cout<<"成功添加"< <<"的信息"<

//添加学生成绩函数

void AddStudentScore(scoreInfo &score){  

  cout<<"请输入学生各科成绩:"<

  cin>>score.Chinese>>score.Math>>score.English;  

  score.AverageScore = (score.Chinese+score.Math+score.English)/3.0;  

  cout<<"成功添加学生成绩"<

}

//查询学生信息函数

void QueryStudentInformation(studentInfo student){

  ifstream inFile("studentInformation.txt",ios::in);

  if(!inFile){

    cout<<"打开文件失败"<

    exit(0);    

  }

  bool flag = false;

  while(inFile>>student.ID>>student.Name>>student.Gender>>student.Class){

    if(strcmp(student.ID,student.ID)==0 || strcmp(student.Name,student.Name)==0)

      flag = true;

      cout<<"学号:"< <<"  "<<"姓名:"< <<"   "<<"性别:"< <<"  "<<"班级:"< <

  }

  if(flag == false)

      cout<<"未找到"< <<"的信息!"<

  inFile.close();

}

//查询学生成绩函数

void QueryStudentScore(scoreInfo score){

  ifstream inFile("studentScore.txt",ios::in);

  if(!inFile){

      cout<<"打开文件失败"<

      exit(0);    

  }

  bool flag = false;

  while(inFile>>score.Chinese>>score.Math>>score.English>>score.AverageScore){

    if(strcmp(score.ID,score.ID)==0 || strcmp(score.Name,score.Name)==0)

      flag = true;

      cout<<"学号:"< <<"   "<<"姓名:"< <<"   "<<"语文成绩:"< <<"  "<<"数学成绩:"< <<"   "<<"英语成绩:"< <<"   "<<"平均分:"< <

  }

  if(flag == false)

      cout<<"未找到"< <<"的成绩"<

  inFile.close();

}

//修改学生信息及成绩

void ModifyStudent(studentInfo &student,scoreInfo &score){  

  cout<<"请输入需要修改信息的学生学号或姓名"<

  char searchInfo[10];  

  cin>>searchInfo;  

  bool flag = false;  

  ifstream inFile1("studentInformation.txt",ios::in);  

  ofstream outFile1("studentInformation_r.txt",ios::out);  

  while(inFile1>>student.ID>>student.Name>>student.Gender>>student.Class){  

    if(strcmp(student.ID,searchInfo) == 0 || strcmp(student.Name,searchInfo) == 0)  

      flag = true;  

      cout<<"修改学生信息:"<

      cin>>student.ID>>student.Name>>student.Gender>>student.Class;  

      cout<<"修改成功"<

      outFile1< <<" "< <<" "< <<" "< <

    else  

      outFile1< <<" "< <<" "< <<" "< <

  }  

  if(flag == false)  

    cout<<"未找到您要修改的学生信息"<

  inFile1.close();  

  outFile1.close();  

  remove("studentInformation.txt");  

  rename("studentInformation_r.txt","studentInformation.txt");  

  bool flag1 = false;  

  ifstream inFile2("studentScore.txt",ios::in);  

  ofstream outFile2("studentScore_r.txt",ios::out);  

  while(inFile2>>score.Chinese>>score.Math>>score.English>>score.AverageScore){  

    if(strcmp(score.ID,searchInfo) == 0 || strcmp(score.Name,searchInfo) == 0){  

      flag1 = true;  

      cout<<"修改学生成绩"<

      cin>>score.Chinese>>score.Math>>score.English;  

      score.AverageScore = (score.Chinese+score.Math+score.English)/3.0;  

      cout<<"修改成功"<

      outFile2< <<" "< <<" "< <<" "< <<" "< <<" "< <

    }  

    else  

      outFile2< <<" "< <<" "< <<" "< <<" "< <<" "< <

  }  

  if(flag1 == false)  

    cout<<"未找到您要修改的学生成绩"<

  inFile2.close();  

  outFile2.close();  

  remove("studentScore.txt");  

  rename("studentScore_r.txt","studentScore.txt");  

}

//删除学生信息及成绩

void DeleteStudent(studentInfo student, scoreInfo score){  

  cout<<"请输入需要删除信息的学生学号或姓名"<

  char searchInfo[10];  

  cin>>searchInfo;  

  bool flag = false;  

  ifstream inFile1("studentInformation.txt",ios::in);  

  ofstream outFile1("studentInformation_r.txt",ios::out);  

  while(inFile1>>student.ID>>student.Name>>student.Gender>>student.Class){  

    if(strcmp(student.ID,searchInfo) == 0 || strcmp(student.Name,searchInfo) == 0)  

      flag = true;  

      cout<<"删除成功"<

    else  

      outFile1< <<" "< <<" "< <<" "< <

  }  

  if(flag == false)  

    cout<<"未找到您要删除的学生信息"<

  inFile1.close();  

  outFile1.close();  

  remove("studentInformation.txt");  

  rename("studentInformation_r.txt","studentInformation.txt");  

  bool flag1 = false;  

  ifstream inFile2("studentScore.txt",ios::in);  

  ofstream outFile2("studentScore_r.txt",ios::out);  

  while(inFile2>>score.Chinese>>score.Math>>score.English>>score.AverageScore){  

    if(strcmp(score.ID,searchInfo) == 0 || strcmp(score.Name,searchInfo) == 0)  

      flag1 = true;  

      cout<<"删除成功"<

    else  

      outFile2< <<" "< <<" "< <<" "< <<" "< <<" "< <

  }  

  if(flag1 == false)  

    cout<<"未找到您要删除的学生成绩"<

  inFile2.close();  

  outFile2.close();  

  remove("studentScore.txt");  

  rename("studentScore_r.txt","studentScore.txt");  

}

//主函数

int main(){  

  studentInfo student;  

  scoreInfo score;  

  int select;  

  cout<<"***********************************"<

  cout<<"**   学生成绩查询系统     **"<

  cout<<"**   1.添加学生信息    **"<

  cout<<"**   2.添加学生成绩    **"<

  cout<<"**   3.查询学生信息    **"<

  cout<<"**   4.查询学生成绩    **"<

  cout<<"**   5.修改学生信息及成绩 **"<

  cout<<"**   6.删除学生信息及成绩 **"<

  cout<<"**   0.退出系统      **"<

  cout<<"***********************************"<

  while(1){  

    cout<<"请输入对应操作的数字"<

    cin>>select;  

    switch(select){  

      case 1: AddStudentInformation(student);break;  

      case 2: AddStudentScore(score);break;  

      case 3: QueryStudentInformation(student);break;  

      case 4: QueryStudentScore(score);break;  

      case 5: ModifyStudent(student,score);break;  

      case 6: DeleteStudent(student,score);break;  

      case 0: exit(0);  

      default: cout<<"请输入正确的操作数字"<

    }  

  }  

  return 0;  

}

四、总结

学生成绩查询系统是管理学生信息和成绩的重要工具,采用计算机科技打造学生成绩查询系统能够大大提高查询效率,简化查询流程。本文介绍了如何使用C++代码实现学生成绩查询系统,为你的编程之路提供了一定帮助。从本质上而言,学生成绩查询系统的关键是数据结构的设计、系统功能的实现。如何更好地组织数据、实现系统功能,是我们需要重点思考的问题。希望本文能够对你在学习C++编程的过程中有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复