今天晚上终于做完了学生成绩管理系统!激动!开心!!!哈哈哈~~~~

总共298行代码,第一次写这么多。

其中遇到了好多困难,也烦恼了好久,不过最终都解决了!

做了之后果然,满满的成就感!抑制不住的兴奋,特此纪念一下!

可能还有些小问题,,,不过已经很开心啦,啦啦啦~~~

 #include<iostream>
#include<iomanip> using namespace std;
void menu();//菜单函数
int choice(int x); //选项函数
void Input(float stu[],int &num);//1.输入成绩函数
void Output(float stu[],int &num);//2.输出成绩函数
void Order(float stu[],int &num);//3.排序函数
void Search(float stu[],int &num);//4.查找学生函数
void Insert(float stu[],int &num);//5.插入学生函数
void Delete(float stu[],int &num);//6.删除学生函数
void Statistical_number(float stu[],int &num);//7.统计各分数段人数函数 const int MAX_STUDENT_NUM=;//班级人数
float stu[MAX_STUDENT_NUM];
int currentN=; int main()
{
menu();
int x;
cin>>x;
choice(x);
//菜单循环
while (x!=)
{ menu();
cin>>x;
choice(x);
}
} //菜单
void menu()
{
cout<<"\t\t\t\t\t\t\t\t\t\t\t\t\t\n";
cout<<"\t\t\t欢迎使用成绩管理系统\t\n";
cout<<"\t\t=========================================\n";
cout<<"\t\t1.录入学生 2.显示信息\n";
cout<<"\t\t3.排序总评 4.查找学生\n";
cout<<"\t\t5.插入学生 6.删除学生\n";
cout<<"\t\t7.统计人数 0.退出\n";
cout<<"\t\t=========================================\n";
cout<<"请从0-7中选择一个数:";
} //选项
int choice(int x)
{ switch (x)
{
case :return ;
case :cout<<"你选择了 录入学生"<<endl;
Input(stu,currentN);
break;
case :cout<<"你选择了 显示信息"<<endl;
Output(stu,currentN);
break;
case :cout<<"你选择了 排序总评"<<endl;
Order(stu,currentN);
break;
case :cout<<"你选择了 查找学生"<<endl;
Search(stu,currentN);
break;
case :cout<<"你选择了 插入学生"<<endl;
Insert(stu,currentN);
break;
case :cout<<"你选择了 删除学生"<<endl;
Delete(stu,currentN);
break;
case :cout<<"你选择了 统计人数"<<endl;
Statistical_number(stu,currentN);
break;
default:cout<<"输入非法,请重新输入!\n"<<endl;break;
}
} //1.输入成绩
void Input(float stu[],int &num)
{
char a;
while()
{
int temp=num;
if(temp>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
cout<<"请输入成绩(0-100):"<<endl;
cin>>stu[num];
if(stu[num]< || stu[num]>)
{
cout<<"输入错误!成绩应该在0到100之间!"<<endl;
continue;
}
cout<<"是否继续输入学生数据请按Y或N:"<<endl;
cin>>a;
num++;
if(a=='y'||a=='Y')
{ if(num>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
}
else if(a=='n'||a=='N')
{
break;
}
}
} //2.输出显示信息
void Output(float stu[],int &num)
{
cout<<"成绩信息如下:"<<endl;
for(int i=;i<num;i++)
{
cout<<fixed<<setprecision()<<setw()<<stu[i]<<' ';
}
} //3.排序
void Order(float stu[],int &num)
{
for(int i=;i<num-;i++)
for(int i=;i<num-;i++)
{
for(int j=;j<num-i;j++)
{
if(stu[i]>stu[i+])
{
float temp=stu[i];
stu[i]=stu[i+];
stu[i+]=temp;
}
}
}
Output(stu,num);
} //4.查找
void Search(float stu[],int &num)
{
int x,i,j=,n=,counter=;
char a;
while()
{ cout<<"请输入你要查找的成绩:";
cin>>x;
for(i=;i<num;i++)
{
j++;
}
for(i=;i<=j;i++)
{ if(x==stu[i])
{
cout<<"查找到第"<<counter<<"个相符的成绩"<<fixed<<setprecision()<<stu[i]<<endl;
n=;counter++;
}
}
if(n)
cout<<"没有该学生信息!"<<endl; cout<<"是否继续查找请按Y或N:"<<endl;
cin>>a;
if(a=='y'||a=='Y')
{
counter=;
continue;
}
else if(a=='n'||a=='N')
{
break;
} }
} //5.插入
void Insert(float stu[],int &num)
{
char a;
while()
{
int temp=num;
if(temp>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
cout<<"请输入插入的成绩(0-100):"<<endl;
cin>>stu[num];
if(stu[num]< || stu[num]>)
{
cout<<"数据不符合要求!请重新输入!"<<endl;
continue;
}
cout<<"是否继续输入学生数据请按Y或N:"<<endl;
cin>>a;
num++;
if(a=='y'||a=='Y')
{
if(num>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
}
else if(a=='n'||a=='N')
{
break;
}
}
} //6.删除
void Delete(float stu[],int &num)
{
float x;
char a;
int counter=,n=,temp=num;
while()
{ cout<<"请输入要删除的数据:"<<endl;
cin>>x;
for(int i=;i<num;i++)
{
if(x==stu[i])
{
for(int j=i;j<num;j++)
stu[j]=stu[j+];
num--;i--;n=;
}
}
if(n)
{
n=;
cout<<x*1.0<<"分学生信息删除成功!"<<endl;
}
else
cout<<"没有该学生!"<<endl; cout<<"是否继续删除其他学生请按Y或N:"<<endl;
cin>>a;
if(a=='y'||a=='Y')
{
continue;
}
else if(a=='n'||a=='N')
{
Output(stu,num);
break;
} }
} //7.统计各分数段人数
void Statistical_number(float stu[],int &num)
{
int a=,b=,c=,d=,e=;
for(int i=;i<num;i++)
{
if(stu[i]>=)
a++;
else if(stu[i]>=)
b++;
else if(stu[i]>=)
c++;
else if(stu[i]>=)
d++;
else
e++;
}
cout<<"100^90 89^80 79^70 69^60 <60"<<endl;
cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
}

学生成绩管理系统

学生成绩管理系统C++的更多相关文章

  1. Java项目:学生成绩管理系统(二)

    学生成绩管理系统(二):项目介绍 一.设计要求: 1.1 简单的图形界面登录功能. 1.2 对数据库的的信息的查询功能. 1.3 对数据库的的信息的修改功能. 1.4 对数据库的的信息的删除功能. 1 ...

  2. Java项目:学生成绩管理系统(一)

    学生成绩管理系统(一) 项目名称:学生成绩管理系统 项目需求分析(Need 需求): (1)该系统的用户分为教师和学生.教师的功能有:管理某一学生或课程的信息以及成绩,包括增.删.查.报表打印等:学生 ...

  3. 学生成绩管理系统[C]

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #d ...

  4. 【转】 [C/OC的那点事儿]NSMutableArray排序的三种实现(依赖学生成绩管理系统).

    原文网址:http://blog.csdn.net/ministarler/article/details/17018839 c语言实现的学生成绩管理系统是面向过程的,而OC实现的学生成绩管理系统则是 ...

  5. 学生成绩管理系统 1.0(Java+MySql)

    真难…… 数据库建立不会,中文编码不会,插入数据不会,删除不会…… Java读入数据不会……数据库连接不会…… 你也好意思说自己是学计算机的啊魂淡…… 我会慢慢写2.0,3.0版的……噗…… src/ ...

  6. 《C语言编写 学生成绩管理系统》

    /* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名: 学生成绩管理 ...

  7. c++学生成绩管理系统

    虽然比较水 =.= 但是写了两节课+一个中午 都是强迫症的锅 http://www.cnblogs.com/wenruo/p/4940182.html #include <cstdio> ...

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

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

  9. C语言练手自己编写学生成绩管理系统

    #include<stdio.h> #include<stdlib.h> /*定义学生结构体*/ struct Student { ]; ]; float Mark1; flo ...

  10. 《C语言 学生成绩管理系统》

    /* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩 ...

随机推荐

  1. python使用 HTMLTestRunner.py生成测试报告

    HTMLTestRunner.py python 2版本 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 使用时,先建立一个”PyDe ...

  2. 放一点百度来的,常见的windowserror

    0操作成功完成.1功能错误.2系统找不到指定的文件.3系统找不到指定的路径.4系统无法打开文件.5拒绝访问.6句柄无效.7存储控制块被损坏.8存储空间不足,无法处理此命令.9存储控制块地址无效.10环 ...

  3. Java并发编程基础-线程安全问题及JMM(volatile)

    什么情况下应该使用多线程 : 线程出现的目的是什么?解决进程中多任务的实时性问题?其实简单来说,也就是解决“阻塞”的问题,阻塞的意思就是程序运行到某个函数或过程后等待某些事件发生而暂时停止 CPU 占 ...

  4. java运行环境增加字体

    背景 今天在使用jfreeChart时,显示中文乱码,如下图: 环境:Ubuntu 13.04 64bit  java7  tomcat 7.0.42 解决方法--增加系统字体 0. 安装环境包 su ...

  5. jsp和

  6. Android Studio启动时出现unable to access android sdk add-on list

    目录 Android Studio First Run 检测 Android SDK 及更新,由于众所周知的原因,我们会「Unable to access Android SDK add-on lis ...

  7. Tarjan算法【强连通分量】

    转自:byvoid:有向图强连通分量的Tarjan算法 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树.搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断 ...

  8. mysql四大特性与四种隔离级别

    四大特性 1:原子性.事务是一个不可分割的整体,事务开始的操作,要么全部执行,要么全部不执行. 2:隔离性.同一时间,只允许一个事务请求同一组数据.不同的事务彼此之间没有干扰. 3:一致性.事务开始前 ...

  9. 清北合肥day2-day5

    day2:215这一天的题目相对比较模板化t1:50看错了数据范围求n个点到给出的点哈夫曼距离的最小值我想到的是一种非常zz的做法我们二分答案,然后判断是否在这个距离内有点但是这样前缀和不是很好维护于 ...

  10. java的局部变量和成员变量以及区别

    一.局部变量 存在某个方法中的变量就叫局部变量,局部变量一旦声明就必须赋值 否则不能使用 代码如下: class Person { String name; char sex; int age; pu ...