# 校园卡管理项目设计
## 一、实验目的
- 设计一个校园卡管理系统,包含以下核心功能:
- 查看卡主和校园卡信息
- 充值
- 消费
- 查余
- 查询个人消费记录
- 充值记录
## 实验环境
本实验可基于 Visual Studio Code 等平台开发,参考主流的编码规范,如 Google C++Style
## 二、Guide(中文版) 2.1 编程语言和开发工具
编程语言: ANSI C/C++ 开发工具: Visual Studio Code、Dev C++
## 2.1 编码规范
要求遵循良好的程序设计风格来设计和编写程序。基本编码规范:
标识符的命名要到达顾名思义的程度;
关键代码提供清晰、准确的注释;
程序版面要求:
- 不同功能块用空行分隔;
- 一般一个语句一行;
- 语句缩进整齐、层次分明。
## 3.实验内容
```c++
# include <cstdlib>
# include <cstring>
# include <deque>
# include <iomanip>
# include <iostream>
# include <string>
# include "Student.cpp"
# include "Student.hpp"
# include "Card.cpp"
# include "Card.hpp"
15.#define MAX 10000
16.using namespace std;
17.
18.void ManagerFunction();
19.void StudentFunction();
20.
21.Student *students[MAX] = {NULL};
22.Card *cards[MAX] = {NULL};
23.
24.int main()
25. {
26. int select;
27. do 28. {
29. cout << "欢迎使用校园卡管理系统!请选择您的身份(输入序号):
" << endl;
30. cout << "1:校园卡管理员" << endl;
31. cout << "2: 学生用户" << endl;
32. cout << "3: 退出系统" << endl;
33. cin >> select;
34.
35. switch (select)
36. {
37. case 1:
38. ManagerFunction();
39. break;
40. case 2:
41. StudentFunction();
42. break;
43. case 3:
44. break;
45. default:
46. cout << "抱歉,该身份无效!" << endl;
47. break;
48.
}
49.
50.
51. cout << endl;
52.
} while (select!=3);
53.
54. cout << endl;
55. cout << "已退出系统!" << endl;
for (int i = 0; i < MAX; i++) {
if(students[i]!=NULL)
delete students[i];
if(cards[i]!=NULL)
delete cards[i];
}
return 0;
}
```
根据校园卡或管理员身份设计功能,其中校园卡管理员的权利包括:
```c++
void ManagerFunction()
{ void CreateStudent();
void CreateCard();
void Transfer();
void DeleteCard();
void DeleteStudent();
……
}
```
学生类的权利包括:
```c++
void Check();
void Activate();
void Charge();
void ChargeCard();
void ChargeWater();
void Consume();
void Loss();
……
```
分析与设计简要描述程序设计的过程,包括设计思路,设计要点及特色;程序的不足与改进等。要求画出程序的简单流程图。
# 需求分析:
### 校园卡管理员
- 导入学生信息:向系统中导入学生信息(名字、学院、年级、班级、专业、学号)
- 给在校生绑定校园卡(卡号,余额、充值记录、消费记录、校园卡状态、水控服务)
- 转移校园卡内的金额:学生本人申请办理新卡时,可将原账户的余额转移到新卡中
- 注销校园卡:校园卡一经注销后无法使用。丢失校园卡后要重新办理的学生,需将原来绑定的校园卡注销后再办理新卡。
- 删除学生信息:当学生毕业或退学,管理员可将系统中的学生信息删除。
# 学生用户
- 查看校园卡信息(卡号,余额、充值记录、消费记录、校园卡状态、水控服务)
- 激活校园卡:设置密码
- 充值校园卡:校园卡充值限额为 100~500 元
- 消费:学生可到食堂超市(第一饭堂、第二饭堂、第三饭堂、第四饭堂、行政楼餐厅、清真食堂、教育超市、快乐多超市)进行消费。可通过热水账户的金额使用热水(洗澡)。
- 挂失与解挂:校园卡丢失后,学生可进行挂失,挂失后的校园卡无法使用。若校园卡被找回,可进行解挂,解挂后校园卡可以继续使用。
## 系统功能图
![](https://www.writebug.com/myres/static/uploads/2021/11/16/d94eff77dbc833e6451889f3f3843280.writebug)
## 流程图
![](https://www.writebug.com/myres/static/uploads/2021/11/16/2117ecbc017cebd40c7aebfbfd16455f.writebug)
类结构设计
## 学生类
```c++
class Student {
const string Name;
int ID,Department, Major, Grade, Class;
Card *card;
5.
public:
Student(string Name_, int ID_,int Department_, int Major_, int G rade_, int Class_);
void setCard(Card *);
void Check();
void Activate();
void Charge();
void ChargeCard();
void ChargeWater();
void Consume();
void Loss();
16.
string getName()const {
return Name;
}
int getID()const {
return ID;
}
int getDepartment()const {
return Department;
}
int getMajor()const {
return Major;
}
int getGrade()const {
return Grade;
}
int getClass()const {
return Class;
}
23.
24. Card *getCard() const {
return card;
}
25.
};
```
## 校园卡类
```
class Card{ const int Number;
string Password;
double Value, WaterAccount;
state State;
Student *student;
deque<ChargeRecord*> charge_record;
deque<ConsumeRecord*> consume_record;
deque<WaterRecord*> water_record; public:
Card(int Num, Student *);
bool isChecked();
void add(double amount);
void minus(double amount);
void addWater(double amount);
void minusWater(double amount);
void setState(state);
void setPassword(string);
void recordCharge(ChargeRecord *);
void recordConsume(ConsumeRecord *);
void recordWater(WaterRecord *);
void printCharge() const;
void printConsume() const;
void printWater() const;
int getNum()const { return Number; }
double getValue()const { return Value; }
double getWaterAccount()const { return WaterAccount; }
int getState()const { return State; }
};
```
## 记录类及其派生出的充值记录类、消费记录类、热水使用记录类
```
class Record{ int Month, Day, Hour, Minute, Second;
double Amount;
public:
Record(double amount=0);
void set(double amount) { Amount = amount; }
void Print_Record()const;
};
class ChargeRecord:public Record{
int Method; public:
ChargeRecord(double amount );
void Print_ChargeRecord() const;
};
class ConsumeRecord:public Record{ int Place; public:
ConsumeRecord(double amount);
void Print_ConsumeRecord() const;
};
class WaterRecord:public Record{
int Time; public:
WaterRecord(int );
void Print_WaterRecord() const;
};
```
## 类关系图:
![](https://www.writebug.com/myres/static/uploads/2021/11/16/931a8db0d70b2d14bb46c4d8ca27b375.writebug)
细节设计
```c++
int select;
do {
… cout << "3: 退出" << endl;
cin >> select;
switch (select)
{
case … case 3:
break;
default:
cout << "抱歉,该身份无效!" << endl;
break;
}
cout << endl;
} while (select!=3);
```
每一次选择都保证选项有效,且只有用户选择退出时才退出。
```
cout << "\n请输入学生学号:" << endl; cin >> ID; while (ID < 0 || ID >= MAX)
{
cout << "\n学号格式错误!请输入正确的学号:" << endl; cin >> ID;
} if (students[ID] != NULL)
{
cout << "\n该学生信息已存在!请重新输入:" << endl;
没有合适的资源?快使用搜索试试~ 我知道了~
基于c++的校园卡管理项目设计
共22个文件
png:9个
cpp:3个
txt:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 7 浏览量
2023-01-12
12:12:56
上传
评论 4
收藏 2.79MB ZIP 举报
温馨提示
可以作为毕设 课设 学习参考 实验目的 设计一个校园卡管理系统,包含以下核心功能: 查看卡主和校园卡信息 充值 消费 查余 查询个人消费记录 充值记录 实验环境 本实验可基于 Visual Studio Code 等平台开发,参考主流的编码规范,如 Google C++Style 二、Guide(中文版) 2.1 编程语言和开发工具 编程语言: ANSI C/C++ 开发工具: Visual Studio Code、Dev C++ 2.1 编码规范 要求遵循良好的程序设计风格来设计和编写程序。基本编码规范: 标识符的命名要到达顾名思义的程度; 关键代码提供清晰、准确的注释; 程序版面要求: 不同功能块用空行分隔; 一般一个语句一行; 语句缩进整齐、层次分明。
资源推荐
资源详情
资源评论
收起资源包目录
基于c++的校园卡管理项目设计.zip (22个子文件)
campus-card-management-system
Card.cpp 4KB
PROJECT1.dev 1KB
LICENSE 1KB
TEST.txt 1KB
PROJECT1.exe 5.71MB
README.txt 3KB
Student.hpp 1021B
Student.cpp 8KB
PROJECT1.cpp 8KB
校园卡管理项目设计.pdf 180KB
Card.hpp 2KB
19335074_黄玟瑜_项目1.pdf 617KB
img.doc-md
1-f31689be72eb2df435518204ad336e6b.png 6KB
9-0f8fb0edab1f8fcb5399db83f6ea7ee4.png 83KB
4-19a741e22c8b5a342f57bf364dadd6a5.png 122KB
8-ff4f75e2f78a5c65ed1dc69d7645838d.png 72KB
6-a2ef966613a0b036272b78e0456f2e7d.png 97KB
5-e29a99bee7d2ddac43eca609a700339a.png 84KB
3-247822356db540c73e0af08527ef9f07.png 46KB
7-5ed4f5ddc358f3237d932a593708a4f2.png 70KB
2-ffc282692c0e20098318ab0c9f1f9af6.png 95KB
README.md 14KB
共 22 条
- 1
资源评论
- 陨石独角兽2023-06-24这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
- 小黄鱼3112024-06-12这个资源总结的也太全面了吧,内容详实,对我帮助很大。
- 迟烟星未2023-05-22怎么能有这么好的资源!只能用感激涕零来形容TAT...
甜辣uu
- 粉丝: 9445
- 资源: 1102
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功