> # ♻️ 资源
> **大小:** 1.49MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010900**](https://www.yuque.com/sxbn/ks/100010900)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87484813**](https://download.csdn.net/download/s1t16/87484813)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 学校开课查询系统
## 一、 大型实验的内容
学校开课查询系统用于进行学校开课信息的查询以及学生的选课操作,要求完成的主要的功能包括学生管理、课程管理、管理人员管理。
1、设计菜单实现功能选择;
2、能够对课程信息进行输入、修改、删除操作;
3、按给定的条件(编号、名称、任课教师、开课院系等)查询课程信息;
4、能对开课信息按学分、开课学院排序整理;
5、以文件形式保存相关信息,可以读取默认文件中的信息进行查询等操作。
我在此之上添加了学生的退选课操作
## 二、 运行环境
学校开课查询系统在 codeblocks17.12 平台下开发,操作系统:Windows 10。
硬件环境:(备注:可以查看“计算机”属性)
处理器:Intel(R) Core(TM) i7-2557M CPU @ 1.70GHz 1.70GHz
内存:4.00GB
系统类型:64 位操作系统
## 三、 实验课题分析(主要的模块功能、流程图)
### 3.1 学校开课查询的主要功能
学校开课查询主要功能为:学生管理、课程管理、管理人员管理,可以完成查询开课信息,对开课信息进行排序,学生,管理人员登陆,修改学生,课程信息,学生退,选课等操作
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716857005901-4d122afc-04cd-41d6-bbf1-f664372d1d65.png#averageHue=%23f6f6f6&from=url&id=VDvao&originHeight=378&originWidth=552&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
系统各模块的功能具体描述为:
1、 查询开课信息模块
这部分可以对开课信息进行查询与排序之后输出的操作,但无法对课程进行修改
2、 读者模块
读者必须先进行登录,登录失败之后,无法进行操作,登录成功之后可以查询课程信息,并按编号进行选课,如果已经选了,可以进行退选,并且可以展示个人信息,修改密码
3、 管理员模块
必须先登录,登录失败则退回上一层
登录成功
管理员模块可以对课程信息进行修改,删除,添加操作,也可以对学生信息进行修改添加,删除操作
### 3.2 系统分析及设计
系统涉及对象有两个基本类:课程类和学生类主要涉及操作如下所示
表1 人员类涉及的操作
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716857005965-d5acbb81-0bb1-4f92-93c7-258f37010d90.png#averageHue=%23e7e7e7&from=url&id=iQ1bC&originHeight=334&originWidth=628&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
可以采用面向对象的方式实现图书管理系统,根据不同的使用权限,使用对象分为学生、管理员与一般访客。系统的主要的类结构如图 2 所示。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716857006076-6ca20ec6-ed16-4fb7-a4f1-5c82ebe3dc64.png#averageHue=%23ebebeb&from=url&id=vYC9o&originHeight=121&originWidth=649&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
图 2 系统主要类结构图
分别设计学生类、管理员类,学生链表类,课程链表类,管理员类
用文本文件进行数据的保存,需要保存的数据主要包括图书数据、用户数据(包括读者、、管理员),实现所有的文本操作相关的功能。
### 3.3 系统的实现
(1)类的编写
系统工程名为:学生开课管理系统。包含了 student 类,course 类,manager 类三个基本类以及相对应的链表类 stulist 类(学生链表类)及 courlist(课程链表类)。而这些人用户都有相应的用户编号和密码,运用时将三个基本类中的用户名和用户密码分别与编号和密码(password)对应。
具体类结构声明如下:
student类:
```
# ifndef STUDENT_H
# define STUDENT_H
# include<string>
using namespace std;
class student
{
public:
student(string,string,int,int,string,int,int * );
student(string,string,int,int,string);
virtua~student();
void display();//展示个人信息
void add(int temp);//将课程编号编入subject末尾
student(const student &stu1);
student *next;
string getid();//得到学号
string getname();
int getage();
int getey();
string getpassword();
int getcounting();
void changepassword();//修改密码
void choosecourse(int no);//选课或取消已选的课
int existcourse(int no);
void cover(int no);//从no后开始一个一个往前移
int *subject;//存放学生所选课程的学生编号
void setdata(string id,string na,int a,int ey,string pa);
protected:
string studentid;//学号
string name;
int age;
int enrollyear;//入学年份
string password;//密码
int counting;//已选课科目数量
};
# endif // STUDENT_H
```
course类
```
class course
{
public:
course *next;//
course(int,string,string,double,string,string,int ,int );
virtua~course();
void display();
void shift(string nm,string tnm,double s,string na,string fa);
course & operator =(course &c);
int getnumber();
string getname();
string getteacher();
double getscore();
string getnature();
string getfaculty();
int getcur();
int getmaxp();
protected:
int number;//课程编号
string name;
string teachername;//任课教师
double score;//学分
string nature;//课程性质
string faculty;//开课院系
int currentperson;//已选该课的人数
int maxperson;//该科可选的最大人数
};…….//罗列所有类的声明
```
manager 类:
```
class manager
{
public:
manager(string ,string);
virtua~manager();
boologin();
void shiftpass();
protected:
string account;
string password;
};
```
(2)链表的使用
系统实现采用文件的输入输出流对文本数据进行读取与写入,但是由于学生信息、课程信息、都是一个数据的集合,于是对数据的存储组织使用了单向链表。
因为图书管理系统在登录、查找、修改、添加的时候都需要处理大量的数据,所以使用链表十分必要。以课程信息为例,在 course 的基础上定义一个对应的 courlistt 类来管理 kecheng 数据,具体的结构声明如下:
```
class courlist
{
public:
courlist();
virtua~courlist();
void add(course &cou);//向末尾插入
course *findnumber(int no);//按编号查找
void findname(string n);//按名字查找
void findfaculty(string f);//按院系查找
void findteacher(string t);//按教师名字查找
void ultimatefind();//集合所有查找
void show();//展示所有课程信息
void write();//写入文件
void sortscore();//按学分排序
void sortfaculty();//按开课学院排序
void ultimatesort(
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++实现的(控制台)学校开课查询系统【100010900】
共42个文件
cpp:12个
h:10个
txt:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 26 浏览量
2023-02-23
09:47:06
上传
评论 6
收藏 1.5MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010900 学校开课查询系统用于进行学校开课信息的查询以及学生的选课操作,要求完成的主要的功能包括学生管理、课程管理、管理人员管理。 1、设计菜单实现功能选择; 2、能够对课程信息进行输入、修改、删除操作; 3、按给定的条件(编号、名称、任课教师、开课院系等)查询课程信息; 4、能对开课信息按学分、开课学院排序整理; 5、以文件形式保存相关信息,可以读取默认文件中的信息进行查询等操作。 我在此之上添加了学生的退选课操作
资源推荐
资源详情
资源评论
收起资源包目录
100010900-基于C++实现的(控制台)学校开课查询系统.zip (42个子文件)
cplus
LICENSE 1KB
学校开课查询系统实验报告软工04高源.doc 440KB
学校开课查询系统实验报告软工04高源.pdf 570KB
高源的课程设计源码
include
course.h 871B
manager.h 300B
courlist.h 756B
stulist.h 583B
student.h 1KB
src
courlist.cpp 4KB
course.cpp 1KB
stulist.cpp 2KB
manager.cpp 540B
student.cpp 2KB
course.txt 366B
manager.txt 11B
main.cpp 7KB
student.txt 72B
codeblocks工程
include
course.h 871B
manager.h 300B
courlist.h 756B
stulist.h 583B
student.h 1KB
高源的课程设计.depend 2KB
obj
Debug
src
stulist.o 65KB
student.o 90KB
courlist.o 72KB
manager.o 86KB
course.o 87KB
main.o 67KB
src
courlist.cpp 4KB
course.cpp 1KB
stulist.cpp 2KB
manager.cpp 540B
student.cpp 2KB
course.txt 366B
manager.txt 11B
main.cpp 7KB
bin
Debug
高源的课程设计.exe 1.88MB
高源的课程设计.cbp 2KB
高源的课程设计.layout 2KB
student.txt 72B
README.md 16KB
共 42 条
- 1
神仙别闹
- 粉丝: 3841
- 资源: 7471
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页