学生成绩管理系统

功能页面显示:

  

实现源码:

 #include<iostream>
#include<fstream>
#include<cstring>
#include<iomanip>
#include<stdlib.h>
#include<windows.h>
using namespace std;
//学生类
class Student
{
public:
void inputStudent(Student *head); //输入学生的信息
void outputStudent(Student *head); //输出学生的信息
void deleteStudent(Student *head); //删除学生的信息
void addStudent(Student *head); //添加学生的信息
void changeStudent(Student *head); //修改学生的信息
void findStudent(Student *head); //查找学生的信息
void paixuStudent(Student *head);//学生成绩排序
void saveStudent(Student *head); //保存学生的信息
void loadStudent(Student *head);//加载学生的信息
void getcountStudent(Student *head); int num;
char name[];
char sex[];
float Chinese;
float English;
float Math;
float sum;
float average;
Student *next; private: };
 void Student ::inputStudent(Student *head)//输入学生的信息
{
system("cls");
Student *p1,*p2; p1=head;
int N;
cout<<"哈喽,小可爱,请输入学生的总人数"<<endl;
cin>>N;
for(int i=;i<N;i++)
{
p2= new Student ;
p1->next=p2;
p1=p1->next;
cout<<"哈喽,小可爱,请输入学生的信息: "<<"学号 "<<"姓名 "<<"性别 " <<"语文 "<<"数学 "<<"英语 "<<endl;
cin>>p1->num>>p1->name>>p1->sex>>p1->Chinese>>p1->Math>>p1->English;
p1->sum=p1->Chinese+p1->Math+p1->English;
p1->average=(p1->sum)/;
}
p1->next=NULL;
cout<<"YES!输入成功"<<endl;
}
 void Student ::outputStudent(Student *head)//浏览学生的信息
{
system("cls");
Student *p1,*p2; p1=head->next;
int r=;//名次
cout<<"学号\t"<<"姓名\t"<<"性别\t"<<"语文"
<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"<<"\t"<<"平均分"<<"\t"<<"\t"<<"总分"
<<"\t"<<"\t"<<"排名"<<endl;
while(p1!=NULL)
{
cout<<p1->num<<"\t"<<p1->name<<"\t"<<p1->sex<<"\t"<<p1->Chinese<<"\t"<<p1->Math<<"\t"<<p1->English<<"\t"<<"\t";
cout<<p1->average<<"\t"<<"\t";
cout<<p1->sum<<"\t"<<"\t";
cout<<r+<<endl;
r++;
p1=p1->next;
}
cout<<"YES!浏览成功"<<endl; }
 void Student ::deleteStudent(Student *head)//删除学生的信息
{
system("cls"); Student *p1,*p2;
char n;
cout<<"哈喽,小可爱,请输入要删除的位置:"<<endl;
cin>>n;
int a;
a=n-'';
if(a>=)
{
if(a>= && a<=count)
{
p1=head;
p2=p1->next;
while(--a)
{
p1=p1->next;
p2=p2->next;
}
p1->next=p2->next; cout<<"YES!删除成功"<<endl;
}
else
{
cout<<"输入错误,请输入0-"<<count<<"之间的数字位置:" ;
}
}
else
{
cout<<"输入错误,请输入0-"<<count<<"之间的数字位置:" ;
}
}
  void Student ::addStudent(Student *head)//添加学生的信息
{
system("cls");
Student *p1,*p2;
Student *p3;
char n;
cout<<"哈喽,小可爱,请输入要添加的位置 "<<endl;
cin>>n;
int a;
a=n-'';
if(a>)
{
if(a>= && a<=count)
{
p1=head;
p2=p1->next;
while(--a)
{
p2=p2->next;
p1=p1->next; }
p3=new Student;
cout<<"哈喽,小可爱,请输入你的信息 :"<<endl<<"学号 "<<"姓名 "<<"性别 "<<"语文 "<<"数学 "<<"英语 "<<endl; cin>>p3->num>>p3->name>>p3->sex>>p3->Chinese>>p3->Math>>p3->English;
p3->sum=p3->Chinese+p3->Math+p3->English;
p3->average=(p3->sum)/;
p3->next=p2;
p1->next=p3;
cout<<"YES!添加成功 "<<endl;
}
else
{
cout<<"输入错误,请输入0-"<<count<<"之间的数字位置:" ;
}
}
else
{
cout<<"输入错误,请输入0-"<<count<<"之间的数字位置:" ;
}
}
 void Student::changeStudent(Student *head)//修改学生的信息
{
system("cls"); Student *p1,*p2;
Student *p3; char n;
cout<<"哈喽,小可爱,请选择你要修改的位置 :"<<endl;
cin>>n;
int a;
a=n-'';
if(a>)
{
if(a>= && a<=count)
{
p1=head;
p2=p1->next;
while(--a)
{
p1=p1->next;
p2=p2->next ;
}
cout<<"哈喽,小可爱,请输入你的信息 :"<<endl<<"学号 "<<"姓名 "<<"性别 "<<"语文 "<<"数学 "<<"英语 "<<endl; cin>>p2->num>>p2->name>>p2->sex>>p2->Chinese>>p2->Math>>p2->English;
p2->sum=p2->Chinese+p2->Math+p2->English;
p2->average=(p2->sum)/;
cout<<"YES!修改成功"<<endl; }
else
{
cout<<"输入错误,请输入0-"<<count<<"之间的数字位置:" ;
}
}
else
{
cout<<"输入错误,请输入0-"<<count<<"之间的数字位置:" ;
} }
 void Student::findStudent(Student *head)//查找学生的信息
{
system("cls");
Student *p1;
int p;
int i=;
int stunum;
char stuname[];
p1=head->next;
cout<<"请选择 1.按学号查找 2. 按姓名查找"<<endl;
cin>>p;
if(p==)
{
system("cls");
cout<<"请输入要查找的学号 "<<endl;
cin>>stunum;
while(p1!=NULL)
{
if(stunum==p1->num)
{
cout<<"学号\t"<<"姓名\t"<<"性别\t"<<"语文"
<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"<<"\t"<<"平均分"<<"\t"<<"\t"<<"总分"
<<"\t"<<"\t"<<endl;
cout<<p1->num<<"\t"<<p1->name<<"\t"<<p1->sex<<"\t"<<p1->Chinese<<"\t"<<p1->Math<<"\t"<<p1->English<<"\t"<<"\t";
cout<<p1->average<<"\t"<<"\t";
cout<<p1->sum<<"\t"<<"\t";
}
p1=p1->next;
} }else if(p==)
{
system("cls");
cout<<"请输入要查找的姓名 "<<endl;
cin>>stuname;
while(p1!=NULL)
{
if(strcmp(p1->name,stuname)==)
{
cout<<"学号\t"<<"姓名\t"<<"性别\t"<<"语文"
<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"<<"\t"<<"平均分"<<"\t"<<"\t"<<"总分"
<<"\t"<<"\t"<<endl;
cout<<p1->num<<"\t"<<p1->name<<"\t"<<p1->sex<<"\t"<<p1->Chinese<<"\t"<<p1->Math<<"\t"<<p1->English<<"\t"<<"\t";
cout<<p1->average<<"\t"<<"\t";
cout<<p1->sum<<"\t"<<"\t";
}
p1=p1->next;
}
}else
{
cout<<"输入选项错误 "<<endl;
} }
 void Student::paixuStudent(Student *head)//排序
{
Student *p1;
Student *p2;
p1=head;
int n=;
int a=;
char b[];
int i,j;
while(p1->next)
{
p1=p1->next ;
n++;
}
for(i=;i<n-;i++)
{
p2=head->next;
p1=p2->next;
for(j=;j<n-i-;j++)
{
if(p1->average >p2->average )
{
strcpy(b,p2->name);
strcpy(p2->name ,p1->name );
strcpy(p1->name,b); strcpy(b,p2->sex);
strcpy(p2->sex ,p1->sex);
strcpy(p1->sex,b); a=p2->num ;
p2->num =p1->num ;
p1->num =a; a=p2->Chinese;
p2->Chinese=p1->Chinese;
p1->Chinese=a; a=p2->Math ;
p2->Math =p1->Math ;
p1->Math =a; a=p2->English ;
p2->English =p1->English ;
p1->English =a; a=p2->average;
p2->average =p1->average ;
p1->average =a; a=p2->sum ;
p2->sum =p1->sum ;
p1->sum =a;
}
p1=p1->next;
p2=p2->next;
}
}
cout<<"YES!排序成功 "<<endl;
}
 void Student::saveStudent(Student *head) //保存学生的信息
{
Student *p;
ofstream os;
os.open("sco.txt"); p=head->next ;
while(p)
{
os<<p->num<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->Chinese<<"\t" <<p->Math<<"\t" <<p->English <<"\t"<<p->sum<<"\t"<<p->average; p=p->next;
os<<endl;
} cout<<"YES!保存成功 "<<endl;
os.close();
}
 void Student:: loadStudent(Student *head)//加载学生的信息
{
Student *p,*p2;
ifstream is;
is.open("sco.txt"); p2=head; while()
{
p=new Student;
is>>p->num>>p->name>>p->sex>>p->Chinese
>>p->Math>>p->English >>p->sum>>p->average;
if(is.fail() )//判断是否到文件结尾
{
delete p;
p2->next =NULL;
break;
} p2->next =p; p2=p2->next;
} cout<<"YES!加载成功 "<<endl; is.close(); }
 int count;
