#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
using namespace std; //////////////////////////////课程类/////////////////////////////////////////////
class course
{
private:
int num;
char name[10];
char teachername[10];
int time;
public:
friend class grade;
course()
{
num=1;
strcpy(name,"c++");
strcpy(teachername,"утеТ");
time=100;
}
course(int nu,char na[],char tn[],int ti)
{
num=nu;
strcpy(name,na);
strcpy(teachername,tn);
time=ti;
}
void Set()
{
cout<<"Please input number,course name,teachername and study time:"<<endl;
cin>>num>>name>>teachername>>time;
}
void show()
{
cout<<"number="<<num<<endl
<<"course name="<<name<<endl
<<"teachername="<<teachername<<endl
<<"study time="<<time<<endl;
}
int num1(){return num;}
};
//////////////////////////////成绩类/////////////////////////////////////////////
class grade
{
private:
int score,cid;
char id[9];
public:
grade()
{
strcpy(id,"无");
cid=0;
score=0;
}
grade(int a,char b[],int c)
{
strcpy(id,b);
cid=c;
score=a;
}
void in()
{
cout<<"按“课程名称”“课程编号”“学生成绩”的顺序输入)"<<endl;
cin>>id>>cid>>score;
}
void out()
{
cout<<"课程名称 "<<id<<" 课程编号 "<<cid<<" 学生成绩 "<<score<<endl;
}
int Cid()
{
return cid;
}
void C(course a)
{
cid=a.num;
//strcpy()
}
};
//////////////////////////////////学生类///////////////////////////////////////////////////////
class student
{
private:
int num;
char name[30];
int Class;
char id[20];
grade c[10];
course d[10];
public: student()
{
num=20180000;
strcpy(name,"xxx");
Class=1;
strcpy(id,"123456789123456789");
}
/* student(int a,char b[],int c,char d)
{
num=a;
Class=c;
strcpy(name,b);
strcpy(id,d);
count++;
}*/
void setsubject(course &p,int a)
{
d[a]=p;
c[a].C(p);
}
void set()
{
cout<<"按“学号”“姓名”“班级”“身份证号”的顺序输入"<<endl;
cin>>num>>name>>Class>>id;
int i;
for(i=0;i<10;i++)
{
if(c[i].Cid()!=0)c[i].in();
}
}
void dis()//学生全部信息输出
{
cout<<"学号 "<<num<<" 姓名 "<<name<<" 班级 "<<Class<<" 身份证号 "<<id<<endl;
int i;
for(i=0;i<10;i++)
{
if(c[i].Cid()!=0)
{
c[i].out();
d[i].show();
} }
}
void out()
{
int i;
for(i=0;i<10;i++)
//if(c[i].Cid()!=0)
c[i].out();
}
int Cid()//返回课程编号
{
int i;
for(i=0;i<10;i++)
{
if(c[i].Cid()!=0)
{
return c[i].Cid();
} }
}
int Num()//返回学号
{
return num;
}
course Sub(int a)//返回课程数据
{
return d[a];
}
void in()//修改学生成绩
{
int i;
for(i=0;i<10;i++)
{
if(c[i].Cid()!=0)
{
c[i].in();
} }
}
};
int main()
{
int x,y,i=0,j=0;
student a[10];
course c[10];
index:
cout<<" *********欢迎使用学生管理系统*********"<<endl;
cout<<" 您是教师还是学生? "<<endl;
cout<<" 1.教师 2.学生 "<<endl;
cin>>x;
while(1)
{
////////////////////////////教师部分///////////////////////////////////////
if(x==1)
{
xx:
cout<<"1.处理学生数据 2.处理课程数据 3.返回上一级"<<endl;
cin>>y;
if(y==3)goto index;
////////////////////////教师处理课程部分/////////////////////////////////////
if(y==2)
{
cout<<"1.录入课程信息 2.显示当前课程信息 3.返回上一级 4.返回主菜单 5.退出系统"<<endl;
int z;
cin>>z;
/////////////////////////教师录入课程信息////////////////////////////////////////
if(z==1)
{ c[j].Set();
while(1)
{
char b;
cout<<"是否需要继续录入课程数据(y/n)";
cin>>b;
if(b=='y')
{
j++;
c[j].Set();
}
else break;
} }
/////////////////////////教师查看所有课程信息////////////////////////////////////
if(z==2&&i==0)cout<<"暂无"<<endl;
if(z==4)goto index;
if(z==3)goto index;
if(z==5)
{
cout<<"谢谢使用"<<endl;
exit(0);
}
}
/////////////////////////教师处理学生信息部分///////////////////////////////////
if(y==1)
{
while(1)
{
cout<<"1、录入学生数据 2、显示学生数据 3、返回上一级 4、返回主菜单 5、退出系统 "<<endl;
int c;
cin>>c;
if(c==2&&i==0)cout<<"暂无"<<endl;
if(c==4)goto index;
if(c==3)goto xx;
if(c==5)
{
cout<<"谢谢使用"<<endl;
exit(0);
}
/////////////////////教师录入学数据////////////////////////////////////////
while(1)
{
if(c==1)
{
cout<<"1.录入学生基本信息 2.录入学生成绩"<<endl;
int b;
cin>>b;
if(b==1)
{
a[i].set();
/////////////////////////////////////////////////////////////////////////
i++;
while(1)
{
char b;
cout<<"是否需要继续录入学生数据(y/n)";
cin>>b;
if(b=='y')
{
a[i].set();
i++;
}
else break;
}
break;
}
if(b==2)
{
int j;
for(j=0;j<10;j++)
{
a[j].out();
cout<<"请输入需要修改成绩的科目的编号"<<endl;
int s;
cin>>s;
int k;
for(k=0;k<10;k++)
{
if(s==a[j].Cid())a[j].in();
}
}
}
}
///////////////////////////教师查看学生数据///////////////////////////////
if(c==2)
{
int j;
for(j=0;j<i;j++)
if(a[j].Num()!=20180000)a[j].dis();
break;
}
}//while的循环后括号
}//while的循环后括号
}//if的后括号
}//if的后括号
////////////////////////////学生部分///////////////////////////////////////
if(x==2)
{
cout<<"请输入您的学号"<<endl;
long b;
cin>>b;
int j;
for(j=0;j<10;j++)
{
if(a[j].Num()==b)
{
cout<<"1.选课 2.查看成绩 3.返回上一级 4.退出系统"<<endl;
int s;
cin>>s;
if(s==4)
{
cout<<"谢谢使用"<<endl;
exit(0);
}
if(s==3)goto index;
/////////////////////////学生选课部分///////////////////////////////////////
if(s==1)
{
int l;
for(l=0;l<10;l++)
//if(c[l].Bh()!=0)c[l].Show();
cout<<"请输入您想要选的课的课程编号"<<endl;
int q;
cin>>q;
while(1)
{
for(int k=0;k<10;k++)
{
a[j].setsubject(c[q-1],k);
cout<<"是否需要继续选课(y/n)"<<endl;
char w;
cin>>w;
if(w=='y')
{
int m;
for(m=0;m<10;m++)
if(c[m].num1()!=0)c[m].show();
cout<<"请输入您想要选的课的课程编号"<<endl;
cin>>q;
}
if(w!='y')goto index;
}
}
}
//////////////////////////学生查看成绩部分///////////////////////////////////
if(s==2)
{
a[j].out();
}
}//确认学生信息后操作的后括号
}//for的后括号
}//if的后括号,学生部分的后括号
}//while的后括号
}//main的后括号

