C+实现简单的学生信息管理系统控制台程序

// Stude ntln formati on System.cpp : Defines the entry point for the con sole applicati on.//#in clude "stdafx.h"#in clude <cstri ng>#in clude <iostream>#in clude vconi o.h>#in clude<vector>#i nclude<algorithm>class Stude nt{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 Stude nt_WritePers on alI nformati on( char *iD, char *n am, char *add, char *tel); // 更改学生信息void Student_WriteMaPhEgGrade(int graMa, int graPh, int graEg); // 更改学生考试成绩void Student_WriteOtherGrade(i nt graCl, i nt graTe, i nt graEth); // 更改学生其他成绩void Student_Displaylnformation(); // 显示学生信息char *Stude nt_ReadlD();double Stude nt_ReadGrade();double Stude nt_ReadTotalGrade();int Stude nt_ReadGradeRa nk();int Stude nt_ReadTotalGradeRa nk();void Student_WriteGradeRank(int ranGr); // 更改学生成绩排名void Stude nt_WriteTotalGradeRa nk(int ranAl); // 更改学生综合排名char *Stude nt_ReadName();};Student::Student() // 默认构造函数strncpy_s(idNumber, "000000000000",12);strncpy_s(name,"空",30);strncpy_s(address,"空", 50);strncpy_s(telephone,"空", 14); // 电话号码gradeMath=O; // 数学成绩gradePhysics=O; // 物理成绩gradeEnglish=O; // 英语成绩gradeMaPhEgAverage=O; // 物数外平均rankGrade=O; // 成绩排名gradeClassmate=O; // 同学评分gradeTeacher=0; // 老师评分gradeEthic=0; // 道德评分gradeAll=0; // 综合成绩rankAll=0; //综合排名}void Stude nt::Stude nt_WritePers on alI nformati on( char *iD, char *n am, char *add, char *tel) {strncpy_s(idNumber,iD,12);strn cpy_s( name, n am, 30);strn cpy_s(address, add,50);strn cpy_s(teleph one, tel, 14);}void Stude nt::Stude nt_WriteMaPhEgGrade(i nt graMa, i nt graPh, i nt graEg){gradeMath = graMa;gradePhysics = graPh;gradeE nglish = graEg;gradeMaPhEgAverage = (gradeMath + gradePhysics + gradeE nglish) / 3;}void Stude nt::Stude nt_WriteOtherGrade(i nt graCl, i nt graTe, i nt graEth){gradeClassmate = graCl;gradeTeacher = graTe;gradeEthic = graEth;gradeAll = gradeMaPhEgAverage*0.6 + gradeClassmate*0.1 + gradeEthic*0.1 + gradeTeacher*0.2; }void Stude nt::Stude nt_WriteGradeRa nk(i nt ranGr){ran kGrade = ran Gr;}void Stude nt::Stude nt_WriteTotalGradeRa nk(i nt ranAl){ran kAll = ran Al;}void Stude nt::Stude nt_Display In formati on()using n amespace std;cout << " ............................... " << en dl;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 << " ............................... " << en dl;}char *Stude nt::Stude nt_ReadlD(){retur n idNumber;}double Stude nt::Stude nt_ReadGrade(){return gradeMaPhEgAverage;}double Stude nt::Stude nt_ReadTotalGrade(){return gradeAll;}int Stude nt::Stude nt_ReadGradeRa nk(){return ran kGrade;}int Stude nt::Stude nt_ReadTotalGradeRa nk(){return ran kAll;}n amespace stude ntln formati on{std::vector<Stude nt> stude ntVector;int flagStude ntChoose=0;int flagStude ntFou nd=1;}char *Stude nt::Stude nt_ReadName()return n ame;// .................. 以上是基本数据结构的定义,同时定义了对数据的基本操作。

