学生信息管理系统(控制台)
学生信息管理系统(控制台)

1.运行截图:注: 1.按c++,数学,英语依次排序;2.多出信息为文件原有信息。
2.源代码(所有代码均在.cpp文件中,所以有点乱; 另:在vs2013下编译通过,在vc6.0下需要将strcpy_s改为strcpy,某处的循环变量i 会出现错误,改为j 即可;文件需事先创建)#include<iostream>#include<string.h>#include<fstream>#include<iomanip>using namespace std;//------------------------------------------------------------////------------------------类----------------------------------////------------------------------------------------------------//////------------------------成绩类------------------------------//class CGrade{public:CGrade(){}CGrade(float fCpp, float fMath, float fEnglish);~CGrade();void setCpp(float fCpp);void setMath(float fMath);void setEnglish(float fEnglish);float getCpp();float getMath();float getEnglish();private:float fCpp, fMath, fEnglish;};//------------------SET方法------------------------------//void CGrade::setCpp(float fCpp){this->fCpp = fCpp;}void CGrade::setMath(float fMath){this->fMath = fMath;}void CGrade::setEnglish(float fEnglish){this->fEnglish = fEnglish;}//---------------------GET方法--------------------------//float CGrade::getCpp(){return this->fCpp;};float CGrade::getMath(){return this->fMath;};float CGrade::getEnglish(){return this->fEnglish;};//-------------------------------------------------------CGrade::CGrade(float fCpp, float fMath, float fEnglish){this->fCpp = fCpp;this->fMath = fMath;this->fEnglish = fEnglish;};CGrade::~CGrade(){};////-------------------------------学生类---------------------------------------// class CStudent{public:CStudent(){}CStudent(char sName[30],int nAge,char cSex,float fCpp,float fMath,float fEnglish);~CStudent();void setStudent(char sName[30], int nAge, char cSex, float fCpp, float fMath, float fEnglish);void showStudent();char* getStudentName();float getStudentCppGrade();float getStudentMathGrade();float getStudentEnglishGrade();private:char sName[30];char cSex;int nAge;CGrade Grade;};//---------------------------------------------------------------------------------------------------------void CStudent::setStudent(char sName[30], int nAge, char cSex, float fCpp, float fMath, float fEnglish){strcpy_s(this->sName, sName);this->nAge = nAge;this->cSex = cSex;Grade.setCpp(fCpp);Grade.setMath(fMath);Grade.setEnglish(fEnglish);};//----------------------------------------------------------------------------------------------------------float CStudent::getStudentCppGrade(){return Grade.getCpp();};float CStudent::getStudentMathGrade(){return Grade.getMath();};float CStudent::getStudentEnglishGrade(){return Grade.getEnglish();};//-----------------------------------------------------------------------------------------------------------CStudent::CStudent(char sName[30], int nAge, char cSex, float fCpp, float fMath, float fEnglish) :Grade(fCpp,fMath,fEnglish){strcpy_s(this->sName, sName);this->nAge = nAge;this->cSex = cSex;};void CStudent::showStudent(){cout << setw(10) << setiosflags(ios::left) << sName << setw(5) << setiosflags(ios::left) << nAge << setw(5) << setiosflags(ios::left) << cSex;cout << setw(5) << setiosflags(ios::left) << Grade.getCpp()<< setw(5) <<setiosflags(ios::left) << Grade.getMath() << setw(5) << setiosflags(ios::left) << Grade.getEnglish() << endl;}char* CStudent::getStudentName(){return sName;}CStudent::~CStudent(){};/////////////////////////////////////////////////////////////////////////////////-------------------------------函数----------------------------------------/////////////////////////////////////////////////////////////////////////////////////-----------------------------输入函数--------------------------------------//void Grade_input(int n, CStudent *student){float fCpp, fMath, fEnglish;char cSex;int nAge;student = new CStudent[n];cout << "请输入学生的基本信息,包括:姓名,年龄,性别(M/F),C++、数学、英语成绩"<< endl;for (int i = 0; i < n; i++){char sName[30] = { "\0" };cin >> sName >> nAge >> cSex >> fCpp >> fMath >> fEnglish;if (nAge >= 200 || nAge <= 0 || (cSex != 'm'&&cSex != 'M'&&cSex != 'f'&&cSex != 'F') || (fCpp>100 || fCpp <= 0 || fMath > 100 || fMath <= 0 || fEnglish > 100 || fEnglish <= 0))cout << "输入错误,请重新输入:" << endl;i--;continue;}student[i].setStudent(sName,nAge,cSex,fCpp,fMath,fEnglish);}ofstream Studentfile("F://student.dat",ios::in|ios::out|ios::ate|ios::binary);if (Studentfile.is_open()){for (int i = 0; i < n; i++){Studentfile.write((char*)&student[i], sizeof(student[i]));}}delete[] student;};//-------------------------重载函数:查找---------------------------------//bool Find(char* arr_1,char* arr_2){return !strcmp(arr_1,arr_2);};bool Find(float a, float b){if (a == b) return true;else return false;return false;};//--------------------------模板函数comp----------------------------------// template<class T>int comp(T a, T b){if (a > b) return 1;else if (a == b) return 0;else return -1;};//---------------------------Swap-----------------------------------//template <class T>void Swap(T &a,T &b){T temp;temp = a;b = temp;}//---------------------------排序函数(交换排序)-------------------------------//void Sort(CStudent* student,int n){for (int i = 0; i < n-1; i++){for (int j = i + 1; j < n; j++){if (comp(student[i].getStudentCppGrade(), student[j].getStudentCppGrade()) == -1)Swap(student[i], student[j]);else if (comp(student[i].getStudentCppGrade(),student[j].getStudentCppGrade()) == 0){if (comp(student[i].getStudentMathGrade(),student[j].getStudentMathGrade()) == -1)Swap(student[i], student[j]);else if (comp(student[i].getStudentMathGrade(),student[j].getStudentMathGrade()) == 0){if (comp(student[i].getStudentEnglishGrade(),student[j].getStudentEnglishGrade()) == -1)Swap(student[i], student[j]);}}}}};//-------------------------------获取人数---------------------------------//int getStudentNumber(){fstream Studentflie("F://student.dat", ios::in | ios::out | ios::binary);Studentflie.seekg(0, ios::end); //设置文件指针到文件流的尾部int ps = Studentflie.tellg(); //读取文件指针的位置return ps / sizeof(CStudent);}//////////////////////////////////////////////////////////////////////////////-------------------------------主函数-----------------------------------//////////////////////////////////////////////////////////////////////////////int main(){CStudent *student = NULL;int n=0,sum=getStudentNumber();char judge;fstream Studentflie("F://student.dat", ios::in | ios::out | ios::binary); fstream studentfile("F://sortst.dat", ios::out | ios::in |ios::binary); cout << "是否添加信息?Y/N" << endl;cin >> judge;if (judge == 'Y' || judge == 'y'){cout << "输入学生数目:";cin >> n;Grade_input(n, student);}n += sum;student = new CStudent[n];if (studentfile.is_open()){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));}Sort(student,n);cout << "排序如下:" << endl;for (int i = 0; i < n; i++){studentfile.write((char*)&student[i], sizeof(student[i]));student[i].showStudent();}}else{cout << "文件打开失败!" << endl;abort();}if (Studentflie.is_open()){for (int i=0;;i++){int Way=0,Err=0;float grade;char Judge;char Name[30] = { "\0" };//if (i != 0){cout << "是否继续查找:Y/N" << endl;cin >> Judge;if (Judge == 'N' || Judge == 'n'){break;}}//cout << "输入查询方式:" << endl;cout << "1.按姓名查找;" << endl;cout << "2.按成绩查找." << endl;cout << "输入:1/2:";cin >> Way;if (Way > 2 || Way < 0){cout << "输入错误,请重新输入!" << endl;continue;}if (Way == 1){cout << "输入姓名:";cin >> Name;for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(Name, student[i].getStudentName())){Err = 1;student[i].showStudent();}}}else if (Way==2){int way=0;cout << "输入查询科目:" << endl;cout << "1.C++;" << endl;cout << "2.数学;" << endl;cout << "3.英语;" << endl;cout << "4.不限科目." << endl;cout << "输入:1/2/3/4:";cin >> way;if (way>4||way<0){cout << "输入错误,请重新输入!" << endl;continue;}cout << "输入成绩:";cin >> grade;if (way == 1){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentCppGrade())){Err = 1;student[i].showStudent();}}}else if (way == 2){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentMathGrade())){Err = 1;student[i].showStudent();}}}else if (way == 3){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentEnglishGrade())){Err = 1;student[i].showStudent();}}}else if (way==4){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentCppGrade())){Err = 1;student[i].showStudent();}else if ( Find(grade, student[i].getStudentMathGrade()) ){Err = 1;student[i].showStudent();}else if ( Find(grade, student[i].getStudentEnglishGrade())){Err = 1;student[i].showStudent();}}}}if (Err != 1) cout << "没有找到对应项!" << endl;}}else{cout << "文件打开失败!" << endl;abort();}Studentflie.close();studentfile.close();delete[] student;return 0;}。
java控制台实现学生信息管理系统