学生管理系统 C++课设的更多相关文章

  1. JAVA课设个人博客--多源数据教学管理系统

    JAVA课设个人博客--多源数据教学管理系统 1.团队课程设计博客链接 https://www.cnblogs.com/hq9-/p/10278470.html 2. 个人负责模块或任务说明 主要模块 ...

  2. C语言课设心得分享(一)

    今儿上完课设,老师果然讲的比较少,周四还不用去,看来还是学生自己折腾.我在做课设的过程中,攒了一些心得/体会,希望能和大家分享分享,也希望能一起探讨探讨.如果是我能回答的问题,我很乐意能够提供帮助. ...

  3. Java 小型学生管理系统心得

    这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...

  4. 学生管理系统开发代码分析笔记:jsp+java bean+servlet技术

    1 序言 学习java web的时候很渴望有一份完整的项目给我阅读,而网上的大部分项目拿过来都无法直接用,好不容易找到了一个学生管理系统也是漏洞百出.在此,我将边修改边学习这份代码,并且加上完全的注释 ...

  5. 如何用 python 优雅地完成数据库课设

    0 前言 偶然间发现 Google 收录了学校实验打卡系统的接口,正好要做数据库课设,便拿来作为 environment. 机房居然装了 python ,早就听说 python 写爬虫速度一流,课上的 ...

  6. Qt5——从零开始的学生管理系统

    Qt教程——从零开始的学生管理系统(文件) 一.项目设计 1.需求分析 记录并处理学生成绩信息. 1)添加新的学生数据: 2)根据学号对已有的学生数据进行修改: 3)根据学号删除已存在的学生信息: 4 ...

  7. C语言学生管理系统

    想练习一下链表,所以就有了这个用C写的学生管理系统 没有把它写入文件,才不是因为我懒哈哈哈,主要是为了练习链表的 #include<stdio.h> #include<stdlib. ...

  8. EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统

    EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...

  9. Mybatis高级:Mybatis注解开发单表操作,Mybatis注解开发多表操作,构建sql语句,综合案例学生管理系统使用接口注解方式优化

    知识点梳理 课堂讲义 一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越 ...

