大一C语言课程设计图书信息管理系统
C语言课程设计-图书信息管理系统

No.10
沈阳大学
课程设计说明书
No.11
3 设计结果与分析
在 visual C++ 6.0 环境中输入源程序,在没有提示错误的情况下编译,生 成.exe 可执行文件。
① 双击文件,会看到如图 6 所示界面。该图是一个菜单函数,通过 scanf( ) 函数输入数字来选择各个功能的选择和转换。根据用户的选择,分别调用其他 自定义函数。
图书 管理
查找 注册 借阅 还书
注销
2.2 程序设计
图 1 图书信息管理功能图
根据所构想的的功能及模块设计出与之相对应的算法并建立函数来实现功能。
2.2.1 数据结构体的定义
将图书信息作为一个结构体。
struct BOOK { int id,usr[10],total,store,days[10]; char name[31],author[21]; }books[100];
n=0
n<100
N
输入错误或
n++
图书信息=i
无效图书号
Y 作者,书名, 库存
结束 图 2 查找图书流程图
2.2.4 注册新书函数
该函数通过判断输入的书的 id 数值是否为零,如果为零则用 break[4]来跳出,如 果不为零且小于 100,则用 scanf 函数输入该书的作者,书名,库存等信息,用 printf 函数把这些信息显示在屏幕上。 如图 3 所示是注册新书的流程图
沈阳大学
课程设计说明书
No.4
开始 n=0
n<100
n++
图书=0
N
break
Y 输出图书信息
结束
图 3 注册新书流程图
C语言课程设计报告—图书信息管理系统

C语言课程设计报告图书信息管理系统设计C 语言程序设计编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。
学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。
1、题目要求设计“图书信息管理系统”要求:图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。
使之提供以下功能:(1)系统以菜单方式工作。
(2)图书信息录入功能。
(图书信息用文件保存)。
(3)图书信息浏览功能。
(4)图书信息查询功能。
(5)图书信息的删除和修改。
2、分析:根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。
3、总体设计:根据题目要求,可以将系统分为六个模块:(1)管理员登录系统模块。
(2)菜单选择模块。
(3)图书信息录入功能模块。
(4)图书信息浏览功能。
(5)图书信息查询功能。
(6)图书信息的删除和修改。
第1页4、详细设计:头函数名:#include<stdio.h>#include<stdlib.h>#include<string.h>/*********图书信息结构体*********//***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/ struct bookinf{ int num; ******************************************************登录号char bname[20];***************************************书名char wname[10];***************************************作者名char clanum[14];***************************************分类号char pubcom[10];***************************************出版单位char pubtime[10];***************************************出版时间float price;*********************************************价格};一管理员登录系统模块:(1)来到图书信息管理系统页面void index(){char input; 注释:运行时printf("\n\n\t\t\t*****************************\n"); 直接进入printf("\t\t\t 图书信息管理系统\n"); 这个页面printf("\t\t\t*****************************\n\n\n");printf(" ------------------------------------------------------------------------------\n");printf("\t<按任意键进入>\n\t");input=getchar();}(2)管理员登陆进入功能菜单页面第2页FILE *fp;struct manage pswd;if ((fp=fopen("password.txt","r"))==NULL) {printf("\n\n\n\tCannot open file!\n\t");}else{do{printf("\n\n\t请输入管理员帐号:");scanf("%s",name);printf("\n\n\t请输入管理员密码:");scanf("%s",password);fp=fopen("password.txt","r");fread(&pswd,sizeof(struct manage),1,fp);fclose(fp);w=strcmp(pswd.manage_name,name);k=strcmp(pswd.password,password);adm_servelist();}while (w!=0||k!=0);adm_servelist();}}(3)来到功能菜单页面第3页void adm_servelist(){void book_add();void book_view();void change();void del();void book_search();void login();void pwchange();int in; 注释:菜单列出的服务种类char input; 从1,2,3,4,5,6 do 所对应的功能进行选择{printf("\n\n\n\t--欢迎使用信息管理系统--");printf("\n\n\t1.图书信息录入\n");printf("\t2.图书信息浏览\n");printf("\t3.图书信息查询\n");printf("\t4.图书信息删除\n");printf("\t5.图书信息修改\n");printf("\t6.退出管理模式\n");printf("\n\t请选择服务种类:");scanf("%d",&in);if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6){printf("\n\t没有这项服务~\n");printf("\t按任意键重新选择");input=getchar();}}while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6);switch (in){case 1: book_add(); break; 注释:选择自己所需要case 2: book_view(); break; 后摁下数字键则case 3: book_search(); break; 则进入此功能页面case 4: del(); break;case 5: change();break;case 6: login(); break;}}(3)图书信息录入功能模块void book_add()第4页void adm_servelist();void book_add();int i=0,j;FILE *fp;char input; 注释:输入的图书信息struct bookinf books; 是通过文件进行struct bookinf book_taxis[30]; 保存的printf("\n\n\n\t---请输入图书信息---\n\n");printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);for (j=0;j<=i;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("\t按任意键返回管理菜单~");input=getchar();adm_servelist();break;}}if ((fp=fopen("book.txt","r"))==NULL)第5页fp=fopen("book.txt","w");}else{fclose(fp);fp=fopen("book.txt","a");}fwrite(&books,sizeof(struct bookinf),1,fp);fclose(fp);printf("\n\n\n\t信息输入完毕~按任意键继续\n");input=getchar();adm_servelist();}(4)图书信息浏览功能模块void book_view(){void adm_servelist();void book_view();int inp,i=0,n=0;FILE *fp;char input;struct bookinf bookview[20];if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{fread(&bookview[i],sizeof(struct bookinf),1,fp);i=i+1;}while (!feof(fp));fclose(fp);do{printf("\n\t--------共有%d条记录--------",i-1);printf("\n\n\t登录号: %d\n",bookview[n].num);第6页printf("\n\t书名: %s\n",bookview[n].bname);printf("\n\t作者名: %s\n",bookview[n].wname);printf("\n\t分类号: %s\n",bookview[n].clanum);printf("\n\t出版单位: %s\n",bookview[n].pubcom);printf("\n\t出版时间: %s\n",bookview[n].pubtime);printf("\n\t价格: %f\n",bookview[n].price);printf("\n\n\t1.上一页\t2.下一页\t3.回目录\n");printf("\n\t请选择:");scanf("%d",&inp);switch (inp){case 1:{if (n==0){printf("\n\t已到达首页\n\t按任意键重新选择");input=getchar();}else n=n-1; break;}case 2:{if (n==i-2){printf("\n\t已到达最末页\n\t按任意键重新选择");input=getchar();}else n=n+1; break;}case 3:{adm_servelist();break;}default:{printf("\n\t没有这项服务\n\t按任意键重新选择");input=getchar();}}}while (inp!=3);第7页}}(5)图书信息修改与删除功能模块修改:void change(int x){int inp,i=0,j;void book_search();FILE *fp,*fp1;char input;struct bookinf books,book_taxis[20];do{printf("\n\n\n\t注意:您确定要修改该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){printf("\n\n\n\t---请输入图书信息---\n\n");printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);第8页printf("\n\t价格:");scanf("%f",&books.price);if ((fp1=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp1);i=i+1;}while(!feof(fp1));fclose(fp1);for (j=0;j<x;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("\t按任意键返回管理菜单~");printf("0");input=getchar();book_search();break;}for (j=x+1;j<i-2;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("1");printf("\t按任意键返回管理菜单~");input=getchar();book_search();break;}}book_taxis[x]=books;fp=fopen("book.txt","w");for (j=0;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);printf("\n\n\t信息修改完成!按任意键返回");input=getchar();book_search();第9页}}S删除:void del(int y){char input;FILE *fp;int inp,i=0,j;struct bookinf book_taxis[20];void book_search();void adm_servelist();do{printf("\n\n\n\t注意:您确定要删除该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);}if (i>2){fp=fopen("book.txt","w");第10页for (j=0;j<y;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);fp=fopen("book.txt","a");for (j=y+1;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);}else{remove("book.txt");}printf("\n\n\t记录已删除!\n\n\t按任意键返回\n\t");input=getchar();adm_servelist();}}(6)图书信息查询功能模块void book_search(){void adm_servelist();void id_search();void wr_search();void bn_search();char input;FILE *fp;int inp;if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{printf("\n\n\n\t1.按图书登录号查询\n");printf("\n\t2.按图书作者查询\n");第11页printf("\n\t3.按图书名查询\n");printf("\n\t4.回到主菜单\n");printf("\n\n\t请选择查询类别:");scanf("%d",&inp);if (inp!=1&&inp!=2&&inp!=3&&inp!=4){printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");input=getchar();}}while (inp!=1&&inp!=2&&inp!=3&&inp!=4);fclose(fp);switch (inp){case 1: id_search(); break;case 2: wr_search(); break;case 3: bn_search(); break;case 4: adm_servelist(); break;}}}5运行与测试报告:第12页第13页三后记/课程设计过程中遇到的问题以及解决方法,课程设计的体会。
c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程方法,能够运用C语言设计简单的图书管理系统。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,理解图书管理系统的原理和设计方法。
2.技能目标:学生能够运用C语言编写程序,实现图书的增删改查等基本功能,熟练使用调试工具,能够发现并修复程序中的错误。
3.情感态度价值观目标:培养学生对编程语言的兴趣,提高学生解决问题的能力,培养学生的团队合作意识和创新精神。
二、教学内容教学内容主要包括C语言的基本语法和编程方法,以及图书管理系统的设计和实现。
具体安排如下:1.C语言的基本语法:数据类型、运算符、控制结构、函数等。
2.图书管理系统的设计:系统需求分析、系统模块设计、系统测试等。
3.图书管理系统的实现:图书信息的增删改查功能的实现,系统界面的设计等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法和编程方法,使学生掌握基础知识。
2.案例分析法:通过分析实际的图书管理系统案例,使学生理解图书管理系统的原理和设计方法。
3.实验法:通过编写程序,实现图书的增删改查等基本功能,使学生掌握编程技巧。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用权威、实用的C语言教材,为学生提供全面、系统的知识体系。
2.参考书:提供相关的编程实践书籍,帮助学生提高编程能力。
3.多媒体资料:制作精美的PPT,为学生提供直观、生动的学习资源。
4.实验设备:提供计算机实验室,让学生进行编程实践,提高实际操作能力。
五、教学评估教学评估是检验学生学习成果的重要手段,主要包括平时表现、作业和考试三个部分。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。
2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度。
C语言程序设计_图书信息管理系统设计

