Skip to content

About

C++ OOP course design project: Internet Cafe Management System

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

西理网吧管理系统

这是我大一下学期《面向对象程序设计》课程设计完成的一个 C++ 控制台程序。项目主题是“网吧管理系统”,主要练习类和对象、菜单交互、文件读写、输入判断以及简单业务逻辑。

一、项目功能

程序主要包含以下功能:

  • 查看电脑总览,包括电脑总数、空闲数量和使用中数量
  • 给用户开机,记录电脑编号、用户 ID 和使用时长
  • 用户下机,计算上机费用
  • 管理电脑,包括添加、修改单价和删除电脑
  • 管理会员,包括添加会员、会员充值和查询余额
  • 保存数据,下次运行时可以继续读取

二、项目结构

.
├── main.cpp
├── include/
│   └── InternetCafeSystem.h
├── src/
│   └── InternetCafeSystem.cpp
├── .vscode/
│   ├── settings.json
│   └── tasks.json
├── .gitignore
├── README.md
└── 西理网吧管理系统.cbp

文件作用:

  • main.cpp:程序入口,负责主菜单选择
  • InternetCafeSystem.h:类的声明
  • InternetCafeSystem.cpp:功能的具体实现
  • .vscode/:VS Code 编译运行配置
  • .gitignore:设置哪些文件不上传 GitHub
  • README.md:项目说明文档

三、编译运行

在项目根目录打开终端,执行:

g++ -std=c++17 -Wall -Iinclude main.cpp src\InternetCafeSystem.cpp -o main.exe

运行程序:

.\main.exe

注意:不能只编译 main.cpp,因为项目还用到了 include/InternetCafeSystem.h 和 src/InternetCafeSystem.cpp。

四、这次主要修改了什么

这次完善项目时,我主要修改了以下内容:

  1. 修复中文乱码
    原来的菜单和提示语有很多乱码,现在已经改成正常中文,程序界面更容易看懂。

  2. 修复头文件找不到的问题
    VS Code 默认只编译 main.cpp,会提示找不到 InternetCafeSystem.h。现在增加了 .vscode 配置,并且编译命令里加入了 -Iinclude。

  3. 修复文件保存方式
    原来直接把带有 string 的对象保存到 .dat 文件里,这样不安全。现在改成一项一项保存数据,更稳定。

  4. 增加输入判断
    对电脑编号、价格、余额、上机时长等输入做了判断,避免输入负数或错误内容导致程序异常。

  5. 增加 .gitignore
    编译生成的 exe、bin、obj 和运行数据文件不适合上传 GitHub,所以用 .gitignore 忽略它们。

  6. 补充 README
    README 用来说明项目功能、运行方法、修改内容和学习心得,方便别人看懂项目。

五、上传 GitHub 时的注意点

上传 GitHub 时,应该上传源码和说明文件,不应该上传编译产物。

建议上传:

main.cpp
include/InternetCafeSystem.h
src/InternetCafeSystem.cpp
.vscode/settings.json
.vscode/tasks.json
.gitignore
README.md
西理网吧管理系统.cbp

不建议上传:

main.exe
bin/
obj/
users.dat
computers.dat
*.layout
*.depend

原因很简单:源码是别人需要看的内容,编译产物和运行数据是每个人电脑上都可以重新生成的内容。

六、上传时的消息可以怎么写

如果是第一次上传,可以写:

完成网吧管理系统课程设计初版

如果是这次修改后上传,可以写:

完善网吧管理系统并补充README

如果想写得更具体一点,可以写:

修复编译配置和数据保存问题,完善项目说明

我更推荐第二个:

完善网吧管理系统并补充README

这句话简洁,也能说明这次提交做了什么。

七、学习心得

通过这次修改,我学到了几个比较重要的点:

  1. 一个 C++ 项目不一定只有一个 .cpp 文件
    如果代码分成了头文件和源文件,编译时就要把相关文件一起编译。

  2. 头文件路径要告诉编译器
    InternetCafeSystem.h 放在 include 文件夹里,所以编译时要加 -Iinclude。

  3. GitHub 不是什么都要传
    源码、说明文档、配置文件应该上传;exe、临时文件、运行数据一般不上传。

  4. README 很重要
    README 就像项目说明书。别人打开项目后,先看的通常不是代码,而是 README。

  5. 写程序不只是能运行
    一个更完整的程序,还要考虑输入错误、数据保存、文件结构和别人能不能看懂。

八、总结

这个项目让我对面向对象程序设计有了更具体的理解。User 类表示会员,Computer 类表示电脑,InternetCafeSystem 类负责整体管理。相比把所有代码都写在 main.cpp 里,这样的结构更清楚,也更容易修改和维护。

这次完善之后,项目更适合上传 GitHub,也更像一个完整的课程设计作品。

About

C++ OOP course design project: Internet Cafe Management System

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages