Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.hsrc/InternetCafeSystem.cpp

四、这次主要修改了什么

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

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

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

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

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

  5. 增加 .gitignore
    编译生成的 exebinobj 和运行数据文件不适合上传 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