定义完毕了,接下来是功能函数.............void Mai nMen u();void EditMe nu();void AddStude ntPers on all nformati on (i nt mode);void ModifyStude ntl nformatio n();void SearchStude nt();void DeleteStude ntl nformatio n();void DisplayStude ntl nformati on();void Ran kByGrade();void Ran kByTotalGrade();void Ran kByID();bool CmpGrade(Student student1,Student student2); // 这个函数的参数是两个Student 类的对象bool CmpTotalGrade(Stude nt stude nt1, Stude nt stude nt2);bool CmpID(Stude nt stude nt1, Stude nt stude nt2);void DisplayAllStude ntl nformatio n();// .................. 以下是主菜单界面函数...................................................... void Mai nMen u(){int flagOperate In formati on = 1;while (flagOperate In formati on){using n amespace std;cout << " ............................................. " << en dl;cout << "欢迎进入学生信息管理系统V1.0." << endl << endl;cout << "按下1:进入学生信息管理系统."<< endl;cout << "按下0:退岀."<< endl;cout << " ............................................. " << en dl<<e ndl«e ndl;cin >> flagOperate In formati on;ci n.clear();cout << en dl;if (flagOperatel nformatio n)EditMe nu();}}// .................. 主菜单界面函数定义完毕.................................................... // .................. 以下是编辑界面函数.....................................................void EditMe nu(){int flagC on ti nueOperati on = 1;while (flagC on ti nueOperati on)flagC on ti nueOperati on = 0;using n amespace 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 << en dl;cin >> flagC on ti nueOperati on;ci n.clear();cout << en dl;switch (flagC ontin ueOperati on){case 1:AddStude ntPers on alI nformati on( 1); break;case 2:ModifyStude ntln formati on(); break;case 3:DeleteStude ntl nformatio n(); break;case 4:DisplayStude ntln formati on(); break;case 5:Ra nkBylD(); break;case 6:cout << "功能暂未实现"<< endl; break;case 7:cout << "功能暂未实现"<< endl; break;case 8:DisplayAllStude ntln formati on(); break;case 0:break;}}}// ...................................................................................................// .................. 以下是添加信息的界面................................................. void AddStude ntPers on all nformati on (i nt mode){using n amespace std;int flagAddPers on all nformati on;int flagAddGrade;int falgAddOtherGrade;Stude nt stude nt1;stude ntl nformati on::stude ntVector.push_back(stude nt1);int curre ntObjectPositi on;if (mode == 1)curre ntObjectPositi on = stude ntln formati on::stude ntVector.size() - 1;elsecurre ntObjectPositi on = stude ntl nformati on::flagStude ntChoose;//.............................................................cout << "请依次添加基本信息、学习成绩和其他成绩,且不要使用空格” << endl;cout << " ................................" << en dl;cout << " 基本信息"<< endl;cout << "按下1 :录入学生基本信息;"<< endl<< "按下0 :跳过基本信息。

合集下载

C#控制台实现模拟学生管理系统

C#控制台实现模拟学生管理系统