河南理工大学计算机科学与技术学院课程设计报告201 3 — 201 4 学年第 2 学期课程名称设计题目学生姓名学号专业班级指导教师年月日目录一、课程设计的目的与要求1.1设计目的 (3)1.2 设计要求 (3)二、总体设计2.1 程序组成框图 (3)2.2 程序流程图 (4)三、详细设计3.1 功能设计 (5)3.2 系统运行环境和数据库设计 (6)3.3 数据编码设计 (6)3.4 输入输出设计 (6)四、程序清单和执行结果4.1 菜单函数 (7)4.2 录入函数 (10)4.3 浏览函数 (11)4.4 查询函数 (13)4.5 修改函数 (17)4.6 删除函数 (21)五、调试与测试 (30)六、程序设计总结和结论 (33)一、课程设计的目的与要求1.1 设计目的设计图书信息管理系统设计1.2 设计要求1) 系统必须以菜单方式工作2) 图书信息录入功能3) 图书信息浏览功能4) 图书查询功能(必须完成至少两种查询方式)a) 按书名查找b) 按作者查询等(任意选择)5) 图书信息的修改功能6) 图书信息的删除功能二、总体设计(程序设计组成框图、流程图)2.1 程序的组成框图2.2 程序流程图三、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)3.1功能设计(要求每个函数必须把其流程图描述出来)3.1-1 菜单函数 void select()运行后显示主界面,通过输入来选择下一步操作。
例如:选择录3.1-2 登陆函数void dl()该函数功能为辨识管理权限,只有正确输入登录号才能进入主界面。
输入次数小于3输入次数大于33.1-3 录入函数 void input()进入该函数,开始根据提示录入图书信息,每次录入完毕,询问选择继续录入或者返回。
Y3.1-4 浏览函数 void output()进入该函数,按照输入顺序依次显示信息,每浏览完一本,询问选择继续或者返回。
大一C语言课程设计图书信息管理系统

