c语言课程设计报告图书管理系统精品.docx
《c语言课程设计报告图书管理系统精品.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告图书管理系统精品.docx(27页珍藏版)》请在冰豆网上搜索。
![c语言课程设计报告图书管理系统精品.docx](https://file1.bdocx.com/fileroot1/2023-1/31/e3bc6f67-ee20-4ee5-b475-7eaa172e810d/e3bc6f67-ee20-4ee5-b475-7eaa172e810d1.gif)
c语言课程设计报告图书管理系统精品
《高级语言程序设计(C)》
课程设计报告书
设计题目图书管理系统
姓名
专业班级
学号
指导老师
成绩
营销管理学院电子商务系
2011年1月
目录
一引言……………………………………………………………3
二系统功能和原始数据…………………………………………3
三程序总体设计…………………………………………………4
四功能模块函数设计和调试……………………………………5
五程序清单………………………………………………………12
六课程设计总结…………………………………………………17
一引言
在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程.本任务应用指针编制小型的图书管理系统.通过整个程序开发的过程,提高综合应用C语言的能力,编程和调试能力
.
二系统功能和原始数据
(一)系统功能
(1)主菜单
0.图书信息录入
1.图书信息浏览
2按书名查询图书信息
3.按ISBN查询图书信息
4.增加图书信息
5.按书名排序
6.删除记录
7.保存文件
8.打开文件
9.退出
(2)各项功能
0.图书信息录入:
输入图书的名字、ISBN、作者、价格、出版社等。
1.图书信息浏览:
图书的名字、ISBN、作者、价格、出版社等
2.查看与书的名字有关的信息:
根据书名查找书。
3.查看与作者有关的书的信息:
根据作者查找书。
4.增加书的信息:
输入书的名字、ISBN、作者、价格、出版社等。
5按照书名排序:
字母的形式排序
6删除记录:
删除一条书的信息
7.保存文件
8.文件打开
9.退出
(二)原始数据
图书信息:
图书信息包括:
书名.isbn.分类号.作者.出版日期.出版社.价格
文件结构:
书名
Isbn
分类号
作者
出版时间
出版单位
价格
C语言
123
Xx1
谭浩强
09-01-21
高等教育出版社
15
数学
234
Xx2
彭辉
09-01-21
高等教育出版社
16
思修
345
Xx3
邹邹
09-01-21
高等教育出版社
17
英教
456
Xx4
王浩
09-01-21
高等教育出版社
18
应用文
567
Xx5
瑞瑞
09-01-21
高等教育出版社
19
概率
678
Xx6
雪雪
09-01-21
高等教育出版社
20
管理学
789
Xx7
小邹
09-01-21
高等教育出版社
21
线代
890
Xx8
周敏
09-01-21
高等教育出版社
22
军事
901
Xx9
张向东刘毅
09-01-21
高等教育出版社
23
运筹
012
Xx0
崔崔
09-01-21
高等教育出版社
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/*引用库函数*/
#include
#include
#include
#include
#include
#definenull0;
structrecord
{
charname[20];
charisbn[20];
charauthor[40];
chartype[10];
chardate[10];
charprice[10];
charcompany[30];
}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();
break;
case2:
search_name();
break;
case3:
search_isbn();
break;
case4:
add();
break;
case5:
listbyname();
break;
case6:
dele();
break;
case7:
save();
break;
case8:
read();
break;
case9:
exit(0);
}
}
}
menu_select()
{
ints;
inta;
cout<<"*_*按任意键进入菜单!
*_*"<getch();
system("cls");
cout<<"\t\t********************MENU*********************\n"<cout<<"\t\t0.图书信息录入"<cout<<"\t\t1.图书信息浏览"<cout<<"\t\t2.按书名查询图书信息"<cout<<"\t\t3.按ISBN查询图书信息"<cout<<"\t\t4.增加图书信息"<cout<<"\t\t5.按书名排序"<cout<<"\t\t6.删除记录"<cout<<"\t\t7.数据保存"<cout<<"\t\t8.文件打开"<cout<<"\t\t9.退出"<cout<<"\t\t***********************************************"<do{
cout<<"\n输入你的选择(0~9):
";
cin>>s;
a=s;
}
while(a<0||a>9);
returna;
}
adduser()//输入函数
{
cout<<"\n\t\t****************请输入图书信息****************"<cout<<"\n\t\t输入书名:
";/*交互输入*/
cin>>student[num].name;
cout<<"\n\t\t输入ISBN:
";
cin>>student[num].isbn;
cout<<"\n\t\t输入作者:
";
cin>>student[num].author;
cout<<"\n\t\t输入分类号:
";
cin>>student[num].type;
cout<<"\n\t\t输入出版日期:
";
cin>>student[num].date;
cout<<"\n\t\t输入价格:
";
cin>>student[num].price;
cout<<"\n\t\t输入出版单位:
";
cin>>student[num].company;
num++;
cout<<"\n\t\t是否继续添加?
(Y/N):
";
charz;
cin>>z;
if((z=='y')||(z=='Y'))
adduser();
return(0);
}
intlist()//显示函数
{
inti;
system("cls");
if(num!
=0)
{
cout<<"\n\t\t***************以下为该书所有信息************";
for(i=0;i{
cout<<"\n\t\t书名:
"<cout<<"\n\t\tISBN:
"<cout<<"\n\t\t作者:
"<cout<<"\n\t\t分类号:
"<cout<<"\n\t\t出版日期:
"<cout<<"\n\t\t价格:
"<cout<<"\n\t\t出版单位:
"<cout<<"\t\t";
if(i+1{
cout<<"\n\t\t__________________________";
system("pause");
}
}
cout<<"\n\t\t************************************************";
}
else
cout<<"\n\t\t书库中无任何纪录";
cout<<"\n\t\t按任意键返回主菜单:
";
getch();
return(0);
}
search_name()//按书名查找
{
intmark=0;
inti;
inta=0;
cout<<"\n\t\t*****************按书名查找*******************";
charname[20];
cout<<"\n\t\t请输入书名:
";
cin>>name;
for(i=a;i{
if(strcmp(student[i].name,name)==0)
{
cout<<"\n\t\t*************以下是您查找的信息***************";
cout<<"\n\t\t书名:
"<cout<<"\n\t\tISBN:
"<cout<<"\n\t\t作者:
"<cout<<"\n\t\t分类号:
"<cout<<"\n\t\t出版日期:
"<cout<<"\n\t\t价格:
"<cout<<"\n\t\t出版单位:
"<cout<<"\n\t\t************************************************";
mark++;
if((i+1){
cout<<"\n\t\t是否继续查找相同名字的信息:
(y/n)";
chary;cin>>y;
if((y=='y')||(y=='Y'))
{
a=i;
continue;
}
else
return(0);
}
else
{
cout<<"\n\t\t按任意键返回主菜单";
getch();
return(0);
}
}
}
if(mark==0)
{
cout<<"\n\t\t没有相同书名纪录";
cout<<"\n\t\t按任意键返回主菜单";
getch();
return(0);
}
}
search_isbn()//按ISBN查找
{
intmark=0;
inti;
inta=0;
cout<<"\n\t\t******************按ISBN查找******************";
charisbn[10];
cout<<"\n\t\t请输入ISBN:
";
cin>>isbn;
for(i=0;i{
if(strcmp(student[i].isbn,isbn)==0)
{
cout<<"\n\t\t**************以下是您查找的书籍信息**********";
cout<<"\n\t\t书名:
"<cout<<"\n\t\tISBN:
"<cout<<"\n\t\t分类号:
"<cout<<"\n\t\t出版日期:
"<cout<<"\n\t\t价格:
"<cout<<"\n\t\t作者:
"<cout<<"\n\t\t出版单位:
"<cout<<"\n\t\t************************************************";
cout<<"\n\t\t按任意键返回主菜单:
";
mark++;
getch();
return(0);
}
}
if(mark==0)
{
cout<<"\n\t\t没有更改信息";
cout<<"\n\t\t按任意键返回主菜单";
getch();
return(0);
}
return(0);
}
add()//增加书籍信息
{
inti;
if((fp=fopen("student.bin","wb"))==NULL)
{
cout<<"\n\t\t文件打开失败";
}
for(i=0;i{
if(fwrite(&student[i],sizeof(structrecord),1,fp)!
=1)
{
cout<<"\n\t\t写入文件错误!
\n";
}
cout<<"\n\t\t****************请输入书籍信息****************"<cout<<"\n\t\t输入书名:
";
cin>>student[num].name;
cout<<"\n\t\t输入ISBN号码:
";
cin>>student[num].isbn;
cout<<"\n\t\t输入作者:
";
cin>>student[num].author;
cout<<"\n\t\t输入出版日期:
";
cin>>student[num].date;
cout<<"\n\t\t输入分类号:
";
cin>>student[num].type;
cout<<"\n\t\t输入价格:
";
cin>>student[num].price;
cout<<"\n\t\t输入出版单位:
";
cin>>student[num].company;
num++;
cout<<"\n\t\t是否继续添加?
(Y/N):
";
if(getch()=='y')
adduser();
return(0);
}
fclose(fp);
cout<<"\n\t\t图书文件已保存";
cout<<"\n\t\t按任意键退出程序\n\t\t";
exit(0);
return(0);
}
voiddeletebyisbn()
{
inti,j;
intdeletemark=0;
charisbn[20];
cout<<"\n\t\t请输入要删除ISBN号码:
";
cin>>isbn;
if(num==0)
{
cout<<"\n\t\t对不起,文件中无任何纪录";
cout<<"\n\t\t按任意键返回主菜单";
getch();
return;
}
for(i=0;i{
if(strcmp(student[i].isbn,isbn)==NULL)
{
cout<<"\n\t\t以下是您要删除的书籍纪录:
";
cout<<"\n\t\t书名:
"<cout<<"\n\t\tISBN:
"<cout<<"\n\t\t分类号:
"<cout<<"\n\t\t出版日期:
"<cout<<"\n\t\t价格:
"<cout<<"\n\t\t作者:
"<cout<<"\n\t\t出版单位:
"<cout<<"\n\t\t是否删除?
(y/n)";
charu;cin>>u;
if((u=='y')||(u=='Y'))
{
for(j=i;jstudent[j]=student[j+1];
num--;
deletemark++;
cout<<"\n\t\t删除成功";
cout<<"\n\t\t是否继续删除?
(y/n)";
charv;cin>>v;
if((v=='y')||(v=='Y'))
deletebyisbn();
return;
}
else
return;
}
continue;
}
if(deletemark==0)
{
cout<<"\n\t\t没有该书籍的纪录";
cout<<"\n\t\t是否继续删除?
(y/n)";
charm;cin>>m;
if((m=='y')||(m=='Y'))
deletebyisbn();
return;
}
}
voiddeletebyname()
{
inta=0;
intfindmark=0;
intj;
intdeletemark=0;
inti;
charname[20];
cout<<"\n\t\t请输入要删除书籍名称:
";
cin>>name;
for(i=a;i{
if(strcmp(student[i].name,name)==NULL)
{
cout<<"\n\t\t以下是您要删除的书籍纪录:
";
findmark++;
cout<<"\n\t\t________________________________";
cout<<"\n\t\t书名:
"<cout<<"\n\t\tISBN:
"<cout<<"\n\t\t分类号:
"<cout<<"\n\t\t作者:
"<cout<<"\n\t\t出版日期:
"<cout<<"\n\t\t价格:
"<cout<<"\n\t\t出版单位:
"<cout<<"\n\t\t________________________________";
cout<<"\n\t\t是否删除?
(y/n)";
charn;cin>>n;
if((n=='y')||(n=='Y'))
{
for(j=i;jstudent[j]=student[j+1];
num--;
deletemark++;
cout<<"\n\t\t删除成功";
if((i+1){
cout<<"\n\t\t是否继续删除相同书籍信息?
(y/n)";
charl;cin>>l;
if((l=='y')||(l=='Y'))
{
a=i;
continue;
}
}
cout<<"\n\t\t是否继续删除?
(y/n)";
charo;cin>>o;
if((o=='y')||(o=='Y'))
deletebyname();
return;
}
if((i+1){
cout<<"\n\t\t是否继续删除相同书名信息?
(y/n)";
charp;cin>>p;
if((p=='y')||(p=='Y'))
{
a=i;
continue;
}
}
}
else
continue;
}
if((deletemark==0)&&(findmark==0))
{
cout<<"\n\t\t没有该书籍的纪录";
cout<<"\n\t\t是否继续删除?
(y/n)";
charq;cin>>q;
if((q=='y')||(q=='Y'))
deletebyisbn();
return;
return;
}
elseif(findmark!
=0)
{
cout<<"\n\t\t没