java控制台实现学⽣信息管理系统简介最近学了java基础后对以前不会写的作业深有感触,想起以前各种在⽹上找资料找别⼈的代码参考,所以今天特地写了了简单的基于控制台的学⽣信息管理系统供还在学基础的同学参考,写的有问题的地⽅也希望能指出来,好了,下⾯开始进⼊正题。
环境我使⽤的是idea编译器和1.8的jdk版本,有使⽤1.7以下jdk版本的同学运⾏会报错,解决⽅法是把ArrayLis<Student> arrayList=new Array<>();改成 ArrayLis<Student> arrayList=new Array<Student>(),下⾯开始讲解学⽣信息管理系统的实现过程。
系统分析学⽣信息管理系统主要是实现让⽼师登⼊账号(账号和密码我设置的都是“123”,你们也可以改成其他的字符串)后可以对学⽣进⾏增删改查的操作和查看所有学⽣的信息,所以我各⾃定义了⼀个⽅法来实现它的功能。
代码实现⾸先定义⼀个学⽣类Student.java,关于toString是重写了⽗类也就是Object的⽅法,是⽤于⽅便查看结果的,学⽣的属性可以按需求添加多个,这⾥我为了⽅便只写了四个。
public class Student {//学号private int sno;//姓名private String name;//性别private String xes;//年龄private int age;//创建get/set⽅法public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getName() {return name;}public void setName(String name) { = name;}public String getXes() {return xes;}public void setXes(String xes) {this.xes = xes;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//重写toString⽅法⽅便打印@Overridepublic String toString() {return "Student{" +"sno=" + sno +", name='" + name + '\'' +", xes='" + xes + '\'' +", age=" + age +'}';}}然后定义⼀个结构类Structure.java,把需要实现的功能⽅法写出来。
学生信息管理系统用户使用说明书[修改版]
![学生信息管理系统用户使用说明书[修改版]](https://img.taocdn.com/s3/m/563034d73169a4517623a36e.png)
第一篇:学生信息管理系统用户使用说明书学生管理系统使用说明书配置源程序配置ODBC 运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Server 数据库。
关键操作步骤如下:(1)单击“开始”按钮,选择“程序”→“管理工具”→“数据源(ODBC)”命令,打开“ODBC数据源管理器”对话框,打开“用户DSN”选项卡。
(2)单击“添加”按钮,打开“创建新数据源”对话框,选择安装数据源的驱动程序,这里选择“SQL Server”。
(3)单击“完成”按钮,打开“创建到SQL Server的新数据源”对话框,在“名称”文本框中设置数据源名称为“mystudentsys”,在“描述”文本框设置数据源描述为“配置SQL Server数据库DSN”,在“服务器”下拉列表框中选择连接的数据库所在服务器为“(local)”。
(4)单击“下一步”按钮,选择“使用用户输入登录ID和密码的SQL Server验证”单选框,在“登录ID”文本框中输入SQL Server用户登录ID,这里为“sa”,在“密码”文本框中输入SQL Server用户登录密码。
(5)单击“下一步”按钮,选择“更改默认的数据库为”复选框,并在其下拉列表框中选择连接的数据库名称,这里选择“tb_student”,单击“下一步”按钮。
(6)单击“完成”按钮,打开“ODBC Microsoft SQL Server安装”对话框,显示新创建的ODBC数据源配置信息。
(7)单击“测试数据源”按钮测试数据库连接是否成功,如果测试成功,单击“确定”按钮,完成数据源配置。
附加SQL Server 2000数据库(1)将database文件夹中的两个文件拷贝到SQL Server 2000安装路径下的Data文件夹中。
(2)打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库”菜单项。
学生综合管理系统使用说明

学生综合管理系统使用说明一、学生用户1.系统登录用户在IE栏输入网址:登录到学生综合管理系统首页,如下图所示:图1-1在系统首页中输入用户名、密码和验证码,单击“登录”命令按钮进入学生综合管理系统主页面。
用户名为学生学号,初始密码为1111。
2.修改密码学生登录系统后在系统维护管理——个人信息中可以自己修改密码,如下图所示:图1-2学生进入系统以后,先修改密码,然后将自己的信息填写完整。
页面左边菜单工具栏里面点击学生基本信息——学籍管理,如图1-3显示灰色的地方学生没有办法修改,如果需要修改可以向辅导员申请,由辅导员进行修改,蓝色标注的地方学生可以自行修改。
图1-3然后再点击顶端的家庭基本信息,如图1-4学生如实填写信息。
这里有一个个人银行名称和银行卡号,刚开始可以不填,但是如果该学生评选上了国家助学金,这里应该根据学生资助中心要求选择银行,填写完成以后点击保存。
图1-43.奖助学金申请学生登录系统后看到的页面如图1-5:在资助项目中,学生可以看到资助名称、资助时间、申请状态、申请开始时间和申请结束时间等信息。
学生查看信息后可以根据自己的实际情况来填写申请理由进行申请。
学生点击不同的资助时间,即可进行相应的申请。
图1-5学生点击申请某项奖助学金以后,进入如图1-6所示界面,认真仔细填写。
申请理由字数必须在100-250之间,填写完成以后,先点击保存。
系统会保存学生的申请信息,但不会提交至辅导员,学生还可以修改申请信息。
如果学生对自己的信息进行确认后,点击提交,申请材料则上交至辅导员,此时学生不可修改自己的申请信息。
首页待办工作的状态栏显示辅导员审核中。
图1-6二、辅导员用户1.系统登录用户在IE栏输入网址:登录到学生综合管理系统首页,如下图所示:图2-1在系统首页中输入用户名、密码和验证码,单击“登录”命令按钮进入学生综合管理系统主页面。
用户名为辅导员名字的小写拼音,初始密码为888888。
2.修改密码辅导员登录系统后在系统维护管理——个人信息中可以自己修改密码,如下图所示:辅导员所带班级图2-23.奖助学金审核辅导员登录系统后看到的页面如图2-3:图2-3右边待办工作里面会显示最新需要处理的工作,点击操作栏的“审核”即可进行奖学金审核工作,进入如图2-4页面。
学生信息管理系统

学生信息管理系统学生信息管理系统是一种管理和记录学生信息的应用软件,它帮助学校、教育机构或任何需要追踪学生信息的组织管理学生数据。
学生信息管理系统能够帮助学校提高工作效率、更好地管理学生和家长之间的沟通,并确保学生信息的安全和保密。
一、系统架构学生信息管理系统通常分为三层:表示层、业务逻辑层和数据访问层。
表示层:表示层通常是一个网页或桌面应用程序,它提供了一个用户界面,以便用户与系统进行交互。
用户可以在表示层输入和查看学生信息,进行各种操作。
业务逻辑层:业务逻辑层控制着系统的功能和行为。
它处理用户操作和数据处理的逻辑,根据用户提供的指令将数据传递给数据访问层。
数据访问层:数据访问层负责与数据库交互,从数据库中存取数据,以供业务逻辑层使用。
数据访问层还负责验证用户输入的数据是否有效和准确,并将修改后的数据存回到数据库中。
二、系统功能1.学生管理学生信息管理系统可以存储和管理学生的个人信息、家庭背景、教育背景、成绩记录、考试安排、学费记录和缴费历史等信息。
学生信息可以根据不同的条件进行搜索和筛选,以便快速找到所需信息。
2.家长管理家长信息也可以存储在系统中,并与学生信息关联。
学生信息管理系统还可以处理家长与学校之间的沟通,例如查看成绩和课程表、约定会议时间、收取付款账单等。
3.教师管理教师信息可以存储在系统中,以便管理课程、考试和教学进度。
教师可以登录系统,并创建课程、设定考试时间、记录出勤和成绩,以及向系统添加课程资源和作业。
4.报表和分析学生信息管理系统可以生成各种报表和分析数据,以帮助学校和教育机构更好地了解学生的情况并做出决策。
例如,它可以生成出勤表、成绩单、排名榜、学生预测、学费收入等报表和图表。
5.考试管理学生信息管理系统能够处理考试管理,例如创建和安排考试、收集考试答案并计算分数等。
6.课程管理学生信息管理系统可以管理学校的全部课程信息,例如课程名称、课程编号、老师名称、教学地点、上课时间和课程资料等。
C实现简单的学生信息管理系统控制台程序

// StudentInformationSystem.cpp : Defines the entry point for the console application. //#include "stdafx.h"#include <cstring>#include <iostream>#include <conio.h>#include<vector>#include<algorithm>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(address, " 空", 50);strncpy_s(name," 空",30);{{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;strncpy_s(address, "空", 50);{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 << " 姓名:" << 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;cout << 学生信息" << endl;double Student::Student_ReadTotalGrade(){return gradeAll;}int Student::Student_ReadGradeRank(){return rankGrade;}int Student::Student_ReadTotalGradeRank(){return rankAll;}namespace studentInformation{std::vector<Student> studentVector;int flagStudentChoose=0;int flagStudentFound=1;}char *Student::Student_ReadName(){return name;}以上是基本数据结构的定义,同时定义了对数据的基//本操作。
C实现简单的学生信息管理系统控制台程序

C实现简单的学生信息管理系统控制台程序 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-<< endl << endl;cout << "按下1:进入学生信息管理系统." << endl;cout << "按下0:退出." << endl;cout << "-----------------------------------------------------" << endl<<endl<<endl;cin >> flagOperateInformation;();cout << endl;if (flagOperateInformation)EditMenu();}}<< 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;();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;}}}tudent_WritePersonalInformation(iD,name,address,phone);cout << "基本信息输入成功!" << endl<< "------------------------------" << endl;}tudent_WriteMaPhEgGrade(mathGrade, physicsGrade, englishGrade);cout << "学习成绩输入成功!" << endl<< "------------------------------" << endl;}tudent_WriteOtherGrade(peerGrade, teacherGrade, ethicGrade);cout << "其他成绩输入成功!" << endl<< "------------------------------" << endl;}RankByGrade();RankByTotalGrade();cout << "学生成绩录入成功!" << endl;cout << "-------------------------------------" << endl<<endl;}void SearchStudent(){using namespace std;using namespace studentInformation;char ID[13];cout << "请输入学生的学号:"<<endl;cin >> ID;();cout << "------------------------------"<<endl;int vectorSize = ();int i = 0;while ((i<vectorSize) & (flagStudentFound!=0)){flagStudentFound = strcmp(ID, studentVector[i].Student_ReadID());i = i + 1;}if (flagStudentFound == 0){flagStudentChoose = i - 1;flagStudentFound = 1;cout << "您所查找的学生信息如下:"<<endl;studentVector[flagStudentChoose].Student_DisplayInformation();}else{cout << "未找到该学生" << endl;}}void ModifyStudentInformation(){using namespace std;using namespace studentInformation;int searchVectorSize = ();if (searchVectorSize == 0){cout << "---------------------------------------" << endl;cout << "当前系统中没有学生信息,请先添加学生信息!" << endl;cout << "---------------------------------------" << endl;}else{SearchStudent();cout << "您想对该学生的信息进行修改吗" << endl;cout << "按下1:是的。
学生信息管理系统使用说明

学生信息管理系统系统使用说明功能标签:A用户登陆B管理员功能:浏览基本表、成绩查询、统计、添加、删除、修改C学生功能:个人信息、密码修改、课程信息、成绩查询使用说明:·本系统没用注册功能,需要管理员提前在数据库中将用户信息录入。
·系统测试使用的账号(管理员:99901,学生:66601)初始密码均为“123“用户登陆1、登陆网址:http://localhost/ttt打开学生信息管理系统登陆页面,在系统登陆页面中输入用户名和密码,并选择用户身份——学生和管理员分别具有不同的权限,登陆系统如图:输入用户名和密码选择用户身份系统登陆成功后,进入用户主页面,主页面分为学生主页面和管理员主页面。
一、管理员页面各功能:在管理员主页面有友好的欢迎信息、当前日期及供管理员使用的功能菜单,分别为:浏览基本表、成绩查询、统计、添加、删除、修改、退出登陆。
如下图:浏览基本表 菜单使用:1.点击“浏览基本表”单项,打开如下图所示页面2.选择要查询的表,然后点击“查询”按钮。
以查询学生基本信息表为例,查询结果如下图所示:在此安全退出系统选择要查询表,然后点击查询功能菜单成绩查询菜单使用:1.点击“成绩查询”菜单项,打开如下图所示页面:输入查询条件。
然后单击“查询”按钮2.输入查询条件。
若未输入姓名则查询忽略姓名一项。
班级、课程、所在系需进行选择。
查询“1班、数学、信息系”为例,查询结果如下“查询条件为:1班、数学、信息系”,查询结果如下统计菜单使用:1.点击“统计”菜单项,打开如下图所示页面:选择查询条件。
然后单击“查询”按钮2.输入查询条件。
查询“各门课的选修人数”的结果如下添加菜单使用:1.点击“添加”菜单项,打开如下图所示页面:选择要添加的表。
然后单击“添加”按钮2.选择查询条件后,单击“查询”按钮,打开如下页面:输入要添加的信息。
然后单击“确定”按钮删除菜单使用:1.点击“删除”菜单项,打开如下图所示页面:选择要删除信息的表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.运行截图:注: 1.按c++,数学,英语依次排序;2.多出信息为文件原有信息。
2.源代码(所有代码均在.cpp文件中,所以有点乱; 另:在vs2013下编译通过,在vc6.0下需要将strcpy_s改为strcpy,某处的循环变量i 会出现错误,改为j 即可;文件需事先创建)#include<iostream>#include<string.h>#include<fstream>#include<iomanip>using namespace std;//------------------------------------------------------------////------------------------类----------------------------------////------------------------------------------------------------//////------------------------成绩类------------------------------//class CGrade{public:CGrade(){}CGrade(float fCpp, float fMath, float fEnglish);~CGrade();void setCpp(float fCpp);void setMath(float fMath);void setEnglish(float fEnglish);float getCpp();float getMath();float getEnglish();private:float fCpp, fMath, fEnglish;};//------------------SET方法------------------------------//void CGrade::setCpp(float fCpp){this->fCpp = fCpp;}void CGrade::setMath(float fMath){this->fMath = fMath;}void CGrade::setEnglish(float fEnglish){this->fEnglish = fEnglish;}//---------------------GET方法--------------------------//float CGrade::getCpp(){return this->fCpp;};float CGrade::getMath(){return this->fMath;};float CGrade::getEnglish(){return this->fEnglish;};//-------------------------------------------------------CGrade::CGrade(float fCpp, float fMath, float fEnglish){this->fCpp = fCpp;this->fMath = fMath;this->fEnglish = fEnglish;};CGrade::~CGrade(){};////-------------------------------学生类---------------------------------------// class CStudent{public:CStudent(){}CStudent(char sName[30],int nAge,char cSex,float fCpp,float fMath,float fEnglish);~CStudent();void setStudent(char sName[30], int nAge, char cSex, float fCpp, float fMath, float fEnglish);void showStudent();char* getStudentName();float getStudentCppGrade();float getStudentMathGrade();float getStudentEnglishGrade();private:char sName[30];char cSex;int nAge;CGrade Grade;};//---------------------------------------------------------------------------------------------------------void CStudent::setStudent(char sName[30], int nAge, char cSex, float fCpp, float fMath, float fEnglish){strcpy_s(this->sName, sName);this->nAge = nAge;this->cSex = cSex;Grade.setCpp(fCpp);Grade.setMath(fMath);Grade.setEnglish(fEnglish);};//----------------------------------------------------------------------------------------------------------float CStudent::getStudentCppGrade(){return Grade.getCpp();};float CStudent::getStudentMathGrade(){return Grade.getMath();};float CStudent::getStudentEnglishGrade(){return Grade.getEnglish();};//-----------------------------------------------------------------------------------------------------------CStudent::CStudent(char sName[30], int nAge, char cSex, float fCpp, float fMath, float fEnglish) :Grade(fCpp,fMath,fEnglish){strcpy_s(this->sName, sName);this->nAge = nAge;this->cSex = cSex;};void CStudent::showStudent(){cout << setw(10) << setiosflags(ios::left) << sName << setw(5) << setiosflags(ios::left) << nAge << setw(5) << setiosflags(ios::left) << cSex;cout << setw(5) << setiosflags(ios::left) << Grade.getCpp()<< setw(5) <<setiosflags(ios::left) << Grade.getMath() << setw(5) << setiosflags(ios::left) << Grade.getEnglish() << endl;}char* CStudent::getStudentName(){return sName;}CStudent::~CStudent(){};/////////////////////////////////////////////////////////////////////////////////-------------------------------函数----------------------------------------/////////////////////////////////////////////////////////////////////////////////////-----------------------------输入函数--------------------------------------//void Grade_input(int n, CStudent *student){float fCpp, fMath, fEnglish;char cSex;int nAge;student = new CStudent[n];cout << "请输入学生的基本信息,包括:姓名,年龄,性别(M/F),C++、数学、英语成绩"<< endl;for (int i = 0; i < n; i++){char sName[30] = { "\0" };cin >> sName >> nAge >> cSex >> fCpp >> fMath >> fEnglish;if (nAge >= 200 || nAge <= 0 || (cSex != 'm'&&cSex != 'M'&&cSex != 'f'&&cSex != 'F') || (fCpp>100 || fCpp <= 0 || fMath > 100 || fMath <= 0 || fEnglish > 100 || fEnglish <= 0))cout << "输入错误,请重新输入:" << endl;i--;continue;}student[i].setStudent(sName,nAge,cSex,fCpp,fMath,fEnglish);}ofstream Studentfile("F://student.dat",ios::in|ios::out|ios::ate|ios::binary);if (Studentfile.is_open()){for (int i = 0; i < n; i++){Studentfile.write((char*)&student[i], sizeof(student[i]));}}delete[] student;};//-------------------------重载函数:查找---------------------------------//bool Find(char* arr_1,char* arr_2){return !strcmp(arr_1,arr_2);};bool Find(float a, float b){if (a == b) return true;else return false;return false;};//--------------------------模板函数comp----------------------------------// template<class T>int comp(T a, T b){if (a > b) return 1;else if (a == b) return 0;else return -1;};//---------------------------Swap-----------------------------------//template <class T>void Swap(T &a,T &b){T temp;temp = a;b = temp;}//---------------------------排序函数(交换排序)-------------------------------//void Sort(CStudent* student,int n){for (int i = 0; i < n-1; i++){for (int j = i + 1; j < n; j++){if (comp(student[i].getStudentCppGrade(), student[j].getStudentCppGrade()) == -1)Swap(student[i], student[j]);else if (comp(student[i].getStudentCppGrade(),student[j].getStudentCppGrade()) == 0){if (comp(student[i].getStudentMathGrade(),student[j].getStudentMathGrade()) == -1)Swap(student[i], student[j]);else if (comp(student[i].getStudentMathGrade(),student[j].getStudentMathGrade()) == 0){if (comp(student[i].getStudentEnglishGrade(),student[j].getStudentEnglishGrade()) == -1)Swap(student[i], student[j]);}}}}};//-------------------------------获取人数---------------------------------//int getStudentNumber(){fstream Studentflie("F://student.dat", ios::in | ios::out | ios::binary);Studentflie.seekg(0, ios::end); //设置文件指针到文件流的尾部int ps = Studentflie.tellg(); //读取文件指针的位置return ps / sizeof(CStudent);}//////////////////////////////////////////////////////////////////////////////-------------------------------主函数-----------------------------------//////////////////////////////////////////////////////////////////////////////int main(){CStudent *student = NULL;int n=0,sum=getStudentNumber();char judge;fstream Studentflie("F://student.dat", ios::in | ios::out | ios::binary); fstream studentfile("F://sortst.dat", ios::out | ios::in |ios::binary); cout << "是否添加信息?Y/N" << endl;cin >> judge;if (judge == 'Y' || judge == 'y'){cout << "输入学生数目:";cin >> n;Grade_input(n, student);}n += sum;student = new CStudent[n];if (studentfile.is_open()){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));}Sort(student,n);cout << "排序如下:" << endl;for (int i = 0; i < n; i++){studentfile.write((char*)&student[i], sizeof(student[i]));student[i].showStudent();}}else{cout << "文件打开失败!" << endl;abort();}if (Studentflie.is_open()){for (int i=0;;i++){int Way=0,Err=0;float grade;char Judge;char Name[30] = { "\0" };//if (i != 0){cout << "是否继续查找:Y/N" << endl;cin >> Judge;if (Judge == 'N' || Judge == 'n'){break;}}//cout << "输入查询方式:" << endl;cout << "1.按姓名查找;" << endl;cout << "2.按成绩查找." << endl;cout << "输入:1/2:";cin >> Way;if (Way > 2 || Way < 0){cout << "输入错误,请重新输入!" << endl;continue;}if (Way == 1){cout << "输入姓名:";cin >> Name;for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(Name, student[i].getStudentName())){Err = 1;student[i].showStudent();}}}else if (Way==2){int way=0;cout << "输入查询科目:" << endl;cout << "1.C++;" << endl;cout << "2.数学;" << endl;cout << "3.英语;" << endl;cout << "4.不限科目." << endl;cout << "输入:1/2/3/4:";cin >> way;if (way>4||way<0){cout << "输入错误,请重新输入!" << endl;continue;}cout << "输入成绩:";cin >> grade;if (way == 1){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentCppGrade())){Err = 1;student[i].showStudent();}}}else if (way == 2){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentMathGrade())){Err = 1;student[i].showStudent();}}}else if (way == 3){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentEnglishGrade())){Err = 1;student[i].showStudent();}}}else if (way==4){for (int i = 0; i < n; i++){Studentflie.read((char*)&student[i], sizeof(student[i]));if (Find(grade, student[i].getStudentCppGrade())){Err = 1;student[i].showStudent();}else if ( Find(grade, student[i].getStudentMathGrade()) ){Err = 1;student[i].showStudent();}else if ( Find(grade, student[i].getStudentEnglishGrade())){Err = 1;student[i].showStudent();}}}}if (Err != 1) cout << "没有找到对应项!" << endl;}}else{cout << "文件打开失败!" << endl;abort();}Studentflie.close();studentfile.close();delete[] student;return 0;}。