资源简介

完整的C++大作业,学生管理系统。包括文件记录查询,增加,删除,以及成绩的各种统计等。功能均反映在界面中。

资源截图

代码片段和文件信息

#include 

using std::cin;
using std::cout;
using std::cerr;
using std::endl;
using std::ios;

#include 

using std::ofstream;
using std::ifstream;
using std::fstream;

#include 
using std::string;

#include 
using std::setw;

int enterChoice();
void searchGrade(string names[]string ID[]int Chinese[]int Math[]int Eng[]int row);
void changeGrade(string names[]string ID[]int Chinese[]int Math[]int Eng[]int row);
void deleteGrade(string names[]string ID[]int Chinese[]int Math[]int Eng[]int& row);
void addGrade(string names[]string ID[]int Chinese[]int Math[]int Eng[]int& row);
int getRow(ifstream& inp);
void getID(ifstream& inpstring names[]string ID[]int Chinese[]int Math[]int Eng[]);
void countGrade(string names[]string ID[]int Chinese[]int Math[]int Eng[]int row);
void saveResult(string names[]string ID[]int Chinese[]int Math[]int Eng[]int row);

int main()
{
ifstream infile(“gradeInfo.txt“);

if(!infile){
cerr<<“文件打开错误gradeInfo.txt不存在.“< exit (1);}

int row=getRow(infile);
infile.close();//确定目前的学生数为row
    
ifstream infile2(“gradeInfo.txt“);

//最多提供60个学生的成绩管理.根据目前合理的课程班人数确定.可根据需要进行更改.
string names[60];   //学生姓名
string ID[60];      //学生学号
    int Chinese[60];    //语文成绩
int Math[60];       //数学成绩
int Eng[60];        //英语成绩
getID(infile2namesIDChineseMathEng);//从文件中读入学生资料.

infile2.close();

int part;      //其值代表了用户所选模块.
//系统的主菜单.用户选择将要进行的操作.
while(part!=4){
cout<<“\n    **欢迎进入学生信息管理系统**“< <<“------------------------------------“< <<“        请选择您要进行的操作“<     <<“         1-学生成绩信息维护“<     <<“         2-学生成绩信息查询“<     <<“         3-学生成绩统计“<     <<“         4-退出系统“< <<“------------------------------------“< cin>>part;
if (part==1){
        int choice;        //用户在信息维护模块所选择的执行功能.
while((choice=enterChoice())!=4){
switch(choice){
case 1:
addGrade(namesIDChineseMathEngrow);
break;
case 2:
deleteGrade(namesIDChineseMathEngrow);
break;
case 3:
changeGrade(namesIDChineseMathEngrow);
break;
default:
cerr<<“您的选择不正确“< break;
}
}
}                                                                    
if (part==2)
searchGrade(namesIDChineseMathEngrow);
if (part==3)
        countGrade(namesIDChineseMathEngrow);
}
return 0;
}

//此函数用于获取当前系统中存储获的学生信息条数.
int getRow(ifstream& inp)
{
int row=0;
string anameID;
int mark;
inp>>a>>a>>a>>a>>a;                            //跳过第一行的目录结构.
while(inp){
inp>>name>>ID>>mark>>mark>>mark;
row++;
}
return row-1;
}

//此函数用于从文本文档中读取数据到内存以备用户在终端进行操作.
void getID(ifstream& inpstring names[]string ID[]int Chinese[]int Math[]int Eng[])
{
string a;
inp>>a>>a>>a>>a>>a;                             //跳过第一行的目录结构.
int i=0;
while(inp

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        202  2009-06-22 04:33  C++大作业\gradeInfo.txt

     文件       8478  2009-06-22 05:09  C++大作业\课程设计大作业.cpp

     文件      42496  2010-06-28 15:13  C++大作业\课程设计报告.doc

     目录          0  2009-06-22 06:01  C++大作业

----------- ---------  ---------- -----  ----

                51176                    4


评论

共有 条评论