
试设计一选修课程系统,使之能提供以下功能:①系统以菜单方式工作②课程信息录入功能 课程信息用文件保存 ③课程信息浏览功能④查询功能: 至少一种查询方式 按学分查询、按课程性质查询、学生选修课程 可选项⑤课程删除功能⑥课程修改功能(6)图书管理系统图书信息包括:书号、书名、作者名、分类号、出版单位、出版时间、价格等。(1)图书:作者、书名、出版城市、出版社名称、出版年、版次、页码。2)普通图书(专著)的著录格式[序号] 主要责任者.书名[文献类型标识]. 其他责任者(选择项).版本(第1版不标注).出版地:出版者,出版年:页码(选择项).。

2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。设计正确,方案合理。界面友好,使用方便。程序精炼,结构清晰。设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。上机演示。按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。并用A4的复印纸打印并装订; 二、进度安排第 十九 周 星期1 8时00分——11时30分星期2 14时00分——18时15分星期4 14时00分——18时15分星期6 8时00分——12时15分目录课程设计报告2功能模块的划分6主要功能的实现12程序代码清单13程序调试详情19总结24附件25八、评分表25三、课程设计报告1.程序设计准备做系统前,首先,自己详细看了《C程序设计》(教科书),基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。

学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一c语言图书管理系统程序设计报告,它有助于学校对图书馆书籍的基本管理。2.程序设计说明根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。3.程序的主要功能 图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。图书借阅管理系统是对图书信息的基本管理,它包括:图书信息的录入、图书信息的显示、图书信息的删除、图书信息的修改、图书信息的查询。通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。2、图书基本信息显示:显示已被录入图书的所有信息。

3、图书基本信息删除:通过输入书名,判断此图书是否存在,若存在, 则删除该图书所有信息,若不存在则提示用户重新输入图书书名。4、图书基本信息修改:通过输入书名,判断此图书是否存在,若不存在则提示用户重新输入图书书名,若存在,则可对图书各项信息进行修改。 5、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。6、退出系统:即退出图书借阅管理系统。使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单选项模块对应如下:图书基本信息录入==> void insert()图书基本信息显示==> void print()图书基本信息删除==> void del() 图书基本信息修改==> void modify()图书基本信息查询==> void find()这份代码中各个变量的定义如下:num图书编号name书名author 作者pub出版社where出版日期count单价四.功能模块的划分1.主函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。

