这是主函数逻辑部分

#include <iostream>
#include "class.h"
#include "student.h"
using namespace std;
int main()
{course A;   student B[10];  //10个学生int stucnt=0;   int dengluflag=-1;while (1){int SW;cout << "欢迎来到选课系统,请选择编号进行操作" << endl;cout << "1.注册账号" << endl;cout << "2.登陆已有账号" << endl;cin >> SW;switch (SW){case 1:char temp[20];cout << "请输入注册学号账号" << endl;scanf("%s", temp);B[stucnt].setxuehao(temp);cout << "请输入登陆验证密码" << endl;scanf("%s", temp);B[stucnt].setyanz(temp);cout << "注册成功,注册信息如下" << endl;B[stucnt].checkC();stucnt++;system("pause");break;case 2:char temp1[10];cout << "请输入学号账号" << endl;scanf("%s", temp);go1:cout << "请输入登陆验证密码" << endl;scanf("%s", temp1);for (int i = 0; i < stucnt; i++){if (B[i].xuehaopipei(temp) == true){if (B[i].yanzpipei(temp1) == true){cout << "登陆成功" << endl;dengluflag = i;}else{cout << "验证密码错误,重试" << endl;goto go1;}}}if (dengluflag < 0)cout << "学号不存在" << endl;system("pause");break;default:break;}if(dengluflag>=0)while (1){system("cls");int SW1=0;cout << "欢迎登陆,请选择功能编号" << endl;cout << "1.课程信息录入" << endl;cout << "2.课程信息修改" << endl;cout << "3.课程信息删除" << endl;cout << "4.课程信息浏览" << endl;cout << "5.开始选课" << endl;cout << "6.选课结果查询" << endl;cin >> SW1;switch (SW1){char temp[20];case 1:A.getinf();system("pause");break;case 2:A.reinf();system("pause");break;case 3:A.deinf();system("pause");break;case 4:A.printfc();system("pause");break;case 5:A.printfc();cout << "请输入要选的课程编号" << endl;scanf("%s", temp);B[dengluflag].choiceC(temp);cout << "选课成功" << endl;system("pause");break;case 6:system("cls");int sw=0;cout << "1.按学号查询学生选课情况" << endl;cout << "2.按课程查询学生选课情况" << endl;cin >> sw;switch (sw){case 1:cout << "请输入学号" << endl;scanf("%s", temp);for (int i = 0; i < stucnt; i++){if (B[i].xuehaopipei(temp))B[i].checkC();}system("pause");break;case 2:char temp62[20];cout << "请输入查询课程编号" << endl;scanf("%s", temp62);cout << "选择此门课程的学号有" << endl;for (int i = 0; i < stucnt; i++){for (int j = 1; j <= B[i].kecnt; j++){char temp1[20];B[i].getkc(j, temp1);if (strcmp(temp1, temp62) == 0)cout << B[i].xuehao<<",";}}cout << endl;break;}system("pause");break;}_sleep(1000);system("cls");}_sleep(1000);system("cls");}system("pause");return 0;
}

下面为自己定义的头文件,分别为学生类与课程类