C#控制台模拟学生管理系统最终运行效果添加学生删除学生修改学生代码如下using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace SGMS{class Program{static void Main(string[] args){List<Student> lstStudent = new List<Student>();bool flag = true;while (flag){Console.WriteLine("------------------------------------------------");Console.ForegroundColor = ConsoleColor.Red;Console.WriteLine("使用提示(按键-操作):A-添加D-删除C-修改L-查看");Console.ForegroundColor = ConsoleColor.Gray;Console.WriteLine("------------------------------------------------");ConsoleKey ck = Console.ReadKey(true).Key;switch (ck){case ConsoleKey.A:{//Console.ForegroundColor = ConsoleColor.Red;Console.WriteLine("请输入学生相关信息");//Console.ForegroundColor = ConsoleColor.Gray;Student stu = new Student();Console.Write("学号:");stu.stuNo = Console.ReadLine().Trim();Console.Write("姓名:");stu.stuName = Console.ReadLine().Trim();Console.Write("性别:");stu.stuSex = char.Parse(Console.ReadLine().Trim());Console.Write("年龄:");stu.stuAge = short.Parse(Console.ReadLine().Trim());lstStudent.Add(stu);Console.WriteLine("添加成功");break;}case ConsoleKey.D:{if (lstStudent.Count == 0){Console.WriteLine("系统还未添加任何学生信息");}else{Console.Write("请输入要删除的学生的学号:");string no = Console.ReadLine().Trim();for (int i = 0; i < lstStudent.Count; i++){if (lstStudent[i].stuNo == no){lstStudent.Remove(lstStudent[i]);Console.WriteLine("删除成功");break;}if (i == lstStudent.Count - 1)Console.WriteLine("抱歉!系统中没有这个学号");}}break;}case ConsoleKey.C:{if (lstStudent.Count == 0){Console.WriteLine("系统还未添加任何学生信息");}else{Console.Write("请输入要修改的学生的学号:");string no = Console.ReadLine().Trim() ;for (int i = 0; i < lstStudent.Count; i++){Student item = lstStudent[i];if (item.stuNo == no){Console.Write("学号:");item.stuNo = Console.ReadLine().Trim();Console.Write("姓名:");item.stuName = Console.ReadLine().Trim();Console.Write("性别:");item.stuSex = char.Parse(Console.ReadLine().Trim());Console.Write("年龄:");item.stuAge = short.Parse(Console.ReadLine().Trim());lstStudent[i] = item;Console.WriteLine("修改成功!");break;}if (i == lstStudent.Count - 1)Console.WriteLine("抱歉!系统中没有这个学号");}}break;}case ConsoleKey.L:{if (lstStudent.Count == 0)Console.WriteLine("系统还未添加任何学生信息");else{Console.WriteLine("学号\t姓名\t性别\t年龄");foreach (Student s in lstStudent){Console.WriteLine("{0}\t{1}\t{2}\t{3}",s.stuNo,s.stuName,s.stuSex,s.stuAge);}}break;}}}}//Main}//classstruct Student{public string stuNo;public string stuName;public char stuSex;public short stuAge;}}。

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

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

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;}。

学生管理系统c语言简单版

学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。

本文将介绍如何使用C语言编写一个简单的学生管理系统。

功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。

我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。

学生信息管理系统C程序

学生信息管理系统C程序

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>//getch();kibhit()的头文件struct student{int id;char name[20];char password[11];char classs[6];struct like{float physics;//物理float biology;//生物float chemistry;//化学}grade;int age;int ranking;};typedef struct student ST;//为已有的数据类型命名struct administrator{char name[20];char password[11];}ad={"lichao","12343456"};void Chushihua();//系统初始化函数void Stucpw(int i);//学生改密函数void Ssave(ST stu[30],int r);//系统保存函数void Stuadd();//添加学生函数int Save_enquiry();//修改确定询问函数void Studelete();//删除学生函数void Stualter();//修改学生函数void Sturefer();//学生查询函数void Sturank(ST stu0[30],int i);//终极排名函数void Stuclassesrank();//学生班级挑选函数void Stuallout();//少女通灵之术char* Passwordinputhide();int main(){int flag0=0;//选择登陆方式的标志int flag1;//密码错误次数标志int flag3;//选择操作方式的标志char ad_name[20];//输入的管理员名字char ad_password[11];//输入的管理员密码char stu_name[20];//输入的学生名字char stu_password[11];//输入的学生密码Chushihua();//判断系统是否需要初始化FILE *fp1,*fp2;ST stu[30];int i;//for控制变量int j;//临时控制变量int r;//学生人数/*printf("学生人数为%d。

C语言学生信息管理系统(源代码)

C语言学生信息管理系统(源代码)

