公交卡信息管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计(论文)

程序设计实训

课程名称

公交卡信息管理系统

题目

信息与控制工程学院

院(系)

软件1402

专业班级

姓名

学号

指导教师

年月日

目录

1. 题目 (2)

2. 需求分析 (2)

2.1功能分析 (2)

3.概要设计 (3)

4. 详细设计 (5)

4.1、程序流程图 (5)

4.2、loading()函数实现用链表读取文件中数据 (6)

4.3、display()函数显示所用用户信息 (8)

5. 实现与测试 (9)

5.1管理员及用户登录界面 (9)

5.2管理员操作界面 (9)

5.3显示所有用户信息 (9)

6.总结 (10)

第 1 页

第 2 页

1.题目

公交卡模拟系统

2.需求分析

2.1功能分析

系统需要满足管理员和持卡用户两类使用者,管理员能实现对数据的添加、删除、查找、修改、显示全部用户五项功能。持卡用户可以实现对数据的添加、查找功能。

添加用户

删除用户 查找用户

修改用户信息

显示全部用户e

管理员

公交卡模拟系统

用 户

3.概要设计

3.1类的设计

1)管理员类及持卡者类

管理者类:可实现对数据的添加、删除、查找、修改、显示操作

class administrator

public:

administrator();

void menu();

void add();

void Delete();

void search();

void modify();

void display();

持卡者类(用户类):实现数据的添加和查找操作。

class user

public:

user();

void menu();

void add();

void search();

2)公交卡分为三类一般卡、老年卡和学生卡

一般卡:包含可执行多个操作的成员函数及卡号和余额两个数据成员

class adult_card

public:

virtual void add();

virtual int Delete(char *p);

virtual int search(char *p);

virtual int modify(char *p);

第 3 页

virtual void display();

adult_card *loading()

double balance;

char card_number[10];

adult_card *next;

老年卡:使用public继承adult_card类并新增姓名、优待证证件号

class seniors_card:public adult_card

public:

virtual void add();

virtual int Delete(char *p);

virtual int search(char *p);

virtual int modify(char *p);

virtual void display();

seniors_card *loading()

char name[20];

char discount_number[10];

seniors_card *next;

学生卡:使用public继承adult_card类并新增姓名、学生证证件号

class student_card:public adult_card

public:

virtual void add();

virtual int Delete(char *p);

virtual int search(char *p);

virtual int modify(char *p);

virtual void display();

student_card *loading()

char name[20];

char student_number[10];

student_card *next;

第 4 页

4.详细设计

4.1、程序流程图

第 5 页

Y N

开始

输入账户、密码登录类型选择

管理员(admin)用户(user)

定义int变量账号:number

Int变量密码:passward

账号密码是否

正确

功能选择

新增用户查找

用户

删除

用户

修改

用户

显示

全部

用户

查找

用户

结束

第 6 页

第 7 页

4.2、loading()函数实现用链表读取文件中数据

adult_card *loading() //loading()函数从文件中载入数据到链表 { adult_card *head, *p1;

head = p1 = new adult_card

while (!in.eof()) //使用eof()函数判断是否到文件末尾 { in >> p1->card_number >> p1->balance;

if (p1->card_number[0] == '\0')break ;

p1->next = new adult_card ; p1 = p1->next;

}

N

Y

新建两个adult_card 类的指针head 、p1

将从文件中读取到的值赋给p1->card_number 和p1->balance ;新

建adult_card 赋给p1->next

开 始

创建adult_card 类的指针*head 、*p1

打开adult.txt 文件 文件中数据传给P1->number 和p1->balance

是否到达文件末尾

结 束 返回值head

p1=p1->next

p1->next=new adult_card

相关文档
最新文档