【 – 节日作文】
篇一:《用书名书号作者查询的图书管理系统》
《C++程序设计》课程设计
设计说明书
课程名称: 《C++程序设计》课程设计
设计题目: 图书管理程序 指导教师:
班 级: 学 号: 学生姓名: 同组人员:
计算机科学与工程学院 2014年06月 20 日
目 录
第1章 概述 ………………………………………………………………………………………………………………….. 2 1.1 选题 …………………………………………………………. 2 1.2选题的背景和意义 ………………………………………………. 2 1.3团队分工和个人贡献 …………………………………………….. 3 第2章 系统分析(需求分析) ……………………………………………………………………………………… 3 2.1系统的整体需求 ………………………………………………… 3 2.2 系统的功能需求 ………………………………………………… 3 2.3系统主要模块流程图 …………………………………………….. 4 第3章 系统设计 …………………………………………………………………………………………………………… 5 3.1 系统的整体设计 ………………………………………………… 5 3.2 系统的主要模块设计 …………………………………………….. 5 第4章 系统实现 …………………………………………………………………………………………………………… 6 第5章 结束语 …………………………………………………………………………………………………………….. 11 参考文献 ……………………………………………………………………………………………………………………… 12
第1章 概述
1.1 选题
第十题:图书管理程序
图书信息的组成部分为:书号、书名、作者名、出版社、出版时间、价格等。要求用类和对象实现: 1) 新书上架:添加图书信息 2) 图书浏览:输出所有图书信息
3) 图书查询:可按书号、书名或作者名查询(按书号查询时,因书号唯一,结果仅为一条记录;按书名或作者名查询时,结果可能为多条记录) 4)图书下架:删除指定图书信息,如按书号 1.2选题的背景和意义
选题背景:图书馆是我们日常生活中必不可少的学习、阅读的场所,借阅图书则是我们进入图书馆进行阅读的首要行为。为了能够借阅到我们想要借阅的图书,我们需要借助电脑查询需要借阅的图书的具体信息,然后找出图书后再去借阅处刷卡登记。如今我们处于一个知识大爆炸的时代,图书种类数量剧增,工作人员每天不仅要登记借阅者借阅的图书,还要登记新购进的图书,工作量繁重。而随着科学技术的进步,计算机日益进入我们的生活工作之中,我们能否利用计算机技术,取代原来的手工登记,提高图书管理的效率呢?答案是肯定的。
选题意义:借助计算机C++中的知识,编写相应的图书管理程序就可以实现这一功能。利用图书管理程序记录图书信息,不仅能节省我们大量的工作时间,减轻巨大的工作量,提高工作效率,还能够减少工作失误。
1.3团队分工和个人贡献
第一章 概述 第四章 系统实现 源代码中:
(1)图书浏览功能 (2)图书删除功能
第2章 系统分析(需求分析)
2.1系统的整体需求 该系统需要完成的内容:
用类和对象实现新书上架、 图书浏览、 图书查询、图书下架。 该系统需要完成的整体目标:
系统能够正常运行,基本上实现添加、删除图书信息,显示所有信息,能够由相应条件查阅图书信息这四种功能。 2.2 系统的功能需求 必须完成的模块:
(1)界面模块:当进入该管理系统时候,提示相应的说明,引导如何操作 (2) 新书上架模块:能够添加书号、书名、作者名、出版社、出版时间、价格这些图书信息。
(3) 图书浏览模块:能够输出所有图书信息。
(4) 图书查询模块:可按条件查询图书信息,当输入书号或书名或作者名时候,相对应的图书信息便可自动搜索出来。 (5) 图书下架模块:可按书号删除指定图书信息。 创新模块:
2.3系统主要模块流程图
注:数字代表相应操作下的子操作
篇二:《简单个人电话号码查询系统》
/**********************************************************/
/*人们在日常生活中经常需要查找某个人或某个单位的电话号码, */
/*本程序将实现一个简单的个人电话号码查询系统,根据用户输入*/
/*的信息(例如姓名等)进行快速查询。 */
/**********************************************************/
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int x=0;
char a;
int j=1;
struct TeleNumber //电话号码类
{
char name[10]; //姓名
int phoneNumber; //固定电话号码
int mobileNumber; //移动电话号码
char email[10]; //电子邮箱
int s;
TeleNumber * Next; //下一指针
void ReadFile(istream & in); //读取数据文件
void input(); //数据输入函数
void display(); //数据显示函数
} ;
void TeleNumber::ReadFile(istream & in) //从文件把数据读入到程序 {
in>>name>>phoneNumber>>mobileNumber>>email; //将文件信息读到相关变量里面 }
void TeleNumber::input() //信息输入
{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入固定电话号码"<<endl;
cin>>phoneNumber;
cout<<"请输入移动电话号码"<<endl;
cin>>mobileNumber;
cout<<"请输入电子邮箱"<<endl;
cin>>email;
s=j++; //记录插入的人的信息的数量
}
void TeleNumber::display() //信息输出
{
cout<<"姓名:"<<name<<'\t'<<"固定号码:"<<phoneNumber<<'\t'
<<"移动电话号码:"<<mobileNumber<<'\t'<<"电子邮箱:"<<email<<endl;
}
class TeleMessage //功能类
{
public:
TeleMessage(); //构造数据结构
~TeleMessage(); //释放单链表析构函数
void Save(); //数据保存到文件
TeleNumber * Search(char *); //信息查找
void Sort(); //排序
void Insert(); //插入
void Remove(); //删除
void Change(); //更改
void Show(); //显示
void Swap(TeleNumber *,TeleNumber *); //两个TeleNumber对象交换数据域 private:
TeleNumber * End,* Head;
ifstream in; //定义读,写文件对象
ofstream out;
};
TeleMessage::TeleMessage() //构造函数初始化
{
Head=new TeleNumber; //头插法建立单链表
Head->Next=new TeleNumber;
End=Head->Next;
in.open("TeleNumber.text"); //打开外存文件,看是否有数据存在
if(!in)
cout<<"电话系统中没有任何号码,请输入号码"<<endl;
else
{
while(!in.eof()) //如果有,则打开,并将数据读取到程序
{
End->ReadFile(in);
if(End->name[0]=='\0')break; //如果名字为空
End->Next=new TeleNumber; //为下一个指针分配内存 End=End->Next; //指针下移
}
in.close(); //in对象关闭
cout<<"读取电话号码系统成功!"<<endl;
}
cout<<"输入任意字母继续"<<endl;
cin>>a;
TeleMessage::~TeleMessage() //析构函数释放单链表
{
TeleNumber * temp; //定义一个当前的指针
while(Head->Next!=End)
{
temp=Head->Next;
Head=Head->Next;
delete temp; //逐个释放内存空间
}
delete Head,End; //删除头尾指针
}
void TeleMessage::Save() //保存文件
{
out.open("TeleNumber.txt"); //建立外存文件TeleNumber.txt for(TeleNumber *p=Head->Next;p!=End;p=p->Next)
out<<p->name<<"\t"<<p->phoneNumber<<"\t"<<p->mobileNumber<<"\t"<<p->email<<endl; //将数据存到外存文件里
out.close();
cout<<"保存成功!"<<endl;
}
void TeleMessage::Swap(TeleNumber *p1,TeleNumber *p2) //两个类对象数据域进行交换 {
TeleNumber * temp=new TeleNumber; //定义一个中转指针 strcpy(temp->name,p1->name); //将当前要交换指针中间的一个的name值赋值给中间变量
strcpy(temp->email,p1->email);
temp->mobileNumber=p1->mobileNumber;
temp->phoneNumber=p1->phoneNumber;
temp->s=p1->s;
strcpy(p1->name,p2->name);
strcpy(p1->email,p2->email);
p1->mobileNumber=p2->mobileNumber;
p1->phoneNumber=p2->phoneNumber;
p1->s=p2->s;
strcpy(p2->name,temp->name);
strcpy(p2->email,temp->email);
p2->mobileNumber=temp->mobileNumber;
p2->phoneNumber=temp->phoneNumber;
p2->s=temp->s; //将p1,p2的各个成员变量交换
}
void TeleMessage::Sort() //起泡排序
TeleNumber *p=NULL,*q=NULL;
int exchange=j-1; //要排序的电话号码的条数 int bound; //
int i;
while(exchange)
{
bound=exchange;
exchange=0;
for(p=Head->Next,i=1;i<bound;i++,p=p->Next)
if(p->mobileNumber>p->Next->mobileNumber)
{
Swap(p,p->Next); //调用交换函数 exchange=p->s;
}
}
Show();
}
void TeleMessage::Insert() //插入
{
End->input(); //从单链表尾部插入
End->Next=new TeleNumber;
End=End->Next;
cout<<endl<<"插入成功"<<endl;
}
void TeleMessage::Remove() //删除
{
char name[20];
TeleNumber * p=new TeleNumber,*temp=NULL;
cout<<"请输入要删除人的姓名:"<<endl;
cin>>name;
p->Next=Search(name); //先进行查找,找到所要删除的结点
if(Search(name))
{
temp=p->Next;
p->Next=p->Next->Next; //摘链
delete temp;
cout<<"\t\t删除成功!"<<endl;
}
else
{
cout<<"\t\t没有找到!"<<endl;
}
}
TeleNumber * TeleMessage::Search(char * name)
{
for(TeleNumber *p=Head->Next;p!=End;p=p->Next)
if(!strcmp(p->name,name))
{
if(x==4)
{
p->display();
return p;
}
else
return p;
}
if(x==4)
cout<<"查无此人"<<endl;
return 0;
}
void TeleMessage::Change() //修改信息
{
char name[20];
cout<<"请输入要修改的人的姓名:";
cin>>name;
if(Search(name))
{
cout<<"\t\t已找到个人的信息,请输入新的信息!"<<endl; Search(name)->input();
cout<<"修改成功!"<<endl;
}
else
{
cout<<"\t\t没有找到!"<<endl;
}
}
void TeleMessage::Show()
{
for(TeleNumber * p=Head->Next;p!=End;p=p->Next) p->display();
}
int main()
{
bool flag=true;
TeleMessage tele;
篇三:《个人电话号码查询系统》
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct TeleNumber
{
char name[10]; //姓名