高级语言程序设计课程设计评语:学院班级姓名学号成绩指导老师年月日一、目的1.进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。
(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作图书信息录入功能(图书信息用文件保存)--输入图书信息浏览功能--输出查询和排序功能:(至少一种查询方式)--算法按书名查询按作者名查询图书信息的删除与修改(可选项)(2).系统功能与分析(填写你所设计的菜单及流程图)截图略按书名查找模块流程图按作者查找模块流程图插入模块流程图(3)数据结构typedef struct book{int sort;char book_name[15];char author_name[15];int vert_number;char publish_unit[15];char publish_time[10];int price;}B(4).模块设计(5)总体设计思想:(6)调试过程: 测试数据及结果,出现了哪些问题截图略(7)程序有待改进的地方及本次实习的收获和建议……(8)源程序清单(主要代码)#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN sizeof(struct book)typedef struct book{int sort;char book_name[15];char author_name[15];int vert_number;char publish_unit[15];char publish_time[10];int price;}B;B *P,*p1,boo;int num=0,f=0;int save();void input();int get();void output();void book_name();void author_name();void modify();void delet();int main(){int re=1,t,j=0;int n,choice;while(re==1){t=1;system("cls");printf(" *****************************\n");printf(" 主菜单\n\n");printf(" 1.录入信息\n");printf(" 2.查看信息\n");printf(" 3.查询信息\n");printf(" 4.删除与修改信息\n");printf(" 5.退出\n");printf(" *****************************");printf("\n");if(j==1) printf("\n\t选择错误!");printf("\n\t请选择1-5: _\b\b");scanf("%d",&choice);switch(choice){case 1:{printf("\n\t1: 录入信息\n");input();printf("\n \t1.返回主菜单;\n\t 2.退出\n\t\t请选择: _\b\b");scanf("%d",&re);break;}case 2:{printf("\n\t2.查看信息\n");output();printf("\n\t 1.返回主菜单;\n\t 2.退出\n\t\t请选择: _\b\b");scanf("%d",&re);break;}case 3:{while(t==1){printf("\n\t3.查询信息\n");printf("\n\t 请选择查询方式:\n\t 1.按书名\n\t 2.按作者名\n\t 3.其余任意数字键返回主菜单_\b\b");scanf("%d",&n);if(n==1)book_name();else if(n==2)author_name();else{re=1;goto lebel;}printf("\n\t 1.返回上一层;\n\t 2.返回主菜单;\n\t 3.退出\n\t 请选择: _\b\b");scanf("%d",&t);if(t==1)system("cls");if(t==2)re=1;if(t==3) re=0;}lebel: break;}case 4:{while(t==1||f==1){printf("\n\t4.删除与修改信息\n");printf("\n\t 请选择:\n\t 1.删除信息;\n\t 2.修改信息\n \t 3.其余任意数字键返回主菜单_\b\b");scanf("%d",&n);if(n==1)delet();else if(n==2)modify();else{re=1;goto lebe;}printf("\n\t 1.返回上一层;\n\t 2.返回主菜单;\n\t 3.退出\n\t\t 请选择: _\b\b");scanf("%d",&t);if(t==1)system("cls");if(t==2) re=1;if(t==3) re=0;}lebe: break;}case 5:{re=0;break;}default:{re=1;j=1;}}}return 0;}int save(){FILE *fp;int i,n=0,n1=0;if((fp=fopen("book.txt","a+"))==NULL)return 0;fprintf(fp,"%d\n",num);for(i=0;i<num;i++){fprintf(fp,"%d %s %s %d %s %s %d",P[i].sort,P[i].book_name, P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);fprintf(fp,"\n");}fclose(fp);return 1;}int get(){FILE *fp;int i;fp=fopen("book.txt","r");if(fp==NULL)return 0;else{fscanf(fp,"%d",&num);if(num>0){P=(B *)malloc(LEN * num);for(i=0;i<num;i++){fscanf(fp,"%d%s%s%d%s%s%d",&P[i].sort,P[i].book_name,P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish_time,&P[i].price);}fclose(fp);return 1;}else{fclose(fp);return 0;}}}void input(){int result;int i;printf("\t\t要录入信息的书籍数量为: __本\b\b");scanf("%d",&num);if(num>0){P=(B *)malloc(LEN * num);for(i=0;i<num;i++){P[i].sort=i+1;printf("\n\tNO. %d",P[i].sort);printf("\n");printf("\t请按序输入:书名作者名分类号出版单位出版时间价格\n\t\t ");scanf("%s%s%d%s%s%d",P[i].book_name,P[i].author_name,&P[i].vert_number,P[i] .publish_unit,P[i].publish_time,&P[i].price);printf("\n");}result=save();if(result==0){printf(" \t录入信息失败!\n");num = 0;}if(result==1){printf(" \t成功录入信息!\n");}}else{num=0;printf(" \t输入错误!");}}void output(){int i;get();if(get()==1){printf("\n\t\t成功获取信息!\n");for(i=0;i<num;i++){printf("\n\t\tNO.\t%d\n",P[i].sort);printf("\t\t 书名作者名序列号出版单位出版时间价格\n");printf("\t\t %s %s %d %s %s %d",P[i].book_name,P[i].author _name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n");}}else printf(" \t文件打开错误!");}void book_name(){int i;int tag=0;char ch[15];printf("\t 请输入书名: _\b\b");scanf("%s",ch);if(get()==0){printf(" \t无法查询!");return;}if(get()==1){for(i=0;i<num;i++){if(strcmp(P[i].book_name,ch)==0){printf("\n\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d\n",P[i].sort,P[i].book_n ame,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);tag =1;}}if (tag == 0){printf("\n \t没有相关信息!\n");}}}void author_name(){int i;int tag=0;char ch[15];printf("\t 请输入作者名: _\b\b");scanf("%s",ch);if(get()==0){printf(" \t无法查询!");return;}if(get()==1){for(i=0;i<num;i++)if(strcmp(P[i].author_name,ch)==0){printf("\n\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d\n",P[i].sort,P[i].book _name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);tag =1;}if (tag == 0){printf(" \t没有相关信息!");}}}void modify(){int t,n,i,y=1;int result,z,x;t=get();if(t==0){printf("\n \t打开文件错误,无法修改!");return;}else if(y==1){printf("\n\t 您要修改信息的图书排列号为(1-%d): _\b\b",num);scanf("%d",&n);if(n>=1&&n<=num){for(i=0;i<num;i++){if(P[i].sort==n){printf("\n\t您即将修改以下信息:\n");printf("\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n\n\t 确认请按1;返回请按2;返回上一层请按3 _\b\b");scanf("%d",&x);if(x==1){//p1=&boo;printf("\t 您要将信息修改为:\n");printf("\t\t书名: _\b\b");scanf("%s",P[i].book_name);printf("\t\t作者名: _\b\b");scanf("%s", P[i].author_name);printf("\t\t序列号: _\b\b");scanf("%d",&P[i].vert_number);printf("\t\t出版单位: _\b\b");scanf("%s",P[i].publish_unit);printf("\t\t出版时间: _\b\b");scanf("%s",P[i].publish_time);printf("\t\t价格: _\b\b");scanf("%d",&P[i].price);strcpy(P[i].book_name,P[i].book_name);strcpy(P[i].author_name,P[i+1].author_name);P[i].vert_number=P[i+1].vert_number;strcpy(P[i].publish_unit,P[i+1].publish_unit);strcpy(P[i].publish_time,P[i+1].publish_time);P[i].price=P[i+1].price;y=0;z=1;}elseif(x==2){y=1;z=0;}else{y=0;f=1;}}}}else{printf(" \t输入错误,请重新输入:");y=1;}while(z==1){result=save();if(result==0){printf("\n \t修改信息失败!\n");z=0;}if(result==1){printf("\n \t成功修改信息!\n");z=0;}}}return;}void delet(){int t,n,i,j,y=1;int result,z=0,x;t=get();if(t==0){printf("\n \t打开文件错误,无法删除!");return;}elsewhile(y==1){printf("\n\t 您要删除信息的图书排列号为(1-%d): _\b\b",num);scanf("%d",&n);if(n>=1&&n<=num){for(i=0;i<num;i++){if(P[i].sort==n){printf("\n\t 您即将删除以下信息:\n");printf("\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n\n\t 确认请按1;返回请按2;返回上一层请按 3 _\b\b");scanf("%d",&x);if(x==1){for(j=i;j<num-1;j++){strcpy(P[j].book_name,P[j+1].book_name);strcpy(P[j].author_name,P[j+1].author_name);P[j].vert_number=P[j+1].vert_number;strcpy(P[j].publish_unit,P[j+1].publish_unit);strcpy(P[j].publish_time,P[j+1].publish_time);P[j].price=P[j+1].price;}num=num-1;y=0;z=1;}elseif(x==2){y=1;}else{y=0;f=1;}}}}else{printf(" \t输入错误,请重新输入:");y=1;}while(z==1){result=save();if(result==0){printf(" \n\t删除信息失败!\n");z=0;}if(result==1){printf(" \n\t成功删除信息!\n");z=0;}}}return;}。
c课程设计图书信息管理系统

c课程设计 图书信息管理系统一、课程目标知识目标:1. 让学生理解图书信息管理系统的基本概念,掌握其主要功能模块和使用方法。
2. 使学生掌握数据库的基本操作,如数据查询、添加、修改和删除。
3. 帮助学生了解信息系统的设计原则,培养学生对信息系统的分析和设计能力。
技能目标:1. 培养学生运用所学知识构建简单的图书信息管理系统,具备实际操作能力。
2. 提高学生的问题解决能力,使其能够针对图书信息管理中的实际问题提出合理的解决方案。
3. 培养学生的团队协作能力,学会与他人共同分析、设计和完善图书信息管理系统。
情感态度价值观目标:1. 培养学生热爱信息技术,关注信息产业发展,树立正确的信息意识。
2. 培养学生的创新意识,敢于尝试新方法,勇于挑战自我,提高自我效能感。
3. 增强学生的社会责任感,使其认识到图书信息管理系统在现实生活中的重要作用,激发为社会发展贡献力量的意愿。
课程性质:本课程为实践性较强的学科,结合理论知识与实践操作,培养学生对图书信息管理系统的设计与实施能力。
学生特点:高中生已具备一定的信息技术基础,思维活跃,求知欲强,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的实际操作能力,培养其创新意识和团队协作精神。
通过本课程的学习,使学生能够将所学知识运用到实际生活中,为未来的学习和工作打下坚实基础。
教学过程中,关注学生的学习成果,及时调整教学策略,确保课程目标的实现。
二、教学内容1. 理论知识:- 图书信息管理系统的基本概念与功能。
- 数据库的基础知识,包括数据表的设计与关系。
- SQL语言的基本查询与操作命令。
- 信息系统的设计原则和方法。
2. 实践操作:- 使用数据库管理软件(如Access)创建和管理图书信息数据库。
- 设计简单的图书信息查询系统,实现数据的增、删、改、查功能。
- 通过案例学习,分析和评价图书信息管理系统的实际应用。
3. 技能培养:- 通过小组合作,模拟设计并实现一个图书信息管理系统。
图书信息管理系统设计—C语言课程设计

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
设计一图书信息管理系统,使之能提供以下功能:(1) 系统以菜单方式工作(2) 图书信息录入功能(3) 图书信息浏览功能(4) 图书信息查询功能(5) 图书信息的删除与修改功能NY主函数流程图建立menu()函数将主函数功能提取出来,主函数main 调用menu()函数方便简捷。
void main (){menu ();}void menu (){int a;do{printf (” ******赵毅******\n") ;printf("\n");printf(”******中国地质大学******\n");printf ("\n”) ;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\t6 -———-—-——————---图书信息追加\n") ;printf("\t\t\t0 -————-—-—----—-—退出图书信息系统\n”) ;printf("\t\t********************************************\n");printf(”\t\tplease choose: ") ;scanf (”%d",&a);switch (a){case 1:input() ;break;case 2:list ();break;case 3:search();break;case 4:del ();break;case 5:revise();break;case 6:append();break;case 0:exit(0);default:printf ("\n 序号不对\n”) ;}}while(a!=0);}#include<stdio.h〉#include〈stdlib.h〉#include<string.h>#include<conio.h>void menu() ;#define N 3typedef struct system{long num;char name[20];char writer[10];char sort[10];char publisher[20];long time;float price;}BOOK;N 为限定的录入图书个数(可依据不同要求变化范围)long num 为定义的登录号(长整形变量)char name[20]为定义的书名的数组char writer[10]为定义的作者的数组char sort [10]定义的分类号数组char publisher [20]定义的出版单位数组long time 定义的出版时间长整形变量float price 价格为浮点型变量。
c语言书籍管理系统课程设计

