C++课程设计TWord格式文档下载.docx
《C++课程设计TWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计TWord格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
技术参数和设计要求:
图书信息录入功能(图书信息用文件保存)——输入
图书信息浏览功能——输出
查询、排序功能——算法
按读者编号查询
按读者编号、图书编号查询
图书信息的删除与修改
设计要求:
读者信息包括读者编号,读者姓名,借书信息。
(读者编号不能重复)图书信息包括图书编号,图书名称,借阅状态等(图书编号不重复)。
试设计一图书管理信息管理系统,使之能提供以下功能:
系统以菜单方式工作;
读者信息录入功能(读者信息文件保存)----输入;
图书信息录入功能(图书信息文件保存)---输入;
图书信息浏览和读者信息浏览功能---输出;
查询和排序功能(至少一种查询方式)---算法;
按图书编号查询,按读者编号查询;
——读者信息和图书信息的添加,删除,修改功能
工作量:
(根据项目实际情况选择,在所作的工作后打√)
具体工作量分为几个部分:
1.可行性研究分析和可行性研究报告的撰写工作。
√
2.项目开发计划和开发准备工作,包括小组的分工等;
3.软件需求的调查和软件需求说明书的撰写;
4.软件的概要设计和概要设计说明书的撰写;
5.软件的详细设计和详细设计说明书的撰写;
6.软件的实现工作,包括代码的实现和实现过程中的具体要求工作;
7.测试的准备工作和测试计划报告的撰写;
8.整个软件试运行、软件测试、测试报告的撰写和用户手册的撰写工作;
9.项目文档和代码的规范化整合;
10.整个项目的总结和课程设计总结报告的撰写。
工作计划安排:
1.2011年7月4日完成可行性分析、需求分析、概要设计、详细设计及撰写相关报告的工作。
2.2011年7月5日完成具体代码的实现。
3.2011年7月5日完成整个项目总结和课程设计总结报告的撰写。
同组设计者及分工:
组长:
廖东
需求分析:
负责人:
梁勇
参加人员:
梁勇,廖东,姜莎莎
概要设计:
廖东
详细设计:
梁勇,廖东,姜莎莎
编码实现:
测试和维护:
指导教师意见及建议:
目录
摘要II
1绪论3
1.1设计背景、目的及要求3
1.2程序功能要求3
1.3性能要求3
1.3开发环境4
2设计方案简述5
2.1设计思想5
2.2主界面设计5
3详细设计7
3.1程序详细代码7
4设计结果及分析32
4.1设计结果32
4.2使用说明36
5测试分析38
总结41
参考文献43
摘要
随着科学技术的发展,计算机领域不断取得新的研究成果。
计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。
尤其是在图书馆里,要处理大量的图书数据。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用,作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点。
图书信息管理系统能方便用户迅速、准确处理图书信息,得到想要的数据并能将读者借书还书的信息以文档保存。
本文介绍了简易学生成绩管理系统在MicrosoftVisualC++6.0环境下的实现过程:
系统的分析,功能模块的设计,系统的调试和测试。
此系统的主要管理的信息有:
读者编号,姓名和借书信息,图书编号,图书名称,借阅状态。
本系统的主要功能有读者信息录入功能(读者信息文件保存)----输入;
读者信息和图书信息的添加,删除,修改功能。
关键词:
图书信息管理系统;
功能模块(函数);
指针;
结构;
链表;
文件保存及读取
1绪论
1.1设计背景、目的及要求
为更好的掌握现有知识,达到现学现用的目的,利用C++语言程序,设计一个图书信息管理系统,使用户能够迅速、准确处理读者和图书的信息,同时将想要的信息数据保存,并可以读取信息。
1.2程序功能要求
(1)信息维护:
读者和图书的信息数据要以文件的形式保存,能实现读者和图书信息数据的维护。
此模块包括子模块有:
读者信息和图书信息的添加,删除,修改。
(2)信息查询:
查询时可实现按读者编号查询读者信息;
按图书编号查询图书信息。
(3)密码安全:
为了系统的安全性,并保证读者,图书信息的安全性,本系统将使用独立的管理员帐户,也就是说只有管理员才有权限进入该系统。
1.3性能要求
精度:
定义的是int,char、string等。
时间特性:
因为程序编写采用的是常用的数组以及指针变量,算法也是老师多次提示我们用的一些算法,如:
冒泡排序、字符串数组调用赋值和指针转换等。
灵活性:
在进行图书编号和读者编号输入时,应该输入int型,当同时输入字符型和整型时,只能获取整型值。
在每次输入前会有提示。
数据管理能力:
1.读者编号和图书编号都不能超过一百个字符。
2.图书借阅一次不能超过五本。
3.读者姓名输入不能超过十个字符。
故障处理要求:
按照基本算法要求设施。
1.3开发环境
操作系统:
WindowsXP或者Windows7
开发软件:
MicrosoftVisualC++6.0
2设计方案简述
2.1设计思想
图书信息管理系统是用面向对象的方法设计:
首先,对于图书信息管理要进行三方面的考虑。
第一、借书、还书管理。
第二、读者信息维护。
第三、图书信息维护。
第一、借书、还书管理,管理员通过进入该系统,进入借书或者还书管理里面把读者借书,读者还书的信息录入该系统,方便以后能在系统中方便的快速查找。
第二、读者信息维护,管理员把读者信息录入(读者信息文件保存);
浏览读者信息;
查询时可以按读者姓名查询、按读者编号查询读者信息;
还能新增,更改,删除读者信息。
第三、图书信息维护,管理员把图书信息录入(图书信息文件保存);
图书信息录入功能(图书信息文件保存);
浏览图书信息;
查询时可以按图书名称查询、按图书编号查询图书信息;
还能新增,更改,删除图书信息。
2.2主界面设计
在主界面中包括“借书还书图书信息维护读者信息维护退出”等全部的功能,之所以设计这么一个主界面,一是因为能使用户对程序操作的流程更加清楚简明,二是保证了用户同时只能对一个文件进行操作的系统要求,保证了系统不会发生打开文件紊乱或者出现致命错误。
3详细设计
3.1程序详细代码
//学生信息管理系统
constintReader=100;
constintMaxb=100;
constintBor=5;
classStudent//学生类
{
private:
inttag;
//标签
intnumber;
charname[10];
//姓名数组
intborbook[Bor];
//借书数组
public:
Student(){}
char*getname()//获取姓名{
returnname;
}
intgettag()//获取标签状态
returntag;
intgetnumber()//获取编号
returnnumber;
voidsetname(char*na)//设置姓名
strcpy(name,na);
//将na拷贝给name
voiddelbook()
tag=1;
//删除
voidaddStudent(intn,char*na)//添加学生信息
tag=0;
number=n;
//将na赋给name
for(inti=0;
i<
Bor;
i++)//执行五次循环赋初值
borbook[i]=0;
voidborrowbook(intbookid)//借书操作{
i++){
if(borbook[i]==0)//判断初值是否为零{
borbook[i]=bookid;
//将输入的图书编号赋给borbook[i]
return;
}}}
intretbook(intbookid)//还书操作{
if(borbook[i]==bookid)//判断输入的图书id是否等于已有的图书id{
return1;
}}
return0;
voidoutput()//读出读者信息
cout<
<
"
图书编号:
"
number<
endl;
图书姓名:
name<
借书编号:
["
;
i++)
if(borbook[i]!
=0)
cout<
borbook[i]<
|"
//读出图书id也就是刚前输入的bookid
]"
}};
classRData{
inttop;
//读者记录指针
Studentread[Reader];
RData()//构造函数,将Student.txt读到read[]中{
Students;
top=-1;
fstreamfile("
Student.txt"
ios:
:
in);
//打开一个输入文件
while(top!
=1){
file.read((char*)&
s,sizeof(s));
if(!
file)break;
top++;
read[top]=s;
}
file.close();
voidclear(){
intaddStudent(intn,char*na)//查找是否存在{
Student*p=equal(n);
if(p==NULL){
read[top].addStudent(n,na);
Student*equal(intStudentid)//按编号查找{
for(inti=0;
=top;
if(read[i].getnumber()==Studentid&
&
read[i].gettag()==0)//判断是否输入的读者编号Studentid和当前读者编号read[i].getnumber()相同,状态是否为真{
return&
read[i];
//直接返回读者对象地址}
returnNULL;
//不然返回null空}
voidoutput(){
read[i].output();
//输出读者编号}