C实现简单的学生信息
管理系统控制台程序 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
//
#include "stdafx.h"
#include
#include
#include
#include
#include
class Student
{
private:
char idNumber[13]; //学号
char name[30]; //姓名
char address[50]; //地址
char telephone[14]; //电话号码
int gradeMath; //数学成绩
int gradePhysics; //物理成绩
int gradeEnglish; //英语成绩
double gradeMaPhEgAverage; //物数外平均
int rankGrade; //成绩排名
int gradeClassmate; //同学评分
int gradeTeacher; //老师评分
int gradeEthic; //道德评分
double gradeAll; //综合成绩
int rankAll; //综合排名
public:
Student(); //默认构造函数
void Student_WritePersonalInformation(char *iD, char *nam, char *add, char *tel); //更改学生信息
void Student_WriteMaPhEgGrade(int graMa, int graPh, int graEg); //更改学生考试成绩
void Student_WriteOtherGrade(int graCl, int graTe, int graEth); //更改学生其他成绩
void Student_DisplayInformation(); //显示学生信息
char *Student_ReadID();
double Student_ReadGrade();
double Student_ReadTotalGrade();
int Student_ReadGradeRank();
int Student_ReadTotalGradeRank();
void Student_WriteGradeRank(int ranGr); //更改学生成绩排名
void Student_WriteTotalGradeRank(int ranAl); //更改学生综合排名char *Student_ReadName();
};
Student::Student() //默认构造函数
{
strncpy_s(idNumber, "000000000000",12);
strncpy_s(name,"空",30);
strncpy_s(address, "空", 50);
strncpy_s(telephone, "空", 14); //电话号码
gradeMath=0; //数学成绩
gradePhysics=0; //物理成绩
gradeEnglish=0; //英语成绩
gradeMaPhEgAverage=0; //物数外平均
rankGrade=0; //成绩排名
gradeClassmate=0; //同学评分
gradeTeacher=0; //老师评分
gradeEthic=0; //道德评分
gradeAll=0; //综合成绩
rankAll=0; //综合排名
}
void Student::Student_WritePersonalInformation(char *iD, char *nam, char *add, char *tel)
{
strncpy_s(idNumber,iD,12);
strncpy_s(name, nam, 30);
strncpy_s(address, add,50);
strncpy_s(telephone, tel, 14);
}
void Student::Student_WriteMaPhEgGrade(int graMa, int graPh, int graEg) {
gradeMath = graMa;
gradePhysics = graPh;
gradeEnglish = graEg;
gradeMaPhEgAverage = (gradeMath + gradePhysics + gradeEnglish) / 3; }
void Student::Student_WriteOtherGrade(int graCl, int graTe, int graEth) {
gradeClassmate = graCl;
gradeTeacher = graTe;
gradeEthic = graEth;
gradeAll = gradeMaPhEgAverage*0.6 + gradeClassmate*0.1 + gradeEthic*0.1 + gradeTeacher*0.2;
}
void Student::Student_WriteGradeRank(int ranGr)
{
rankGrade = ranGr;
}
void Student::Student_WriteTotalGradeRank(int ranAl)
{
rankAll = ranAl;
}
void Student::Student_DisplayInformation()
{
using namespace std;
cout << "-------------------------------------" << endl;
cout << " 学生信息 " << endl;
cout << "姓名:" << name << endl
<< "学号:" << idNumber << endl
<< "地址:" << address << endl
<< "电话:" << telephone << endl
<< "数学成绩:" << gradeMath << endl
<< "物理成绩:" << gradePhysics << endl
<< "英语成绩:" << gradeEnglish << endl
<< "三科平均成绩:" << gradeMaPhEgAverage << endl
<< "学习成绩排名:" << rankGrade << endl
<< "同学评价得分:" << gradeClassmate << endl
<< "教师评价得分:" << gradeTeacher << endl
<< "道德修养评分:" << gradeEthic << endl
<< "综合成绩:" << gradeAll << endl
<< "综合成绩排名:" << rankAll << endl;
cout << "--------------------------------------" << endl; }
char *Student::Student_ReadID()
{
return idNumber;
}
double Student::Student_ReadGrade()
{
return gradeMaPhEgAverage;
}
double Student::Student_ReadTotalGrade() {
return gradeAll;
}
int Student::Student_ReadGradeRank()
{
return rankGrade;
}
int Student::Student_ReadTotalGradeRank()
{
return rankAll;
}
namespace studentInformation
{
std::vector
int flagStudentChoose=0;
int flagStudentFound=1;
}
char *Student::Student_ReadName()
{
return name;
}
//-----------------------以上是基本数据结构的定义,同时定义了对数据的基本操作。定义完毕了,接下来是功能函数--------------------
void MainMenu();
void EditMenu();
void AddStudentPersonalInformation(int mode);
void ModifyStudentInformation();
void SearchStudent();
void DeleteStudentInformation();
void DisplayStudentInformation();
void RankByGrade();
void RankByTotalGrade();
void RankByID();
bool CmpGrade(Student student1,Student student2); //这个函数的参数是两个Student类的对象
bool CmpTotalGrade(Student student1, Student student2);
bool CmpID(Student student1, Student student2);
void DisplayAllStudentInformation();
//-----------------------以下是主菜单界面函数-------------------------------------------------------------------------------
void MainMenu()
{
int flagOperateInformation = 1;
while (flagOperateInformation)
{
using namespace std;
cout << "-----------------------------------------------------" << endl;
cout << "欢迎进入学生信息管理系统V1.0." << endl << endl;
cout << "按下1:进入学生信息管理系统." << endl;
cout << "按下0:退出." << endl;
cout << "-----------------------------------------------------" << endl< cin >> flagOperateInformation; cin.clear(); cout << endl; if (flagOperateInformation) EditMenu(); } } //------------------------主菜单界面函数定义完毕-------------------------------------------------------------------------- //------------------------以下是编辑界面函数------------------------------------------------------------------------------ void EditMenu() { int flagContinueOperation = 1; while (flagContinueOperation) { flagContinueOperation = 0; using namespace std; cout << "--------------------------------------------" << endl; cout << " 主菜单 " << endl; cout << "按下1:添加学生信息." << endl; cout << "按下2:修改学生信息." << endl; cout << "按下3:删除学生信息." << endl; cout << "按下4:显示学生信息." << endl; cout << "按下5:按学号升序排序" << endl; cout << "按下6:读入已有信息(暂时没实现)" << endl; cout << "按下7:将信息输出(暂时没实现)" << endl; cout << "按下8:显示系统内所有学生的信息" << endl; cout << "按下0:返回上一级." << endl; cout << "--------------------------------------------" << endl << endl; cin >> flagContinueOperation; cin.clear(); cout << endl; switch (flagContinueOperation) { case 1:AddStudentPersonalInformation(1); break; case 2:ModifyStudentInformation(); break; case 3:DeleteStudentInformation(); break; case 4:DisplayStudentInformation(); break; case 5:RankByID(); break; case 6:cout << "功能暂未实现" << endl; break; case 7:cout << "功能暂未实现" << endl; break; case 8:DisplayAllStudentInformation(); break; case 0:break; } } } //----------------------------------------------------------------------------------------------------------------------- //-----------------------以下是添加信息的界面---------------------------------------------------------------------- void AddStudentPersonalInformation(int mode) { using namespace std; int flagAddPersonalInformation; int flagAddGrade; int falgAddOtherGrade; Student student1; studentInformation::studentVector.push_back(student1); int currentObjectPosition; if (mode == 1) currentObjectPosition = studentInformation::studentVector.size() - 1; else currentObjectPosition = studentInformation::flagStudentChoose; //-------------------------------------------------------------------------- cout << "请依次添加基本信息、学习成绩和其他成绩,且不要使用空格" << endl; cout << "-------------------------------------" << endl; cout << " 基本信息 " << endl; cout << "按下1:录入学生基本信息;" << endl << "按下0:跳过基本信息。"< <<"--------------------------------------"< cin.clear(); if (flagAddPersonalInformation) { char name[30]; char iD[13]; char address[50]; char phone[14]; cout << "请输入学生姓名:"; cin >> name; cin.clear(); cout << "请输入学生学号:"; cin >> iD; cin.clear(); cout << "请输入学生地址:"; cin >> address; cin.clear(); cout << "请输入学生电话:"; cin >> phone; cin.clear(); studentInformation::studentVector[currentObjectPosition].Student_WritePe rsonalInformation(iD,name,address,phone); cout << "基本信息输入成功!" << endl << "------------------------------" << endl; } //------------------------------------------------------------------------------------ cout << "-------------------------------------" << endl; cout << " 学习成绩 " << endl;