#include <stdio.h>#include <string.h>/* 谭法建立单链表和输出单链表*/#include <malloc.h>#include <stdlib.h>typedef struct node{ int num;char name[20];struct node *next;}STD;#define LEN sizeof(STD)int menu_select();void handle_menu1();void game4();void game2();STD *insert(STD *head,STD *stud);STD *insert2(STD *head,STD *stud); void game3();void game5();STD *delete(STD*head,long num);void game1();void game6();STD *search(STD*head,long num);STD *head1,*head2;int n=0;/*追加法建表*/void creat1(void){ STD *p1,*p2;system("CLS");head1=NULL;p1=(STD *)malloc(LEN);p2=p1;printf("建表方法1追加法建表!\n");printf("输入学号姓名,若输入学号为0则退出建表!\n");scanf("%d%s",&p1->num,p1->name);while(p1->num!=0){ n++;if(n==1)head1=p1;elsep2->next=p1;p2=p1;p1=(STD *)malloc(LEN);scanf("%d%s",&p1->num,p1->name);}free(p1); p2->next=NULL;scanf("%*c");printf("按回车键继续!\n");getchar();system("CLS");return ;}/* 插入法建表*/void creat2(void){ STD *p1;head2=NULL;system("CLS");p1=(STD *)malloc(LEN);printf("建表方法2插入法建表!\n");printf("输入学号姓名(输入学号以0结束)!\n");scanf("%d%s",&p1->num,p1->name);while(p1->num!=0){ p1->next=head2;head2=p1;p1=(STD *)malloc(LEN);scanf("%d%s",&p1->num,p1->name);}scanf("%*c");printf("按回车键继续!\n");getchar();system("CLS");free(p1);return ;}/* 链表输出*/void print(STD *head){ STD *p;p=head;while (p!=NULL){ printf("学号%3d 姓名%s\n",p->num,p->name); p=p->next;} printf("链表为空!\n");scanf("%*c");printf("按回车键继续!\n");getchar();system("CLS");}/*-------------------------------------------------*//*--------------表1插入结点函数-------*//*-------------------------------------------------*/void game4(){char ch;STD *stud,*head=head1;system("CLS");printf("\t仅限在表1中插入!\n");printf("\t输入要插入结点的学号和姓名(以空格隔开):");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);if(stud->num<0){ printf("\t输入的学号不能为负数,请重新选择插入!\n");return;}while(stud->num>=0){head1=insert(head,stud);printf("\t继续插入新结点吗?(y/n):");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入新结点学号姓名:(输入n结束插入)");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/*-------------------------------------------------*//*--------------表2插入结点函数-------*//*-------------------------------------------------*/void game2(){char ch;STD *stud,*head=head2;system("CLS");printf("\t仅限在表2中插入!\n");printf("\t输入要插入结点的学号和姓名(以空格隔开):");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);if(stud->num<0){ printf("\t输入的学号不能为负数,请重新选择插入!\n");return;}while(stud->num>=0){head2=insert2(head,stud);printf("\t继续插入新结点吗?(y/n):");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入新结点学号姓名:(输入n结束插入)");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/**************************************//* 插入模块*//**************************************/STD *insert(STD *head,STD *stud){STD *p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num>p1->num)&&(p1->next!=NULL)){p2=p1; p1=p1->next;}if(p0->num<=p1->num){if(head==p1)head=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}n=n+1;printf("按回车键继续!\n");getchar();system("CLS");return (head);}/**************************************//* 插入模块2 *//**************************************/STD *insert2(STD *head,STD *stud){STD *p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num<p1->num)&&(p1->next!=NULL)){p2=p1; p1=p1->next;}if(p0->num>=p1->num){if(head==p1)head=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}n=n+1;printf("按回车键继续!\n");getchar();system("CLS");return (head);}/*-------------------------------------------------*//*--------------表1删除学生信息-------*//*-------------------------------------------------*/void game3(){ int num;char ch;STD *head=head1;printf("\t仅限在表1中删除!\n");printf("\t输入要删除的学号:");scanf("%*c");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新选择删除!\n");return;}while(num>=0){head=head1;head1=delete(head,num);printf("\t继续删除吗?(y/n):");scanf("%*c");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要删除的学号:(输入n结束删除!)");scanf("%*c");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/*-------------------------------------------------*//*--------------表2删除学生信息-------*//*-------------------------------------------------*/void game5(){ int num;char ch;STD *head=head2;printf("\t仅限在表2中删除!\n");printf("\t输入要删除的学号:");scanf("%*c");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新选择删除!\n");return;}while(num>=0){head=head2;head2=delete(head,num);printf("\t继续删除吗?(y/n):");scanf("%*c");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要删除的学号:(输入n结束删除!)");scanf("%*c");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/**************************************//* 删除模块*//**************************************/STD *delete(STD*head,long num){STD *p1,*p2;if (head==NULL) {printf("\n没有找到该学号!\n");return head;} p1=head;while(num!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num==p1->num){if(p1==head)head=p1->next;else p2->next=p1->next;printf("\n删除:%ld\n",num);n=n-1;}elseprintf("\n 没有发现此项! \n",num);system("CLS");return(head);}/*-------------------------------------------------*//*--------------表1查找学生信息-------*//*-------------------------------------------------*/void game1(){ int num;char ch;STD *head=head1;printf("\t仅限在表1中查找!\n");printf("\t输入要查找的学号:");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新查找!\n");return;}while(num>=0){head=head1;head1=search(head,num);printf("\t继续查找吗?(y/n):");scanf("%d",&num);ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要查找的学号:(输入n结束查找)");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/*-------------------------------------------------*//*--------------表2查找学生信息-------*//*-------------------------------------------------*/void game6(){ int num;char ch;STD *head=head2;printf("\t仅限在表2中查找!\n");printf("\t输入要查找的学号:");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新查找!\n");return;}while(num>=0){head=head2;head2=search(head,num);printf("\t继续查找吗?(y/n):");scanf("%d",&num);ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要查找的学号:(输入n结束查找)");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/**************************************//* 查找模块*//**************************************/STD *search(STD*head,long num){STD *p1,*p2;if (head==NULL) {printf("\n没有找到该学号!\n");return head;} p1=head;while(num!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num==p1->num)printf("\n%d %s\n",p1->num,p1->name);elseprintf("\n 没有发现此项! \n",num);return(head);}/* void main(){printf(" *** 运行结果***\n");printf("输入学号姓名(输入学号以0结束)!\n");creat1();print(head1);creat2();print(head2);} *///******************************//* select.cpp:主程序文件*//******************************void main(){handle_menu1();}//*****************************//* 菜单处理函数*//*****************************void handle_menu1(){int h;for(;;){h=menu_select();switch(h){ case 1:/* printf("\t进入追加法建表\n"); */creat1();break; /* 调用功能模块*/case 2:/* printf("\t进入插入法建表\n"); */creat2();break;case 3:/* printf("\t输出追加法链表的结果\n"); */print(head1);break;case 4:/* printf("\t输出插入法链表的结果\n"); */print(head2);break;case 5:/* printf("\t链表1插入\n"); */game4();break;case 6:/* printf("\t链表2插入\n"); */game2();break;case 7:/* printf("\t链表1删除\n"); */game3();break;case 8:/* printf("\t链表2删除\n"); */game5();break;case 9:/* printf("\t链表1查找\n"); */game1();break;case 10:/* printf("\t链表2查找\n"); */game6();break;case 11:printf("\t再见,欢迎再次使用本系统!谢谢!\n");return;}}}//**********************************//* 菜单选择函数: int menu_select()*//**********************************int menu_select(){int cn;for(;;){printf("\ \n");printf("\t1.追加法建表\n");printf("\ \n");printf("\t2.插入法建表\n");printf("\ \n");printf("\t3.输出链表1\n");printf("\ \n");printf("\t4.输出链表2\n");printf("\ \n");printf("\t5.插入链表1 \n");printf("\ \n");printf("\t6.插入链表2 \n");printf("\ \n");printf("\t7.删除链表1 \n");printf("\ \n");printf("\t8.删除链表2 \n");printf("\ \n");printf("\t9.查找链表1 \n");printf("\ \n");printf("\t10.查找链表2 \n");printf("\ \n");printf("\t11.退出系统\n");printf("\ \n");printf("\t请您选择1-11:");scanf("%d",&cn);//gets(s);//cn=atoi(s);if(cn<1||cn>11)printf("\n\t输入错误,重选1-11:");elsebreak;}return cn;}。

