




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国农业大学 课程论文 (2011-2012学年春季学期) 论文题目: 音像店出租管理系统 课程名称: 面向对象程序设计课程设计 任课教师: 康丽 班级: 信电114班 学号: 1108140406 姓名: 郭晨阳 目录一、 系统设计目标及意义 1二、 功能介绍 1三、 流程图 2四、 类图 3五、 主要运行界面图及运行结果图 4六、 系统设计过程中遇到的问题 11七、 创新点 11八、 课程设计心得体会 11九、 附录 11 音像出租管理系统一、系统设计目标及意义本系统是一个音像出租管理系统,实现任意添加、删除、编辑、找与显示音像资料和顾客信息等功能,为音像出租店的工作提供参考。二、功能介绍1、初始化顾客库信息、影碟库信息、租碟库信息的操作输入1进入系统,输入2退出系统;通过函数的识别,自动判断是否已经初始化顾客库信息、影碟库信息、租碟库信息。若未初始化,则输入这些信息;若已建立,则可直接使用其他功能 。2、添加和显示信息的操作:分为输入顾客信息,输入碟片信息。输入顾客信息时需要输入编号和名字,输入碟片信息时需要输入编号、名称、主演。输入完信息后可以输出这些信息。 3、删除信息的操作:可以删除所输入的影碟和顾客信息 4、查找顾客信息的操作:通过对顾客编号的输入,实现查看某一位顾客的所有信息。5、查找碟片的操作:通过对碟片编号的输入,查看是否有这个碟片或者这个碟片是否可借;6、顾客租碟的操作:顾客可以通过碟片的编号查找碟片,看是否可租,在该过程中需要输入顾客的编号;如果所输入的编号不存在,会提示该碟片不存在;如果租碟成功,会显示该碟片的具体信息。7、顾客还碟:通过输入所借碟片的编号进行还碟;8、退出系统:退出音像店出租管理系统界面。主程序流程图:开始显示系统菜单退出系统进入系统顾客还碟影碟管理顾客管理顾客租碟增加顾客删除顾客列出顾客查找顾客列出所有影碟查找影碟删除影碟增加影碟三、类图Customer name10:char number5: char phone20: 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(): voidcostomerborrowdie+number5: char+code20: char+zday15: char+hday15:char+time: int+borrowdie(): void+print(): voiddie code20:char title40:char star140:char company40: 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 #include #include #include #define S 1class customer private: char number5; char name10;char phone20;public: void get() cout number; cout name; coutphone; void print() cout 顾客编号: numberendl; cout 顾客的姓名: name endl;cout顾客的电话:phoneendl; 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 code20; char title40; char star140; char company40; int onshelf; public: char flag; die() flag =N; void get() cout code; cout title; cout star1; coutcompany; void print() cout 影碟编号: code endl; cout 影碟名称: title endl; cout 主演: star1 endl; cout发行公司: company endl;if(onshelf)cout可租endl;elsecout已租出endl; void getflag() cout 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 number5; char code20; char zday15; char hday15; int time; void borrowdie() cout number; cout code; coutzday; couthday; couttime; void print() cout 您的编号: number endl; cout 您要租的影碟的编号是: code endl; cout您要租借的日期是:zday-hdayendl; cout总计time天endl; if(time3|time=3) cout租费:time*S元; else cout租费:3*S元罚款:0.1*(time-3)endl; friend class customer; customer customersz500; die dian500; customerborrowdie gkbd500; 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*)&customersz0, sizeof(customersz0); if(strlen(customersz0.getnumber() = 0) cout 请建立顾客信息。 endl; else while(!file_customer.eof() g+; file_customer.read(char*)&customerszg, sizeof(customerszg); cout 初始化顾客库成功 endl; file_customer.close(); void cshdie() file_die.open( diefile.txt , ios:in); file_die.read(char*)&dian0, sizeof(dian0); if(strlen(dian0.getcode() = 0) cout 请建立影碟信息。 endl; else while(!file_die.eof() dd+; file_die.read(char*)&diandd, sizeof(diandd); cout 初始化影碟库成功 endl; file_die.close(); void cshgkbd() file_gkbd.open( gkbd.txt , ios:in); file_gkbd.read(char*)&gkbd0, sizeof(gkbd0); if(strlen(gkbd0.number) = 0) cout 暂时无租碟情况。 endl; else while (!file_gkbd.eof() b+; file_gkbd.read(char*)&gkbdb, sizeof(gkbdb); 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, customerszi.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,diani.getcode() = 0) d = 1; break; if(d = 0) cout 对不起!我们这里没有此影碟! endl; return; int j = 0; for(j = 0;j b; j+) if(strcmp(temp.code, gkbdj.code) = 0) cout 非常抱歉,此影碟已经租出。 endl; return; diani.getflag(); if (diani.flag = Y| diani.flag = y) file_gkbd.open( gkbd.txt , ios:app); diani.print(); gkbdb = temp; file_gkbd.write(char*)&gkbdb, sizeof(gkbdb); b+; cout 租碟成功!请按时归还! endl; file_gkbd.close(); n.onshelf=0; else cout 租碟未成功。 endl; cout flag; void customer:Printborrowdie()int i=0;for(i=0;ib;i+)gkbdi.print ();coutendl;void customer:replacedie() char code20; int i = 0, d = 0; cout code; for (i = 0 ; i b; i+) if (strcmp(code, gkbdi.code) = 0) d = 1; break; if (d = 0) cout 此碟尚未租出或者不存在。 endl; return; else cout 此碟租出情况如下: endl; gkbdi.print(); char flag; cout flag; if (flag = y | flag = Y) int p , j = 0; p = b - i; for (j = 0 ; j = p ; j+) gkbdi = gkbdi + 1; i+; b-; n.onshelf+; for (i = 0; i b; i+) gkbdi.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() , customerszj.getnumber() ) = 0) cout 对不起!此客户编号已经存在! endl; p = 1; if (p = 0) customerszg = temp; file_customer.write(char*)&customerszg, sizeof(customerszg); cout tt写入客户库成功 endl; g+; cout 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(), dianj.getcode() = 0) cout 对不起!此影碟编号已经存在! endl; p = 1; if( p = 0) diandd = temp; file_die.write(char*)&dianb, sizeof(diandd); cout tt写入影碟库成功 endl; dd+; coutf; file_die.close(); ;void customer:customerlist() for (int j = 0; j g; j+) customerszj.print(); cout endl; void die:dielist() for(int j = 0; j dd; j+) dianj.print(); cout endl; void customer:customerFind_number() int j = 0; int p = 0; int d = 0; char flag = Y; char number5; while (flag = Y | flag = y) d = 0; coutnumber; for(j = 0 ;j g; j+) if(strcmp(number, customerszj.getnumber() =0) p = j; d = 1; break; if (d = 1) customerszp.print(); else cout非常抱歉!没有找到你想要的! endl; cout flag; void die:dieFind_code() int j = 0; int p = 0; int d = 0; char flag = Y; char code20; while (flag = Y | flag = y) d = 0; cout code; for (j = 0; j dd; j+) if(strcmp(code, dianj.getcode() = 0) p = j; d = 1; break; if (d = 1) dianp.print(); else cout 非常抱歉!没有找到你想要的! endl; cout flag; void customer:customerFind() char flag; while (1) cout 1.按客户编号查找 0.返回上一级菜单 endl; cout 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 flag; switch (flag) case 1: n.dieFind_code(); break; case 0: return; break; default: cout 输入错误,请重新输入: endl; void customer:customerdelete() char number5; int d = 0, i = 0, j = 0; cout number; for (i = 0; i g; i+) if (strcmp(number, customerszi.getnumber() = 0) d = 1; break; if (d = 0) cout 对不起,此客户不存在. endl; return; d = 0, j = 0; for (j = 0; j b; j+) if(strcmp( number, gkbdj.code) = 0) d = 1; break; if(d = 1) cout 此客户有碟未还,还碟后方可删除此客户. endl; return; char flag; int p = b - i; cout flag; if(flag = Y | flag = y) for (j = 0; j = p; j+) customerszi = customerszi+1; i+; g-; cout 客户删除成功 endl; for (i = 0 ; i g ; i+) customerszi.print(); cout endl; void customer:customerdeletefile() int i = 0; file_customer.open( customerfile.txt , ios:out); for (i =0; i g; i+) file_customer.write(char*)&customerszi, sizeof(customerszi); file_customer.close(); void die:diandelete() char code20; int d = 0, i = 0, j = 0; cout code; for (i = 0; i dd; i+) if(strcmp(code, diani.getcode() = 0) d = 1; break; if (d = 0) cout 对不起,此影碟不存在. endl; return; d = 0, j = 0; for (j = 0; j b; j+) if (strcmp(code, gkbdj.code) = 0) d = 1; break; if (d = 1) cout 此碟未还,还后方可删除此影碟. endl; return; char flag; int p = dd - i; cout flag; if(flag = Y | flag = y) for (j = 0; j = p; j+) diani = diani +1; i+; dd-; cout 影碟删除成功 endl; for (i = 0; i dd; i+) diani.print(); cout endl; void die:diandeletefile() int i = 0; file_die.open( diefile.txt , ios:out); for (i = 0; i dd; i+) file_die.write(char*)&diani, sizeof(diani); file_die.clos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年清洁能源行业全球市场分析与前景预测研究报告
- 固本延龄丸课件
- 2025年电子产品行业可穿戴设备市场前景报告
- 巴彦淖尔市2025内蒙古巴彦淖尔市统计局所属事业单位高层次急需紧缺人才引进测评笔试历年参考题库附带答案详解
- 2025年工业互联网技术在制造业中的发展前景研究报告
- 宜宾市2025上半年四川宜宾市屏山县事业单位考核招聘28人笔试历年参考题库附带答案详解
- 临夏市2025甘肃省临夏市教育系统引进人才28人笔试历年参考题库附带答案详解
- 2025福建移动春季校园招聘若干人笔试参考题库附带答案详解
- 2025江苏南通中国移动全资子公司中移铁通南通公司如东分公司招聘笔试参考题库附带答案详解
- 2025年燕舞集团有限公司公开招聘9人笔试参考题库附带答案详解
- 咖啡基础培训课件
- 人才服务合同书
- 2025年工会财务大赛理论题库(附答案)
- 2025-2026学年统编版八年级上册道德与法治教学计划含教学进度表
- 矿井顶板事故防治课件
- 2025年中国电力投资集团校园招聘笔试题型分析及备考策略
- 抗生素课件教学课件
- 销售法律知识培训
- 中国慢性胃炎诊治指南(2022年)解读
- 糖尿病低血糖症诊疗指南
- 直升机发动机油封课件
评论
0/150
提交评论