void Student::getcountStudent(Student *head)
{
Student *p;
count=;
p=head;
while(p->next!=NULL)
{
count++;
p=p->next;
}
} void welcome()
{
cout<<" ~~~ 欢迎进入**学生成绩管理系统! ~~~"<<endl;
system("color 1");
}
void menu()
{
cout<<" ******************************************"<<endl;
cout<<" ~~~~~~~ 学生成绩管理系统 ~~~~~~~"<<endl;
cout<<" ******************************************"<<endl;
cout<<" ******************************************"<<endl;
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<<" ~~9. 加载学生的信息 ~~"<<endl;
cout<<" ~~0. 退出学生信息系统 ~~"<<endl;
cout<<" *****************************************"<<endl;
cout<<" *****************************************"<<endl;
cout<<" *****************************************"<<endl;
system("color b");
}
 int main()
{
Student h;
system("cls");
welcome();
Sleep();
int i;
Student *head=new Student; while()
{
system("cls");
menu();
cout<<"哈喽,小可爱,请输入你要进行的操作 :"<<endl;
cin>>i;
switch(i)
{
case : cout<<"输入学生的信息 "<<endl;h.inputStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"浏览学生的信息 "<<endl;h.outputStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"删除学生的信息 "<<endl;h.deleteStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"添加学生的信息 "<<endl;h.addStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"修改学生的信息 "<<endl;h.changeStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"查询学生的信息 "<<endl;h.findStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"学生成绩的排序 "<<endl;h.paixuStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"保存学生的信息 "<<endl;h.saveStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"加载学生的信息 "<<endl;h.loadStudent(head);system("pause");h.getcountStudent(head);break;
case : cout<<"谢谢使用,欢迎下次光临 "<<endl;system("pause");exit(); default: cout<<"输入错误"<<endl;
}
}
return ;
}