简单的学生信息管理系统(C语言)

简单的学生信息管理系统(C语言)

简单的学生信息管理系统(C语言)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include<stdio.h>#include<conio.h> //输入函数getch的头文件,不能用getchar,具体请查看两者的区别#include<stdlib.h> //申请空间的函数malloc的头文件typedef struct{ //定义结构体类型,包含四项内容,可以自由添加int num;char name[10];int age;char sex[5];}st;typedef struct node //构造结点(也是结构体变量){st data; //数据域struct node *next; //指针域(指向结构体,也就是自身)}list;list *create() //建立一个单链表{list *p,*r,*head; //定义结构体指针变量int i,n;head = (list *)malloc(sizeof(list)); //申请头结点r = head;head->next = NULL; //头结点的指针域先定义为空printf("请输入学生人数:\n");scanf("%d",&n);printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n");for(i=1;i<=n;i++){p = (list *)malloc(sizeof(list)); //申请一个结点scanf("%d%s%d%s",&p->data.num,&p->,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息p->next = NULL;r->next = p; //将头结点指向第一个结点,以此类推。

学生信息管理系统C语言程序代码

#include <iostream.h> #include <iomanip.h>#include <fstream>#include <vector>#include <malloc.h>#include <stdlib.h>#include <string>#include <process.h>#include <stdio.h>#define LEN sizeof(struct student)using namespace std;int n=0; //定义一个全局变量统计学生人数struct student//定义一个学生信息的构造体char name[20]; //用来存放姓名的char sex[20]; //用来存放性别的char yuanxi[20];//用来存放院系的long int id; //用来存放学号的int score[4]; //用来存放分数的int total; //用来存放总分数的struct student *next;vector <student> stu;class Informationpublic:Information() ; //构造函数.~Information() ; //析构函数.student *creat();//建立链表函数。