c语言书籍管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,能够运用C语言实现简单的书籍管理系统。
通过本课程的学习,学生将能够理解C语言的基本语法和数据结构,掌握基本的输入输出操作和文件操作,培养编程思维和解决问题的能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据结构。
2.理解书籍管理系统的需求和设计原理。
技能目标包括:1.能够使用C语言编写简单的书籍管理程序。
2.能够进行基本的输入输出操作和文件操作。
情感态度价值观目标包括:1.培养学生的编程思维和解决问题的能力。
2.培养学生对计算机科学和软件开发的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法和数据结构,以及书籍管理系统的需求分析和设计。
具体来说,教学大纲如下:1.第一章:C语言的基本语法和数据类型。
2.第二章:控制结构和函数。
3.第三章:输入输出操作和文件操作。
4.第四章:书籍管理系统的需求分析和设计。
教学内容将根据教材的章节进行安排和进度,同时结合实际的编程案例进行讲解和练习。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
具体来说,教学方法如下:1.讲授法:通过讲解和示范,让学生掌握C语言的基本语法和数据结构。
2.讨论法:通过小组讨论和问题解答,培养学生的编程思维和解决问题的能力。
3.案例分析法:通过分析实际的编程案例,让学生理解书籍管理系统的需求和设计原理。
4.实验法:通过编写和调试代码,让学生掌握基本的输入输出操作和文件操作。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备等。
具体来说,教学资源如下:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业、考试等。
c课程设计图书信息管理系统