1.图书基本信息录入模块首先输入图书录入的编号(不为0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。 2.图书基本信息显示模块当用户选择图书基本信息显示时,程序会将所有图书信息列出。3.图书基本信息输入模块在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期,单价等信息。结束输入时提示用户图书输入完成 4.图书基本信息删除模块用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该图书所有信息,若不存在则提示无此图书信息。5.图书基本信息修改模块用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。6.图书基本信息查询模块用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。7.读文件模块在运行该程序时,程序会自动检测是否存在图书信息,若存在,则会显示图书信息,若不存在,则会提示用户创建文件库,录入图书信息。
8.文件保存模块当用户对图书信息有录入,修改,删除等操作时,程序会自动保存操作和新的图书信息。五.主要功能的实现程序运行流程:但每个模块运行完即会回到主函数,然后选择其他或退出。程序代码清单如下:#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct {char number[10];//书号char name[20];//书名char author[20];//作者char publish[50];//出版社char time[20];//出版时间float price;}mbook;typedef struct {int count;//书的本数mbook book[100];//最大可有100本书}mlibrary;mlibrary library;void save()//保存图书信息。{FILE *fp;if((fp=fopen("library.doc","w"))==NULL){printf("\n不能保存图书信息\n");return;}fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book[0]),library.count,fp);}void putin()/*定义录入函数*/{ int y=1;system("cls");while(y){ printf("\t请输入您的书籍的书号:");scanf("%s",library.book[library.count].number);printf("\t请输入书名:");scanf("%s",library.book[library.count].name);printf("\t请输入作者名:");scanf("%s",library.book[library.count].author);printf("\t请输入出版社:");scanf("%s",library.book[library.count].publish);printf("\t请输入出版时间:");scanf("%s",library.book[library.count].time);printf("\t请输入该书的价格:");fflush(stdin);scanf("%f",&library.book[library.count].price);library.count++;printf("\n是否继续录入(1.继续;0,退出录入):");fflush(stdin);scanf("%d",&y);if (y!=1){y=0;break;}} save();}void print(){system("cls");printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");for (int i=0;i<library.count;i++){printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);}fflush(stdin);getchar();}void search_by_name()/*定义按书名查询*/{char s2[20]; int flag=1;printf("\n请输入要查询的书名: ");fflush(stdin);scanf("%s",s2);printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");for(int i=0;i<library.count;i++ )if(strcmp(s2,library.book[i].name)==0){flag=0;printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);} if (flag){printf("cannot found!");}fflush(stdin);getchar();}void search_by_author()/*定义按作者名查询*/{char s3[20];int flag=1;printf("请输入要查询的书的作者: ");fflush(stdin);scanf("%s",s3);printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");for(int i=0;i<library.count;i++ )if(strcmp(s3,library.book[i].author)==0){flag=0;printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);} if (flag){printf("cannot found!");}fflush(stdin);getchar();}void del ()/*定义删除函数*/{ char number[10];system("cls");/*清屏*/printf("\n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i++){if(strcmp(number,library.book[i].number)==0)break;}if (i!=library.count){for(;i<library.count-1;i++){strcpy(library.book[i].name,library.book[i+1].name);strcpy(library.book[i].number,library.book[i+1].number);strcpy(library.book[i].publish,library.book[i+1].publish);strcpy(library.book[i].author,library.book[i+1].author);strcpy(library.book[i].time,library.book[i+1].time);library.book[i].price=library.book[i+1].price;}library.count--;}elseprintf("\n cannot found!\n");save();fflush(stdin);getchar();}void modify()//修改图书信息{char number[10];system("cls");/*清屏*/printf("\n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i++){if(strcmp(number,library.book[i].number)==0){printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);break;}}if (i!=library.count){mbook book;printf("\n\t\t请输入修改后此图书的信息\n");printf("\t请输入图书号:");scanf("%s",book.number);printf("\t请输入图书名:");scanf("%s",book.name);printf("\t请输入作者名:");scanf("%s",book.author);printf("\t请输入出版社:");scanf("%s",book.publish);printf("\t请输入出版时间:");scanf("%s",book.time);printf("\t请输入该书的价格:");fflush(stdin);scanf("%f",&book.price);strcpy(library.book[i].name,book.name);strcpy(library.book[i].number,book.number);strcpy(library.book[i].publish,book.publish);strcpy(library.book[i].author,book.author);strcpy(library.book[i].time,book.time);library.book[i].price=book.price;save();}elseprintf("\n cannot found!\n");fflush(stdin);getchar();}void main(){FILE *fp;if((fp=fopen("library.doc","r"))==NULL){printf("\n不能打开图书信息库\n");fp=fopen("library.doc","w+");printf("\n初始化图书信息库,初始化之后要重启程序\n");library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;}fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book[0]),library.count,fp);fclose(fp);int a; do {system("cls");printf("\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n");printf("\t\t*********************************************\n");printf("\t\t\t1 图书信息录入\n");printf("\t\t\t2 图书信息显示\n");printf("\t\t\t3 图书信息查询\n");printf("\t\t\t4 图书信息删除\n");printf("\t\t\t5 图书信息修改\n");printf("\t\t\t0 退出图书信息系统\n");printf("\t\t*********************************************\n");printf("\t\tPlease Enter Choose: ");fflush(stdin);scanf("%d",&a);switch(a){case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();break;case 0:printf("\n\n退出\n\n");break;default:printf("\n序号不对\n");} }while(a!=0); save();}void find()/*定义查询函数*/{ int a;system("cls");/*进行清屏*/printf("\t\t******************************\n");printf("开始查询\n");printf("\t\t\t1search_by_name\n");printf("\t\t\t2search_by_writer\n");printf("\t\t\t0exit\n");printf("\t\t******************************\n") ;printf("\t\t请选择你想要的查询方式:");fflush(stdin);scanf("%d",&a);switch(a) {case 1:search_by_name();break;case 2:search_by_author();break;case 0:return;}}六.程序调试1.第一次运行程序时,库文件不存在图书信息,于是录入图书信息。
答:我准备用一个treemap来存储所有的图书信息c语言图书管理系统程序设计报告,有两个map,一是读者与图书其他信息(书名和书籍数量)的映射,二是书名与图书其他信息(作者和数量)的映射,用于两种图书查找方法。书名:快乐数学填色书:10以内加减综合训练作者:瑞雅卡通 编丛 书 名:出 版 社:汕头大学出版社isbn:9787811209358出版时间:2010-09-01版次:1页数:24装帧:平装开本:大16开所属分类:图书 > 少儿 > 幼儿启蒙图书 > 少儿 > 3-6岁印刷时间:2010-09-01纸张:胶版纸印次:1正文语种:中文附件:套装数量:0读者对象:定 价:¥8.00。书名:快乐数学填色书:10以内加法基础训练作者:瑞雅卡通 编丛 书 名:出 版 社:汕头大学出版社isbn:9787811209358出版时间:2010-09-01版次:1页数:24装帧:平装开本:大16开所属分类:图书 > 少儿 > 幼儿启蒙图书 > 少儿 > 3-6岁印刷时间:2010-09-01纸张:胶版纸印次:1正文语种:中文附件:套装数量:0读者对象:定 价:¥8.00。
使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对Turbo C的使用技巧。另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题.八.附件第五步主要功能的实现模块已包含程序代码清单,这里就不再呈述。附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。计算机科学与技术系课程设计评分表课题名称:项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名:日 期:(注:1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-109643-1.html
桃子桃子桃子好帅这首歌我已经循环了无数遍了很喜欢桃子加油
忍辱负重