void output(student *head);int count(student *head);//定义函数count()统计考生总数student *insert(student*head);//指针函数*insert()用来添加考生信息.student *cancel(student *head,long int num);//指针函数*cancel()用来删除考生信息.student *find(student *head,long int num); //指针函数*find()用来查找考生信息.void inorder(student *head);//定义inorder()函数将考生的总分从大到小排列并输出void average( student *head);//求学生成绩的平均分的函数void save(student *head);//保存函数student *Read();//读取函数private:student *p1,*p2,*p3,*head,st;Information::Information() //构造函数cout<<"******************************************************************************\n";cout<<" ------------------------<<欢送您使用学生信息管理系统>>------------------------\n";cout<<"******************************************************************* ***********\n\n";Information::~Information() //构造函数cout<<"******************************************************************* ***********\n";cout<<" ------------------------<<谢谢您使用学生信息管理系统>>------------------------\n";cout<<"******************************************************************* ***********\n";student *Information::creat(void) //定义一个指向struct student的构造体指针函数*creat()用来增加学生信息.char ch[20];n=0; //用来存放姓名的p1=p2=(student *)malloc(LEN);//调用malloc()函数用来开辟一个新的存储单元cout<<" -------------<<请建立学生考试信息表,在姓名处输入! 完毕输入。

学生管理系统c语言简单版

学生管理系统c语言简单版介绍学生管理系统是一款用于学校或教育机构管理学生信息的软件。

本文将主要介绍一个基于C语言的学生管理系统的简单版本的设计与实现。

设计目标学生管理系统旨在提供以下功能: 1. 添加新学生信息。

2. 查找已存在的学生信息。

3. 修改学生信息。

4. 删除学生信息。

