1、课程设计(论文)课程名称程序设计实训题 目公交卡信息管理系统院 (系)信息与控制工程学院专业班级软件1402姓 名学 号指导教师 年 月 日 第 33 页目 录1. 题目22. 需求分析22.1功能分析23. 概要设计34. 详细设计54.1、程序流程图54.2、loading()函数实现用链表读取文件中数据64.3、display()函数显示所用用户信息85. 实现与测试95.1管理员及用户登录界面95.2管理员操作界面95.3显示所有用户信息96.总结101. 题目公交卡模拟系统2. 需求分析 2.1功能分析系统需要满足管理员和持卡用户两类使用者,管理员能实现对数据的添加、删除、查找、修改
2、、显示全部用户五项功能。持卡用户可以实现对数据的添加、查找功能。添加用户管理员删除用户公交卡模拟系统查找用户用 户修改用户信息显示全部用户e3. 概要设计3.1类的设计1)管理员类及持卡者类 管理者类:可实现对数据的添加、删除、查找、修改、显示操作class administratorpublic:administrator();void menu();void add();void Delete();void search();void modify();void display();持卡者类(用户类):实现数据的添加和查找操作。class userpublic:user();void me
3、nu();void add();void search();2)公交卡分为三类一般卡、老年卡和学生卡一般卡:包含可执行多个操作的成员函数及卡号和余额两个数据成员class adult_cardpublic:virtual void add();virtual int Delete(char *p);virtual int search(char *p);virtual int modify(char *p);virtual void display();adult_card *loading()double balance;char card_number10;adult_card *next
4、;老年卡:使用public继承adult_card类并新增姓名、优待证证件号class seniors_card:public adult_cardpublic: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 name20;char discount_number10;seniors_card *next;学生卡:使用public继承ad
5、ult_card类并新增姓名、学生证证件号class student_card:public adult_cardpublic: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 name20;char student_number10;student_card *next;4. 详细设计4.1、程序流程图YN查找用户结束修改用户显示全部用户
6、删除用户查找用户新增用户功能选择账号密码是否正确输入账户、密码定义int变量账号:numberInt变量密码:passward用户(user)管理员(admin)登录类型选择开始4.2、loading()函数实现用链表读取文件中数据adult_card *loading() /loading()函数从文件中载入数据到链表新建两个adult_card类的指针head、p1adult_card *head, *p1;head = p1 = new adult_cardwhile (!in.eof() /使用eof()函数判断是否到文件末尾 将从文件中读取到的值赋给p1-card_number和p1
7、-balance;新建adult_card赋给p1-nextin p1-card_number p1-balance;if (p1-card_number0 = 0)break; p1-next = new adult_card; p1 = p1-next; 开 始创建adult_card类的指针*head、*p1打开adult.txt文件p1=p1-next文件中数据传给P1-number和p1-balance是否到达文件末尾p1-next=newadult_cardNY结 束返回值head4.3、display()函数显示所用用户信息void adult_card:display()adu
8、lt_card *p1=loading(); /调用loading()函数义链表形式从文件中读取数据While语句与链表实现数据的遍历,并输出所有用户信息while (p1-next != NULL)cout 卡号: card_numbert 余额: balance;cout endl next;开 始新建adult_card类的指针*p调用loading()函数(返回值为adult_card类的指针)将返回值赋给pp1=p1-nextp1-number和p1-balance输出到显示器判断是否到达链表末尾NY结 束5. 实现与测试5.1管理员及用户登录界面5.2管理员操作界面5.3显示所有用
9、户信息6.总结参考资料和程序示例,通过链表的使用和文件的输入输出我感受到了自己亲自动手编程序、调程序的重要性,我们要熟悉C+的语法、体会调试的思想,最好的一个手段就是自己动手编程、调试,这会比我们一味的看书效果好得多。另外,对于学C+的我们来说,对类相关知识的掌握也尤为重要。在这次课程设计中,通过各个函数实现及文件读取方式,更进一步加深了我们对基础知识的认识。通过这一次课程设计,我们最大的收获就是分析问题解决问题能力的有了大幅提高。但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。在今后学习中,必须精通至少一门编程语言,并且日后的课程也要
10、认真学习,不断的用知识武装自己的头脑,为以后的学习打一个坚定的基础。公交卡信息管理系统源码/注意:程序涉及到文件读写,必须提前在相应工程目录新建adult.txt;seniors.txt;student.txt三个txt文件# include # include # include using namespace std;class adult_cardpublic:virtual void add();virtual int Delete(char *p);virtual int search(char *p);virtual int modify(char *p);virtual void
11、 display();adult_card *loading() /loading()函数从文件中载入数据到链表adult_card *head, *p1;head = p1 = new adult_card;ifstream in;in.open(adult.txt, ios:in); /打开目标文件if (!in)cerr open error! p1-card_number p1-balance;if (p1-card_number0 = 0)break;p1-next = new adult_card;p1 = p1-next;in.close(); /关闭目标文件return hea
12、d; /返回值为类的指针;double balance;char card_number10;adult_card *next;void adult_card:add()balance = 0;system(cls);cout *欢迎使用西安公交卡信息管理系统* endl;cout card_number;fstream out(adult.txt, ios:app);out card_numbertbalancen;out.close();cout 余额:0.00 next != NULL)if (strcmp(p1-card_number, p) = 0)char ch;cout ch;i
13、f (ch = y | ch = Y)p2-next = p1-next;p1 = head;remove(adult.txt);ofstream out;out.open(adult.txt);if (!out)cerr open error! next != NULL)out card_number t balance next;out.close();return 1;p2 = p1;p1 = p1-next;return 0;int adult_card:search(char *p)adult_card *p1 = loading(); while (p1-next!=NULL)if
14、 (strcmp(p1-card_number, p)=0)cout 卡号: card_number t 余额: balance;cout endl next;return 0;int adult_card:modify(char *p)adult_card *head, *p1;head = p1 = loading();while (p1-next != NULL)if (strcmp(p1-card_number, p) = 0)cout p1-balance; p1 = head;remove(adult.txt);ofstream out;out.open(adult.txt);if
15、 (!out)cerr open error! next != NULL)out card_number t balance next;out.close();return 1;p1 = p1-next;return 0;void adult_card:display()adult_card *p1=loading();while (p1-next != NULL)cout 卡号: card_numbert 余额: balance;cout endl next; class seniors_card:public adult_cardpublic:virtual void add();virt
16、ual int Delete(char *p);virtual int search(char *p);virtual int modify(char *p);virtual void display();seniors_card *loading()seniors_card *head, *p1;head = p1 = new seniors_card;ifstream in;in.open(seniors.txt, ios:in);if (!in)cerr open error! p1-card_number p1-name p1-discount_number p1-balance;if
17、 (p1-card_number0 = 0)break;p1-next = new seniors_card;p1 = p1-next;in.close();return head;char name20;char discount_number10;seniors_card *next;void seniors_card:add()balance = 0;system(cls);cout *欢迎使用西安公交卡信息管理系统* endl;cout card_number;cout name;cout discount_number;fstream out(seniors.txt, ios:app
18、);out card_number t name t discount_number t balance n;out.close();cout 余额:0.00 next != NULL)if (strcmp(p1-card_number, p) = 0)char ch;cout ch;if (ch = y | ch = Y)p2-next = p1-next;p1 = head;remove(adult.txt);ofstream out;out.open(adult.txt);if (!out)cerr open error! next != NULL)out card_number t n
19、ame t discount_number t balance next;out.close();return 1;p2 = p1;p1 = p1-next;return 0;int seniors_card:search(char *p)seniors_card *p1=loading();while (p1-next != NULL)if (strcmp(p1-card_number, p) = 0)cout 卡号: card_number t;cout 姓名: name t;cout 老年优待证号码: discount_number t;cout 余额: balance t;cout e
20、ndl next;return 0;int seniors_card:modify(char *p)seniors_card *head, *p1;head = p1 = loading();while (p1-next != NULL)if (strcmp(p1-card_number, p) = 0)cout p1-name;cout p1-discount_number;cout p1-balance;p1 = head;remove(seniors.txt );ofstream out;out.open(seniors.txt);if (!out)cerr open error! ne
21、xt != NULL)out card_number t name t discount_number t balance next;out.close();return 1;p1 = p1-next;return 0;/董老师说:“13级的都说我很慈祥”哈哈哈/朱老师很严厉哈哈哈;void seniors_card:display()seniors_card *p1 = loading();while (p1-next != NULL)cout 卡号: card_number t;cout 姓名: name t;cout 老年优待证号码: discount_number t;cout 余额:
22、 balance t;cout endl next;class student_card:public adult_cardpublic:virtual void add();virtual int Delete(char *p);virtual int search(char *p);virtual int modify(char *p);virtual void display();student_card *loading()student_card *head, *p1;head = p1 = new student_card;ifstream in;in.open(student.t
23、xt, ios:in);if (!in)cerr open error! p1-card_number p1-name p1-student_number p1-balance;if (p1-card_number0 = 0)break;p1-next = new student_card;p1 = p1-next;in.close();return head;char name20;char student_number10;student_card *next;void student_card:add()balance = 0;system(cls);cout *欢迎使用西安公交卡信息管
24、理系统* endl;cout card_number;cout name;cout student_number;fstream out(student.txt, ios:app);out card_number t name t student_number t balance n;out.close();cout 余额:0.00 next != NULL)if (strcmp(p1-card_number, p) = 0)char ch;cout ch;if (ch = y | ch = Y)p2-next = p1-next;p1 = head;remove(adult.txt);ofs
25、tream out;out.open(adult.txt);if (!out)cerr open error! next != NULL)out card_number t name t student_number t balance next;out.close();return 1;p2 = p1;p1 = p1-next;return 0;int student_card:search(char *p)student_card *p1 = loading();while (p1-next != NULL)if (strcmp(p1-card_number, p) = 0)cout 卡号
26、: card_number t;cout 姓名: name t;cout 学生证号码: student_number t;cout 余额: balance t;cout endl next;return 0;int student_card:modify(char *p)student_card *head, *p1;head = p1 = loading();while (p1-next != NULL)if (strcmp(p1-card_number, p) = 0)cout p1-name;cout p1-student_number;cout p1-balance;p1 = head
27、;remove(student.txt);ofstream out;out.open(student.txt);if (!out)cerr open error! next != NULL)out card_number t name t student_number t balance next;out.close();return 1;p1 = p1-next;return 0;void student_card:display()student_card *p1=loading();while (p1-next != NULL)cout 卡号: card_numbert;cout 姓名:
28、 name t;cout 学生证号码: student_number t;cout 余额: balance t;cout endl next;void password()int administrator_number, administrator_password;system(cls);cout *欢迎使用西安公交卡信息管理系统* endl;cout administrator_number;while (administrator_number != 123)system(cls);cout *欢迎使用西安公交卡信息管理系统* endl;cout * !账号不存在 * endl;cou
29、t * 请重新输入管理员账号: * administrator_number; cout administrator_password;while (administrator_password != 123)cout * !管理员密码错误 * endl;cout * 请重新输入管理员密码: * administrator_password;class administratorpublic:administrator();void menu();void add();void Delete();void search();void modify();void display();administrator:administrator()password();menu();void administrator:menu()char m;system(cls);cout *欢迎使用西安公交卡信息管理系统* endl;cout * 请选择您需要的操作: * endl;cout * 1.添加用户信息 * endl;cout * 2.删除用户信息
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100