c语言课程设计报告图书管理系统精品Word格式文档下载.docx
《c语言课程设计报告图书管理系统精品Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告图书管理系统精品Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
3.查看与作者有关的书的信息:
根据作者查找书。
4.增加书的信息:
输入书的名字、ISBN、作者、价格、出版社等。
5按照书名排序:
字母的形式排序
6删除记录:
删除一条书的信息
8.文件打开
(二)原始数据
图书信息:
图书信息包括:
书名.isbn.分类号.作者.出版日期.出版社.价格
文件结构:
书名
Isbn
分类号
作者
出版时间
出版单位
价格
C语言
123
Xx1
谭浩强
09-01-21
高等教育出版社
15
数学
234
Xx2
彭辉
16
思修
345
Xx3
邹邹
17
英教
456
Xx4
王浩
18
应用文
567
Xx5
瑞瑞
19
概率
678
Xx6
雪雪
20
管理学
789
Xx7
小邹
21
线代
890
Xx8
周敏
22
军事
901
Xx9
张向东刘毅
23
运筹
012
Xx0
崔崔
24
三程序总体设计
(一)数据结构:
structrecord
{
charname[20];
charisbn[20];
charauthor[40];
charprice[10];
charcompany[30];
}
(二)模块划分:
四功能模块函数设计和调试
(一)函数原型,功能和形参说明
函数原型:
Voidadduser()Voidlist()Voidsearch_name()Voidsearch_isbn()Voidadd()
Voidlistbyname()Voiddele()Voidsave()Voidread()
函数功能:
adduser()增加书籍信息
list()显示书籍信息
search_name()按书名查找
search_isbn()按ISBN号码查找
add()增加书籍信息
listbyname()按书名排序
dele()删除书籍信息
save()保存
read()文件打开
参数说明:
read()/*从文件中读入数据*/FILE*fp;
/*定义文件指针*/
(二)函数流程图
书名查找与ISBN查找方法相同
按书名删除与按ISBN删除方法相同
(三)运行结果
五程序清单
#include<
iostream.h>
/*引用库函数*/
#include<
stdio.h>
#include<
string.h>
conio.h>
stdlib.h>
#definenull0;
chartype[10];
chardate[10];
}student[30];
structLinkList
structrecordUS;
structLinkList*next;
}a;
structLinkList*head=null;
intnum=0;
FILE*fp;
intmenu_select();
/*菜单函数*/
intadduser();
intlist();
intsearch_name();
intsearch_isbn();
intadd();
intlistbyname();
intdele();
intsave();
intread();
intexit();
voidmain()
system("
cls"
);
/*运行前清屏*/
for(;
;
)
{
switch(menu_select())
case0:
adduser();
break;
case1:
list();
case2:
search_name();
case3:
search_isbn();
case4:
add();
case5:
listbyname();
case6:
dele();
case7:
save();
case8:
read();
case9:
exit(0);
}
menu_select()
ints;
inta;
cout<
<
"
*_*按任意键进入菜单!
*_*"
endl;
getch();
\t\t********************MENU*********************\n"
\t\t0.图书信息录入"
\t\t1.图书信息浏览"
\t\t2.按书名查询图书信息"
\t\t3.按ISBN查询图书信息"
\t\t4.增加图书信息"
\t\t5.按书名排序"
\t\t6.删除记录"
\t\t7.数据保存"
\t\t8.文件打开"
\t\t9.退出"
\t\t***********************************************"
do{
\n输入你的选择(0~9):
cin>
>
s;
a=s;
while(a<
0||a>
9);
returna;
adduser()//输入函数
\n\t\t****************请输入图书信息****************"
\n\t\t输入书名:
/*交互输入*/
student[num].name;
\n\t\t输入ISBN:
student[num].isbn;
\n\t\t输入作者:
student[num].author;
\n\t\t输入分类号:
student[num].type;
\n\t\t输入出版日期:
student[num].date;
\n\t\t输入价格:
student[num].price;
\n\t\t输入出版单位:
student[num].company;
num++;
\n\t\t是否继续添加?
(Y/N):
charz;
z;
if((z=='
y'
)||(z=='
Y'
))
return(0);
intlist()//显示函数
inti;
if(num!
=0)
\n\t\t***************以下为该书所有信息************"
for(i=0;
i<
num;
i++)/*循环输入*/
\n\t\t书名:
student[i].name;
\n\t\tISBN:
"
student[i].isbn;
\n\t\t作者:
student[i].author;
\n\t\t分类号:
student[i].type;
\n\t\t出版日期:
student[i].date;
\n\t\t价格:
student[i].price;
\n\t\t出版单位:
student[i].company;
\t\t"
if(i+1<
num)
\n\t\t__________________________"
pause"
\n\t\t************************************************"
else
\n\t\t书库中无任何纪录"
\n\t\t按任意键返回主菜单:
search_name()//按书名查找
intmark=0;
inta=0;
\n\t\t*****************按书名查找*******************"
\n\t\t请输入书名:
name;
for(i=a;
i++)
if(strcmp(student[i].name,name)==0)
\n\t\t*************以下是您查找的信息***************"
mark++;
if((i+1)<
\n\t\t是否继续查找相同名字的信息:
(y/n)"
chary;
cin>
y;
if((y=='
)||(y=='
a=i;
continue;
\n\t\t按任意键返回主菜单"
if(mark==0)
\n\t\t没有相同书名纪录"
search_isbn()//按ISBN查找
\n\t\t******************按ISBN查找******************"
charisbn[10];
\n\t\t请输入ISBN:
isbn;
if(strcmp(student[i].isbn,isbn)==0)
\n\t\t**************以下是您查找的书籍信息**********"
\n\t\t没有更改信息"
add()//增加书籍信息
if((fp=fopen("
student.bin"
"
wb"
))==NULL)
\n\t\t文件打开失败"
for(i=0;
if(fwrite(&
student[i],sizeof(structrecord),1,fp)!
=1)
\n\t\t写入文件错误!
\n"
\n\t\t****************请输入书籍信息****************"
\n\t\t输入ISBN号码:
if(getch()=='
fclose(fp);
\n\t\t图书文件已保存"
\n\t\t按任意键退出程序\n\t\t"
voiddeletebyisbn()
inti,j;
intdeletemark=0;
\n\t\t请输入要删除ISBN号码:
if(num==0)
\n\t\t对不起,文件中无任何纪录"
return;
if(strcmp(student[i].isbn,isbn)==NULL)
\n\t\t以下是您要删除的书籍纪录:
\n\t\t是否删除?
charu;
u;
if((u=='
)||(u=='
for(j=i;
j<
num-1;
j++)
student[j]=student[j+1];
num--;
deletemark++;
\n\t\t删除成功"
\n\t\t是否继续删除?
charv;
v;
if((v=='
)||(v=='
deletebyisbn();
if(deletemark==0)
\n\t\t没有该书籍的纪录"
charm;
m;
if((m=='
)||(m=='
voiddeletebyname()
intfindmark=0;
intj;
\n\t\t请输入要删除书籍名称:
if(strcmp(student[i].name,name)==NULL)
findmark++;
\n\t\t________________________________"
charn;
n;
if((n=='
)||(n=='
\n\t\t是否继续删除相同书籍信息?
charl;
l;
if((l=='
)||(l=='
charo;
o;
if((o=='
)||(o=='
deletebyname();
\n\t\t是否继续删除相同书名信息?
charp;
p;
if((p=='
)||(p=='
if((deletemark==0)&
&
(findmark==0))
charq;
q;
if((q=='
)||(q=='
elseif(findmark!
\n\t\t没