图书信息管理系统.doc_第1页
图书信息管理系统.doc_第2页
图书信息管理系统.doc_第3页
图书信息管理系统.doc_第4页
图书信息管理系统.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机系综合性实验C语言程序设计设计报告设计题目 图书信息管理系统 实验学期2010至2011学年第 2 学期学生所在系部 计算机系 年级 专业班级 姓名 学号 任课教师 实验成绩 计算机系制第一章 选题意义1.1意义通过课设的两天时间使我们将我们的所学的有关c语言的相关知识得到了充分的实践和应用,让我们看到了C语言的真正用途和魅力所在!让我们对学习C的目的以及这门学科的重要性都有了更加深刻的认识!同时我们通过实践应用更加熟练的掌握了C语言这门学科的相关知识,让我们不再是纸上谈兵的空淡之谈。同时随着当今社会发展,信息化水平逐步提高,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点对图书管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。我们通过该软件可以更加便捷的寻找到所需要的图书,为在现在社会中压力大的人们节省了更多的时间和精力。是我们的生活更加的便利和高效。方便了人们的生活。该软件主要是实现对图书信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定图书的相关信息,然后可以插入图书的相关信息,以求达到简易操作的目的。通过课设对c语言的学习进行了实践,使我们掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。掌握if语句及switch语句的运用方法及嵌套应用方法。掌握实现循环结构的三种语句while、do-while.、for 的使用。掌握函数的定义方法和调用方法且 采用模块化思想调试程序。1.2目标 课设的目的是为了让我们将这学期所学的相关知识投射到现实生活的应用和实践中,使我们更生动的了解到C语言的真正用途。且通过设计该软件,我们可以通过自己的双手合智慧,将自己的价值投掷于服务人民和社会中去。我们第一次真正的尝试了通过自己的努力实现自己的价值同时我们也可以为学校的图书馆提供更多的系统,方便同学们的学习生活。我们通过自己的努力真真正正的体会到了劳动的光荣。为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用C语言编写图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、出版社、出版日期、价格、库存数量等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作。整个程序实现链表操作,对图书信息的操作逐个进行,一个图书信息的更改不应影响其他的图书记录。该程序可用于对图书基本信息的存储、更新、查询、统计、排行、输出等操作,以实现对图书的管理。其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个图书信息,也可对个别图书信息进行适当的删除或修改,以便随时更新图书信息。程序中设计的查询功能可根据需要从若干数据中查询某个图书信息,并且可根据四种不同的方法查询:按名称查询、按种类查询、按作者查询、按书名和作者查询,以满足不同的需要。第二章 系统功能模块设计2.1 功能模块设计主菜单录入浏览查找保存 载入 删除退出 按书名按作者按价格按作者 按姓名 按价格 2.2 函数的设计与描述图书信息管理系统软件,主要应用了十大模块,分别是:1主菜单模块 menu() 主菜单的主要功能是提供大家的选择,为使大家所要用的某一个功能实现。不能够每一次都要从头开始,所以需要一个选择性的语句。因此采用功能强大的switch语句在调用其余功能的函数,方便我们的选择和程序的运行。针对对象的需求进行某一个方位的运行,节省时间。2返回主菜单模块 back_menu() 利用多分枝if语句,和判断客户所输入的字符来进行返回主菜单或者结束。 主要功能使在客户需要同时运用两个或两个以上的功能时,我们便可利用该函数使得客户可以进行多次的选择。3录入数据模块 luru() 利用for语句循环,进行对录入图书的编号和基本信息的输入!信息输入主要运用scanf语句。 该函数主要是为了完成图书信息的基本输入4删除数据模块 shanchu() 主要应用了多分枝if语句和多次的判断,以及字符串的比较函数来判断客户所需要删除的是所有还是部分。在删除部分的时候首先利用for语句的循环找出我们要删除的那本书,在利用另一个for 语句来进行删除。在删除全部的时候主要是利用赋值语句使得数量变为0来实现全部删除的。 的是为了实现删除信息的功能5数据浏览模块 look() 主要应用了if-else语句先判断是否有图书,如果有在利用了for语句的循环来逐一打印出所有的图书信息。 主要实现了浏览全部图书信息的功能6数据排序模块 paixu() 主要应用了冒泡排序的主要思想和指向指针的指针以及指针来实现的。首先利用冒泡排序将所有的数据按照价格排好,同时在利用指针和指向指针的指针来讲新的数据存储的。 目的就是为了使得所有图书能够按照价格排序,方便人们的需求7数据修改模块 Change() 首先使用了if语句进行判断数据中是否有图书,继而在有图书的时候在利用if语句找出你要修改的图书,最后再利用一个多分枝的if语句判断出要修改图书的那一部分的信息,从而进行修改,修改时利用scanf语句。 目的:修改部分信息,方便人们的工作和生活8数据查找模块 Search() 因为图书的基本信息由3项分别是,所以我们利用switch语句进行判断我们需要按哪种方式查找,确定了查询方式后,又利用了for语句的循环来找出你要找的图书,再次利用if-else语句打印出你所要查询的图书的基本信息。 目的:在短时间内找到客户需要的图书, 9文件导出模块 Out() 利用指针和for语句循环和fwrite,导出信息到文件10导入文件模块 In() 利用指针以及if语句判断是否文章中有内容,若有利用for 语句的训话和fwrite打开文件第三章 程序流程图第4章 源代码摘录 #include #include #include #include #define M 3#define N 100 typedef struct book char shuming20;char zuozhe20;char chubanshe20;int jiage;BOK;BOK stuN;int shuliang=0;void menu();void fhzjm() char biaozhi20;printf(n);printf(还需要操作么?如果需要操作请输入:yes,否则请输入:non);scanf(%s,biaozhi);if(strcmp(biaozhi,yes)=0)menu();else if(strcmp(biaozhi,no)=0)exit(0);else printf(请输入正确的字符,谢谢!n);fhzjm();void DengJi()int rs;int i,k=1;system(CLS);printf(请输入需要输入几本图书:);scanf(%d,&rs);for(i=shuliang;ishuliang+rs;i+,k+)printf(请输入第%d本图书书名:,k);scanf(%s,stui.shuming);printf(请输入第%d本图书作者:,k);scanf(%s,stui.zuozhe);printf(请输入第%d本图书出版社:,k);scanf(%s,stui.chubanshe);printf(请输入第%d本图书的价格:,k); scanf(%d,&stui.jiage);shuliang=shuliang+rs;fhzjm();void ShanChu()char shanchuinfo10;system(CLS);printf(删除全部图书信息请输入all,删除指定图书信息请输入onen); scanf(%s,shanchuinfo);if(strcmp(shanchuinfo,all)=0)shuliang=0;printf(删除成功nn);else if(strcmp(shanchuinfo,one)=0)struct book *p=NULL;char choice20;int i,j,k=0;printf(请输入你要删除的书名:);scanf(%s,choice); for(i=0;ishuliang;i+)if(strcmp(choice,stui.shuming)=0)k=1;j=i;break;if(k)if(shuliang=1) p=&stu0; free(p); shuliang=0;elsefor(i=j;ishuliang;i+)stui=stui+1;shuliang=shuliang-1;printf(删除成功nn);elseprintf(输入数据错误!n);ShanChu();fhzjm();/调用返回主界面函数void XiuGai()int i,j,n;char shuming20;char zuozhe20;char chubanshe20;int jiage;system(cls);printf(请输入您要修改的图书书名:);scanf(%s,shuming);printf(请输入您要修改的图书作者:);scanf(%s,zuozhe); printf(请输入您需要修改的图书的出版社n);scanf(%s,&chubanshe); printf(请输入您需要修改的图书的价格n);scanf(%d,&jiage); for(i=0;ishuliang;i+)if(strcmp(shuming,stui.shuming)=0&strcmp(zuozhe,stui.zuozhe)=0)j=i;break;printf(需要修改哪一项?(如果需要修改书名请按1,如需修改作者请按2,如需修改出版社请按3,如需修改价格请按4)n);scanf(%d,&n);if(n=1) printf(请重新输入书名:);scanf(%s,stuj.shuming);printf(已经修改的图书信息为:);printf(-书名-作者-出版社-价格tn);printf(-%s-%s-%s-%dtn,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage);else if(n=2) printf(请重新输入作者:); scanf(%s,stuj.zuozhe); printf(已经修改的图书信息为:); printf(-书名-作者-出版社-价格tn); printf(-%s-%s-%s-%dtn,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage);else if(n=3)printf(请重新输入出版社:); scanf(%s,stuj.chubanshe); printf(已经修改的图书信息为:); printf(-书名-作者-出版社-价格tn); printf(-%s-%s-%s-%dtn,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage);else if(n=4) printf(请重新输入价格:); scanf(%d,&stuj.jiage); printf(已经修改的图书信息为:); printf(-书名-作者-出版社-价格tn); printf(-%s-%s-%s-%dtn,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage); fhzjm();void LiuLan()int i;system(CLS);if(shuliang=0)printf(系统里面没有任何图书的信息!n);else for(i=0;ishuliang;i+) printf(第%d本图书书名为:%sn,i+1,stui.shuming);printf(第%d本图书作者为:%sn,i+1,stui.zuozhe);printf(第%d本图书出版社为:%sn,i+1,stui.chubanshe); printf(第%d本图书价格为:%dn,i+1,stui.jiage);fhzjm();void ChaZhao()char choice10,xx20;int i,j,k=0;system(CLS);if(shuliang=0)printf(系统里面没有任何图书的信息!n);fhzjm();printf(三种查找方式:书名,作者,出版社,请输入查找方式:);scanf(%s,choice); if(strcmp(choice,书名)=0)printf(请输入需要查找图书书名:);scanf(%s,xx);for(i=0;ishuliang;i+)if(strcmp(xx,stui.shuming)=0)j=i;k=1;break;if(k=0) printf(输入信息有误:n);elseprintf(您所查找的图书的信息为:n);printf(-书名-作者-出版社-价格tn);printf(-%s-%s-%s-%dtn,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage);else if(strcmp(choice,作者)=0)printf(请输入需要查找图书的作者:n);scanf(%s,xx);for(i=0;ishuliang;i+)if(strcmp(xx,stui.zuozhe)=0)j=i;k=1;break;if(k=0) printf(输入信息有误:n);elseprintf(您所查找的图书的信息为:n);printf(-书名-作者-出版社-价格n);printf(-%s-%s-%s-%dn,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage);else if(strcmp(choice,出版社)=0)printf(请输入需要查找图书的出版社:n);scanf(%s,xx);for(i=0;ishuliang;i+)if(strcmp(xx,stui.chubanshe)=0)j=i;k=1;break;if(k=0) printf(输入信息有误:n);elseprintf(您所查找的图书的信息为:n);printf(-书名-作者-出版社-价格-n);printf(-%s-%s-%s-%d-n,stuj.shuming,stuj.zuozhe,stuj.chubanshe,stuj.jiage);fhzjm();void PaiXu()struct book *p1N,*p2,*temp;int i,j;system(CLS);p2=p1; for( i=0;ishuliang;i+) p1i=stu+i; for( i=0;ishuliang;i+) for( j=i+1;jjiagejiage) temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp; printf(按照价格排序之后的信息为:n); printf(-书名-作者-出版社-价格-n); for( i=0;ishuming,(*(p2+i)-zuozhe,(*(p2+i)-chubanshe,(*(p2+i)-jiage); fhzjm(); void CunChu()int i;FILE *rs;if(rs=fopen(card.dat,wb)=NULL)printf(not open);exit(0);for(i=0;ishuliang;i+)fwrite(&stui, sizeof(stui), 1, rs);if(ferror(rs)fclose(rs);perror(写文件失败!n);return; printf(存储文件成功!n); fclose(rs); fhzjm();void DaoChu()struct book t;int i=0;FILE* fp = fopen(card.dat, rb);shuliang=0;if(NULL=fp)perror(读取文件打开失败!n);return;memset(stu,0x0,sizeof(stu);while(1)fread(&t,sizeof(t),1,fp);if(ferror(fp)fclose(fp);perror(读文件过程失败!n);return;if(feof(fp)break;stui=t;i+;fclose(fp); shuliang=i;printf(导出文件成功!n);fhzjm();void menu()/定义menu菜单函数int n;system(CLS);/清屏printf( 图书管理系统n);printf( 作者郭鹏n);printf(-MENU-n);printf( 1.图书信息入库n);printf( 2.删除库中图书信息n);printf( 3.修改库中图书信息n); printf( 4.浏览所有入库图书信息n); printf( 5.查找入库图书信息n);printf( 5.1.按书名查找n);printf( 5.2按作者查找n);printf( 5.3按出版社查找n);printf( 6.根据图书价格排序n);printf( 7.存储到文件n);printf( 8.从文件导出n);printf( 9.退出系统n);a:printf( 请选择:); scanf(%d,&n);/输入要选择的项目switch (n)/利用swith语句判断输入的信息.case 1:DengJi();break; case 2:ShanChu();break;case 3: XiuGai();break;case 4:LiuLan();break;case 5:ChaZhao();break;case 6:PaiXu();break;case 7: CunChu();break;case 8:DaoChu();break;case 9:exit(0);break;default:printf(请输入1-9之间的数字,谢

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论