1、课程设计报告媒体库管理系统 集团标准化工作小组 Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN课程设计报告媒体库管理系统C+面向对象程序设计课 程 设 计 报 告课程名称 C+面向对象程序设计 课题名称 媒体库管理系统 专 业 网络工程 班 级 551 学 号 姓 名 高慧鹏 指导教师 2014年 12 月 22 日(一)、课程设计题目: 媒体库管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要
2、求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 (三)、设计方法和基本原理: 功能要求:1)添加物品程序主要完成图书馆三类物品信息的添加,要求编号唯一。如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果物品库已满,则提示不能再添加新的物品。2)查询物品可按照三种方式进行物品的查询。按标题查询:按编号查询:按类别查询:如果未找到
3、,给出相应的提示信息,如果找到,则显示相应的记录信息。3)显示物品库可显示当前物品库中所有的物品信息。4)修改物品可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除物品对已添加的物品信息进行删除。如果当前物品库为空,则提示“物品库为空!”并返回操作;否则输入要删除的编号,根据编号删除该物品信息,如果没有找到该物品信息,则提示“该编号不存在”。6)统计功能输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。7)保存物品将当前系统中物品信息存入文件中。8)读取物品 将保存在文件中的物品信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自
4、行进行扩展或完善。3、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书2331.系统需求分析 系统设计的目的与意义: 图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。 系统功能需求:本系统有
5、四个类:Base类、Book类、CD类、Draw类,存储资料信息、编号、标题、作者、评级。Base 为父类,其余三个为子类,每个子类具有自己的特点。1基础信息的添加功能程序能够任意添加图书、CD视频光盘、图画信息以及各自对应的相关信息。2修改功能对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查找和修改。3删除功能对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查找和删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作;否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在。4查询功能1可根据资料的编号查询资料及
6、其内容。2可根据标题查找。3根据类别查询如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。5保存功能将当前系统中各类记录存入文件中。6读取功能将保存在文件中的信息读入到当前系统中,以供用户使用。 2.总体设计 系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。add()函数用于添加信息;modify()函数用来修改信息;del()函数用来修改信息;refer()函数用来查询数据信息;read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;主函数main()用于调用这些函数。 系统功能模块划分与设
7、计:系统定义了Base基类、Book类、CD类、Draw类这四个类,定义了add()、modify()、del()、read()、save()、refer()等函数来实现系统所需功能。 系统功能模块图: 类的设计(1)Base类(抽象类)的设计:图 Base类(2)图书类的设计:图 班级类(3)CD类的设计:图 学生类(4)图片类的设计: 图 课程类(6)各个类的关系描述:3.详细设计及实现 Base类(抽象类)的实现class Base public: void mainmenu(); virtual void add(); 回图书信息管理菜单. n2.返回主菜单. n; cinflag;
8、if(flag=1) (); coutk; else if(flag=2) break; else cout选择错误,请重新输入。n; goto loop; ;void Book:add() o=i; cout请依次输入数据标题、作者、评级(未评级、一般、成人、儿童)、出版社、ISBN号、页数:b_i.headlineb_i.writeb_i.ratingb_i.publisherb_i.ISBN_Nob_i.pages; p1-save();void Book:refer() eadline)=0) cout图书编号:b_j.No 标题:b_j.headline 作者:b_j.write 评
9、级:b_j.rating出版社:b_i.publisher ISBN号:b_j.ISBN_No 页数: b_j.pagesendl; Sleep(10); break; case 2: cout请输入要查找的图书编号; for(j=0;jmaxsize_book;j+) if=b_j.No) cout图书编号:b_j.No 标题:b_j.headline 作者:b_j.write 评级:b_j.rating出版社:b_i.publisher ISBN号:b_j.ISBN_No 页数: b_j.pagesendl; Sleep(10); break; case 3: loop2: cout请输入
10、要查找的图书类别(未评级、一般、成人、儿童); if=未评级|一般|成人|儿童) for(j=0;jmaxsize_book;j+) if(strcmp,b_j.rating)=0) cout图书编号:b_j.No 标题:b_j.headline 作者:b_j.write 评级:b_j.rating出版社:b_j.publisher ISBN号:b_j.ISBN_No 页数: b_j.pagesendl; Sleep(10); else cout输入有误请重新输入:n; goto loop2; break; case 4:break; default: cout选择错误,请重新选择:n; go
11、to loop1; break; ;void Book:display() for(j=1;jnum1+1;j+) cout图书编号:b_j.No 标题:b_j.headline 作者:b_j.write 评级:b_j.rating出版社:b_j.publisher ISBN号:b_j.ISBN_No 页数: b_j.pagesendl; Sleep(10); ;void Book:modify() int k; cout请输入要修改的图书的编号;loop3:coutendlendl; cout endl endl endl 修改标题- endl 修改作者- endl 修改评级- endl 修
12、改出版社- endl 修改ISBN号- endl 修改页数- endl 返回菜单-0 endl endl endl endl; coutendlendl; coutk; if(k=0&k7) switch(k) case 1: char mheadline20; cout请输入修改后的标题:mheadline; strcpy(b_.headline,mheadline); break; case 2: char mwrite20; cout请输入修改后的作者:mwrite; strcpy(b_.write,mwrite); break; case 3: char mrating20; cout
13、请输入修改后的分级:(未评级、一般、成人、儿童)mrating; strcpy(b_.rating,mrating); break; case 4: char mpublishe20; cout请输入修改后的出版社:mpublishe; strcpy(b_.publisher,mpublishe); break; case 5: char mISBN_No20; cout请输入修改后的ISBN号:mISBN_No; strcpy(b_.ISBN_No,mISBN_No); break; case 6: int mpages; cout请输入修改后的页数: mpages; b_.pages=mp
14、ages; break; case 0:break; ; else cout选择错误,请重新输入:n; goto loop3; ;void Book:del() cout请输入要删除的图书的编号; for(j=;jnum1;j+) b_j.No=b_j+1.No; strcpy(b_j.headline,b_j+1.headline); strcpy(b_j.write,b_j+1.write); strcpy(b_j.rating,b_j+1.rating); strcpy(b_j.publisher,b_j+1.publisher); strcpy(b_j.ISBN_No,b_j+1.IS
15、BN_No); b_j.pages=b_j+1.pages; num1-; ;void Book:Info() cout当前物品库中总物品数:num1endl;void Book:save() ofstream out; (图书信息.txt); outnum1endl; for(int k=1;k=num1;k+) outb_k.No b_k.headline b_k.write b_k.rating b_k.publisher b_k.ISBN_No b_k.pagesnum1; while(num1=count_book) inb_count_book.Nob_count_book.hea
16、dlineb_count_book.writeb_count_book.ratingb_count_book.publisherb_count_book.ISBN_Nob_count_book.pages; count_book+; ();void Book:Book_menu() coutnn - 欢迎使用媒体库管理系统 - endlendl; coutnn - 图书信息管理 - endlendl; cout endl endl endl 添加图书- endl 查询图书- endl 显示图书- endl 修改图书- endl 删除图书- endl 统计图书- endl 退出系统-0 endl
17、 endl endl flag; if(flag=1) (); coutk; else if(flag=2) break; else cout选择错误,请重新输入:n; goto loop6; ;void CD:add() o=i3; cout请分别输入标题、作者、评级(未评级、一般、成人、儿童)、出品人的姓名、出品年份、视频时长v_i3.headlinev_i3.writev_i3.ratingv_i3.namev_i3.yearv_i3.time; Sleep(10); p3-save();void CD:refer() eadline)=0) cout视频编号:v_j3.No 标题:v_
18、j3.headline 作者:v_j3.write 评级:v_j3.rating出品人的姓名:v_j3.name 出品年份:v_j3.year 视频时长: v_j3.timeendl; Sleep(10); break; case 2: cout请输入要查找的视频编号; for(j3=0;j3maxsize_video;j3+) if=v_j3.No) cout视频编号:v_j3.No 标题:v_j3.headline 作者:v_j3.write 评级:v_j3.rating出品人的姓名:v_j3.name 出品年份:v_j3.year 视频时长: v_j3.timeendl; Sleep(1
19、0); break; case 3: cout请输入要查找的视频类别(未评级、一般、成人、儿童); for(j3=0;j3maxsize_video;j3+) if(strcmp,v_j3.rating)=0) cout视频编号:v_j3.No 标题:v_j3.headline 作者:v_j3.write 评级:v_j3.rating出品人的姓名:v_j3.name 出品年份:v_j3.year 视频时长: v_j3.timeendl; Sleep(10); break; case 4:break; default: cout选择有误,请重新输入:n; goto loop7; ;void CD
20、:display() for(j3=1;j3vnum1+1;j3+) cout视频编号:v_j3.No 标题:v_j3.headline 作者:v_j3.write 评级:v_j3.rating出品人的姓名:v_j3.name 出品年份:v_j3.year 视频时长: v_j3.timeendl; Sleep(10); ;void CD:modify() eadline,mheadline); break; case 2: char mwrite20; cout请输入修改后的作者:mwrite; strcpy(v_.write,mwrite); break; case 3: char mrating20; cout请输入修改后的分级:(未评级、一般、成人、儿童)mrating; strcpy(v_.rating,mrating); break; case 4: char mname20; cout请输入修改后出品人的姓名:mname; strcpy(v_.name,mname); break; case 5: c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1