收藏 分销(赏)

音像出租管理系统.docx

上传人:pc****0 文档编号:6547028 上传时间:2024-12-12 格式:DOCX 页数:33 大小:435.51KB 下载积分:10 金币
下载 相关 举报
音像出租管理系统.docx_第1页
第1页 / 共33页
音像出租管理系统.docx_第2页
第2页 / 共33页


点击查看更多>>
资源描述
中国农业大学 课程论文 (2011-2012学年春季学期) 论文题目: 音像店出租管理系统 课程名称: 面向对象程序设计课程设计 任课教师: 康丽 班  级: 信电114班 学  号: 1108140406 姓  名: 郭晨阳 目录 一、 系统设计目标及意义……………………………… 1 二、 功能介绍…………………………………………… 1 三、 流程图…………………………………………… 2 四、 类图………………………………………… 3 五、 主要运行界面图及运行结果图…………………… 4 六、 系统设计过程中遇到的问题……………………… 11 七、 创新点……………………………………………… 11 八、 课程设计心得体会………………………………… 11 九、 附录………………………………………………… 11 音像出租管理系统 一、系统设计目标及意义 本系统是一个音像出租管理系统,实现任意添加、删除、编辑、找与显示音像资料和顾客信息等功能,为音像出租店的工作提供参考。 二、功能介绍 1、初始化顾客库信息、影碟库信息、租碟库信息的操作 输入1进入系统,输入2退出系统;通过函数的识别,自动判断是否已经初始化顾客库信息、影碟库信息、租碟库信息。若未初始化,则输入这些信息;若已建立,则可直接使用其他功能 。 2、添加和显示信息的操作:分为输入顾客信息,输入碟片信息。输入顾客信息时需要输入编号和名字,输入碟片信息时需要输入编号、名称、主演。输入完信息后可以输出这些信息。 3、删除信息的操作:可以删除所输入的影碟和顾客信息 4、查找顾客信息的操作:通过对顾客编号的输入,实现查看某一位顾客的所有信息。 5、查找碟片的操作:通过对碟片编号的输入,查看是否有这个碟片或者这个碟片是否可借; 6、顾客租碟的操作:顾客可以通过碟片的编号查找碟片,看是否可租,在该过程中需要输入顾客的编号;如果所输入的编号不存在,会提示该碟片不存在;如果租碟成功,会显示该碟片的具体信息。 7、顾客还碟:通过输入所借碟片的编号进行还碟; 8、退出系统:退出音像店出租管理系统界面。 主程序流程图: 开始 显示系统菜单 退出系统 进入系统 顾客还碟 影碟管理 顾客管理 顾客租碟 增加顾客 删除顾客 列出顾客 查找顾客 列出所有影碟 查找影碟 删除影碟 增加影碟 三、类图 Customer — name[10]:char — number[5]: char — phone[20]: char + get(): void + print(): void +getnumber(): char* +getname(): char* +getphone(): char* +borrowdie(): void +Pointborrowdie(): void +replacedie(): void +addcustomer(): void +customerlist(): void +customerFind_number():void +customerFind(): void +customerdelete(): void +customerdeletefile(): void +customerguanli(): void costomerborrowdie +number[5]: char +code[20]: char +zday[15]: char +hday[15]:char +time: int +borrowdie(): void +print(): void <<friend>> die — code[20]:char — title[40]:char — star1[40]:char — company[40]: char + flag: char +get(): void +print(): void +getflag(): void +getcode(): char* +gettitle(): char* +getstar(): char* +getcompany(): char* +adddie(): void +dielist(): void +dieFind_code: void +dieFind(): void +diandelete(): void +diandeletefile(): void +dieguanli(): void 四、主要运行界面图及运行结果图 (1)输入1进入系统 (2)输入4进入顾客管理 (3)输入1,添加顾客个人信息,输入编号,姓名,如果不想继续增加顾客输入n (4)按5返回主界面,进行影碟库的 初始化,输入3 再输入1,增加影碟信息,如编号、名称、主演。 (5)输入5回到主界面,输入1进入顾客租碟部分,其中需要输入顾客编号,所要租的影碟的编号,确认是否要租碟,然后会出现该影碟的信息 确认是否要继续租碟。输入n表示不继续租碟,回到主界面 如果顾客编号或者影碟编号不存在,将出现 (5)输入2,进入“顾客还碟”界面,输入你所需要归还影碟的编号,输入y或者n确定是否归还影碟,然后回到主界面 如果没有此影碟信息,将会有下面 (6)输入3,进入“影碟管理”界面,输入4,列出所有影碟 然后回到影碟管理 输入3,查找影碟, 输入1按影碟编号查找,再输入影碟编号1,输出影碟的详细信息 输入n回到查找界面,再输入0返回影碟管理的界面, (7)输入2,进入删除影碟界面,输入将要删掉的影碟的编号,再输入y,确认删除影碟,然后又回到影碟管理界面。 (8)输入5,回到主界面 输入4进入顾客管理界面 输入4列出所有顾客信息,然后自动回到顾客管理界面 (9)输入3进入查找顾客的界面, 输入1进行按客户编号查询顾客信息,输入要查找的顾客的编号, 输入n退出查找,回到查找界面 再输入0回到上一级菜单,输入2进行删除顾客操作,输入要删除的顾客的编号,输入y确认删除此顾客,并回到顾客管理界面 输入5退回到主界面,输入2退出系统 五、系统设计过程中遇到的问题 1、本来想编为多文件系统的,但在编译过程出现很多问题,例如在处理非成员函数时总会出现问题 2、功能还不够全面,还不能够解决更多的问题,例如:1不能利用顾客名字和影碟名字进行查询 2、没有对顾客库、碟片库的上限进行检查,有可能会溢出 3操作界面为dos,不够美观,没有能够编成windows操作界面的 六、创新点 1、在删除顾客时增加了判断该顾客是否有租影碟的判断,避免了顾客已删,但他仍有租碟的情况。 七、课程设计心得体会 刚开始的时候有无从下手的感觉,通过去图书馆查阅相关书籍,上网查找相关资料,向学长请教,渐渐的自己也开始明白如何去解决这个问题,但有一些功能的实现还是通过上网查询或学长帮助完成。 通过这次动手编这个比较大型的程序,自己也对C++的知识有了更深的了解,之前在课堂上,知识学习一些理论上的知识,虽然平时也有上机实验,但都是编比较小的程序,而这次真正联系全部的知识,将所有知识融会贯通的运用于一个系统的编程,确实让自己提高了在书本以外的实践动手的能力,相信也会对以后的学习提供很大的帮助。 由于之前忙着期末复习,没时间弄课程设计,所以这次课程设计的时间有点紧张,以至于无法呈现一个更完美的音像出租管理系统。不过,对C++认识的加深和动手能力的提高是自己最大的收获。 八、附录 源文件代码: #include <iostream.h> #include <fstream.h> #include <string.h> #include <iomanip.h> #define S 1 class customer { private: char number[5]; char name[10]; char phone[20]; public: void get() { cout << "请输入顾客编号: "; cin>>number; cout << "请输入顾客的姓名: "; cin>> name; cout<<"请输入顾客的电话:"; cin>>phone; } void print() { cout << "顾客编号: " <<number<<endl; cout << "顾客的姓名: " <<name <<endl; cout<<"顾客的电话: "<<phone<<endl; } char* getnumber() { return(number); } char* getname() { return(name); } char* getphone() { return(phone); } void borrowdie(); void Printborrowdie(); void replacedie(); void addcustomer(); void customerlist(); void customerFind_number(); void customerFind(); void customerdelete(); void customerdeletefile(); void customerguanli(); }; class die { private: char code[20]; char title[40]; char star1[40]; char company[40]; int onshelf; public: char flag; die() { flag ='N'; } void get() { cout << "请输入影碟编号: "; cin>> code; cout << "请输入影碟名称: "; cin>> title; cout << "请输入主演: "; cin>> star1; cout<<"请输入发行公司: "; cin>>company; } void print() { cout << "影碟编号: " <<code <<endl; cout << "影碟名称: " <<title <<endl; cout << "主演: " <<star1 <<endl; cout<<"发行公司: "<<company <<endl; if(onshelf) cout<<"可租"<<endl; else cout<<"已租出"<<endl; } void getflag() { cout << "确认要租此碟吗?[Y/N] "; cin >> flag; } char* getcode() { return(code); } char* gettitle() { return(title); } char* getstar1() { return(star1); } char* getcompany() { return(company); } void adddie() ; void dielist(); void dieFind_code(); void dieFind() ; void diandelete(); void diandeletefile(); void dieguanli(); friend class customer; }; class customerborrowdie { public: char number[5]; char code[20]; char zday[15]; char hday[15]; int time; void borrowdie() { cout << "请输入您的编号: "; cin>>number; cout << "请输入您要租的影碟的编号: "; cin>> code; cout<<"请输入租碟的日期: "; cin>>zday; cout<<"请输入归还日期: "; cin>>hday; cout<<"租借时间: "; cin>>time; } void print() { cout << "您的编号: " << number <<endl; cout << "您要租的影碟的编号是: " <<code <<endl; cout<<"您要租借的日期是:"<<zday<<"---"<<hday<<endl; cout<<"总计"<<time<<"天"<<endl; if(time<3||time==3) cout<<"租费:"<<time*S<<"元"; else cout<<"租费:"<<3*S<<"元"<<"罚款:"<<0.1*(time-3)<<endl; } friend class customer; }; customer customersz[500]; die dian[500]; customerborrowdie gkbd[500]; fstream file_customer; fstream file_die; fstream file_gkbd; customer a; die n; customerborrowdie c; int g=0; int dd=0; int b=0; void cshcustomer() { file_customer.open( "customer.txt ", ios::in); file_customer.read((char*)&customersz[0], sizeof(customersz[0])); if(strlen(customersz[0].getnumber()) == 0) { cout << "请建立顾客信息。 " <<endl; } else { while(!file_customer.eof()) { g++; file_customer.read((char*)&customersz[g], sizeof(customersz[g])); } cout << "初始化顾客库成功…… " <<endl; } file_customer.close(); } void cshdie(){ file_die.open( "diefile.txt ", ios::in); file_die.read((char*)&dian[0], sizeof(dian[0])); if(strlen(dian[0].getcode()) == 0) { cout << "请建立影碟信息。 " <<endl; } else { while(!file_die.eof()) { dd++; file_die.read((char*)&dian[dd], sizeof(dian[dd])); } cout << "初始化影碟库成功…… " <<endl; } file_die.close(); } void cshgkbd() { file_gkbd.open( "gkbd.txt ", ios::in); file_gkbd.read((char*)&gkbd[0], sizeof(gkbd[0])); if(strlen(gkbd[0].number) == 0) { cout << "暂时无租碟情况。 " <<endl; } else { while (!file_gkbd.eof()) { b++; file_gkbd.read((char*)&gkbd[b], sizeof(gkbd[b])); } cout << "初始化租碟库成功…… " <<endl; } file_gkbd.close(); } void customer::borrowdie(){ int d = 0; int i = 0; char flag = 'y'; customerborrowdie temp; while(flag == 'y' || flag == 'Y') { temp.borrowdie(); for (i = 0; i < g; i++) { if (strcmp(temp.number, customersz[i].getnumber()) == 0) { d = 1; break; } } if (d == 0) { cout << "对不起!您的编号不存在! " <<endl; return; } int d = 0, i = 0; for(i = 0; i < dd; i++) { if(strcmp(temp.code,dian[i].getcode()) == 0) { d = 1; break; } } if(d == 0) { cout << "对不起!我们这里没有此影碟! " <<endl; return; } int j = 0; for(j = 0;j < b; j++) { if(strcmp(temp.code, gkbd[j].code) == 0) { cout << "非常抱歉,此影碟已经租出。 " <<endl; return; } } dian[i].getflag(); if (dian[i].flag == 'Y'|| dian[i].flag == 'y') { file_gkbd.open( "gkbd.txt ", ios::app); dian[i].print(); gkbd[b] = temp; file_gkbd.write((char*)&gkbd[b], sizeof(gkbd[b])); b++; cout << "租碟成功!请按时归还! " <<endl; file_gkbd.close(); n.onshelf=0; } else { cout << "租碟未成功。 " <<endl; } cout << "要继续租影碟吗?[Y/N] "; cin>> flag; } } void customer::Printborrowdie() { int i=0; for(i=0;i<b;i++) { gkbd[i].print (); cout<<endl; } } void customer::replacedie() { char code[20]; int i = 0, d = 0; cout << "您要还的影碟的编号是: "; cin>> code; for (i = 0 ; i < b; i++) { if (strcmp(code, gkbd[i].code) == 0) { d = 1; break; } } if (d == 0) { cout << "此碟尚未租出或者不存在。 " <<endl; return; } else { cout << "此碟租出情况如下: " <<endl; gkbd[i].print(); } char flag; cout << "确认要还此碟吗?[Y/N] "; cin>> flag; if (flag == 'y' || flag == 'Y') { int p , j = 0; p = b - i; for (j = 0 ; j <= p ; j++) { gkbd[i] = gkbd[i + 1]; i++; } b--; n.onshelf++; for (i = 0; i < b; i++) { gkbd[i].print(); cout <<endl; } } } void customer::addcustomer() { char flag = 'y'; int j = 0 ; int p = 0 ; customer temp; file_customer.open( "customerfile.txt ", ios::app); while (flag == 'Y' || flag == 'y') { p = 0; temp.get(); for(j = 0; j < g; j++) { if(strcmp( temp.getnumber() , customersz[j].getnumber() ) == 0) { cout << "对不起!此客户编号已经存在! " <<endl; p = 1; } } if (p == 0) { customersz[g] = temp; file_customer.write((char*)&customersz[g], sizeof(customersz[g])); cout << "\t\t写入客户库成功…… " <<endl; g++; } cout << "您还要继续吗?[Y/N] "; cin>>flag; } file_customer.close(); } void die::adddie() { char f = 'Y'; int j = 0; int p = 0; die temp; file_die.open( "diefile.txt ", ios::app); while ( f == 'Y' || f == 'y') { p = 0; temp.get(); for(j = 0; j < dd; j++) { if (strcmp(temp.getcode(), dian[j].getcode()) == 0) { cout << "对不起!此影碟编号已经存在! " <<endl; p = 1; } } if( p == 0) { dian[dd] = temp; file_die.write((char*)&dian[b], sizeof(dian[dd])); cout << "\t\t写入影碟库成功…… " <<endl; dd++; } cout<<"要继续吗?[Y/N] "; cin>>f; } file_die.close(); }; void customer::customerlist() { for (int j = 0; j < g; j++) { customersz[j].print(); cout <<endl; } } void die::dielist() { for(int j = 0; j < dd; j++) { dian[j].print(); cout <<endl; } } void customer::customerFind_number() { int j = 0; int p = 0; int d = 0; char flag = 'Y'; char number[5]; while (flag == 'Y' || flag == 'y') { d = 0; cout<< "请输入要查找的客户的客户编号: "; cin>>number; for(j = 0 ;j < g; j++) { if(strcmp(number, customersz[j].getnumber()) ==0) { p = j; d = 1; break; } } if (d == 1) { customersz[p].print(); } else { cout<<"非常抱歉!没有找到你想要的! "<<endl; } cout<<"要继续查找吗?[Y/N] "; cin>> flag; } } void die::dieFind_code() { int j = 0; int p = 0; int d = 0; char flag = 'Y'; char code[20]; while (flag == 'Y' || flag == 'y') { d = 0; cout<< "请输入要查找的影碟的编号: "; cin>> code; for (j = 0; j < dd; j++) { if(strcmp(code, dian[j].getcode()) == 0) { p = j; d = 1; break; } } if (d == 1) { dian[p].print(); } else { cout << "非常抱歉!没有找到你想要的! " <<endl; } cout << "要继续查找吗?[Y/N] "; cin>> flag; } } void customer::customerFind() { char flag; while (1) { cout << "1.按客户编号查找 0.返回上一级菜单 " <<endl; cout << "请输入功能代码: "; cin>> flag; switch (flag) { case '1': a.customerFind_number(); break; case '0': return; break; default: cout << "输入错误,请重新输入: " <<endl; } } } void die::dieFind() { char flag; while (1) { cout << "1.按影碟编号查找 0.返回上一级菜单 " <<endl; cout << "请输入功能代码: "; cin>> flag; switch (flag) { case '1': n.dieFind_code(); break; case '0': return; break; default: cout <
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服