学生管理系统 C++课设
#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++课设的更多相关文章
- JAVA课设个人博客--多源数据教学管理系统
JAVA课设个人博客--多源数据教学管理系统 1.团队课程设计博客链接 https://www.cnblogs.com/hq9-/p/10278470.html 2. 个人负责模块或任务说明 主要模块 ...
- C语言课设心得分享(一)
今儿上完课设,老师果然讲的比较少,周四还不用去,看来还是学生自己折腾.我在做课设的过程中,攒了一些心得/体会,希望能和大家分享分享,也希望能一起探讨探讨.如果是我能回答的问题,我很乐意能够提供帮助. ...
- Java 小型学生管理系统心得
这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...
- 学生管理系统开发代码分析笔记:jsp+java bean+servlet技术
1 序言 学习java web的时候很渴望有一份完整的项目给我阅读,而网上的大部分项目拿过来都无法直接用,好不容易找到了一个学生管理系统也是漏洞百出.在此,我将边修改边学习这份代码,并且加上完全的注释 ...
- 如何用 python 优雅地完成数据库课设
0 前言 偶然间发现 Google 收录了学校实验打卡系统的接口,正好要做数据库课设,便拿来作为 environment. 机房居然装了 python ,早就听说 python 写爬虫速度一流,课上的 ...
- Qt5——从零开始的学生管理系统
Qt教程——从零开始的学生管理系统(文件) 一.项目设计 1.需求分析 记录并处理学生成绩信息. 1)添加新的学生数据: 2)根据学号对已有的学生数据进行修改: 3)根据学号删除已存在的学生信息: 4 ...
- C语言学生管理系统
想练习一下链表,所以就有了这个用C写的学生管理系统 没有把它写入文件,才不是因为我懒哈哈哈,主要是为了练习链表的 #include<stdio.h> #include<stdlib. ...
- EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统
EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...
- Mybatis高级:Mybatis注解开发单表操作,Mybatis注解开发多表操作,构建sql语句,综合案例学生管理系统使用接口注解方式优化
知识点梳理 课堂讲义 一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越 ...
随机推荐
- AngularJS集成富文本编辑器
最近在Angular中需要集成富文本编辑器,本来已经集成好百度的UEditor,后台觉得配置太多,让我弄个别的,然后就找到了wangEditor,这个配置和上手都要简单一些,下面来看看具体操作步骤吧: ...
- joblib保存模型和joblib的并行化处理和tqdm
keep首先是默认first
- VTK数据拓扑结构、几何结构和属性数据
读取到VTK数据后,将数据组织起来并添加属性值. 示例: #include <vtkSmartPointer.h> #include <vtkPoints.h> #includ ...
- 用 EXISTS 或 NOT EXISTS 用法
项目中遇到这么个情况: t1表 和 t2表 都是150w条数据,600M的样子,都不算大. 但是这样一句查询 ↓ select * from t1 where phone not in (selec ...
- 给R语言RStudio添加阿里云镜像源
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 方法一: 打开RStudio,输入options()$repos查看默认镜像源情况 options()$repos 打开tools工具栏,找到Glo ...
- python3 爬虫--Chrome以及 Chromedriver安装配置
1终端 将下载源加入到列表 sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ ...
- 建立META-INF/spring.factories文件的意义何在
平常我们如何将Bean注入到容器当中 @Configuration @EnableConfigurationProperties(HelloProperties.class) public class ...
- spring cloud 的核心组件有哪些?
Eureka:服务注册于发现. Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求. Ribbon:实现负载均衡,从一个服务的多台机器中选择一台. Hystrix:提 ...
- Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
配置变更JDK 版本升级第三方类库升级响应式 Spring 编程支持HTTP/2 支持配置属性绑定更多改进与加强-
- centos容器安装nginx及运行
进入centos容器: 安装依赖:yum insatll -y wget gcc gcc-c++ make openssl-devel 安装: 到官网复制下载链接:http://nginx.org/d ...