c课程设计图书信息管理系统一、教学目标本课程的目标是使学生掌握图书信息管理系统的基本概念、设计与实现。
通过本课程的学习,学生应能理解图书信息管理的需求,掌握系统设计的基本原则和方法,并能够运用相关技术实现一个简单的图书信息管理系统。
1.理解图书信息管理的基本概念和需求。
2.掌握系统设计的基本原则和方法。
3.熟悉常用的图书信息管理技术。
4.能够分析图书信息管理的需求,并设计相应的系统。
5.能够运用相关技术实现图书信息管理系统的基本功能。
情感态度价值观目标:1.培养学生对图书信息管理工作的认识和兴趣。
2.培养学生对技术的热爱和探索精神。
二、教学内容本课程的教学内容主要包括三个部分:图书信息管理的基本概念和需求,系统设计的基本原则和方法,以及常用的图书信息管理技术。
1.图书信息管理的基本概念和需求:介绍图书信息管理的工作内容和目标,分析图书信息管理的需求。
2.系统设计的基本原则和方法:讲解系统设计的基本原则和方法,如模块化设计、数据一致性等。
3.常用的图书信息管理技术:介绍常用的图书信息管理技术,如数据库技术、网络技术等。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过讲解和演示,使学生掌握图书信息管理的基本概念、系统设计原则和方法,以及常用的图书信息管理技术。
2.案例分析法:通过分析实际案例,使学生更好地理解和掌握图书信息管理系统的需求分析和设计方法。
3.实验法:通过实际操作,使学生掌握图书信息管理系统的实现技术,并培养学生的动手能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用合适的教材,为学生提供系统的学习资料。
2.参考书:提供相关的参考书籍,为学生提供更多的学习资源。
3.多媒体资料:制作多媒体课件,生动形象地展示教学内容。
4.实验设备:提供必要的实验设备,为学生提供实际操作的机会。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评估学生的学习成果。
c语言图书馆管理系统课程设计报告

C语言图书馆管理系统课程设计报告一、设计背景随着图书馆信息化管理的普及和发展,使用计算机进行图书馆管理已成为必然趋势。
为了提高图书馆管理工作的效率和准确性,本课程设计旨在设计一个基于C语言的图书馆管理系统。
二、设计目标1.实现对图书馆的基本信息进行添加、删除、修改和查询的功能。
2.实现对读者信息的管理,包括添加、删除、修改和查询。
3.实现借书和还书功能,包括借书时的借阅记录的生成和还书时相关操作。
4.实现图书馆管理员的登录和权限管理功能。
三、设计思路基于以上设计目标,我们将采取以下设计思路:1.设计合适的数据结构来存储图书馆、读者和借阅记录等信息。
2.设计相应的函数来实现对数据的增删改查操作。
3.设计用户界面,使用户可以方便地使用各种功能。
4.设计登录和权限管理功能,保证只有授权的管理员才能进行系统管理操作。
四、系统功能设计1. 图书馆管理功能•添加图书馆信息:输入图书馆名称、地址等信息,保存到系统中。
•删除图书馆信息:根据图书馆名称或其他唯一标识,删除相应的图书馆信息。
•修改图书馆信息:根据图书馆名称或其他唯一标识,修改相应的图书馆信息。
•查询图书馆信息:根据图书馆名称或其他唯一标识,查询相应的图书馆信息。
2. 读者管理功能•添加读者信息:输入读者姓名、年龄、性别等信息,保存到系统中。
•删除读者信息:根据读者姓名或其他唯一标识,删除相应的读者信息。
•修改读者信息:根据读者姓名或其他唯一标识,修改相应的读者信息。
•查询读者信息:根据读者姓名或其他唯一标识,查询相应的读者信息。
3. 借还书功能•借书:根据读者ID和图书ID,生成借阅记录,修改相应的图书和读者信息。
•还书:通过借阅记录中的借阅ID,找到相应的借阅记录,修改相应的图书和读者信息。
4. 登录和权限管理功能•管理员登录:输入管理员用户名和密码,验证登录信息。
•管理员权限管理:设置对应管理员的权限,包括“图书馆管理”和“读者管理”等。
五、系统实现本系统的实现将采用C语言作为开发语言,使用相关编程工具进行开发。
c语言课程设计—图书信息管理系统

1.设计目的随着科学技术的不断提高,计算机科学日渐成熟, 作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。
本系统以高校院级管理为背景,主要实现对图书馆信息的管理,主要可以分为两大块:教师借书、还书处理以及挂账信息处理。
2. 设计要求(1)系统以菜单方式工作,界面应清晰直观,便于用户操作;(2)借阅信息录入:包括图书编号(不重复)、书名、单价,借阅教师姓名,所属系部,借阅日期,还书日期(在还书时填上)。
以结构数组或数据文件形式保存教师借阅信息;(3)信息查询浏览:查询某教师所借图书信息一览,查询指定书目被借阅的信息;(4)挂账处理:显示某教师挂账信息(借出时间超过3个月);(5)借阅统计:某教师借阅图书总数,某系所有教师借阅图书数逆序显示,某系借阅图书超额的教师名单显示(任一种)3. 设计内容本次课程设计通过对管理系统模型的研究,提出了一套构造图书信息管理系统模型的方法,提出了图书管理系统的一般建立方法,并且利用数据库、信息系统分析所学知识,结合其它相关管理常识,通过对某图书馆图书流通过程的分析,建立相关数据模型,利用面向对象开发工具对其进行设计与开发。
系统主要由两大子系统组成:图书管理和图书信息服务子系统。
系统主要有三个数据库表:图书信息表,教师信息表和借出信息表.4. 概要设计(1)程序通过下拉菜单实现,菜单功能描述如图所示:(2)程序分为六个模块:建立菜单、借阅信息录入、某教师借阅信息、指定书目被借阅信息、挂账处理、统计某教师借阅图书总数。
运行时用主调函数将六个模块链接起来。
函数功能和程序流程图:5. 详细设计Menu () 菜单函数 main () 主函数Creat () 生成教师链表 Create () 生成图书链表 Search () 教师查询 Booksearch () 图书查询 Pay () 挂账处理 Total () 借阅统计(1)数据结构设计程序涉及了两个实体,所以定义了两个结构体,将图书借阅信息用单链表存储。
C语言课程设计图书管理系统课程设计报告

C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号20130566140班级13计转本专业名称计算机科学与技术指导教师李子龙2016年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
图书馆管理系统C语言课程设计报告(原创)