随机推荐

  1. think php 框架下拉分页

    //以对象的形式获取数据库$data变量的信息,将lastPage()传输至页面 $lastpage = $data->lastPage(); $this->assign('lastpag ...

  2. Sublime Text3中文环境设置

    Sublime Text3中文环境设置 1.首先打开安装好的的Sublime软件,选择Preferences下面的Package Contorol选项出现弹窗方框 2.在弹窗输入install pac ...

  3. Vue的mvvm模式

    传统的MVC模式: Model:模型-->负责数据存储 View:视图-->负责页面展示 Control:控制器-->事件交互(根据视图与用户交互后改变数据) Vue的MVVM模式: ...

  4. Windows下搭建REDIS集群

    Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...

  5. 原生JS实现拼图游戏

    最近无聊,练练原生JS:实现拼图游戏.两种玩法:第一种是单击元素进行交换位置:第二种是拖拽元素进行位置交换.首先需要上传图片并进行回显(需要用到FileReader):下面是部分截图: 可以自行设置切 ...

  6. pandas常用操作详解——info()与descirbe()

    概述 df.info():主要介绍数据集各列的数据类型,是否为空值,内存占用情况: df.describe(): 主要介绍数据集各列的数据统计情况(最大值.最小值.标准偏差.分位数等等). df.in ...

  7. LGP5089题解

    考试的一道题,考场上sb了没写出来,然后在两天后的英语课上胡出来了( 首先猜一个奇怪的结论: 对于元素 \((a,b)\),看做连接第 \(a\) 列和第 \(b\) 行的一条边,那么如果一行和一列在 ...

  8. 分布式 PostgreSQL 集群(Citus)官方示例 - 时间序列数据

    在时间序列工作负载中,应用程序(例如一些实时应用程序查询最近的信息,同时归档旧信息. https://docs.citusdata.com/en/v10.2/sharding/data_modelin ...

  9. calcite物化视图详解

    概述 物化视图和视图类似,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图. 当用户查询的时候,原先创建的物化视图会注册到优化器中,用户的查询命中物化 ...

  10. DDOS防御实验----反射器的安全配置

    0x01 环境 共包含三台主机 一台centos7.3 为attact主机,装有python +Scapy 一台centos7.3,server,装有bind9 ntp memcached,作为DDO ...