学生成绩管理系统(C++指针、链表、文件及面向对象的运用)的更多相关文章

  1. 学生成绩管理系统C(链表)语言

    #include"stdio.h" #include"stdlib.h" #include"string.h" //用于调用一些函数 str ...

  2. c++链表实现学生成绩管理系统(简易版)

    #include<iostream> using namespace std; typedef struct student{ int id;//学号 string sex; string ...

  3. 基于C语言文件操作的学生成绩管理系统

    原理 在一个班级学生成绩管理系统中,希望处理每个学生的学习情况信息,其中包括学生的学号.姓名.各科名称和成绩等并能使管理人员通过界面完成对学生信息的录入及对学生信息的录入及对数据的查找.浏览.插入.排 ...

  4. 使用C++名单在文档处理和学生成绩管理系统相结合

    对于学生成绩管理系统,我并不陌生,几乎学习C人的语言.做项目会想到学生成绩管理系统,我也不例外.在研究中的一段时间C语言之后,还用C语言到学生管理系统,然后做几个链接.计数,这个系统是以前的系统上的改 ...

  5. C项目实践--学生成绩管理系统

    1.功能需求分析 学生成绩管理系统是对学生基本信息及成绩的管理.本程序主要实现了对学生的学号.姓名等基本信息以及各项学科成绩进行增加.删除.修改.查询和保存到磁盘文件等操作.主要功能描述如下: (1) ...

  6. 从零开始的C程序设计大作业——学生成绩管理系统

    前言 学生成绩管理系统可以说是C语言程序设计的结课的必备大作业了.花了些时间,费了些头发肝了下,完成了两个系统,一个是控制台版本的,另一个用easyx图形库进行了优化. 先放出完成后的演示图片占个坑. ...

  7. 【学生成绩管理系统】 大二c语言作业

    几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值... #include <cstdio> #include <conio.h> #include <i ...

  8. [项目记录] 用c语言完成的一个学生成绩管理系统

    一.要求: 学生成绩管理系统 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).使用链表编程实现如下菜单驱动的学生成绩管理系统. 从文件读入每个学生个人信 ...

  9. 第一次写C语言小程序,可以初步理解学生成绩管理系统的概念

    1 成绩管理系统概述 1.1  管理信息系统的概念  管理信息系统(Management Information Systems,简称MIS),是一个不断发展的新型学科,MIS的定义随着科技的进步也在 ...