课程报告任务书1需求分析开发一个图书管理系统。
一、图书信息包括图书编号、书名、作者、价格、出版社、出版日期、类别、馆藏地址、库存量。
二、系统功能包括1 新建图书信息库2查询图书信息●全部查询●按书名查询●按作者查询●按类别查询3 图书排序●按编号排序●按价格排序4 图书信息插入(插入后仍按编号顺序排放的)5 图书信息删除(按书名查找删除)6 图书信息修改(按书名查询到书后可以进行选择对各项信息进行修改)7 图书数目统计8 图书信息保存在文件中三、在主函数里设计各个功能选项,然后调用相应的自定义子函数来实现功能。
2 概要设计(1) 数据结构主要数据结构:单链表//图书信息结构体struct book{char num[L]; //图书编号char name[M]; //书名char writer[M]; //作者char publisher[M]; //出版社char time[N]; //出版日期char category[n]; //类别char room[N]; //馆藏地址double price; //价格int amount; //库存量struct book *next;};(2) 模块划分主函数void main()自定义子函数即功能函数struct book * create(); // 新建图书信息库struct book * scanf1_(); //输入单本书的信息void printf1_(struct book *); //输出单本书的信息void chaxun_(struct book *); //综合查询void chaxun_all(struct book *); //全部信息浏览void chaxun_name(struct book *); //按书名查询void chaxun_writer(struct book *); //按作者查询void chaxun_category(struct book *); //按类别查询struct book *num_order(struct book *); //按编号排序struct book *price_order(struct book *); //按价格排序struct book *delete_(struct book *); //图书信息删除void change(struct book *,char a[]); //图书信息修改struct book *insert(struct book *); //图书信息插入int count(struct book *); //图书数目统计void save(struct book *); //保存到文件struct book *load(); //从文件读取信息到链表int quit(struct book *); //退出函数(3) 程序总体框架(4) 主界面是如下3 详细设计一main()主函数程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调整,均由主函数控制。
C语言课程设计报告—图书信息管理系统

