C高校学籍管理系统
课题2:高校学籍管理系统(一)、课程设计题目:高校学籍管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书(三)、设计方法和基本原理:1、问题描述(功能要求):(1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。
(2)能够将指定的信息从文件中删除。
(3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
(4)可以统计全部学生的总成绩,及其在班上的排名。
(5)能够统计各科的平均成绩及及格率。
(6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
(7)如果检索不到相应的信息应提示用户。
(8)扩展要求:能先行设置本学期的科目每个学生信息应该包括:姓名、学号、成绩成绩信息应该包括:科目数量、各科目名称、各科目成绩2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)写出需求分析(做什么);(2)分析系统中的各个实体之间的关系及其属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)用户界面的设计;(7)分析系统功能模块(系统流程图);(8)代码编写,功能调试;(9)完成系统总结报告以及系统使用说明书。
#include<iostream>#include <fstream>using namespace std;int di=0;int num=0;class xinxi{public:int number;char name[20];char sex[6];char p[100][10];float fenshu[10];float shuliang;float average;float sum;float aver;float jigelv;int i;virtual void Show() //显示{cout<<"学生学号:"<<number<<"\n"<<"学生姓名:"<<name<<"\n"<<"学生性别:"<<sex<<"\n"<<"学生科目数量 :"<<shuliang<<endl;for(int i=0;i<shuliang;i++){cout<<p[i]<<"的成绩为:"<<fenshu[i]<<endl;}cout<<"总成绩为:"<<sum<<endl;cout<<"平均成绩为:"<<average<<endl;}void Book(int n){cout<<"学生学号:"; cin>>number;cout<<"学生姓名:"; cin>>name;cout<<"学生性别:"; cin>>sex;while(1){if(strcmp(sex,"男")==0||strcmp(sex,"女")==0){break;}else{cout<<"输入有误,请重新输入:"<<endl;cin>>sex;}}/*cout<<"请输入本学期科目数量:"; //通过数量确定课程cin>>shuliang;for(i=0;i<shuliang;i++){cout<<"请输入科目"<<i+1<<"的名称"<<endl;cin>>p[i];cout<<"请输入科目"<<i+1<<"的成绩"<<endl;cin>>fenshu[i];}*/while(1) //通过课程确定数量{char a;int b;for(i=0,b=0;;i++){cout<<"请输入科目"<<i+1<<"的名称"<<endl;cin>>p[i];cout<<"请输入科目"<<i+1<<"的成绩"<<endl;cin>>fenshu[i];b++;cout<<"是否继续输入?(Y/N)"<<endl;cin>>a;if(a=='Y'||a=='y')continue;else{shuliang=b;break;}}break;}}/* virtual void Save(fstream &f) //保存到文件f中{f<<number<<" "<<name<<" "<<sex<<" "<<fenshu<<""<<shuliang<<" "<<average<<" "<<sum<<endl;}virtual void Load(fstream &f) //从文件f中导出数据{f>>number>>name>>sex>>fenshu>>shuliang>>average>>sum;}*/};xinxi d[100];xinxi v[100];//输入学生信息void BookIn(){while(1){cout<<"*************************"<<endl;cout<<"*************************"<<endl;cout<<"请输入学生信息:"<<endl;d[di].Book(num++);di++;for(int j=0;j<di;j++) //计算总成绩和平均成绩{float s=0;for(int i=0;i<d[j].shuliang;i++){s=s+d[j].fenshu[i];}d[j].sum=s;d[j].average=d[j].sum/d[j].shuliang;}cout<<"是否继续输入:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;}}//删除学生信息void BookOut(){int i;while(1){int c;cout<<"*************************"<<endl;cout<<"*************************"<<endl;cout<<"请输入您要删除的学生学号:"<<endl;cin>>c;for(i=0;i<di;i++)if(c==d[i].number){d[i]=d[--di];cout<<"删除成功!"<<endl;}else{cout<<"输入错误!"<<endl;system("PAUSE");}cout<<"是否继续删除:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;}}//学生信息查询void Inquiry(){while(1){cout<<"*************************"<<endl;cout<<"*************************"<<endl;cout<<"1、按学号查询"<<endl;cout<<"2、按姓名查询"<<endl;cout<<"请输入您的选择: ?"<<endl;int c;int test;cin>>c;if(c==1){cout<<"请选择要查询学号:";int a;cin>>a;for(int i=0;i<di;i++){if(a==d[i].number){test=1;break;}elsetest=0;}if(test==0){cout<<"没有这个学生!"<<endl;system("PAUSE");}else if(test==1){d[i].Show();}}else if(c==2){char c[10];cout<<"请选择要查询的姓名:";cin>>c;for(int i=0;i<di;i++){if(strcmp(c,d[i].name)==0){test=1;break;}elsetest=0;}if(test==0){cout<<"没有这个学生!"<<endl;system("PAUSE");}else if(test==1){d[i].Show();}}else{cout<<"输入错误!"<<endl;system("PAUSE");}cout<<"是否继续查询:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;}}//显示学籍信息void Display(){for(int i=0;i<di;i++){d[i].Show();cout<<"\n"<<endl;}}void Paixu(){int i,k;int tempsum;char tempname[10];for(i=0;i<di;i++){strcpy(v[i].name,d[i].name);v[i].sum=d[i].sum;}for(i=0;i<di-1;i++) {for(k=i+1;k<di;k++){if(v[i].sum<v[k].sum){strcpy(tempname,v[i].name);strcpy(v[i].name,v[k].name);strcpy(v[k].name,tempname);tempsum=v[i].sum;v[i].sum=v[k].sum;v[k].sum=tempsum;}}}for(i=0;i<di;i++){cout<<"第"<<i+1<<"名:"<<v[i].name<<" "<<"总成绩:"<<v[i].sum<<"分"<<endl;}system("PAUSE");}void Danke(){for(int j=0;j<d[j].shuliang;j++){float sum=0;for(int i=0;i<di;i++){sum=sum+d[i].fenshu[j];}v[j].aver=sum/di;cout<<d[j].p[j]<<"的平均分为:"<<v[j].aver<<endl;}system("PAUSE");for(int m=0;m<d[m].shuliang;m++){float k=0;for(int i=0;i<di;i++){if(d[i].fenshu[m]>=60)k++;}v[m].jigelv=k/di;cout<<d[m].p[m]<<"的及格率为:"<<v[m].jigelv<<endl;}system("PAUSE");}/*void FileLoad() //信息读取函数{int i;fstream file;file.open("mydata.dat", ios::in); //打开保存数据的文件if(!file)return; //文件不存在则直接返回file>>di; //读入for(i=0;i<di;i++)d[i].Load(file);file.close(); //文件关闭}void FileSave() //信息保存函数{int i;fstream file;file.open("mydata.dat", ios::out); //打开保存数据的文件file<<di<<endl; //记录for(i=0;i<di;i++) //保存d[i].Save(file);file.close(); //文件关闭cout<<"保存成功!"<<endl;}*///主函数void main(){while(1){cout<<"*******************高校学籍管理系统*********************"<<endl;cout<<"\t\t 1、输入学生信息"<<endl;cout<<"\t\t 2、删除学生信息"<<endl;cout<<"\t\t 3、学生信息查询"<<endl;cout<<"\t\t 4、学生信息保存"<<endl;cout<<"\t\t 5、查看学籍系统"<<endl;cout<<"\t\t 6、学生成绩排名"<<endl;cout<<"\t\t 7、单科平均成绩及及格率"<<endl; cout<<"\t\t 8、退出管理系统"<<endl;cout<<"请选择功能: ?"<<endl;int c;cin>>c;if(c==1){BookIn();}else if(c==2){BookOut();}else if(c==3){Inquiry();}else if(c==4){// FileSave();}else if(c==5){Display();}else if(c==6){Paixu();}else if(c==7){Danke();}else if(c==8){break;}else{cout<<"输入错误!"<<endl;system("PAUSE");}}}。
c语言学生管理系统代码
C语言学生管理系统代码
简介
学生管理系统是一个用于管理学生信息的简单程序,它可以实现添加学生信息、显示学生信息、修改学生信息和删除学生信息等功能。
通过这个系统,学校或机构可以更方便地管理和维护学生的相关数据。
功能
1.添加学生信息:通过输入学生的姓名、学号、年龄和性别等信息,将
学生信息存储在系统中。
每个学生信息包括学号、姓名、年龄和性别等关键信息。
2.显示学生信息:可以显示系统中所有学生的信息,包括学号、姓名、
年龄和性别。
3.修改学生信息:通过输入学生的学号,可以修改该学生的姓名、年龄
和性别等信息。
4.删除学生信息:通过输入学生的学号,可以删除该学生的信息。
实现
下面是一个简单的C语言学生管理系统代码示例:
```c #include <stdio.h> #include <string.h>
#define MAX_STUDENTS 100
// 定义学生结构体 struct Student { int id; char name[100]; int age; char
gender[10]; };
// 定义全局变量,用于存储学生信息和统计学生数量 struct Student
students[MAX_STUDENTS]; int num_students = 0;
// 添加学生 void addStudent() { if (num_students >= MAX_STUDENTS) { printf(。
c语言学籍管理系统源代码
c语言学籍管理系统源代码学籍管理系统的背景及意义随着社会的不断发展和教育的普及,学籍管理工作日益被重视。
传统的手工管理学籍的方式效率低下,存在着各种弊端,以致无法满足现代学校管理的需求。
因此,开发一款高效、便捷、可靠的学籍管理系统成为普遍需求,为了提高管理效率、减少工作难度,学籍管理系统被越来越广泛地使用。
本文将介绍一款基于C语言开发的学籍管理系统的源代码。
基本功能该学籍管理系统可以实现学生信息的录入、删除、修改和查询,以及学生的成绩录入、修改和查询。
此外,该系统还具备数据存储和文件读写的功能,能够自动保存学生信息和成绩数据,保障数据的安全性和可靠性。
模块设计该系统按照功能模块划分,主要分为三个模块:学生信息管理模块、学生成绩管理模块和数据存储与文件读写模块。
学生信息管理模块该模块主要实现学生信息的录入、删除、修改和查询等基本功能。
以下为该模块的主要源代码:```struct student {char name[20]; // 姓名int id; // 学号char sex[5]; // 性别char major[20]; // 专业};struct student stu[1000]; // 学生信息结构体数组int num_of_stu = 0; // 学生总数void add_student() { // 添加学生信息printf("请输入学生姓名:");scanf("%s", stu[num_of_stu].name);printf("请输入学生学号:");scanf("%d", &stu[num_of_stu].id);printf("请输入学生性别:");scanf("%s", stu[num_of_stu].sex);printf("请输入学生专业:");scanf("%s", stu[num_of_stu].major);num_of_stu++;printf("添加成功!\n");}void delete_student() { // 删除学生信息int delete_id;printf("请输入要删除的学生学号:");scanf("%d", &delete_id);int index = search_student_by_id(delete_id); if (index == -1) {printf("该学号不存在!\n");return;}for (int i = index; i < num_of_stu - 1; i++) { stu[i] = stu[i + 1];}num_of_stu--;printf("删除成功!\n");}void modify_student() { // 修改学生信息int modify_id;printf("请输入要修改的学生学号:");scanf("%d", &modify_id);int index = search_student_by_id(modify_id); if (index == -1) {printf("该学号不存在!\n");return;}printf("请输入学生姓名:");scanf("%s", stu[index].name);printf("请输入学生学号:");scanf("%d", &stu[index].id);printf("请输入学生性别:");scanf("%s", stu[index].sex);printf("请输入学生专业:");scanf("%s", stu[index].major);printf("修改成功!\n");}int search_student_by_id(int id) { // 根据学号查询学生信息for (int i = 0; i < num_of_stu; i++) {if (stu[i].id == id) {return i;}}return -1;}void query_student() { // 查询学生信息int query_id;printf("请输入要查询的学生学号:");scanf("%d", &query_id);int index = search_student_by_id(query_id);if (index == -1) {printf("该学号不存在!\n");return;}printf("姓名\t学号\t性别\t专业\n");printf("%s\t%d\t%s\t%s\n", stu[index].name,stu[index].id, stu[index].sex, stu[index].major);}```学生成绩管理模块该模块主要实现学生成绩信息的录入、修改和查询等功能。
c语言程序设计学生信息管理系统
c语言程序设计学生信息管理系统
本学生信息管理系统是基于C语言程序设计的应用,主要用于学生信息的管理和查询。
系统可以存储学生的基本信息,包括姓名、性别、年龄、籍贯、班级等等。
同时,还可以记录学生的成绩信息,包括课程名称、分数、排名等等。
本系统具有以下功能:
1. 学生信息录入:用户可以通过系统输入学生的基本信息和成绩信息,并保存在系统中。
2. 学生信息查询:用户可以通过姓名、学号等关键词查询学生的基本信息和成绩信息,并查看相关的详细信息。
3. 学生信息修改:用户可以修改已经录入的学生信息,包括基本信息和成绩信息。
4. 学生信息删除:用户可以删除已经录入的学生信息,包括基本信息和成绩信息,删除后不可恢复。
5. 学生信息统计:系统可以对学生的成绩信息进行统计,包括总分、平均分、最高分、最低分等等。
6. 学生信息排序:用户可以对学生的成绩信息进行排序,按照成绩从高到低或从低到高进行排序。
7. 学生信息导出:用户可以将学生信息导出为Excel文件或文本文件,方便进行数据备份和归档。
本系统具有良好的用户界面,操作简单易懂,适合各类学习和管理机构使用。
同时,系统的稳定性和安全性也经过了严格的测试和验
证,保证了数据的安全和可靠性。
C语言学籍管理系统(内含源代码)
学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查询学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。
系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。
程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。
以下是这些函数原型及功能设计。
(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。
c语言程序设计学生学籍管理系统实验数据存储及数据流向
c语言程序设计学生学籍管理系统实验数据存储及数据流向C语言程序设计学生学籍管理系统实验数据存储及数据流向在学生学籍管理系统中,数据存储和数据流向是非常重要的。
系统需要存储学生的个人信息、课程成绩和学籍变动等数据,并根据这些数据做出相应的处理。
这篇文章将带你了解学生学籍管理系统中的数据存储和数据流向。
数据存储学生学籍管理系统中需要存储的数据包括学生的个人信息、课程成绩和学籍变动等数据。
这些数据可以存储在不同的位置,如磁盘、数据库等。
磁盘存储:磁盘存储是最常见的数据存储方式,数据以文件的形式存放在硬盘上。
学生学籍管理系统中的数据可以存储在一个或多个文件中,每个文件存储一个类型的数据。
例如,学生的个人信息可以存储在一个“学生信息.txt”文件中,课程成绩可以存储在一个“课程成绩.txt”文件中。
数据库存储:数据库是一种结构化的数据存储方式,可以有效地管理大量数据。
学生学籍管理系统中,可以使用关系型数据库存储学生信息、教师信息、课程信息、成绩信息等数据,方便管理和检索。
通过SQL语句可以对数据库中的数据进行增删改查等操作,实现数据的高效管理。
数据流向学生学籍管理系统中的数据流向主要包括数据采集、数据处理、数据展示等过程。
这些流程需要将数据从一个位置传输到另一个位置,以实现正确的处理和展示。
数据采集:数据采集是指将学生或其他相关信息采集到系统中的过程。
例如,学生信息可以通过录入学生信息表单实现,成绩信息可以通过录入成绩表单实现等。
数据采集需要保证数据的准确性和完整性,以保证数据的正确性。
数据处理:数据处理是指对采集到的数据进行各种处理操作的过程。
例如,对学生信息进行排序、筛选、查询等操作,对成绩信息进行计算平均分、制作成绩报表等操作。
数据处理需要对数据进行严格的逻辑检验,以保证数据的正确性。
数据展示:数据展示是指将处理后的数据以易于理解的形式展示给用户的过程。
例如,把学生信息、成绩信息等数据以列表或表格形式展示给用户,使用户能够清晰了解学生的学籍状况。
c++学生信息管理系统设计代码
c++学生信息管理系统设计代码以下是一个简单的C++学生信息管理系统的设计代码:```cpp#include <iostream>#include <vector>#include <string>using namespace std;// 学生类class Student {private:string name;string id;string gender;int age;public:Student(string name, string id, string gender, int age) { this->name = name;this->id = id;this->gender = gender;this->age = age;}string getName() {return name;}string getId() {return id;}string getGender() {return gender;}int getAge() {return age;}};// 学生信息管理系统类class StudentManagementSystem {private:vector<Student> students; // 学生信息容器public:// 添加学生信息void addStudent(string name, string id, string gender,int age) {Student student(name, id, gender, age);students.push_back(student);cout << "学生信息添加成功!" << endl;}// 查找学生信息void findStudent(string id) {bool found = false;for (int i = 0; i < students.size(); i++) {if (students[i].getId() == id) {cout << "学生姓名:" << students[i].getName() << endl;cout << "学生学号:" << students[i].getId() << endl;cout << "学生性别:" <<students[i].getGender() << endl;cout << "学生年龄:" << students[i].getAge() << endl;found = true;}}if (!found) {cout << "未找到该学生信息!" << endl;}}};int main() {StudentManagementSystem sms;cout << "欢迎使用学生信息管理系统!" << endl;cout << "1. 添加学生信息" << endl;cout << "2. 查找学生信息" << endl;cout << "3. 退出" << endl;int choice;string name, id, gender;int age;while (true) {cout << "请输入选项:";cin >> choice;if (choice == 1) {cout << "请输入学生姓名:";cin >> name;cout << "请输入学生学号:";cin >> id;cout << "请输入学生性别:";cin >> gender;cout << "请输入学生年龄:";cin >> age;sms.addStudent(name, id, gender, age);}else if (choice == 2) {cout << "请输入要查找学生的学号:";cin >> id;sms.findStudent(id);}else if (choice == 3) {break;}else {cout << "无效选项,请重新输入!" << endl;}}cout << "谢谢使用学生信息管理系统,再见!" << endl;return 0;}```这个程序实现了一个简单的学生信息管理系统,可以添加学生信息和查找学生信息。
c语言课程设计学生学籍管理系统
c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。
通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。
四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。
以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。
五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。
高等院校学籍管理信息系统
高等院校学籍管理信息系统1. 简介高等院校学籍管理信息系统是高等院校通过计算机技术对学生学籍信息进行集中管理的系统。
该系统主要包括学生基本信息管理、学生选课管理、成绩管理、学生毕业管理等模块,旨在提高高等院校学籍管理的效率和准确性。
2. 功能描述2.1 学生基本信息管理学生基本信息管理是学籍管理信息系统的核心模块,主要包括学生个人资料、家庭背景、入学信息、就业信息等内容的录入和查询。
通过该模块,学校可以方便地对学生的基本信息进行记录和管理,减少了传统手工方式的繁琐工作。
2.2 学生选课管理学生选课管理模块是学籍管理信息系统中的重要功能,它允许学生在线选课、退课和查询课程信息。
通过该模块,学校可以实现选课信息的电子化管理,方便学生进行选课,并减少了选课过程中的人为错误。
2.3 成绩管理成绩管理模块是学籍管理信息系统的关键功能之一,主要用于录入、查询和统计学生的课程成绩。
通过该模块,学校可以方便地进行成绩的录入和查询,以及对学生成绩进行统计分析,为教学管理提供支持。
2.4 学生毕业管理学生毕业管理模块是学籍管理信息系统中的重要组成部分,主要包括毕业申请、毕业审核、学位证书发放等过程的管理。
通过该模块,学校可以实现对学生毕业过程的全程记录和管理,以保证毕业流程的规范性和透明度。
3. 系统优势3.1 提高工作效率高等院校学籍管理信息系统实现了学生信息的电子化管理,大大减少了传统手工方式的工作量,提高了工作效率。
学校工作人员不再需要耗费大量时间和精力进行繁琐的人工记录和查询工作,而是通过系统的自动化功能来完成这些任务。
3.2 提高信息准确性通过高等院校学籍管理信息系统,学校可以避免传统手工方式在信息录入和查询过程中产生的错误,提高了信息的准确性。
系统能够对输入的数据进行验证和校验,确保信息的完整性和正确性。
3.3 便捷的学生服务高等院校学籍管理信息系统提供了便捷的学生服务功能,学生可以通过系统进行选课、查成绩、办理毕业手续等。
学生信息管理系统c语言版源代码
学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。
c语言学生信息管理系统总结
C语言学生信息管理系统总结简介C语言学生信息管理系统是一个用于管理学生个人信息的程序。
通过该系统,用户可以添加、删除、修改和查询学生的姓名、年龄、性别和学号等信息。
本文将对该系统的设计和实现进行总结。
设计思路功能设计学生信息管理系统应具备以下基本功能:1.添加学生信息:用户可以输入学生的姓名、年龄、性别和学号等信息,并将其添加到系统中。
2.删除学生信息:用户可以通过输入学生的学号,从系统中删除该学生的信息。
3.修改学生信息:用户可以通过输入学生的学号,对系统中该学生的信息进行修改。
4.查询学生信息:用户可以通过输入学生的姓名或学号,在系统中查找并显示学生的信息。
数据结构设计为了实现学生信息的管理,我们可以使用以下数据结构:struct student {char name[20];int age;char gender[10];int id;};每个学生的信息将保存在一个student结构体中,其中包含了姓名、年龄、性别和学号等字段。
学生信息可以使用链表来管理,每个节点包含一个学生的信息和指向下一个节点的指针。
struct node {struct student data;struct node *next;};通过使用链表,我们可以方便地进行添加、删除和修改操作。
界面设计学生信息管理系统的界面应简洁明了,用户可以通过命令行进行操作。
每个操作都对应一个数字或字母,用户输入相应的数字或字母来执行对应的操作。
实现过程添加学生信息添加学生信息的实现过程如下:1.用户输入要添加的学生的姓名、年龄、性别和学号等信息。
2.创建一个新的节点,并将用户输入的学生信息保存到该节点中。
3.将新节点添加到链表的末尾,更新链表的指针。
删除学生信息删除学生信息的实现过程如下:1.用户输入要删除的学生的学号。
2.遍历链表,找到对应学号的节点。
3.如果找到了对应的节点,将该节点从链表中删除。
4.释放节点的内存空间,更新链表的指针。
