搜索
您的当前位置:首页C++简单学生成绩管理系统(C++课程设计)

C++简单学生成绩管理系统(C++课程设计)

来源:飒榕旅游知识分享网
C++学生成绩管理系统

要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。 学生成绩管理系统分析:

学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。

学生成绩管理系统结构:

Main()函数 Menu()函数 Student() Add() Output() Find() Modify() 公有函数 Deleted() Sort() Save() Load() 重载符号 Student类 私有成员: char name[20]; char sex[5]; int number; int score[3]; int total; int average;

各个子函数功能及其流程:

1. 首先定义一个学生类Class Student;并定义其各个私有变量和公有函数

Class Student 私有变量 Class add output find delete modify save load 重载

2. Student();构造函数,用于初始化学生类中的各个变量并记录

3. Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容

主函数main() 菜单函数menu() 选择菜单中的选项添加学生信息 调用Add()函数 调用重载<<并添加信息

4. Output();函数:用于输出学生信息,包括学号姓名各科及总分平均成绩

主函数main() 菜单函数menu() 选择菜单中的选项输出学生信息 调用Output()函数 输出学生信息

5. Find();函数:用于查找学生各项信息。

主函数main() 菜单函数menu() 选择菜单中的选项查找学生信息 调用find()函数 要求输入学生姓名 查找并输出学生信息

6. modify();函数:用于修改学生各项信息。

主函数main() 菜单函数menu() 选择菜单中的选项修改学生信息 调用modify()函数 要求输入学生姓名 修改并保存学生信息

7. delete();函数:用于删除学生信息。

主函数main() 菜单函数menu() 选择菜单中的选项删除学生信息 调用delete()函数 要求输入学生姓名 删除学生信息

8.sort();函数:对学生各项信息进行排序操作.

主函数main() 菜单函数menu() 选择菜单中的选项学生信息排序 调用Sort()函数 完成排序操作

8. save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文件

将其中的学生信息显示出来

主函数main() 菜单函数menu() 选择菜单中的选项选保存或读取 调用load()函数 调用save()函数 按要求输入文件名 文件读取成功 文件保存成功

9.“=\"“〈<”“>〉”符号的重载:在各个函数处理数据过程中对这些的调用处理 函数源代码:

此函数源代码在VisualC++6。0环境下编译通过。具体如下: #include\"iostream.h” #include”conio.h\"

#include\"iomanip。h\" #include”stdio.h\" #include”string.h\" #include\"stdlib。h” #include\"fstream.h”

class student //定义学生类 {

private://定义学生类的私有成员 char name[20]; //名字 char sex[5]; //性别 int number; //学号 int score[3]; //分数 int total; //总分

int average; //平均分 public: //公有成员

student(); //学生构造函数,用于学生数据的初始化及保存学生数据 void add(); //添加学生信息函数 void output(); //输出学生信息函数 void find(); //查找学生数据函数 void modify(); //修改学生信息函数 void deleted(); //删除学生信息函数 void sort(); //排序函数

void save(); //保存学生信息并写入文件函数 void load (); //打开写有学生信息的文件的函数

student & operator=(student & T); //重载“=\"符号 friend istream & operator 〉〉 (istream & scin, student &s1); //重载“〉〉\"符号 friend ostream & operator 〈< (ostream & scout, student &s2); //重载“>〉”符号 };

student stu[100]; int n=0;

void student::add() //添加函数 {

char flag='Y’;

while(toupper(flag)==’Y’) {

cin>>stu[n]; n++;

cout〈<” 要继续添加吗(y/n)\"; cin〉〉flag;

if(toupper(flag)!=’Y’) {

if(toupper(flag)==’N’) {

break; } else {

cout〈<”错误,请重输:”; cin>〉flag; } } } }

void student::output() //输出函数 {

if(n!=0) { cout<〈\" ————-——————-—————---——---———-——--——--—-——-—————-—--—--—---—-----———--—--—-—\\n”;

cout<〈” number name sex math C++ English total average\\n”; cout<〈” -——-——-———-—--———-——-—————----——--—-————-———-----——————--—-—————-—-———————— \\n\"; for(int t=0;t〈n;t++) {

cout〈} }

getch(); }

void student::find() //查找函数 {

int f3=0;

char n1[20]; student temp; cout〈〈\" 输入你要查找的人的姓名: ”; cin〉>n1;

for(int j=0;jif(strcmp(stu[j].name,n1)==0) {

temp=stu[j]; f3=1; } }

if(f3==0)

cout〈<”对不起,没有你要查找的学生成绩”<〈endl;