void StuCover(){system("cls”);printf(”\n\n\n");printf(”\t\t 通讯录管理系统\n\n");printf(”\t\t 版本号:1.0\n\n”);printf(”\n\n\n\n”);printf("\t\t 2012年4月\n\n");printf(”\t\t 程序设计A组\n");}void MainMenu(){system("cls”);printf(”\n\n\n");printf(”|* ** **通信录管理系统* ****|\n”);printf(" |..。
..。
..。
....。
.。
.。
.。
.。
.。
.。
|\n”);printf(”| 请选择菜单序号(0~5)|\n");printf(" |。
..。
.。
.。
.。
...。
...。
....。
..... |\n”);printf(” |。
.。
.。
.。
..。
...。
.。
...。
.。
.。
. |\n");printf(" | 1。
..查看功能|\n”);printf(”| 2。
.增加功能|\n”);printf(”| 3。
拨号功能|\n");printf(”|4。
.。
修改功能|\n");printf(”| 5。
.。
删除功能|\n");printf(”|0。
退出系统|\n");printf(" \t\t请选择序号:");}void DispMenu(){int n;system(”cls”);printf("\n\n\n”);printf(”| ┄─━━━━查看功能子菜单━━━━─┄|\n”);printf(" | ┄─━━━━━━━☆━━━━━━━─┄|\n”);printf(" |请选择菜单序号【0~3】|\n”);printf(”|┄─━━━━━━━★━━━━━━━─┄|\n”);printf(" | 1 ━━━办公类|\n”);printf(" | 2 ━━━个人类|\n");printf(" | 3 ━━━商务类|\n");printf(" |0 ━━━返回上级菜单|\n");printf(”|┄─━━━━━━━━━━━━━━━─┄|\n");printf(”\t\t请选择序号:”);scanf(”%d",&n);printf("您选择了第%d项!\n”,n);}void zengjiaMenu(){int n;system(”cls");printf("\n\n\n");printf(" | ┄─━━━━增加功能子菜单━━━━─┄|\n”);printf(”| ┄─━━━━━━━☆━━━━━━━─┄|\n");printf(”|请选择菜单序号【0~3】|\n”);printf(”| ┄─━━━━━━━★━━━━━━━─┄|\n”);printf(”| 1 ━━━办公类|\n”);printf(" | 2 ━━━个人类|\n");printf(" | 3 ━━━商务类|\n");printf(" |0 ━━━返回上级菜单|\n”);printf(" | ┄─━━━━━━━━━━━━━━━─┄|\n”);printf(”\t\t请选择序号:");scanf("%d",&n);printf("您选择了第%d项!\n”,n);}void Quit(int flag){if (flag==1){system(”cls");printf(”\n\n\n\n\n\t\t\t操作结束,退出系统!");getch();system(”cls”);exit(0);}elseif(flag==0){system(”cls");printf("\n\n\n\n\t\t\t操作结束,返回上级菜单!”);getch();system("cls”);}}void main(){ int number,dispnum,disnum;StuCover();getch();do{MainMenu();printf ("\n\t请选择序号:\n”);scanf(”%d",&number);switch (number){case 1:do{DispMenu();printf(”\t\t请输入序号:”);scanf(”%d",&dispnum);switch(dispnum){case 1:printf("办公类”); getch();break;case 2:printf(”个人类”);getch(); break;case 3: printf(”商务类"); getch();break;case 0: Quit(0);default:printf(”输入错误,请重新输入");getch();}}while (dispnum!=0); break;case 2: do{zengjiaMenu();printf(”\t\t请输入序号:”);scanf("%d”,&disnum);switch(disnum){case 1:printf(”办公类”);getch(); break;case 2: printf(”个人类”);getch(); break;case 3: printf(" 商务类"); getch(); break;case 0: Quit(0);default:printf("输入错误,请重新输入”);getch();}}while (disnum!=0); break;case 3:printf("拨号功能");getch();break;case 4:printf("修改功能");getch();break;case 5:printf(”删除功能");getch();break;case 0: Quit(1);break;default:printf(”输入错误,请重新输入”);getch();}}while(number!=0);}。
图书管理系统的设计(C语言)

图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。
这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。
C 源代码如下:#include〈stdio 。
h〉#include<stdlib。
h〉#include〈string 。
h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。
图书信息管理系统设计(c语言)

1.题目:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:●图书信息录入功能(图书信息用文件保存)●图书信息浏览功能●查询或排序功能:(至少一种查询方式)按书名查询按作者名查询图书信息的删除与修改#include<stdio.h> /* 输入输出函数*/#include<stdlib.h> /* 动态存储分配字符转换函数*/#include<string.h>/* 字符串函数*/#define N 3Int OK=N;struct books /* 图书信息结构体*/{long num; /*登录号*/char bname[20]; /*书名*/char writer[15]; /*作者*/char sor t[20]; /*分类号*/char publisher[10]; /*出版单位*/long time[10]; /*出版时间*/float price; /* 价格*/void load(struct books inform[],FILE *fp)//定义一个输入函数,完成信息录入功能//FILE *fp为文件指针,指向FILE类型{if(fp=fopen("books.text","w"))==NULL //以写方式大家book.text,并使指针指向它printf("文件打开错误");printf("登录号书名作者名分类号出版单位出版时间价格\n");fprintf(fp,"登录号书名作者名分类号出版单位出版时间价格\n");for(int i=0;i<N;i++){scanf("%ld %s %s %s %s %ld %f",&inform[i].num,inform[i].bname,inform[i].writer,infor m[i].sort,inform[i].publisher,&inform[i].time,&inform[i].price);fprintf(fp,"%-6ld %-8s %-8s %-8s %-8s %-6ld %-8f\n",inform[i].num,inform[i].bna me,inform[i].writer,inform[i].sort,inform[i].publisher,inform[i].time,inform[i].price); //在文件fp中存入N本书}fclose(fp);}void look(struct books inform[])//定义一个输出函数,完成信息的浏览功能{printf("登录号书名作者名分类号出版单位出版时间价格\n");for(int i=0;i<N;i++){printf("%ld %s %s %s %s %ld %f\n",inform[i].num,inform[i].bname,inform[i].writer,i nform[i].sort,inform[i].publisher,inform[i].time,inform[i].price);}}void search1(struct books system[])//定义一个查询函数{int i; int n;//以n表示书名为p的书本书char p[20];//p代表要查书名printf("请输入要查的书名:");scanf("%s",&p);for(i=0;i<N;i++)if(strcmp(inform[i].name,p)==0)//判断两字符串是否相等{printf("登录号书名作者名分类号出版单位出版时间价格\n")printf("%ld %s %s %s %s %ld %f\n",inform[i].num,inform[i].bname,inform[i].writer,inform[i].sort,inform[i].publisher,inform[i].time,inform[i].price); n++;}if(n==0) printf("输入的书不存在");}void search2(struct books inform[])//完成对作者名的查询{}void main(){int pushbutton;struct books inform[N];FILE *fp;fp=fopen("book.text","web+");do{printf("**********MENU***********\n"); printf("0输入图书信息\n");printf("1浏览图书信息\n");printf("2按书名查询\n");printf("3按作者名查询\n");printf("4按图书价格降序排序\n"); printf("5按书名删除信息\n");printf("6修改图书价格\n");printf("7退出\n");printf("请输入0~7按钮选择操作项:"); scanf(%d,&pushbutton);switch(pushbutton){ case0:load(inform,fp);break;Case1:look(inform);break;Case2:search1(inform);break;Case3:search2(inform);break;Case4:order(inform,fp);break;Case5:cancel(inform,fp);break;Case6:modify(inform,fp);break;Case7:printf("退出\n");break;Default:printf("\n非法操作!\n");}}while(pushbutton!=7);}【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】。
图书信息管理系统——C语言课程设计报告(1)

图书信息管理系统——C语言课程设计报告(1)课程设计报告课程名称C语言程序设计课题名称图书信息管理系统专业电子技术班级学号姓名指导教师2015年12月31 日湖南工程学院课程设计任务书课程名称C语言程序设计课题图书信息管理系统专业班级电子技术学生姓名学号201501040120指导老师审批任务书下达日期2015 年12月31日任务完成日期2016 年元月10日目录一.系统的主要思路 (1)二、系统的主要功能 (2)1、显示功能 (2)2、追加功能 (2)3、修改模块 (2)4、删除模块 (2)5、查询模块 (2)6、统计模块 (2)7、排序模块 (2)8、退出模块 (2)三.系统功能模块的划分 (3)1.总体模块功能框图 (3)四.总流程图 (3)1.总流程图 (3)2.八大模块的流程图 (5)五.程序调试 (13)1.显示模块 (14)2 . 追加模块 (15)3. 修改模块 (17)4. 删除模块 (19)5. 查询模块 (22)6. 统计模块 (24)7.排序模块 (26)8. 退出模块 (28)六.心得与体会 (28)七.参考文献:........................................ 错误!未定义书签。
八.附件: (29)一.系统的主要思路此系统事用C语言实现一个图书馆信息管理系统;利用结构体数组实现图书馆信息的数据结构;例如,删除图书信息、追加图书信息、修改图书信息、图书信息的统计等等;系统的各个功能调用各个函数的形式实现;并提供一个界面来调用,各个功能的操作。
首先我们要对系统操作就必须先创建一个数据库,用来存放各图书的信息,如:图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、单价等。
并用读函数fscanf读取数据,然后才能进入主控程序。
然后,运行该程序显示的为主菜单界面,并且主菜单界面显示调用各个功能函数的功能键;通过提示用户,调用各个功能操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级语言程序设计课程设计评语:学院班级姓名学号成绩指导老师年月日一、目的1. 进一步掌握和利用C 语言进行程设计的能力;2、 进一步理解和运用结构化程设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;5、 学会利用流程图或N-S 图表示算法;6、 掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。
(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作图书信息录入功能(图书信息用文件保存)--输入图书信息浏览功能--输出查询和排序功能:(至少一种查询方式)--算法按书名查询按作者名查询图书信息的删除与修改(可选项)(2).系统功能与分析(填写你所设计的菜单及流程图)截图略浏览模块流程图按书名查找模块流程图返回主菜单 退出 按书名查找模块 退出返回主菜单 1,2,还是3 返回上一层 显示图书记录 用户作出选择,输入一整型数值 1,2,还是3按作者查找模块流程图插入模块流程图(3)数据结构typedef struct book{int sort;char book_name[15];char author_name[15];int vert_number;char publish_unit[15];char publish_time[10];int price;}B(4).模块设计(5)总体设计思想:(6)调试过程: 测试数据及结果,出现了哪些问题截图略(7)程序有待改进的地方及本次实习的收获和建议……(8)源程序清单(主要代码)#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN sizeof(struct book)typedef struct book{int sort;char book_name[15];char author_name[15];int vert_number;char publish_unit[15];char publish_time[10];int price;}B;B *P,*p1,boo;int num=0,f=0;int save();void input();int get();void output();void book_name();void author_name();void modify();void delet();int main(){int re=1,t,j=0;int n,choice;while(re==1){t=1;system("cls");printf(" *****************************\n");printf(" 主菜单\n\n");printf(" 1.录入信息\n");printf(" 2.查看信息\n");printf(" 3.查询信息\n");printf(" 4.删除与修改信息\n");printf(" 5.退出\n");printf(" *****************************");printf("\n");if(j==1) printf("\n\t选择错误!");printf("\n\t请选择1-5: _\b\b");scanf("%d",&choice);switch(choice){case 1:{printf("\n\t1: 录入信息\n");input();printf("\n \t1.返回主菜单;\n\t 2.退出\n\t\t请选择: _\b\b");scanf("%d",&re);break;}case 2:{printf("\n\t2.查看信息\n");output();printf("\n\t 1.返回主菜单;\n\t 2.退出\n\t\t请选择: _\b\b");scanf("%d",&re);break;}case 3:{while(t==1){printf("\n\t3.查询信息\n");printf("\n\t 请选择查询方式:\n\t 1.按书名\n\t 2.按作者名\n\t 3.其余任意数字键返回主菜单_\b\b");scanf("%d",&n);if(n==1)book_name();else if(n==2)author_name();else{re=1;goto lebel;}printf("\n\t 1.返回上一层;\n\t 2.返回主菜单;\n\t 3.退出\n\t 请选择: _\b\b");scanf("%d",&t);if(t==1)system("cls");if(t==2)re=1;if(t==3) re=0;}lebel: break;}case 4:{while(t==1||f==1){printf("\n\t4.删除与修改信息\n");printf("\n\t 请选择:\n\t 1.删除信息;\n\t 2.修改信息\n \t 3.其余任意数字键返回主菜单_\b\b");scanf("%d",&n);if(n==1)delet();else if(n==2)modify();else{re=1;goto lebe;}printf("\n\t 1.返回上一层;\n\t 2.返回主菜单;\n\t 3.退出\n\t\t 请选择: _\b\b");scanf("%d",&t);if(t==1)system("cls");if(t==2) re=1;if(t==3) re=0;}lebe: break;}case 5:{re=0;break;}default:{re=1;j=1;}}}return 0;}int save(){FILE *fp;int i,n=0,n1=0;if((fp=fopen("book.txt","a+"))==NULL)return 0;fprintf(fp,"%d\n",num);for(i=0;i<num;i++){fprintf(fp,"%d %s %s %d %s %s %d",P[i].sort,P[i].book_name, P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);fprintf(fp,"\n");}fclose(fp);return 1;}int get(){FILE *fp;int i;fp=fopen("book.txt","r");if(fp==NULL)return 0;else{fscanf(fp,"%d",&num);if(num>0){P=(B *)malloc(LEN * num);for(i=0;i<num;i++){fscanf(fp,"%d%s%s%d%s%s%d",&P[i].sort,P[i].book_name,P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish_time,&P[i].price);}fclose(fp);return 1;}else{fclose(fp);return 0;}}}void input(){int result;int i;printf("\t\t要录入信息的书籍数量为: __本\b\b");scanf("%d",&num);if(num>0){P=(B *)malloc(LEN * num);for(i=0;i<num;i++){P[i].sort=i+1;printf("\n\tNO. %d",P[i].sort);printf("\n");printf("\t请按序输入:书名作者名分类号出版单位出版时间价格\n\t\t ");scanf("%s%s%d%s%s%d",P[i].book_name,P[i].author_name,&P[i].vert_number,P[i] .publish_unit,P[i].publish_time,&P[i].price);printf("\n");}result=save();if(result==0){printf(" \t录入信息失败!\n");num = 0;}if(result==1){printf(" \t成功录入信息!\n");}}else{num=0;printf(" \t输入错误!");}}void output(){int i;get();if(get()==1){printf("\n\t\t成功获取信息!\n");for(i=0;i<num;i++){printf("\n\t\tNO.\t%d\n",P[i].sort);printf("\t\t 书名作者名序列号出版单位出版时间价格\n");printf("\t\t %s %s %d %s %s %d",P[i].book_name,P[i].author _name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n");}}else printf(" \t文件打开错误!");}void book_name(){int i;int tag=0;char ch[15];printf("\t 请输入书名: _\b\b");scanf("%s",ch);if(get()==0){printf(" \t无法查询!");return;}if(get()==1){for(i=0;i<num;i++){if(strcmp(P[i].book_name,ch)==0){printf("\n\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d\n",P[i].sort,P[i].book_n ame,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);tag =1;}}if (tag == 0){printf("\n \t没有相关信息!\n");}}}void author_name(){int i;int tag=0;char ch[15];printf("\t 请输入作者名: _\b\b");scanf("%s",ch);if(get()==0){printf(" \t无法查询!");return;}if(get()==1){for(i=0;i<num;i++)if(strcmp(P[i].author_name,ch)==0){printf("\n\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d\n",P[i].sort,P[i].book _name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);tag =1;}if (tag == 0){printf(" \t没有相关信息!");}}}void modify(){int t,n,i,y=1;int result,z,x;t=get();if(t==0){printf("\n \t打开文件错误,无法修改!");return;}else if(y==1){printf("\n\t 您要修改信息的图书排列号为(1-%d): _\b\b",num);scanf("%d",&n);if(n>=1&&n<=num){for(i=0;i<num;i++){if(P[i].sort==n){printf("\n\t您即将修改以下信息:\n");printf("\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n\n\t 确认请按1;返回请按2;返回上一层请按3 _\b\b");scanf("%d",&x);if(x==1){//p1=&boo;printf("\t 您要将信息修改为:\n");printf("\t\t书名: _\b\b");scanf("%s",P[i].book_name);printf("\t\t作者名: _\b\b");scanf("%s", P[i].author_name);printf("\t\t序列号: _\b\b");scanf("%d",&P[i].vert_number);printf("\t\t出版单位: _\b\b");scanf("%s",P[i].publish_unit);printf("\t\t出版时间: _\b\b");scanf("%s",P[i].publish_time);printf("\t\t价格: _\b\b");scanf("%d",&P[i].price);strcpy(P[i].book_name,P[i].book_name);strcpy(P[i].author_name,P[i+1].author_name);P[i].vert_number=P[i+1].vert_number;strcpy(P[i].publish_unit,P[i+1].publish_unit);strcpy(P[i].publish_time,P[i+1].publish_time);P[i].price=P[i+1].price;y=0;z=1;}elseif(x==2){y=1;z=0;}else{y=0;f=1;}}}}else{printf(" \t输入错误,请重新输入:");y=1;}while(z==1){result=save();if(result==0){printf("\n \t修改信息失败!\n");z=0;}if(result==1){printf("\n \t成功修改信息!\n");z=0;}}}return;}void delet(){int t,n,i,j,y=1;int result,z=0,x;t=get();if(t==0){printf("\n \t打开文件错误,无法删除!");return;}elsewhile(y==1){printf("\n\t 您要删除信息的图书排列号为(1-%d): _\b\b",num);scanf("%d",&n);if(n>=1&&n<=num){for(i=0;i<num;i++){if(P[i].sort==n){printf("\n\t 您即将删除以下信息:\n");printf("\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n\n\t 确认请按1;返回请按2;返回上一层请按 3 _\b\b");scanf("%d",&x);if(x==1){for(j=i;j<num-1;j++){strcpy(P[j].book_name,P[j+1].book_name);strcpy(P[j].author_name,P[j+1].author_name);P[j].vert_number=P[j+1].vert_number;strcpy(P[j].publish_unit,P[j+1].publish_unit);strcpy(P[j].publish_time,P[j+1].publish_time);P[j].price=P[j+1].price;}num=num-1;y=0;z=1;}elseif(x==2){y=1;}else{y=0;f=1;}}}}else{printf(" \t输入错误,请重新输入:");y=1;}while(z==1){result=save();if(result==0){printf(" \n\t删除信息失败!\n");z=0;}if(result==1){printf(" \n\t成功删除信息!\n");z=0;}}}return;}。