#ifndef STUDENT_H
#define STUDENT_H
#include <iostream>
#include <vector>
#include<string.h>
using namespace std;
class student
{
public:char yixuankec[256];char yanz[10]="000000";char xuehao[20];int kecnt = 0;            //已选课程数目
public:student(char *_xuehao=NULL,char *_yanz=NULL);void choiceC(char* _bianhao);                              //选课功能void checkC();                             //查询功能void getkc(int cnt, char* temp);           //返回第cnt个课程的编号void setyanz(char *_yanz);                 //重新设置验证码void setxuehao(char *_xuehao);           //设置学号bool xuehaopipei(char *_xuehao);          //学号是否匹配bool yanzpipei(char*_yanz);               //验证码是否匹配
};
student::student(char *_xuehao, char *_yanz)
{kecnt = 0;yixuankec[0] = 0;if (_xuehao != NULL)strcpy(xuehao, _xuehao);if (_yanz!=NULL)strcpy(yanz, _yanz);
}void student::choiceC(char* _bianhao)                              //选课功能
{int i = 0;for (i = 0; i < 256; i++){if (yixuankec[i] == 0){if (kecnt != 0){yixuankec[i] = ',';i++;}break;}}strcpy(yixuankec + i, _bianhao);//此处没有判断i是否越界kecnt++;
}
void student::checkC()                                  //查询功能
{printf("学号:%s\n", xuehao);printf("登陆验证:%s\n", yanz);printf("已选课程编号:%s\n", yixuankec);}
void student::getkc(int cnt, char* temp)
{char temp1[10];int c=0;for (int i = 0,j=0; i < 256; i++){if (yixuankec[i] != 0 && yixuankec[i] != ','){temp1[j] = yixuankec[i];j++;}else //yixuankec[i] == ',' \0{c++;temp1[j] = 0;if (c == cnt){strcpy(temp, temp1);return;}j = 0;}}
}void student::setyanz(char *_yanz)                 //重新设置验证码
{strcpy(yanz, _yanz);//cout << "设置成功" << endl;
}
void student::setxuehao(char *_xuehao)            //设置学号
{strcpy(xuehao, _xuehao);//cout << "申请成功" << endl;
}bool student::xuehaopipei(char *_xuehao)          //学号是否匹配
{if (strcmp(xuehao, _xuehao) == 0)return true;else return false;
}
bool student::yanzpipei(char*_yanz)              //验证码是否匹配
{if (strcmp(yanz, _yanz) == 0)return true;else return false;
}#endif
#ifndef CLASS_H
#define CLASS_H
#include <iostream>
#include <vector>
#include<string.h>
using namespace std;struct kc
{char bianhao[10];char name[20];int xueshi;int xuefen;char kaixueinf[10];
};class course
{
public:int cnt=0;    //已添加课程数量vector<struct kc> C;
public:course();void printfc();void reinf();void deinf();void getinf();};
course::course()
{
}
void course::printfc()
{printf("课程编号,课程名称,课程学时,课程学分,开学时间\n");for (int i = 0; i < cnt; i++){printf("%s,%s,%d,%d,%s\n", C.at(i).bianhao, C.at(i).name, C.at(i).xueshi, C.at(i).xuefen, C.at(i).kaixueinf);}
}
void course::reinf()
{char temp[20];cout << "请输入课程的编号或者名称" << endl;scanf("%s", temp);int i = 0;for ( i = 0; i < cnt; i++){if (strcmp(C.at(i).bianhao, temp) == 0 || strcmp(C.at(i).name, temp) == 0)break;}printf("查询课程信息为%s,%s,%d,%d,%s\n", C.at(i).bianhao, C.at(i).name, C.at(i).xueshi, C.at(i).xuefen, C.at(i).kaixueinf);cout << "请输入修改后的 课程编号,课程名称,课程学时,课程学分,开学时间(xxxx,x,x)" << endl;scanf("%s", C.at(i).bianhao);scanf("%s", C.at(i).name);scanf("%d", &C.at(i).xueshi);scanf("%d", &C.at(i).xuefen);scanf("%s", C.at(i).kaixueinf);cout << "修改成功" << endl;
}
void course::deinf()
{char temp[20];cout << "请输入课程的编号或者名称" << endl;scanf("%s", temp);int i = 0;for (i = 0; i <cnt; i++){if (strcmp(C.at(i).bianhao, temp) == 0 || strcmp(C.at(i).name, temp) == 0)break;}printf("删除课程信息为%s,%s,%d,%d,%s\n是否确认删除?是输入1,不是输入0", C.at(i).bianhao, C.at(i).name, C.at(i).xueshi, C.at(i).xuefen, C.at(i).kaixueinf);int Isde=0;cin >> Isde;if (Isde){C.erase(C.begin() + i);  //参数为迭代器地址cnt--;cout << "删除成功" << endl;}
}
void course::getinf()
{int N = 0;cout << "请输入要录入的课程数量" << endl;cin >> N;for (int i = 0; i < N; i++){struct kc a;cout << "请输入 课程编号,课程名称,课程学时,课程学分,开学时间(xxxx.x.x)" << endl;scanf("%s", a.bianhao);scanf("%s", a.name);scanf("%d", &a.xueshi);scanf("%d", &a.xuefen);scanf("%s", a.kaixueinf);//scanf("%s,%s,%d,%s,%d", a.bianhao, a.name, &a.xueshi, a.kaixueinf, &a.xuefen);C.push_back(a);cnt++;}cout << "录入完成" << endl;
}#endif

直接拿去就可以用了

现有程序在下方的链接里,是完整版哦,比上面的源代码多了文件录入和文件保存

链接:https://pan.baidu.com/s/1Wai-x43E826W3_ZBYA5VaA 
提取码:tgdb 
复制这段内容后打开百度网盘手机App,操作更方便哦

C++实现学生选课管理系统相关推荐

  1. 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...

    课程设计报告 课程设计题目:学生选课管理系统 学 号 姓 名:李唐松 专 业:软件工程 班 级: 091107 指导老师:谢小林 2009年1月5 *实验题目: 学分管理程序 *实验时间与地点:200 ...

  2. 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的

    <JAVA数据库课程设计学生选课管理系统的>由会员分享,可在线阅读,更多相关<JAVA数据库课程设计学生选课管理系统的(59页珍藏版)>请在人人文库网上搜索. 1.一.课程设计 ...

  3. 骏文c语言银行系统,C语言学生选课管理系统

    <C语言学生选课管理系统>由会员分享,可在线阅读,更多相关<C语言学生选课管理系统(35页珍藏版)>请在人人文库网上搜索. 1.档命唇窄蛊酥袖瞧眩筛滓疑傻陪支丈停尊夯员翌界亢禾 ...

  4. 学生课程成绩信息实体表设计mysql_数据库综合实验--设计某高校学生选课管理系统...

    数据库综合实验重做 因为期末的时候做数据库综合实验太匆忙,很多地方都是能用就好,做完之后突然想到可以改进的方法,所以现在寒假来重做一下 题目如下: 设计某高校学生选课管理系统 实现学生信息.课程学生管 ...

  5. 数据库课程设计-----------学生选课管理系统的设计

    由于时间关系,里面许多图片都已经变形或错位 课程设计(学年论文) 题目:学生选课管理系统的设计与实现 系    院计算机科学技术系 专    业计算机科学与技术 班    级 姓    名 学    ...

  6. 基于C#+SQL Server实现(Web)学生选课管理系统【100010309】

    学生选课管理系统的设计与开发 基于C#+SQL Server实现学生选课管理系统 一.项目背景 学生选课管理系统是一个学校不可缺少的部分,传统的人工管理档案的方式存在着很多的缺点,如:效率低.保密性差 ...

  7. 基于 Eclipse+Java Swing + Mysql 学生选课管理系统

    一.项目概要:        基于Java Swing+Mysql8.0数据库的学生选课管理系统,主要有三个部分:系统管理,数据管理,数据查询. 1).系统管理主要用于用户信息的相关管理.主要包括密码 ...

  8. 大学JAVA实验六 学生选课管理系统

    学生选课管理系统 实验内容: 1.为选修课程的学生设计"学生选课数据库管理系统",能进行相关记录的插入.修改.删除和查询等操作. 2.在实现前面功能的基础上,将操作界面改为图形用户 ...

  9. php选课实验成品_php学生选课管理系统

    学生选课管理系统需要完成这些功能:课程管理人员通过该系统可以对以上信息进行查询和维护并对选课进行管理等功能:学生通过该系统可以进行在线选课,包括管理个人信息.个人在线选课.个人成绩查询等功能. 学生选 ...

  10. SSM学生选课管理系统项目中问题总结(未完待续)

    学生选课管理系统 前端遇到的问题 一.ajax的注意事项 二.引入bootstrap的模态框 三.bootstrap模态框共用 四.编辑框回显 五.删除数据页面不刷新 六.分页 七.排序 八.分页后续 ...

最新文章

  1. 强化学习(一)- 强化学习介绍、Markov决策过程和贝尔曼期望方程
  2. POJ 1523 SPF
  3. 西班牙电信拟出售 60亿欧元资产
  4. yaml加配置文件后起不来_YAML配置文件管理资源
  5. 前端学习(1586):react列表2
  6. Dos命令使用Latex编写“Hello Latex.”
  7. 统计单词数(洛谷-P1308)
  8. 滴滴是如何从零构建集中式实时计算平台的?| 技术头条
  9. idea弹出Server‘s certificate is not trusted
  10. NIO中的ByteBuffer读取中文错误的解决方法:MalformedInputException
  11. 实用主义学python爬虫_麻瓜编程 实用主义学Python2018
  12. jq ui 日历控件
  13. html caption 靠左,HTML caption align 属性
  14. Git——详解操作码云
  15. Deepin+win7双系统启动项问题解决
  16. 通过piranha搭建lvs高可用集群
  17. 解决IE浏览器打印iframe页面时字体等样式缩小的问题
  18. 网络学习之网络通信设备辨析
  19. 使用javaGUI做一个MC版俄罗斯方块(二)
  20. ajax请求数据成功但是success中拿不到数据。

热门文章

  1. 制作Mac的U盘启动系统
  2. IO-Link和CC-Link的区别是什么?
  3. 教你生成超高逼格微信朋友圈
  4. Linux下搭建Cortex-M嵌入式开发环境
  5. Git的学习笔记基本使用
  6. 日分析破亿!Stratifyd在AI数据分析领域再获佳绩
  7. 电脑关闭疑难解答_如何使用Office 365的疑难解答工具解决常见问题
  8. 数据结构-寻找二叉树两节点的最近公共祖先(Java)
  9. 国内从事红外热成像的公司
  10. 阿里P7架构师年薪50W,只因做到了这几点