版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CreatedonDATE\@"M/d/yyyyh:mm:ssam/pm"6/19/20125:05:54PMC语言课程设计报告题目:图书信息管理系统系部名称:计算机与信息技术学院专业名称:班级:学号:学生姓名:指导教师:时间:2010年7月10日2010年一、课程设计目的1)对C各部分知识的综合应用能力2)提高程序设计的能力3)提升对于较大程序的抽象分析设计能力4)学习调试和测试的技巧二、课程设计内容1)熟悉C实验环境,按给定的上机步骤练习完成;2)熟悉C程序的编辑,编译,链接和运行的过程。3)编译一个应用系统程序,形成一个软件系统。三、需求分析随着当今社会发展,信息化水平逐步提高,对图书管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。该软件主要是实现对图书信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定图书的相关信息,然后可以插入图书的相关信息,以求达到简易操作的目的。四、概要设计(或总体设计)1.系统结构图(功能模块图)和数据变量说明主菜单主菜单输入列表查找删除退出修改2.功能模块说明1.输入模块2.列表模块-1-1-1-1开始输入输入数据i=-1i=-1返回主程序返回主程序返回主程序开始开始输出列表返回主程序3.查找模块开始开始读文件数据输入choosestrcmp(ans,stu[i].author)==0?输出数据返回主函数返回主函数YNchoose==1?strcmp(ans,stu[i].name)==0?Y输出数据返回主函数NN Y N开始读文件数据列出数据输入sstu[i].num==s?N开始读文件数据列出数据输入sstu[i].num==s?删除数据Y返回主函数返回主函数输出数据开始读文件数据输入numstu[i].num==num?输出数据返回主函数YN显示数据修改数据返回主函数五、运行情况主菜单录入数据3.输出数据3.查找数据5.删除数据6.修改数据7.退出系统六、设计体会和反思通过两周的上机实习,我对C语言又有了崭新的认识。C语言的学习是一个系统的过程,需要长期的知识积累和储备并辅以大量的上级实际操作练习,自己也应该有所体会,在实践中成长,在实践中求知。这次我设计的课题是图书信息管理系统。课题要求对图书信息实现一系列基本操作。我选择通过结构体数组来实现这个设计。通过fread和fwrite两个函数实现对文件的读写,过程比较简洁(这里也有参考《C程序设计》中某例题的思想)。通过大量的符号和printf语句,使得操作界面更加和谐友善,这些都是我通过这次实习积累的经验。同时,设计完成后我也发现了代码中的一些不足,例如在录入数据时要求输入序号的值,这个我认为操作比较复杂,但由于时间紧迫,未能提出完美的解决方案,但此问题并不影响程序的运行和要求的实现。另外,在查询信息时,只会输出一条符合要求的图书信息,且输出多次。经过实际检验,只要按照程序要求输入,就能够实现。总之,通过这次实习,我也认识到了我自己在程序设计这门课程上的不足,在以后的学习实践中,要更加的严谨踏实,对知识的把握要更加的细致入微,要活学活用,争取在这个学科上取得更大的进步。七、参考文献谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005CreatedonDATE\@"M/d/yyyyh:mm:ssam/pm"6/19/20125:05:54PM八、程序源代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMAX100structStudent{ 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<MAX;i++)if(strcmp(ans,stu[i].name)==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"); } elseif(choose==2) { printf("输入所查作者名:\n"); scanf("%s",ans); t=-1; if(choose==2) { for(i=0;i<MAX;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<MAX;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<n;i++) { if(s==stu[i].num) { for(j=i;j<n-1;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<n;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<n;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");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院保洁室工作制度
- 医院编码员工作制度
- 医院随访员工作制度
- 单位卫生室工作制度
- 卫生所医师工作制度
- 卫计委综治工作制度
- 原子吸收室工作制度
- 县政府保密工作制度
- 新余市2026国家开放大学公共管理类-期末考试提分复习题(含答案)
- 反家庭暴力工作制度
- MOOC 刑法学总论-西南政法大学 中国大学慕课答案
- (新版)烟叶分级工(技师)专业知识考试题库大全-2烟叶加工和使用
- 激光先进制造技术 课件 第6章 激光复合制造技术
- DL-T 5855-2022 水电水利工程环氧树脂类表面修补材料试验规程
- 工业机器人离线编程说课1010
- 55m集散两用船船体结构规范设计
- 电厂集控全能运行值班员应知应会(终结版)
- 精选李叫兽精选集:文案不是文字
- 岩土工程原位测试5波速
- JJG 141-2000工作用贵金属热电偶
- GB/T 17193-1997电气安装用超重荷型刚性钢导管
评论
0/150
提交评论