C语言实现的图书信息管理系统.docx
- 文档编号:23826473
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:19
- 大小:129.32KB
C语言实现的图书信息管理系统.docx
《C语言实现的图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实现的图书信息管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
C语言实现的图书信息管理系统
C语言课程设计报告
题目:
图书信息管理系统
系部名称
:
计算机和信息技术学院
专业名称
:
班级
:
学号
:
学生姓名
:
指导教师
:
时间
:
2010年7月10日至
2010年8月20日
一、课程设计目的
1)对C各部分知识的综合使用能力
2)提高程序设计的能力
3)提升对于较大程序的抽象分析设计能力
4)学习调试和测试的技巧
二、课程设计内容
1)熟悉C实验环境,按给定的上机步骤练习完成;
2)熟悉C程序的编辑,编译,链接和运行的过程。
3)编译一个使用系统程序,形成一个软件系统。
三、需求分析
随着当今社会发展,信息化水平逐步提高,对图书管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。
该软件主要是实现对图书信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定图书的相关信息,然后可以插入图书的相关信息,以求达到简易操作的目的。
四、概要设计(或总体设计)
1.系统结构图(功能模块图)和数据变量说明
2.功能模块说明
1.输入模块2.列表模块
3.查找模块
N
Y
4.修改模块5.删除模块
五、运行情况
1.主菜单
2.录入数据
3.输出数据
3.查找数据
5.删除数据
6.修改数据
7.退出系统
六、设计体会和反思
通过两周的上机实习,我对C语言又有了崭新的认识。
C语言的学习是一个系统的过程,需要长期的知识积累和储备并辅以大量的上级实际操作练习,自己也应该有所体会,在实践中成长,在实践中求知。
这次我设计的课题是图书信息管理系统。
课题要求对图书信息实现一系列基本操作。
我选择通过结构体数组来实现这个设计。
通过fread和fwrite两个函数实现对文件的读写,过程比较简洁(这里也有参考《C程序设计》中某例题的思想)。
通过大量的符号和printf语句,使得操作界面更加和谐友善,这些都是我通过这次实习积累的经验。
同时,设计完成后我也发现了代码中的一些不足,例如在录入数据时要求输入序号的值,这个我认为操作比较复杂,但由于时间紧迫,未能提出完美的解决方案,但此问题并不影响程序的运行和要求的实现。
另外,在查询信息时,只会输出一条符合要求的图书信息,且输出多次。
经过实际检验,只要按照程序要求输入,就能够实现。
总之,通过这次实习,我也认识到了我自己在程序设计这门课程上的不足,在以后的学习实践中,要更加的严谨踏实,对知识的把握要更加的细致入微,要活学活用,争取在这个学科上取得更大的进步。
七、参考文献
谭浩强著.C程序设计(第三版).北京:
清华大学出版社,2005
八、程序源代码
#include
#include
#include
#include
#defineMAX100
structStudent
{
intnum;/*登录号*/
charname[100];/*书名*/
charauthor[100];/*作者名*/
charfn[100];/*分类号*/
charplace[100];/*出版单位*/
charday[100];/*出版时间*/
floatmoney;/*价格*/
}stu[MAX];
main()/*主函数*/
{
voidInput();/*输入*/
voidDisplay();/*输出*/
voidFind();/*查找*/
voidModify();/*删除*/
voidChange();/*修改*/
intn;
for(;;)
{
printf("\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※※\n");
printf("※欢迎来到图书信息管理系统※\n");
printf("※※\n");
printf("※※\n");
printf("※主菜单※\n");
printf("※※\n");
printf("※▲1.图书信息录入▲※\n");
printf("※※\n");
printf("※▲2.图书信息浏览▲※\n");
printf("※※\n");
printf("※▲3.图书信息查询▲※\n");
printf("※※\n");
printf("※▲4.图书信息删除▲※\n");
printf("※※\n");
printf("※▲5.图书信息修改▲※\n");
printf("※※\n");
printf("※▲6.退出系统▲※\n");
printf("※※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");
printf("请输入选择项(1-6):
");
scanf("%d",&n);
printf("\n\n\n\n");
if(n>0&&n<7)
{
switch(n)
{
case1:
Input();break;
case2:
Display();break;
case3:
Find();break;
case4:
Modify();break;
case5:
Change();break;
case6:
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※※\n");
printf("※谢谢使用!
※\n");
printf("※再见!
※\n");
printf("※※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
exit(0);
}
}
else
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※※\n");
printf("※输入错误!
※\n");
printf("※请退出!
※\n");
printf("※※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
break;
}
}
}
voidFind()/*查找*/
{
FILE*fp;
inti;
intchoose,t;
charans[100];
do
{
printf("1.按书名查找\n");
printf("2.按作者名查找\n");
printf("返回主菜单(其他数字)\n");
scanf("%d",&choose);
if(choose==1)
{
printf("输入所查书名:
\n");
scanf("%s",ans);
t=-1;
if(choose==1)
{
for(i=0;i { t=i; fp=fopen("student","rb"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) printf("%d%s%s%s%s%s%f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money); } } if(t==-1)printf("不存在该信息\n"); } elseif(choose==2) { printf("输入所查作者名: \n"); scanf("%s",ans); t=-1; if(choose==2) { for(i=0;i if(strcmp(ans,stu[i].author)==0) {t=i; fp=fopen("student","rb"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) printf("%d%s%s%s%s%s%f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money); } } if(t==-1)printf("不存在该信息\n"); } elsereturn; }while (1); } voidDisplay()/*输出*/ { FILE*fp; inti; fp=fopen("student","rb"); printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("图书列表\n"); printf("-----------------------------------------------------------\n"); printf("登录号书名作者名分类号出版单位出版时间价格\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) { printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money); } fclose(fp); } voidInput()/*输入*/ { FILE*fp; intn; fp=fopen("student","wb"); for(n=0;n { printf("n=%d输入序号n(当输入n=-1时,返回),n=",n++); scanf("%d",&n); if(n==-1) { fclose(fp); return; } else { printf("请输入登录号书名作者名分类号出版单位出版时间价格\n"); scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&stu[n].money); fwrite(&stu[n],sizeof(structStudent),1,fp); } } fclose(fp); } voidModify()/*删除*/ { FILE*fp; inti,flag,n,s,j; fp=fopen("student","rb+"); rewind(fp); printf("图书列表\n"); printf("-----------------------------------------------------------\n"); printf("登录号书名作者名分类号出版单位出版时间价格\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) { printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money); printf("\n"); } n=i; printf("输入待删除图书号: \n"); scanf("%d",&s); for(i=0,flag=1;flag&&i { if(s==stu[i].num) { for(j=i;j { stu[j].num=stu[j+1].num; strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j].author,stu[j+1].author); strcpy(stu[j].fn,stu[j+1].fn); strcpy(stu[j].place,stu[j+1].place); strcpy(stu[j].day,stu[j+1].day); stu[j].money=stu[j+1].money; } flag=0; } } if(! flag) n=n-1; else printf("没有此号\n"); fp=fopen("student","wb"); for(i=0;i fwrite(&stu[i],sizeof(structStudent),1,fp); fclose(fp); fp=fopen("student","r"); printf("图书列表\n"); printf("-----------------------------------------------------------\n"); printf("登录号书名作者名分类号出版单位出版时间价格\n"); printf("-----------------------------------------------------------\n"); for(i=0;i { fread(&stu[i],sizeof(structStudent),1,fp); printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money); printf("\n"); } fclose(fp); } voidChange()/*修改*/ { FILE*fp; inti,num,n; intflag=0; printf("请输入要修改的图书号: "); scanf("%d",&num); for(i=0;i<=MAX;i++) if(stu[i].num==num) { printf("图书列表\n"); printf("-----------------------------------------------------------\n"); printf("登录号书名作者名分类号出版单位出版时间价格\n"); printf("-----------------------------------------------------------\n"); printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money); printf("-----------------------------------------------------------\n\n"); n=i; flag=1; break; } if(flag==0) { printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("输入错误! \n"); printf("请返回! \n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); return; } printf("\n\n\n"); fp=fopen("student","rb+"); fseek(fp,n*sizeof(structStudent),0); printf("登录号书名作者名分类号出版单位出版时间价格\n"); scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&stu[n].money); fwrite(&stu[i],sizeof(structStudent),1,fp); fclose(fp); fp=fopen("student","rb"); printf("图书列表\n"); printf("-----------------------------------------------------------\n"); printf("登录号书名作者名分类号出版单位出版时间价格\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) { printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);; } printf("-----------------------------------------------------------\n\n"); fclose(fp); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 图书 信息管理 系统