版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、问题概述
(对问题背景及重要实现日勺功能进行简要阐明。)
伴随图书馆图书日勺不停增长,图书管理日勺难度也随之加大,一种
好日勺图书馆图书信息管理系统,,可以使图书管理工作简便,有条不紊。
通过C语言学习,我们已经可以完毕基本日勺C语言编程,本次实训,
是将学习和实践结合,充足感受C语言处理实践问题日勺魅力。本次编
写的图书馆信息管理系统,可以实现基本的图书管理功能。它包括图
书库日勺创立,打印图书信息表,录入新图书,修改图书信息,删除图
书信息,借书,还书。图书库包括图书日勺各方面信息,编号,类型,
作者,出版社,总数,剩余量等等,并且打印图书信息表。录入,修
改,删除这些功能都是对图书库的操作。借书,还书这两项最重要目勺
功能也都能很好目勺实现。把此系统应用于图书馆日勺图书管理,能使图
书馆日勺各项工作便捷,可靠口勺完毕。
二、系统目日勺
(重要是对系统技术目w、j和规定)
欢迎界面、主菜单、系统管理功能、图书信息管理、借阅功能模
块、
其中系统管理功能包括系统管理员添加、删除、修改信息以及用
管理员身份登录系统等功能。
图书信息管理包括新增图书、修改图书、删除图书、等功能。
借阅功能模块包括借书功能、还书功能、查询已借图书、查询过
期未还图书,其中借书还书功能可以按图书编号信息进行操作。
三、设计的过程及环节
1、需求分析
(描述系统需求,既详细分析系统需求和功能)
根据题目规定,应当把图书信息用构造体形式输入,再定义一种
全局变量和文献指针进行整个程序的运行,然后把图书信息送到文献
中,因此应当提供一种构造体和文献的输入输出等操作;在程序中需
实现图书信息录入,浏览,查询,删除和修改等功能日勺操作,因此需
要建立对应的模块来实现;此外还需提供绕盘式选择菜单实现功能,
在运行时到达所要目日勺。
2、设计文献构造
(设计文献构造,并扼要阐明设计缘由)
此系统根据所要实现日勺功能,使用的函数等综合考虑,设计了两
个,图书信息文献(mshu.red),借还书文献(borrow.red),录入新图
书,修改,删除图书等某些操作时在图书信息文献上运行,借还书功
能则在借还书文献上运行,同步也要在图书信息文献上运行。两个文
献互相结合,使各个功能很好E勺实现了,运用C语言口勺文献功能,也
是整个程序日勺主线。
3、设计系统功能图
(根据需求分析成果和文献构造,应用构造化分析与设计技术设计功能构造
图,如下图所示)
图书管理信息系统
图书管理信息系统
4、函数设计
(详细分析每一种子模块H勺子功能,定义重要的子函数原型,并对每一种
函数日勺功能加以阐明)
此系统重要有7个功能,也就有重要日勺7个函数,他们分别是
voidshan()〃删除图书信息
voidxiu()//修改图书信息
voidputinO〃录入新图书
voidprint()//打印图书信息表
voidreturned0〃还书
voidbooks()〃创立图书文献
voidborrowed()〃借书
其中每一种函数都用到了两个构造体,它们分别是:
structtushu
charbianhaol[10];
charbianhao2[10];
charleixing[20];
charshuming[50];
charchubanshefSOl:
}shu;
structbooks
(
charbianhaol[10];
charbianhao2[10];
longnian;
longborrowmonth;
longborrowday;
longreturnedmonth;
longreturncdday;
longlimittime;
charstudent[10];
}book;
四、实训成果
(对自己H勺最终H勺试验成果进行概括)
通过长达9天的编写,修改,运行,最终完毕时,预想日勺功能都
能比很好的实现。下面是各个功能运行口勺界面:
进入界面:
欢迎使用图书信息管理系统
功能选择界面:
请选择您需要的功能:
(直接键入对应数字)
1.图书创建
2.打印图书信息表
3.图书追加与录入
4.修改图书信息
5.删除图书信息
6.借书
?.还书
录入新图书界面:
》》》输入编号
》》》编号2:z0I11
》》》类型:数学
》》》书名:高等数学
》》》出版社:高等教育出版社
》》》作者:同济大学数学系
》》》总数:500
》》》剩余其22
haueanotherbookrecord<ir/n>?:y
》》》输入编号士
尚有各个功能多种界面,这里就不一一列出了。
五、实训心得与体会
本次系统编程,我感受诸多,从开始编程时日勺迷茫,到修改时
口勺烦躁,再到运行时的无奈,最终是成功时无法体现口勺喜悦和兴奋。
每一步都是自己努力走过来日勺,虽然这个过程比较辛劳,不过目前回
过头去想想,这几天还是过得很故意义和价值日勺。大家都说编程最需
要的是耐心,我这次是深有体会,程序刚开始编,浑身都是信心和爱
好,到修改口勺时候,检查一遍又一遍,修改一次有一次还是无法成功
运行,这个时候只有耐心才能坚持完毕。同步,编程时,会发现许多
此前学的概念都记错了,这时候要找出书本重新温习,因此这也是一
种不停学习日勺过程。尚有,编程时不能太死板,要实现一种功能其实
都会有诸多种算法,我们应边做边学习新口勺措施。对于我日勺局限性之
处,要实现一种功能时,我总是第一遍编程实现后,就不乐意在深探
究下去,这种惰性很不适合做编程工作。
综上所述,通过本次C语言实践编程,使我对C语言的爱好愈加
浓厚,也对C语言的实践应用愈加理解,充足感受到了它口勺魅力,同
步也明白了自身在这方面工作日勺优势和局限性。
六、附录
#include<stdio.h>
#include<stdIib.h>
#incIude<string.h>
structtushu
(
charbianhaol[10];
charbianhao2[10];
charleixing[20];
charshuming[50];
charchubanshe[50];
charwriter[20];
Iongzongshu;
Iongshengyu;
)shu;
structbooks
charbianhaol[10];
charbianhao2[10];
Iongnian;
longborrowmonth;
Iongborrowday;
Iongreturnedmonth;
Iongreturnedday;
IongIimittime;
charstudent[10];
}book;
voidshan()〃删除图书信息
FILE*fp;
inti=0,j,n,m,I;
charbooknum[20^;
structtushutu[1000];
if((fp=fopen("tushu.txt","r"))==NULL)
(
printf("cannotopenthetushu.txt.\n");
exit(0);
}
while(fread(&tu[i],sizeof(shu),1,fp))
(
i++;
m二i;
)
prin"("要删除几本书:");
scant("%d",&n);
getchar();
for(i=0;i<n;i++)
(
printf("输入图书编号2:");
gets(booknum);
for(j=0;j<m;j++)
if(strcmp(booknum,tu[j].bianhao2)二二0)
break;
if(j<m)
(
for(1=0;Km;I++)
if(strcmp(tu[j].bianhaol,tu[I].bianhaol)==0)
I
tu[I].zongshu—;
shengyu—;
)
for(j;j<m;j++)
tu[j]=tu[j+1];
)
eIse
(
printf("输入有误重新输入\n");
i-;
}
)
if((fp=fopen("tushu.txt","w"))二二NULL)
(
printf("cannotopenthetushu.txt.\n");
exit(0);
}
for(i=0;i<m-n;i++)
fwrite(&tu[i],sizeof(shu),1,fp);
printf(”删除成功!!”);
idxiuO〃修改图书信息
FILE*fp;
inti=0,m,n;
charbooknum[20",numchar[20];
structtushutu[1000];
if((fp=fopen("tushu.txt","r"))==NULL)
(
printf("cannotopentheborrow,txt.\n");
exit(0);
)
while(fread(&tu[i],sizeof(shu),1,fp))
(
i++;
m=i;
)
if((fp=fopen("tushu.txt","w"))==NULL)
printf("cannotopentheborrow,txt.\n");
exit(0);
)
printf("要修改几本书:");
scant&n);
getchar();
for(i=0;i<n;i++)
(
printf("输入要修改的)图书编号2:");
gets(booknum);
for(i=0;i<m;i++)
(
if(strcmp(booknum,tu[i].bianhao2)==0)
break;
1
if(i<m)
printf("》》》输入修改后的\n\n");
printf("》》》输入编号1:;
gets(tu[i].bianhaoD;
printf("\n");
printf("》》》编号2:");
gets(tu[i].bianhao2);
printf("\n");
printf。》》》类型;
gets(tu[i].leixing);
printfC'\n");
printf。》》》书名:“);
gets(tu[i].shuming);
printf("\n");
printf("》》》出版社:");
gets(tu[i].chubanshe);
printf("\n");
printf。》》》作者:“);
gets(tu[i].writer);
printf("\n");
printf("W总数:”);
gets(numchar);
printf("\n");
tu[i].zongshu=atol(numchar);
printfC>»剩余:”);
gets(numchar);
printf("\n");
tu[i].shengyu=atol(numchar);
)
eIse
printf("输入有误\n");
for(i=0;i<m;i++)
fwrite(&tu[i],sizeof(shu),1,fp);
1
fclose(fp);
)
voidputin()〃录入新图
书
(
charnumchar[20.;
FILE*fp;
inti=0,m,n;
structtushutu[1000];
if((fp=fopen("tushu.txt","r"))==NULL)
(
printf("cannotopentheborrow.txt.\n");
exit(0);
}
while(fread(&tu[i],sizeof(shu),1,fp))
i++;
m二i;
)
if((fp=fopen("tushu.txt","w"))二二NULL)
(
printf("cannotopentheborrow.txt.
exit(O);
}
for(i=0;i<m;i++)
(
fwrite(&tu[i],sizeof(shu),1,fp);
)
printf("要录入几本书:");
scant("%d",&n);
getchar();
for(i=0;i<n;i++)
printf("\n");
printf("》》》输入编号1:;
gets(shu.bianhaol);
printf("\n");
printf(“》》》编号2:");
gets(shu.bianhao2);
printf("\n");
printf("»类型:");
gets(shu.Ieixing);
printf("\n");
printf,'》》》书名:“);
gets(shu.shuming);
printf("\n");
printf(”》》》出版社:");
gets(shu.chubanshe);
printf("\n");
printf(“》》》作者:”);
gets(shu.writer);
printf("\n");
printf("»»总数:”);
gets(numchar);
printf("\n");
shu.zongshu=atoI(numchar);
printfC'W剩余:”);
gets(numchar);
printf("\n");
shu.shengyu=atoI(numchar);
fwrite(&shu,sizeof(shu),1,fp);
}
fclose(fp);
)
voidprint()〃打印图书信息
表
FILE*fp;
if((fp=fopen("tushu.txt","r"))==NULL)
printf("cannotopenthetushu.txt.\n");
exit(0);
)
puts("____________________________________________________________________________
_________");
puts("----------------------------------------------------------------------------
---------,,);
puts("|编号1|编号2|类型|书名|作者I出版社
I总数I剩余I");
fseek(fp,0L,SEEK_SET);
while(fread(&shu,sizeof(shu),1,fp)=1)
printf("%-9s%-10s%-10s%-10s%-10s%-10s%-101d%-10Id\n",shu.bianhaol,s
hu.bianhao2,shu.Ieixing,shu.shuming,shu.writer,shu.chubanshe,shu.zong
shu,shu.shengyu);
voidreturned()//还书
FILE*fp;
inti二0,m,千Iag=0,j;
charbooknum[20.;
structbooksbookl[1000];
if((fp=fopen("borrow.txt","r"))==NULL)
(
printf("cannotopentheborrow.txt.\n");
exit(0);
)
while(fread(&book1[i],sizeof(book),1,fp))
(
i++;
m二i;
1
if((fp=fopen("borrow.txt","w"))—NULL)
printf("cannotopentheborrow.txt.\n");
exit(0);
)
printf("输入要还日勺图书编号2:");
gets(booknum);
for(j=0;j<m;j++)
(
if(strcmp(booknum,bookl[j].bianhao2)二二0)
(
flag=1;
break;
)
)
if(flag)
flag=O;
prin"("输入还书月份:");
scanf("%ld",&book1[i].returnedmonth);
printf("输入还书日期:”);
scanf("%ld"r&book1[i].returnedday);
getchar();
for(j=0;j<m;j++)
fwrite(&book1[i],sizeof(book),1,fp);
)
eIse
printf("输入有误\n");
fclose(fp);
)
voidbooks()//创立图
书文献
FILE*fp;
charnumchar[50]fch="y';
if((fp=fopen("tushu.txt","wt"))==NULL)
(
printf("cannotopenthetushu.txt.\n");
exit(0);
1
while(ch=='y'||ch=='Y')
(
printf("\n");
printfC'》》》输入编号1:”);
gets(shu.bianhaol);
printf("\n");
print"》》》编号2:“);
gets(shu.bianhao2);
printf("\n");
printfC'W类型:");
gets(shu.leixing);
printf("\n");
printfC'W书名:”);
gets(shu.shuming);
printf("\n");
printf("》》》出版社:”);
gets(shu.chubanshe);
printf("\n");
printfC'W作者:”);
gets(shu.writer);
printf("\n");
printfC'W总数:”);
gets(numchar);
printf("\n");
shu.zongshu=atoI(numchar);
printfC'W剩余:”);
gets(numchar);
printf("\n");
shu.shengyu=atol(numchar);
fwrite(&shu,sizeof(shu),1,fp);
do{
printf("haveanotherbookrecord;y/n)?:");
gets(numchar);
ch=numchar[0];
}while(!(ch二二'y'||ch二二'n'||ch='Y'||ch=='N'));
1
fclose(fp);
)
voidborrowed()〃借书
(
structtushutu[1000];
structbooksbookl[1000];
FILE*fp,*fq;
charnumchar[50^;
inti=0,j,ml,m2,n,fIag=0,x;
printf("借几本书:");
scanf("%d",&x);
getchar();
if((fq=fopen("tushu.txt","r"))==NULL)
(
printf("cannotopenthetushu.txt.\n");
exit(0);
)
while(fread(&tu[i],sizeof(shu),1,fq))
(
i++;
m1=i;
1
if((fp=fopen("borrow,txt","r"))—NULL)
printf("cannotopentheborrow,txt.\n");
exit(O);
)
while(fread(&book1[i],sizeof(book),1,fp))
(
i++;
m2=i;
)
for(i=0;i<x;i++)
(
printf("\n");
printf("输入编号2:");
gets(numchar);
for(j=0;j<m1;j++)
if(strcmp(numchar,tu[j].bianhao2)==0)
n=j;
flag=1;
break;
)
)
if(flag)
(
printf("\n");
printf("输入对日勺\n\rT);
fIag=0;
strcpy(book,bianhao2,numchar);
printf("》》》输入编号1");gets(book,bianhaol);printf("\n");
printf("》》》借书年份:");gets(numchar);printf("\n");
book.nian=atol(numchar);
printfC》》》借书月份:”);gets(numchar);printf("\n");
book,borrowmonth=atoI(numchar);
printf。》》》借书日期:");gets(numchar);printf("\n");
book.borrowday=atol:numchar);
printfC》》》还书月份》);gets(numchar);printf("\n");
book.returnedmonth=atoI(numchar);
printf。》》》还书日期:");gets(numchar);printf("\n");
book.returnedday=atol(numchar);
printf("》》》期限:");gets(numchar);printf("\n");
book.Iimittime=atol:numchar);
printf("》》》学生学号:");gets(book,student);
printf("\n");
if((fp=fopen("borrow,txt","w"))==NULL)
(
printf("cannotopentheborrow.txt.\n");
exit(0);
1
fwrite(&book,sizeof(book),1,fp);
for(j=0;J<m2;j++)
fwrite(&book1[j],sizeof(book),1,fp);
)
for(j=0;j<m1;j++)
if(strcmp(tu[n].bianhaol,tu[j].bianhaol)=0)
tu[j].shengyu一;
)
if((fq=fopen("tushu.txt","w"))==NULL)
(
printf("cannotopenthetushu.txt.\n");
exit(0);
)
for(j=0;j<m1;j++)
(
fwrite(&tu[j],sizeof(shu),1,fq);
)
}
se
printf("输入错误\n");
1
1
fclose(fq);
fclose(fp);
voidmain()
intflag=1;
chara[20];
puts("।------------------------------------------------------------------1");
puts("||");
puts("||");
puts("II");
puts("II");
puts("II");
puts("欢迎使用图书信息管理系统1);
puts("I1")
puts("I1")
puts("I1")
puts("I1");
puts("I■■■■■1");
puts("I■田■田■1");
puts("1■田■田■1");
puts("I■田■田■.1");
puts("I■田■田■.1");
puts("I■■■■■1");
puts("I,■■口■■一1");
puts("I1");
puts("11")
puts("1请选择您需要的功能:1")
puts("11")
puts("I(直接键入对应数字)1")
puts("I1");
puts("I1");
puts("I1");
puts("I1.图书创立1");
puts("I1");
puts("I2.打印图书信息表1");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆市永川区临江镇人民政府招聘公益性岗位人员3人(非全日制)备考笔试试题及答案解析
- 2025广东东莞市公安局第二批警务辅助人员招聘160人模拟笔试试题及答案解析
- 2025红河州聚诚实业有限公司社会招聘(1人)模拟笔试试题及答案解析
- 2026内蒙古通辽市扎鲁特旗事业单位第一批次人才引进39人备考考试试题及答案解析
- 2025年淄博市检察机关公开招聘聘用制书记员(51人)备考考试题库及答案解析
- 2025广西北海市华侨医院招聘编外人员3人参考考试题库及答案解析
- 2025福建泉州石狮国有投资发展集团有限责任公司招聘工作人员5人备考考试题库及答案解析
- 2025新疆九洲千城物业服务有限公司招聘工程管理部副部长等岗位6人备考考试题库及答案解析
- 2025年福建莆田市仙游县医疗卫生高层次及重点紧缺专业人才招聘6人备考笔试试题及答案解析
- 2025广东中山横栏镇第二批公益性岗位招聘备考笔试试题及答案解析
- 2024年征用农村集体土地宣传讲话稿(4篇)
- GB/T 2423.65-2024环境试验第2部分:试验方法试验:盐雾/温度/湿度/太阳辐射综合
- 家园共育背景下幼儿良好生活习惯与能力的培养研究
- 《毛遂自荐》成语故事
- 美容行业盈利分析
- 小班化教学和合作学习
- 《继发性高血压》课件
- 垃圾中转站运营管理投标方案
- 数字媒体与数字广告
- 综合楼装饰装修维修改造投标方案(完整技术标)
- 中药现代化生产技术课件
评论
0/150
提交评论