5. 显示学生信息列表。

思路与实现数据结构设计为了存储学生信息,我们将使用结构体作为数据类型。

每个学生都会有姓名、学号、年龄等属性。

因此,我们可以设计如下的结构体:typedef struct {char name[50];int studentID;int age;} Student;功能实现1. 添加学生信息用户可以通过输入学生的姓名、学号和年龄来添加新的学生。

系统将在内存中创建一个新的学生对象,并将其添加到学生信息列表中。

void addStudent(Student student) {// 将学生对象添加到学生信息列表}2. 查找学生信息用户可以通过输入学生的姓名或学号来查找已存在的学生。

系统将在学生信息列表中搜索匹配的学生,并将其信息显示给用户。

void searchStudent(char* query) {// 在学生信息列表中搜索匹配的学生并显示信息}3. 修改学生信息用户可以通过输入学生的学号来修改学生的其他信息。

系统将在学生信息列表中找到匹配的学生,并允许用户更新学生的姓名、年龄等属性。

void updateStudent(int studentID) {// 在学生信息列表中找到匹配的学生并更新信息}4. 删除学生信息用户可以通过输入学生的学号来删除学生的信息。

系统将在学生信息列表中找到匹配的学生,并将其从列表中删除。

void deleteStudent(int studentID) {// 在学生信息列表中找到匹配的学生并删除}5. 显示学生信息列表系统将按照添加学生的顺序,将学生信息列表显示给用户。

C实现简单的学生信息管理系统控制台程序

C实现简单的学生信息管理系统控制台程序学生信息管理系统是一种用于管理学生的基本信息的应用程序。

在这个系统中,可以实现学生信息的录入、修改、查询和删除等功能,以便对学生信息进行有效的管理和维护。

下面是一个用C语言实现的简单学生信息管理系统的示例代码。

```c#include <stdio.h>#include <stdlib.h>//定义学生结构体struct studentint id;char name[50];int age;};//全局变量,用于存储学生信息struct student students[100];int count = 0;//函数声明void menu(;void addStudent(;void listStudents(;void searchStudent(;void deleteStudent(;void updateStudent(;//主函数int maimenu(;return 0;//菜单函数void menint choice;doprintf("\n====== Student Information Management System ======\n");printf("1. Add student\n");printf("2. List students\n");printf("3. Search student\n");printf("4. Delete student\n");printf("5. Update student\n");printf("0. Exit\n");printf("Please enter your choice: "); scanf("%d", &choice);switch (choice)case 1:addStudent(;break;case 2:listStudents(;break;case 3:searchStudent(;break;case 4:deleteStudent(;break;case 5:updateStudent(;break;case 0:printf("Exit the system\n");break;default:printf("Invalid choice! Please try again\n");break;}} while (choice != 0);//添加学生函数void addStudenif (count >= 100)printf("The number of students has reached the upper limit!\n");return;}struct student newStudent;printf("Please enter student ID: ");scanf("%d", &newStudent.id);printf("Please enter student name: ");scanf("%s", );printf("Please enter student age: ");scanf("%d", &newStudent.age);students[count] = newStudent;count++;printf("Add student successfully!\n");//列出学生函数void listStudentif (count == 0)printf("No student information is available!\n");return;}printf("====== Student List ======\n");printf("ID\tName\t\tAge\n");for (int i = 0; i < count; i++)printf("%d\t%s\t\t%d\n", students[i].id, students[i].name, students[i].age);}void searchStudenif (count == 0)printf("No student information is available!\n"); return;}int id;printf("Please enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++)if (students[i].id == id)printf("Student Information:\n");printf("ID: %d\n", students[i].id);printf("Name: %s\n", students[i].name);printf("Age: %d\n", students[i].age);return;}}printf("Student with ID %d does not exist!\n", id);void deleteStudenif (count == 0)printf("No student information is available!\n"); return;}int id;printf("Please enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++)if (students[i].id == id)for (int j = i; j < count - 1; j++)students[j] = students[j+1]; // 将后面的学生信息往前移动}count--;printf("Delete student successfully!\n");return;}}printf("Student with ID %d does not exist!\n", id); //更新学生函数void updateStudenif (count == 0)printf("No student information is available!\n"); return;}int id;printf("Please enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++)if (students[i].id == id)printf("Please enter student name: ");scanf("%s", students[i].name);printf("Please enter student age: ");scanf("%d", &students[i].age);printf("Update student information successfully!\n"); return;}}printf("Student with ID %d does not exist!\n", id);```这是一个简单的学生信息管理系统控制台程序,实现了学生的添加、列出、查询、删除和更新等功能。

学生信息管理系统-C语言实现

#include〈stdio.h>#include〈stdlib.h〉#include<string.h〉int input(struct studcode **);//输入学生信息的函数void instruct(void);//打印提示信息void picture();//制表函数void output(struct studcode *);//输出函数void search(struct studcode *);//查找信息函数int increase(struct studcode *);//增加学生信息的函数void dele(struct studcode **);//删除学生记录的函数void printall(struct studcode *);//输出全部学生信息的函数void average(struct studcode *headp,struct analysis **head );//统计各科目平均分int sort(struct analysis **head);//排序函数(升序排列)void date_load(struct studcode **headp);//程序开始载入信息void date_save(struct studcode *headp);//程序结束保存数据struct analysis{char name_ex[20];//实验名称int number;//统计到课人数float aver;//平均分struct analysis *next;};struct student{char name_tea[20];//教师名字char name_stu[20];//学生名字char clas[20];//班级char name_ex[20];//实验名称float match;//分数};struct studcode{struct student date;struct studcode *next;//建立链表的指针};int main(){char choose;struct studcode *head=NULL;struct analysis *head1=NULL;//date_load(&head);instruct();printf("\n请选择功能:”);choose=getchar();while(choose!=’0')//输入0结束程序{switch(choose){case ’1':input(&head);//建立链表getchar();getchar();break;case ’2’:search(head);//查找信息getchar();getchar();break;case ’3':dele(&head);//删除信息getchar();getchar();break;case '4’:increase(head);//增加信息getchar();getchar();break;case ’5’:printall(head);//输出全部信息getchar();getchar();break;case '6':average( head,&head1 );//统计各科平均分并升序输出getchar();getchar();break;default: printf(”\n 选择错误,重选\n");}instruct();printf(”\n请选择功能:”);choose=getchar();}s ystem("cls”);date_save(head);printf("谢谢使用本系统\n");return 0;}void instruct(void){system(”cls");printf(”\n\t\t\t 试验管理系统\t\t\t\t ”);printf("\n\t\t\t 1 建立学生信息链表\t\t\t\t ");printf(”\n\t\t\t 2 搜索学生相关信息\t\t\t\t ”);printf(”\n\t\t\t 3 删除某个学生信息\t\t\t\t ");printf(”\n\t\t\t 4 增加某个学生信息\t\t\t\t ”);printf("\n\t\t\t 5 输出链表全部信息\t\t\t\t ”);printf(”\n\t\t\t 6 统计各科目平均分\t\t\t\t ”);printf("\n\t\t\t 0 退出程序\t\t\t\t ");}int input(struct studcode **headp){struct studcode *p ,*tail;char a[4];system(”cls");date_load(headp);if(*headp!=NULL){printf("链表信息载入成功");return 1;}else{printf(”目前没有数据保存请从终端输入数据");}printf("\n\t\t\t 成绩输入功能\t\t\t\t ”);p=(struct studcode *)malloc(sizeof(struct studcode ));if(p==NULL){printf(”error");exit(—1);}printf(”\n请按提示输入相关信息");printf(”\n教师姓名:");scanf("%s",p—>_tea);printf(”学生姓名:");scanf("%s”,p->_stu);printf("学生班级:”);scanf(”%s",p—〉date。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档