else { cout〈〈\" —-————---————---——————-——————--—--——————————-—————-———--—-—-——-—---————--——\\n”; cout〈〈\" number name sex math C++ English total average\\n”; cout<〈” —--—-----—--—-——-—---—————--—————------—-————---——————--————-———--—-———--—— \\n”; cout<<” ”〈getch(); }

void student::modify() //修改函数 {

int f4=0; int t;

char n2[50];

cout<〈” 输入你要修改的人的姓名:\"; cin〉〉n2;

for(int j=0;jif(strcmp(stu[j]。name,n2)==0) { t=j; f4=1; } }

if(f4==0) cout〈〈”对不起,没有你要修改的学生成绩”〈〈endl; else { cout〈〈 ”请输入学号: \"; cin〉>stu[t]。number; cout〈< \" 姓名: \"; cin〉〉stu[t]。name; cout<〈 \" 性别 : ”; cin>〉stu[t]。sex;

cout<< ” 数学成绩: ”; cin〉〉stu[t].score[0]; cout<< \" C++成绩: ”; cin〉>stu[t]。score[1]; cout〈〈 ” 英语成绩: ”; cin〉〉stu[t].score[2];

stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2]; stu[t].average=stu[t]。total/3; cout〈〈\" 修改成功 !\"〈getch(); }

void student::deleted() //删除函数 {

char n3[20]; bool f5=0; char c; do{

cout<〈”请输入您要删除的学生姓名:”; cin〉〉n3;

for(int i=0;iif(strcmp(n3,stu[i].name)==0) { f5=1; n—-;

do{

stu[i]=stu[i+1]; i++;

}while(i<=n); } }

if(f5==0) cout〈〈\"您要求删除的对象本来就不存在!”; cout〈〈\"要继续删除吗?(y/n)”<〈endl; cin〉〉c;

if(toupper(c)!='Y’&&toupper(c)!=’N') { cout〈〈\"输入指令错误!请重新输入Y或N!\"〈〉c; }

}while(toupper(c)==’Y'); getch(); }

void student::sort() //排序函数 {

int i,j,k; student s3; for( i=0;i〈(n—1);i++) { k=i;

for(j=i+1;jif(stu[j].average〉stu[i]。average) k=j; if(k!=i) {

s3=stu[i];

stu[i]=stu[k]; stu[k]=s3; } }

cout<〈”\\n\\n排序成功!\\n\\n\"; }

void student::save() //保存函数 {

char filename1[20]; cout〈〈”请输入文件名: \"; cin>〉filename1;

ofstream fout(filename1,ios::app); if(!fout)cout〈<\"文件不能打开!”<〈endl; else {

for(int i=0;i〈n;i++) fout〈<’ '〈〈stu[i].name<〈’ ’〈fout.close(); getch(); }

void student::load() //读取函数 {

char filename2[20];

cout〈<\"请输入你要读取的文件名: ”; cin>〉filename2;

ifstream fin(filename2,ios::in); if(!fin)cout〈〈\"文件打不开 !”<〈endl; else {

for(int i=0;;i++,n=i—1) {

if(fin。eof())break; fin〉〉stu[i].name>>stu[i].sex〉>stu[i].number 〉〉stu[i]。score[0]〉>stu[i]。score[1]>〉stu[i]。score[2]〉〉stu[i]。total>〉stu[i]。average; }

cout<〈\"文件已读取成功!\"〈〈endl; }

fin.close(); getch(); }

student & student::operator=(student & T) //重载= {

strcpy(name,T。name); strcpy(sex,T.sex); number=T。number;

for(int i=0;i〈3;i++)score[i]=T。score[i]; total=T。total;

average=T。average; return ( * this ); }

ostream & operator 〈〈 (ostream & scout, student &s2) //重载〈〈 { cout〈〈setw(6)〈istream & operator 〉〉 (istream & scin,student &s1) //重载>> {

cout<〈 \" \学号:”; scin〉〉s1.number; cout<〈 ” \姓名:”; scin〉〉s1。name; cout〈〈 \" \性别 :\"; scin〉〉s1.sex; cout〈〈 \" \数学成绩:”; scin〉〉s1。score[0];

cout<〈 ” \C++成绩:\"; scin〉〉s1.score[1]; cout<< ” \英语成绩:”; scin>>s1.score[2];

s1。total=s1.score[0]+s1.score[1]+s1。score[2]; s1。average=s1。total/3; return scin; }

student::student() //构造函数 {

strcpy(name,\" \"); strcpy(sex,\" ”); number=0;

for(int i=0;i<3;i++)score[i]=0; total=0; average=0; }

void menu() //菜单函数 { cout〈〈”\\n\\n\\n学生成绩管理系统主菜单 \"<〈endl; cout<<”\\n\\n\\n1.添加学生信息 ”〈cout〈〈”7。保存数据 ”〈〈endl; cout〈<”8.读出数据 ”〈cout<〈”\\n\\n请选择(1~9)并按回车键确认:\"; }

int main() //主函数 {

int choose; student s; do{

menu();

cin〉>choose; switch(choose) {

case 1: s.add(); break; case 2: s.output(); break; case 3: s.find(); break; case 4: s.modify(); break; case 5: s.deleted(); break; case 6: s。sort(); break; case 7: s。save(); break; case 8: s。load(); break; default : break; }

}while(choose!=0); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top