




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c++课程设计--成绩管理系统成绩管理系统是一种常见的教务管理系统,用于存储和管理学校教学活动中的学生成绩信息。本文将设计一个基于C++语言的简单成绩管理系统,包括学生信息录入、成绩录入、成绩查询、成绩统计等功能。
一、系统功能设计
本系统将具有以下功能:
1.学生信息录入:包括学号、姓名、性别、班级等基本信息。学生信息将以文件形式进行存储,方便后续查询和统计。
2.成绩录入:根据学生的学号,录入对应科目的成绩。成绩信息将以文件形式进行存储,方便后续查询和统计。
3.成绩查询:根据学号或姓名,查询学生的成绩信息。查询结果将以列表的形式展示。
4.成绩统计:根据学科,统计学生的平均成绩、最高成绩和最低成绩。
二、系统模块设计
本系统将分为以下几个模块:
1.学生信息管理模块:用于学生信息的录入、查询和删除操作。
2.成绩管理模块:用于成绩的录入、查询和删除操作。
3.成绩统计模块:用于统计学生的成绩。
4.文件读写模块:用于将学生信息和成绩信息存储到文件中,以及从文件中读取信息。
三、系统详细设计
1.学生信息管理模块:
a.学生信息类(Student):包括学号(id)、姓名(name)、性别(gender)、班级(class)等属性。
b.学生信息管理类(StudentManager):包括学生信息的录入、查询和删除功能。
2.成绩管理模块:
a.成绩类(Score):包括学号(id)、科目(subject)和成绩(score)等属性。
b.成绩管理类(ScoreManager):包括成绩的录入、查询和删除功能。
3.成绩统计模块:
a.成绩统计类(ScoreStatistics):包括根据学科统计学生的平均成绩、最高成绩和最低成绩的功能。
4.文件读写模块:
a.文件读写类(FileIO):包括将学生信息和成绩信息写入文件、从文件读取学生信息和成绩信息的功能。
b.文件命名规则:学生信息存储在student.txt文件中,成绩信息存储在score.txt文件中。
四、系统流程设计
1.学生信息管理模块流程:
a.录入学生信息:用户输入学号、姓名、性别和班级信息,系统将信息保存到student.txt文件中。
b.查询学生信息:用户输入学号或姓名,系统读取student.txt文件中的学生信息,返回匹配的学生信息列表。
c.删除学生信息:用户输入学号,系统从student.txt文件中删除对应学生的信息。
2.成绩管理模块流程:
a.录入成绩信息:用户输入学号、科目和成绩,系统将信息保存到score.txt文件中。
b.查询成绩信息:用户输入学号或科目,系统读取score.txt文件中的成绩信息,返回匹配的成绩信息列表。
c.删除成绩信息:用户输入学号或科目,系统从score.txt文件中删除对应成绩的信息。
3.成绩统计模块流程:
用户选择要进行统计的学科,系统读取score.txt文件中的成绩信息,计算平均成绩、最高成绩和最低成绩,并输出结果。
四、系统测试
系统测试可以按照以下步骤进行:
1.录入几个学生的学号、姓名、性别和班级信息。
2.录入几个学生的成绩信息。
3.查询某个学生的成绩信息。
4.查询某门科目的成绩信息。
5.统计某门科目的平均成绩、最高成绩和最低成绩。
通过以上测试步骤,可以验证系统的各个功能是否正常工作。
五、总结
本文设计了一个基于C++语言的简单成绩管理系统,包括学生信息录入、成绩录入、成绩查询、成绩统计等功能。通过对系统的模块设计和流程设计,可以实现对学生信息和成绩信息的存储、查询和统计。六、代码实现
在实现成绩管理系统时,我们可以使用C++语言进行编码。下面是一个基于C++的简单成绩管理系统的代码示例:
```cpp
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
usingnamespacestd;
//学生信息类
classStudent{
private:
stringid;//学号
stringname;//姓名
stringgender;//性别
stringcls;//班级
public:
Student(stringid,stringname,stringgender,stringcls){
this->id=id;
this->name=name;
this->gender=gender;
this->cls=cls;
}
stringgetId(){
returnid;
}
stringgetName(){
returnname;
}
stringgetGender(){
returngender;
}
stringgetCls(){
returncls;
}
};
//学生信息管理类
classStudentManager{
private:
vector<Student>students;
public:
voidaddStudent(Studentstudent){
students.push_back(student);
}
voidremoveStudent(stringid){
for(autoit=students.begin();it!=students.end();++it){
if((*it).getId()==id){
students.erase(it);
break;
}
}
}
vector<Student>searchStudent(stringkeyword){
vector<Student>result;
for(autoit=students.begin();it!=students.end();++it){
if((*it).getId()==keyword||(*it).getName()==keyword)
result.push_back(*it);
}
returnresult;
}
};
//成绩类
classScore{
private:
stringid;//学号
stringsubject;//科目
intscore;//成绩
public:
Score(stringid,stringsubject,intscore){
this->id=id;
this->subject=subject;
this->score=score;
}
stringgetId(){
returnid;
}
stringgetSubject(){
returnsubject;
}
intgetScore(){
returnscore;
}
};
//成绩管理类
classScoreManager{
private:
vector<Score>scores;
public:
voidaddScore(Scorescore){
scores.push_back(score);
}
voidremoveScore(stringid,stringsubject){
for(autoit=scores.begin();it!=scores.end();++it){
if((*it).getId()==id&&(*it).getSubject()==subject){
scores.erase(it);
break;
}
}
}
vector<Score>searchScore(stringkeyword){
vector<Score>result;
for(autoit=scores.begin();it!=scores.end();++it){
if((*it).getId()==keyword||(*it).getSubject()==keyword)
result.push_back(*it);
}
returnresult;
}
};
//成绩统计类
classScoreStatistics{
private:
vector<Score>scores;
public:
voidsetScores(vector<Score>scores){
this->scores=scores;
}
doubleaverageScore(stringsubject){
intsum=0;
intcount=0;
for(autoit=scores.begin();it!=scores.end();++it){
if((*it).getSubject()==subject){
sum+=(*it).getScore();
count++;
}
}
return(double)sum/count;
}
intmaxScore(stringsubject){
intmax_score=INT_MIN;
for(autoit=scores.begin();it!=scores.end();++it){
if((*it).getSubject()==subject){
max_score=max(max_score,(*it).getScore());
}
}
returnmax_score;
}
intminScore(stringsubject){
intmin_score=INT_MAX;
for(autoit=scores.begin();it!=scores.end();++it){
if((*it).getSubject()==subject){
min_score=min(min_score,(*it).getScore());
}
}
returnmin_score;
}
};
//文件读写类
classFileIO{
public:
voidwriteStudents(vector<Student>students){
ofstreamfile("student.txt");
if(file.is_open()){
for(autoit=students.begin();it!=students.end();++it){
file<<(*it).getId()<<""<<(*it).getName()<<""<<(*it).getGender()<<""<<(*it).getCls()<<endl;
}
file.close();
}else{
cout<<"Unabletoopenfile."<<endl;
}
}
vector<Student>readStudents(){
vector<Student>students;
ifstreamfile("student.txt");
if(file.is_open()){
stringline;
while(getline(file,line)){
stringstreamss(line);
stringid,name,gender,cls;
ss>>id>>name>>gender>>cls;
students.push_back(Student(id,name,gender,cls));
}
file.close();
}else{
cout<<"Unabletoopenfile."<<endl;
}
returnstudents;
}
voidwriteScores(vector<Score>scores){
ofstreamfile("score.txt");
if(file.is_open()){
for(autoit=scores.begin();it!=scores.end();++it){
file<<(*it).getId()<<""<<(*it).getSubject()<<""<<(*it).getScore()<<endl;
}
file.close();
}else{
cout<<"Unabletoopenfile."<<endl;
}
}
vector<Score>readScores(){
vector<Score>scores;
ifstreamfile("score.txt");
if(file.is_open()){
stringline;
while(getline(file,line)){
stringstreamss(line);
stringid,subject;
intscore;
ss>>id>>subject>>score;
scores.push_back(Score(id,subject,score));
}
file.close();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论