随机推荐

  1. css选择器querySelectorAll

    * querySelectorAll(css的选择器)* 通过css的选择器获取到的一组元素* 获取的也是类数组** 主语* document 从整个页面去获取一组元素* 父级 从父级下去获取一组元素 ...

  2. Python 学习图谱

    https://mp.weixin.qq.com/s/-fJYAlOs4ui0YeJ-W6BkeQ

  3. angular分页插件tm.pagination二次触发问题解决歪方案

    今天在学习angularjs的分页插件时遇到了一个前端的问题,谷歌浏览器开发者模式调试的时候发现每次点击分页刷新按钮会触发两次后台请求,ajax向后台发送了两次请求,这对于强迫症患者来说是一个比较恶心 ...

  4. sbb指令

    sbb是带借位减法指令,它利用了CF位上记录的借位值. 指令格式:sbb 操作对象1,操作对象2 功能:操作对象1=操作对象1-操作对象2-CF 比如指令sbb ax,bx实现的功能是: (ax)=( ...

  5. autoMapper dotnetcore webapi 自动添加映射 abp

    在ef的xxxxApplicationModule的Initialize方法中,已经添加了自动映射的配置,如下图: 写的很明白了,我们只需要写一个类继承Profile就可以了.如下图所示: 这样就可以 ...

  6. 使用U盘安装CentOS7

    为了在公司的旧笔记本电脑上安装centos供自己学习使用折腾了两天,终于在看了https://www.cnblogs.com/yeeo1/p/7306611.html这篇博文后装上了, 以下内容为转载 ...

  7. Java代码获取spring 容器的bean几种方式

    一.目的 写了一个项目,多个module,然后想在A模块中实现固定的config注入,当B模块引用A时候,能够直接填写相对应的配置信息就行了.但是遇到一个问题,B引用A时候,A的配置信息总是填充不了, ...

  8. java 组件开发中的日志记录问题

    今天帮别人写封装几个url 请求,打成jar 包,可以以java接口的方式提供给外部访问. 遇到两个问题: 1. 是否把依赖的jar包也 打入 我要生成的jar包中,如果你不打入,别人直接调用接口会报 ...

  9. Asterisk 11 chan_sip.c: Failed to authenticate device 看不到IP的问题

    Asterisk 11 chan_sip.c: Failed to authenticate device 看不到IP的问题   没有验证过 原文地址 http://www.coochey.net/? ...

  10. HTML语言

    复习: 1.Web项目的部署结构  静态Web技术(客户端技术):提供的内容任何人在任何时间访问都是一样的 HTML/CSS/JS/Flash.... 动态Web技术(服务器端技术):提供的内容不同人 ...