#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. LGP4463题解

    这玩意儿怎么看上去就很经典啊( 哦互不相同啊,那没事了( 考虑一个 \(\rm DP\).由于限制了互不相同,那么我们考虑从值域开始想. 设 \(dp_{n,k}\) 为在 \([1,n]\) 中选了 ...

  2. Linux上后台保持Terminal交互运行的三种方式:nohub、screen和tmux

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 后台运行 Linux上,如果一个进程需要保持后台运行,尤其是在Linux服务器上,后台运行程序.避免因为SSH连接断开而导致进程停止运行时,该怎么 ...

  3. 配置jenkins+git+python实现接口自动化持续集成

    1.安装jenkins服务(傻瓜式安装,这里不做描述) 2.windows上访问jenkins地址(http://ip:端口号/),用户名密码登录 3.进入后新建一个job 4.Source Code ...

  4. 和风天气WebApi使用教程

    1.首先进入和风天气开发平台,点击右上角的注册进行注册 和风天气开发平台 2.填写注册用的邮箱和密码完成注册,可能还需要手机号,按提示注册完成即可. 3.从和风天气开发平台右上角进入控制台,输入你刚刚 ...

  5. Mysql常用操作笔记

    目录 登录 退出 Sql语句分类 DDL操作数据库 1.创建数据库 2.查看数据库 3.修改数据库 4.删除数据库 5.使用数据库 6.创建表 7.查看表 8.删除表 9.修改表 10.常用字段类型 ...

  6. 分布式锁redis

    1. 首先看这篇文章中  https://mp.weixin.qq.com/s/s-ozSjM5WmSUopxttSWYeQ 为什么redis能实现锁功能呢,看下图,redis命令窗口中,setnx  ...

  7. SpringBoot与SpringCloud的关系与区别?

    一.SpringBoot和SpringCloud简介 1.SpringBoot:是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动Sp ...

  8. 我对arguments.callee的理解

    基本理解: 你怎么看待一个函数呢?又如何看待一个函数对象呢?函数和Function之间的关系到底是什么?我觉得理解这些对理解arguments.callee有所帮助. 先说说auguments.cal ...

  9. spring-boot--lernning之自定义starters

    思路: 1这个场景需要使用到的依赖是什么??? 2如何编写自动配置 @Configuration 指定这个类是一个配置类 @ConditionalOnXXXX 指定条件下成立的情况下自动配置类生效 @ ...

  10. springboot-访问数据库

    在springboot中,默认的JPA实现是Hibernate,JPA是Java Persistence API的简称,中文名Java持久层API <!--数据库--> <depen ...