#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. centeros 命令

    一.查看系统时间.硬件时间 # date // 查看系统时间 #hwclock // 查看硬件时间 二.时间服务器上的时间同步的方法 安装ntpdate工具 # yum -y install ntp ...

  2. 七天接手react项目 —— state&事件处理&ref

    state&事件处理&ref 在 react 起步 一文中,我们学习了 react 相关知识:jsx.组件.props.本篇将继续研究 state.事件处理和ref. state St ...

  3. IDEA快捷键使用分享

    Ctrl+D:复制当前行 Shift+Enter:光标移动到下一行 Alt+/:补全代码 Alt+Enter:万能解错/生成返回值变量 Ctrl+Z:撤销 Ctrl+y:反撤销 Ctrl+y:删除 C ...

  4. DataStage中Transformer的函数大全

    一. 类型转换函数 类型转换函数用于更改参数的类型. 以下函数位于表达式编辑器的"类型转换"类别中.方括号表示参数是可选的.缺省日期格式为 %yyyy-%mm-%dd. 以下示例按 ...

  5. web服务器-nginx虚拟主机

    web服务器-nginx虚拟主机 一 虚拟主机介绍 就是把一台物理服务器划分成多个虚拟的服务器, 每一个虚拟主机都可以有独立的域名和独立的目录,同时发布俩个网站. 二. 基于IP的虚拟主机 应用场景: ...

  6. bzoj2084/luoguP3501 [Poi2010]Antisymmetry(回文自动机+dp)

    bzoj2084/luoguP3501 [Poi2010]Antisymmetry(回文自动机+dp) bzoj Luogu 对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一 ...

  7. 半吊子菜鸟学Web开发4 --Html css学习2

    1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...

  8. c#的委托实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. Spring Boot 的配置文件有哪几种格式?它们有什么区别?

    .properties 和 .yml,它们的区别主要是书写格式不同.    1).properties    app.user.name = javastack    2).yml    app:   ...

  10. 讲讲 kafka 维护消费状态跟踪的方法?

    大部分消息系统在 broker 端的维护消息被消费的记录:一个消息被分发到 consumer 后 broker 就马上进行标记或者等待 customer 的通知后进行标记.这 样也可以在消息在消费后立 ...