C语言程序设计----图书信息管理系统

合集下载

C语言程序课程设计图书管理系统方案

C语言程序课程设计图书管理系统方案

C语言程序课程设计报告标题:图书管理系统专业:软件工程类:设计主题图书馆管理系统主要包括管理图书的库存信息,每本书的借阅信息,每个人的借阅信息。

每本书的库存信息包括数量、书名、作者、出版日期、金额、类别、总入库数量、当前库存、已借出图书数量等。

每本借书包括以下信息:编号、书名、金额、借书证号、借阅日期、到期日期、罚款金额等。

每个人的图书馆信息包括借书证号、班级、学号等。

该系统的功能包括以下几个方面:一、借阅资料管理要求对图书、期刊、报纸、期刊进行分类管理,这样操作会更加灵活方便。

可以随时添加、删除、修改、查询等相关资料。

b、借贷管理(1)借贷操作(2)还书操作(3)更新治疗提示:以上处理需要相互配合,通过编辑赔偿和违约金金额来完成图书借还业务的各种登记。

例如,读者在还书时,不仅要更新图书的库存信息,还要自动计算图书的罚款金额。

并显示读者当天到期未还图书的所有信息。

c、读者管理读者等级:对借阅的读者进行分类,比如可以分为教师和学生两类。

并定义每类读者可以借阅的图书数量及相关借阅时间等信息。

读者管理:可以录入读者信息,以及挂失或注销读者、查询等服务。

D.统计分析可以随时进行统计分析,及时了解当前的借阅情况和相关数据状态。

统计分析包括借阅列表、数据状态统计、借阅统计等功能分析,显示当日所有到期未还的图书信息。

e系统参数设置:您可以设置相关的系统服务器参数,如违约金金额、最大借用天数等。

根据题目分析这项工作分为六个模块。

1.图书数据2.借款人信息3.借用模块4.还书模块5.照看书籍6.查询模块模块一:书号,书名,作者,出版时间,价格,份数,页数。

模块二:单位、借阅书目、借阅时间模块3:输入书名、书号、借书证。

模块四:登记书号,还书,处理罚款。

模块5:管理书库中的书籍,将新书入库,删除旧书,堆栈查询模块6:图书查询。

数据测试源代码汉字菜单可以参照以下代码编写:#包含“stdio.h”。

主(){ char c;int I;做{clr SCR();for(I = 0;i < 80i++)printf(" * ");printf("\t 1:添加书籍\ n ");printf("\t 2:列出书籍\ n ");printf(" \ t 3:s reach books \ n ");printf("\t 4:借书\ n ");printf("\t 5:返回图书\ n ");printf("\t6:退出\n ")printf(" \ t请选择输入选项[1 \ \ 2 \ \ 3 \ \ 4 \ \ 5 \ \ 6]:\ n ");做{c = getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!='6');getchar();开关(c){事例“1”:输入();打破;案例“2”:del();打破;事例“3”:find();打破;case“4”:arrange();打破;事例“5”:right();打破;案例“6”:出口(0);}Printf("按任意键返回主菜单:\ n ");getchar();clr SCR();} while(1);}#include <stdio.h >定义图书结构*/结构书{int _ id#include <stdlib.h >#include <string.h >#定义借入1#定义NOBORROW 0/*//数字,唯一char _ name[32];//书的名称,不唯一int _ type//书的类型,不唯一int _ status//书的状态,借出/未借出int _ count//图书借出的次数struct Book * _ next//下一本书结构书* _ prev//前一本书};定义书籍类型*/操作目录提示*/操作目录提示1 */添加图书类型并显示用户信息*/添加图书状态并显示用户信息。

C语言课程设计报告—图书信息管理系统

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)》课程设计报告图书信息管理系统学生姓名:朱斌学号:201211354班级:电力工程与管理1201班指导老师:邓伟华日期:2013.07.05兰州交通大学新能源与动力工程学院C语言课程设计报告一、设计目标 (2)二、总体设计 (2)三、详细设计 (3)五、分析及结论............................................................................................. 错误!未定义书签。

六、参考文献 (11)七、附录 (11)源程序清单 (11)一、设计目标图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

设计的图书信息管理系统,应当具备能提供以下功能:1、系统以菜单方式工作2、图书信息录入功能--输入3、图书信息浏览功能--输出4、图书信息查询功能--算法(查询方式:1按书名查询.2.按作者名查询)5、图书信息的删除与修改二、总体设计1.程序设计组成框图2.程序流程图`图书信息管理系统系统登录模块菜单选择模块图书信息录入模块图书信息浏览模块图书信息查询模块图书信息修改模块设计:朱斌设计:周勇设计:闫鹏设计:张旭东设计:杨国峥设计:王文模三、详细设计1、系统登录模块(f1())——本函数由朱斌设计1)函数的功能:验证管理员信息,进入菜单功能界面2)函数的入口:从main()的switch()结构中进入,即choice的值为1时进入函数,然后提示用户通过键盘对输入管理员账户及密码。

3)函数调用关系:被主函数调用。

由switch()开关结构中进入,并在文中无返回值的空值void函数。

4)函数的出口:当验证失败,提示重新输入。

当验证成功,通过“ENTER”键,跳出switch()开关函数,进入菜单功能模块,继续执行选择结构。

程序流程图:图书登录系统界面2.菜单功能选择模块(f2())——本函数由周勇设计1)函数功能:主要作用是提示用户操作,体现模块化思想,主要是显示出菜单让用户选择要进行的任务。

c语言程序设计:图书信息管理系统毕业设计

c语言程序设计:图书信息管理系统毕业设计

#include <string.h>#define M 2#define N 2#define PRINT1 printf("-------------------\n")#define PRINT2 printf("图书号--图书名称--图书种类--图书总量--图书现库存量--出版日期--作者--出版商\n")#define PRINT3 printf("%12d%8s%8s%8d%8d%8d-%2d-%2d%8s%12s", books[i].num,books[i].name,books[i].kind,books[i].add,books[i].current_add,books[i].pub_time.y ear,books[i].pub_time.month,books[i].pub_time.day,books[i].writer,books[i].factory);int sum; /*用来记录图书数目*//*日期结构体类型*/struct date{int year;int month;int day;};/*图书结构体类型*/struct books_type{int num;char name[10];char kind[10];int add; /*图书总库存量*/int current_add; /*图书现库存量*/struct date pub_time;char writer[10];char factory[10];}books[M]; /*存放M种图书记录的结构体数组*//*保存信息*/save_message(int sum){FILE *fp;int i;if((fp=fopen("tushuguanli.txt","wb"))==NULL){printf("读文件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&books[i],sizeof(struct books_type),1,fp)!=1) printf("写文件错误!\n");fclose(fp);}/*输入模块*/input_message(){int i=0,s=M;clrscr();printf("\n\n 录入图书信息(最多%d种)\n",s); printf(" ----------------------------\n");do{printf("\n 第种%d图书",i+1);printf("\n 图书号:");scanf("%d",&books[i].num);if(books[i].num==0) break ;printf("\n 图书名称:") ;scanf("%s",books[i].name);printf("\n 图书种类:");scanf("%s",books[i].kind);printf("\n 图书总量:");scanf("%d",&books[i].add);printf("\n 图书现库存量:");scanf("%d",&books[i].current_add) ;printf("\n 出版日期:");scanf("%d-%d-%d",&books[i].pub_time.year,&books[i].pub_time.month,&books[i].pub_time.day );printf("\n 作者:");scanf("%s",books[i].writer);printf("\n 出版商:");scanf("%s",books[i].factory);i++;}while(i<M);printf("\n --%d种图书信息输入完毕!--\n",i);sum=i;printf("\n 按任意键返回主菜单!");bioskey(0);}/*读取信息*/int read_message(){FILE *fp;int i=0;if((fp=fopen("tushuguanli.txt","rb"))==NULL){ printf("\n\n**暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!****\n");return 0; }while(feof(fp)!=1){fread(&books[i],sizeof(struct books_type),1,fp);if(books[i].num==0) break;else i++;}fclose(fp);return(i);}/*输出模块*/output_message(){int i=0,j=0,count,page=1;clrscr();printf("\n\n --图书信息表-- 第%d页\n\n",page); PRINT2;PRINT1;do{if(books[i].num!=0){j++;if(j%page!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(books[i+1].num!=0){printf("按任意键继续!");bioskey(0);clrscr();printf("\n\n --图书信息表-- 第%d页\n\n",++page);PRINT2;PRINT1;}}}i++;}while(books[i].num!=0);printf("按任意键返回主菜单!");bioskey(0);}/*添加图书信息*/insert_message(){int i=sum,j,flag=0;char choice;clrscr();printf("\n\n 添加一种新图书\n");printf(" -------------------------------------\n");do{ books[i].num=++sum;printf("\n 新图书号:%d",books[i].num);printf("\n 新图书名称:");scanf("%s",books[i].name);printf("\n 图书种类:");scanf("%s",books[i].kind);printf("\n 图书总量:");scanf("%d",&books[i].add);printf("\n 出版日期(年-月-日):");scanf("%d-%d-%d",&books[i].pub_time.year,&books[i].pub_time.month,&books[i].pub_time.day );printf("\n 作者:");scanf("%s",books[i].writer);printf("\n 出版商:");scanf("%s",books[i].factory);printf("\n 要继续吗?(Y/N)");choice=getch();if(choice=='Y'||choice=='y'){printf("\n 继续!\n");i++;flag=1;}else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");bioskey(0);}/*删除图书信息*/del_message(){int i,j,flag=0,f=0;int sum=read_message();int del_num;char choice;do{clrscr();printf("\n\n 请输入要删除图书的序号:\n");scanf("%d",&del_num);for(i=0;i<sum;i++){ if(books[i].num==del_num){books[i].num=0;flag=1;break;}}if(flag==0)printf("\n\n 该图书不存在!\n");printf("\n\n 要继续删除吗?(Y\N)"); choice=getch();if(choice=='Y'||choice=='y'){printf("\n 继续!\n");i++;f=1;}else f=0;}while(f==1);printf("按任意键返回主菜单!");bioskey(0);}/*修改模块*/revise_message(){int i=0,choice,revise_num,flag=0;do{clrscr();printf("\n 输入要修改的图书号:");scanf("%d",&revise_num);for(i=0;i<sum;i++)if(books[i].num==revise_num){printf("\n ---图书信息----\n");PRINT1;PRINT2;PRINT3;printf("\n 您要修改哪一项?\n");printf("\n 1.图书名称\n");printf("\n 2.图书种类\n");printf("\n 3.图书总量\n");printf("\n 4.图书现库存量\n");printf("\n 5.日期\n");printf("\n 6.作者\n");printf("\n 7.出版商\n");printf("\n 0.返回主菜单\n");printf("\n 请选择(0-7):");scanf("%d",&choice);switch(choice){case 1:printf("\n 输入修改后的名称:");scanf("%s",books[i].name);break;case 2:printf("\n 输入修改后的种类:");scanf("%s",books[i].kind);break;case 3:printf("\n 输入修改后的图书总量:");scanf("%d",&books[i].add);break;case 4:printf("\n 输入修改后的库存量:");scanf("%d",&books[i].current_add);break;case 5:printf("\n 输入修改后的日期:");scanf("%d-%d-%d",&books[i].pub_time.year,&books[i].pub_time.month,&books[i].pub_time.day );break;case 6:printf("\n 输入修改后的作者:");scanf("%s",books[i].writer);break;case 7:printf("\n 输入修改后的出版商:");scanf("%s",books[i].factory);break;}PRINT1;PRINT2;PRINT3;break;}if(i==sum){printf("\n 该图书不存在!");bioskey(0) ;}printf("\n\n 要继续修改吗?(Y\N)");choice=getch();if(choice=='Y'||choice=='y'){flag=1;printf("\n 继续!\n");}else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");bioskey(0);}/*更新模块*/renew_message(){ int choice;do{clrscr();printf("\n\n\n *******更新图书信息********\n\n");printf(" 1.添加图书信息\n\n");printf(" 2.删除图书信息\n\n");printf(" 3.修改图书信息\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-3):");scanf("%d",&choice);switch(choice){case 1:insert_message();break;case 2:del_message();break;case 3:revise_message();break;case 0:break;}}while(choice!=0);}/*按书名查询*/inquire_name(){int i,choice,j=0;char inquire_name[10];clrscr();printf("\n 输入要查询的图书名称:"); scanf("%s",inquire_name);for(i=0;i<sum;i++)if(strcmp(books[i].name,inquire_name)==0&&books[i].num!=0) {printf("\n ----图书信息---\n");PRINT1;PRINT2;PRINT3;}else j++;if(j==sum) printf("\n 该图书不存在!");bioskey(0);}/*按类别查询*/inquire_kind(){ int i,j=0,choice;char inquire_kind[10];clrscr();printf("\n 输入要查询的图书种类:"); scanf("%s",inquire_kind);for(i=0;i<sum;i++)if(strcmp(books[i].kind,inquire_kind)==0&&books[i].num!=0) {printf("\n --图书信息--\n");PRINT1;PRINT2;PRINT3;}else j++;if(j==sum) printf("\n 该图书不存在!");bioskey(0);}/*按作者查询*/inquire_writer(){ int i,j=0,choice;char inquire_writer[10];clrscr();printf("\n 输入要查询的图书作者:");scanf("%s",inquire_writer);for(i=0;i<sum;i++)if(strcmp(books[i].writer,inquire_writer)==0&&books[i].num!=0){printf("\n --图书信息--\n");PRINT1;PRINT2;PRINT3;}else j++;if(j==sum) printf("\n 该图书不存在!");bioskey(0);}/*按书名和作者查询*/inquire_name_writer(){int i,choice,j=0;char inquire_name[10];char inquire_writer[10];clrscr();printf("\n 输入要查询的图书名称:");scanf("%s",inquire_name);printf("\n 输入要查询的图书作者:");scanf("%s",inquire_writer);for(i=0;i<sum;i++)if(strcmp(books[i].name,inquire_name)==0&&strcmp(books[i].writer,inquire_writer)==0&&book s[i].num!=0){printf("\n ----图书信息---\n");PRINT1;PRINT2;PRINT3;}else j++;if(j==sum) printf("\n 该图书不存在!");bioskey(0);;}/*查询模块*/inquire_message(){int choice;do{clrscr();printf("\n\n\n *********查询图书信息*******\n\n"); printf(" 1.按图书名称查询\n\n");printf(" 2.按图书类别查询\n\n");printf(" 3.按作者查询\n\n");printf(" 4.按书名和作者查询\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-4):");scanf("%d",&choice);switch(choice){case 1:inquire_name();break;case 2:inquire_kind();break;case 3:inquire_writer();break;case 4:inquire_name_writer();break;case 0:break;}}while(choice!=0);}/*统计某类图书的总库存量*/count_kind_allbooks(){int i,s=0; /*定义s为某类图书的总库存量*/char count_kind[10];clrscr();printf("\n 输入要统计的图书种类:");scanf("%s",count_kind);for(i=0;i<sum;i++)if(strcmp(count_kind,books[i].kind)==0&&books[i].num!=0) s=s+books[i].add;printf("该类图书的总库存量是%d",s);bioskey(0);}/*统计某类图书的现库存量*/count_kind_books(){int i,s=0; /*定义s为某类图书的现库存量*/char count_kind[10];clrscr();printf("\n 输入要统计的图书种类:");scanf("%s",count_kind);for(i=0;i<sum;i++)if(strcmp(count_kind,books[i].kind)==0&&books[i].num!=0) s=s+books[i].current_add;printf("该类图书的现库存量是%d",s);bioskey(0);}/*统计某一作者图书的总库存量*/count_writer_allbooks(){int i,s=0; /*定义为某一作者图书的总库存量*/char count_writer[10];clrscr();printf("\n 输入要统计图书的作者:");scanf("%s",count_writer);for(i=0;i<sum;i++)if(strcmp(count_writer,books[i].writer)==0&&books[i].num!=0) s=s+books[i].add;printf("该作者图书的总库存量是%d",s);bioskey(0);}/*统计某一作者的图书的现库存量*/count_writer_books(){int i,s=0; /*定义s为某一作者图书的现库存量*/char count_writer[10];clrscr();printf("\n 输入要统计图书的作者:");scanf("%s",count_writer);for(i=0;i<sum;i++)if(strcmp(count_writer,books[i].writer)==0&&books[i].num!=0) s=s+books[i].current_add;printf("该作者图书的现库存量是%d",s);bioskey(0);}/*统计模块*/count_message(){int choice;do{clrscr();printf("\n\n\n ******统计图书信息*******\n\n");printf(" 1.统计某类图书的总库存量\n\n") ;printf(" 2.统计某类图书的现库存量\n\n");printf(" 3.统计某一作者的图书的总库存量\n\n");printf(" 4.统计某一作者的图书的现库存量\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-4):");scanf("%d",&choice);switch(choice){case 1: count_kind_allbooks();break;case 2: count_kind_books();break;case 3: count_writer_allbooks();break;case 4: count_writer_books();break;case 0: break;}}while(choice!=0);}/*图书总库存量排序*/sort_add(){struct books_type *p,*q[N];int i,j,k;clrscr();printf("\n 图书总库存量排序\n");printf("---------------------------------\n");printf("\n 排名图书序号图书名称图书种类图书总量现库存量图书作者出版商\n");p=books;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++)if(q[k]->add<q[j]->add)k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}for(i=0;i<sum;i++)printf("\n%10d%10d%12s%12s%10d%10d%10s%10s",i+1,q[i]->num,q[i]->name,q[i]->kind,q[i]->add,q[i]->current_add,q[i]->writer,q[i]->factory);bioskey(0);}}/*图书现库存量排序*/sort_current_add(){struct books_type *p,*q[N];int i,j,k;clrscr();printf("\n 图书现库存量排序\n");printf("---------------------------------\n");printf("\n 排名图书序号图书名称图书种类图书总量现库存量图书作者出版商\n");p=books;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++)if(q[k]->current_add<q[j]->current_add)k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}for(i=0;i<sum;i++)printf("\n%10d%10d%12s%12s%10d%10d%10s%10s",i+1,q[i]->num,q[i]->name,q[i]->kind,q[i]->add,q[i]->current_add,q[i]->writer,q[i]->factory);bioskey(0);}}/*排序模块*/sort_message(){int choice;do{clrscr();printf("\n\n\n *****借书信息排序*****\n\n");printf(" 1.图书总库存量排序\n");printf(" 2.图书现库存量排序\n");printf(" 0.返回主菜单\n");printf(" 请选择(0-2):");scanf("%d",&choice);switch(choice){case 1:sort_add();break;case 2:sort_current_add();break;case 0:break;}}while(choice!=0);}/*主程序*/main(){int choice;sum=read_message();bioskey(0);do{clrscr();printf("\n\n\n ********图书管理系统********\n\n");printf(" 1.录入图书信息\n\n");printf(" 2.输出图书信息\n\n");printf(" 3.更新图书信息\n\n");printf(" 4.查询图书信息\n\n");printf(" 5.统计图书信息\n\n");printf(" 6.图书排行信息\n\n");printf(" 0.退出系统\n\n");printf(" 请选择(0——6):");scanf("%d",&choice);switch(choice){ case 1:input_message();break;case 2:output_message();break;case 3:renew_message();break;case 4:inquire_message();break;case 5:count_message();break;case 6:sort_message();break;case 0:break;}}while(choice!=0);save_message(sum);printf("\n——以上图书信息已保存!—(文件名:tushuguanli.txt)\n");。

C语言程序设计_图书信息管理系统设计

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语言程序设计流程图

图书信息管理系统c语言程序设计流程图

图书信息管理系统c语言程序设计流程图下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!图书信息管理系统C语言程序设计流程图详解在计算机科学中,设计和开发一个图书信息管理系统是一个常见的实践项目。

C语言程序设计任务书-图书信息管理系统

C语言程序设计任务书-图书信息管理系统

C语⾔程序设计任务书-图书信息管理系统课程设计报告课程名称C语⾔程序设计课题名称图书信息管理系统专业机械电⼦班级学号姓名指导教师课程设计任务书课程名称C语⾔程序设计课题图书信息管理系统专业班级机械电⼦1101班学⽣姓名学号指导⽼师审批任务书下达⽇期2012 年12⽉19⽇任务完成⽇期2012 年12 ⽉29 ⽇⼀、设计内容与设计要求1.设计内容:图书信息管理系统设计涉及的知识点:①掌握并熟练运⽤C语⾔的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。

熟练掌握⼀维数组、⼆维数组的应⽤、掌握字符数组与字符串的关系以及字符串的简单处理。

③掌握函数的定义,函数的返回值,函数的调⽤,函数的形式参数和实际参数之间的关系;掌握变量的作⽤域与⽣存期,了解函数的作⽤域。

④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表⽰,结构体变量的赋值含义,结构体与指针、函数的关系。

⑤掌握⽂件、⽂件类型指针的基本概念,熟练掌握⽂件的打开与关闭以及⽂件的建⽴、读写等有关操作。

2.设计要求:1)⽤C语⾔实现系统;利⽤结构体数组实现图书信息的数据结构设计;系统的各个功能模块要求⽤函数的形式实现;应提供⼀个界⾯来调⽤各个功能, 调⽤界⾯和各个功能的操作界⾯应尽可能清晰美观。

2) 建⽴⼀个图书信息数据库,⽂件名为book.txt,并从该⽂件中读取数据;3) 图书信息管理系统应能提供以下功能:①系统以菜单⽅式⼯作②图书信息显⽰功能;能以表格形式显⽰图书库中所有信息,且应有表头。

③图书信息追加功能;追加⼀条(或多条)新记录,要求在追加过程中有相应的提⽰信息,完成追加后能重新排序和显⽰;④图书信息查询功能;a. 按书名查询;b. 按单价查询;c. 按出版单位查询;d. 按出版时间查询e. 按分类号查询;f. 按⼊库时间查询要求系统在上述查询⽅式中⾄少应有两种以上的查询⽅式,且能显⽰符合条件的所有记录。

图书馆管理系统(C语言程序设计)

图书馆管理系统(C语言程序设计)

图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。

实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。

c语言图书信息管理系统c语言

c语言图书信息管理系统c语言

图书管理系统目录一、问题描述这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

通过这些信息使之提供以下功能:(1)图书信息创建功能。

其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

(图书信息用文件保存)。

(2)图书信息查看功能。

用来查看各项图书信息。

(3)图书信息查找功能。

通过已知信息来查找想要的图书。

(4)图书信息的删除。

可以删除特定图书。

(5)图书信息的修改。

可以修改图书的各项信息。

(6)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能二、概要设计1 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。

struct book{int num;//编号char name[20];//书名char author[20];//作者char publisher[20];//出版社int price;//价格int store;//库存};//图书信息结构体2 模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。

void setup(struct book bo[]);//新建图书void search(struct book bo[]);//查找图书void modify(struct book bo[]);//查看图书void del(struct book bo);//删除图书void allbook(struct book bo[]);显示所有图书3 程序流程图否开始菜单新建图书修改信息查询图书删除图书所有图书退出是结束三、详细设计1 主函数int main()//主{struct book bo[100];char c;while(1){system("color 1A");printf("\n");printf("\n\t\t\t >>>欢迎进入图书管理系统<<<\n\n");printf("===================================== ===========================================\ n\n");printf("\t\t\t\t 1 录入新书\n\t\t\t\t 2 查询图书\n");printf("\t\t\t\t 3 修改信息\n\t\t\t\t 4 删除图书\n");printf("\t\t\t\t 5 所有图书\n");printf("\t\t\t\t 0 退出系统\n\n");printf("===================================== ===========================================\ n");printf("请选择:");c=getchar();switch(c){case'1':{setup(bo); getchar();break;}case'2':{search(bo);getchar();break;}case'3':{modify(bo);getchar();break;}case'4':{del(bo);getchar();break;}case'5':{allbook(bo);getchar;break;}case'0':{printf("\n感谢使用本系统");return 0;break;}default:{printf("\n输入有误,请重新输入:" );c=getchar();} }}}2 新建图书void setup(struct book bo[])打开文件或者新建一个文件,键盘输入新建的图书信息,然后把数据全部保存在数组bo数组中,最后存入文件。

C语言程序课程设计图书信息管理系统

C语言程序课程设计图书信息管理系统

课程设计报告课程名称 C语言程序设计课题名称图书信息管理系统专业土木工程班级 1381学号 2姓名李晨希指导教师王颖2016年 1月 7日前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

是及课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。

通常,课程设计的课题比平时的习题复杂得多,也更接近实际。

课程设计着眼于及应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。

为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。

学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告及源程序存盘。

学习委员将课程设计报告及磁盘收齐后交指导老师。

一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

1.设计正确,方案合理。

2.界面友好,使用方便。

3.程序精炼,结构清晰。

4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5.上机演示。

C语言课程设计报告—图书信息管理系统

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语言-图书信息管理系统

C语言-图书信息管理系统
float price价格为浮点型变量。
«2》、【数据存储】
整个程序没有利用保存save函数,而是利用txt.txt\tab.txt两个文件录入存取数据
信息,并通过文件的读取、写入进行图书信息的修改/删除等功能。(fopen fwrite fread写
入及读取数据进行存储)。
《3》【图书信息录入】
开始
则显示"file open error!!”。按任意键结束。
2、与1、流程相同,按照作者名查询。
图书信息查询
按书名查询(1)
按作者名查询(2)
EXIT(0)
BOOK a;
FILE *fp;
if((fp=fope n("txt.txt","r"))==NULL)
{
prin tf("error!\n");exit(0);
printf("\n\n\n\n\n\n\n\n\n登陆号\t书名\t作者名\t分类号\t出版单位\t
出版时间\t价格\n\n");
while(fread(&a,sizeof(BOOK),1,fp)!=0)
case 0:exit(0);
default:printf("\n序号不对\n");
}
}
while(a!=0);
【定义图书信息结构体】
#in clude<stdio.h>
#in clude<stdlib.h>
#include<stri ng.h>
#in clude<c oni o.h> void menu();
图书信息浏览\n");

图书信息管理系统设计(c语言)

图书信息管理系统设计(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);}【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.《程序设计基础(C)》课程设计报告图书信息管理系统***名:**学号:*********班级:电力工程与管理1201班***师:***日期:2013.07.05兰州交通大学新能源与动力工程学院C语言课程设计报告一、设计目标 (2)二、总体设计 (2)三、详细设计 (3)五、分析及结论............................................................................................................... 错误!未定义书签。

六、参考文献 (11)七、附录 (12)源程序清单 (12)一、设计目标图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

设计的图书信息管理系统,应当具备能提供以下功能:1、系统以菜单方式工作2、图书信息录入功能--输入3、图书信息浏览功能--输出4、图书信息查询功能--算法(查询方式:1按书名查询.2.按作者名查询)5、图书信息的删除与修改二、总体设计1.程序设计组成框图2.程序流程图`图书信息管理系统系统登录模块菜单选择模块图书信息录入模块图书信息浏览模块图书信息查询模块图书信息修改模块设计:朱斌设计:周勇设计:闫鹏设计:张旭东设计:杨国峥设计:王文模三、详细设计1、系统登录模块(f1())——本函数由朱斌设计1)函数的功能:验证管理员信息,进入菜单功能界面2)函数的入口:从main()的switch()结构中进入,即choice的值为1时进入函数,然后提示用户通过键盘对输入管理员账户及密码。

3)函数调用关系:被主函数调用。

由switch()开关结构中进入,并在文中无返回值的空值void 函数。

4)函数的出口:当验证失败,提示重新输入。

当验证成功,通过“ENTER”键,跳出switch()开关函数,进入菜单功能模块,继续执行选择结构。

程序流程图:图书登录系统界面2.菜单功能选择模块(f2())——本函数由周勇设计1)函数功能:主要作用是提示用户操作,体现模块化思想,主要是显示出菜单让用户选择要进行的任务。

2)函数入口:从主函数void中的adm_servelist()进入函数,这是直接被主函数void()调用的。

3)函数调用关系:被主函数调用。

并在文中无返回值的空值void函数。

4)函数的出口:执行完所有的printf()函数后自动退出该函数。

图书管理系统添加图书删除图书信息浏览信息查询修改图书创建图书退出管理系统主函数的流程图菜单界面3.修改与删除模块(f3()) ——本函数由 王文模 设计图书删除1)函数功能:利用while 循环和 if 语句和scanf getchar search change del 函数,完成对图书信息(分类名 出版单位 出版时间 价格)的修改和删除2)函数入口:从主函数main()中的system("cls"); /*清屏命令*/menu(); /*菜单函数提示用户怎样选择*/进入函数,这是直接被主函数main()调用的。

3)调用关系:void change(int x)是改变图书信息,它里面又调用了 book_search(); 4)函数出口:执行完所有的printf()函数后自动退出该函数。

程序框架图开始输入n,判断是否0—6?输入n,调用各个模块的函数结束YN图书修改该模块实现按照用户需求,将需要修改的图书名输入,进行for循环查找是否有此书,若无,则显示未找到,退出,若有,则显示输入新的图书信息,开始输入修改的信息,进行for循环开始录入,替换原文件信息结束显示“修改成功”图书修改界面图书删除界面4.图书信息浏览(f4())——本函数由张旭东设计1)函数的功能: 显示图书的信息(编号·价格·作者·出版单位·出版时间·类别)2)函数的入口:从主函数main()中的system("cls"); /*清屏命令*/menu(); /*菜单函数提示用户怎样选择04信息浏览/进入函数,这是直接被主函数main()调用的。

3)函数调用关系:被主函数调用。

并在文中无返回值的空值void函数。

4)函数的出口:执行完所有的printf()函数后自动退出该函数。

框架图图书浏览流程图图书浏览5. 图书查询 ——本函数由杨国峥设计1)函数的功能: 按着书名查询与作者名查询,输出排序结果。

2)函数的入口: 程序从main()的while()开关结构中进入,即choice 的值为4时进入该函数,开始进入该函数,进入函数后,首先打开文件,然后利用“printf ()”选择按书名查询与作者名查询,若flag=1或flag=2则有此书。

若flag=0则无此书,并退出查询。

3)函数调用关系:被主函数调用。

由while()开关结构中进入,并在文中无返回值的空值void 函数。

4)函数的出口: 当输出查询结果用printf()标准输出到屏幕上,然后结束该函数,而执行主函数main()中“break;”跳出while()开关函数,继续执行if 选择结构。

按图书名查询图书信息查询按书名查询(1) EXIT(0) 按作者名查询(2)04信息查询输入a,判断a 是否为0~2?a=0,退出回到主菜单 a=1,则调用search-by-name 按书名查询输入书名,若有此书则输出此书信息,若没有,则输出file open error!!a=2,则调用search-by-writer 按作者名查询输入作者名,若有此书则输出此书 信息若没有,则输出file open error按作者名查询6.输入模块——本函数由闫鹏设计1)函数的功能:利用for循环语句和scanf、gets、getchar函数完成对结构数组的输入,存放图书信息(图书编号、图书名、作者名、出版社、类别、出版时间、价格)。

2)函数的入口:从主函数main()中的system("cls"); /*清屏命令*/menu(); /*菜单函数提示用户怎样选择*/进入函数,这是直接被主函数main()调用的。

3)函数调用关系:被主函数调用。

并在文中无返回值的空值void函数。

4)函数的出口::执行完所有的printf()函数后自动退出该函数。

程序框架图:录入数据请输入图书编请输入图书名请输入作者名请输入出版社请输入类别请输入出版时请输入价格图书信息输入四、调试与测试调试方法:打开Microsoft Visual C++ 6.0,先将各个功能函数的的内容清空,只保留主函数main(),然后编译检验main()函数中是否有错,如果没有错误,再连接、运行。

确认main()函数一切无误后,然后加入功能函数menu()函数与f1()函数,由于menu()函数比较简单,所以与f1()函数一起进行调试,f1()函数中主要注意读取文件,与写入文件,这都是二进制的形式。

若menu()函数与f1()函数编译、连接、运行没问题,继续加入f2()函数,就这样的方法依次检查调试f3()函数、f4()函数。

当所有的功能函数都加上且正确无误时,就可以进入下一个环节—程序的测试。

测试方法:运行程序,然后进入销售管理系统的界面,在这里需要做的就是把自己当成一个公司的程序使用者,来对该程序进行使用,看该程序有哪些方面用着不够爽,把这些问题依次整理出来,再对源程序进行修改,在这个过程中也需要对程序进行调试,不过不必将各个功能函数的的内容清空再进行如上述的调试方法,而是,改一部份运行一次,看是否有无。

如f1()函数有误,则先修改f1()函数,一块一块的进行修改,就是遵循C语言的模块化设计原理,若所有的都改过来了,且运行无误,那就大功告成了。

在调试中遇到的问题:在调试过程中,我们遇到诸多小问题,但都在我们共同讨论后解决了。

1、问题:标点符号在输入的时候,使用的是中文输入法,这种错误一般都难以发现,让修改的时候找不到目标。

解决方法:用“替换”。

如果程序中的error很多,不管error是什么,先将标点替换成英文的标点。

2、问题:调试时,有的时候编译后没什么问题,就是在点击连接link时出现了错误。

而且,这种错误让我们不知道怎么修改。

但是我们的程序的确正确。

解决方法:将源程序保存(save),然后关掉Microsoft Visual C++ 6.0,重新启动Microsoft Visual C++ 6.0,五、分析及结论A、在设计中我们实现了设计目标的所有内容即:1、系统以菜单方式工作2、图书信息录入功能--输入3、图书信息浏览功能--输出4、图书信息查询功能--算法(查询方式:1按书名查询.2.按作者名查询)5、图书信息的删除与修改B、其中遇到了以下问题:不能清晰的建立设计模块,不会修改出现的错误等等。

解决方案:向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。

不可避免地程序中肯定依然存在者某些问题在应用中不断提高自己的能力,攻克遇到的困难。

C、该程序的不足:函数较复杂,界面不美观。

D、实践心得经过一个多星期的编译原理课程设计,在我们一组的共同的努力下,顺利完成该课程设计。

通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。

老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。

现在终于深刻的了解了这句话。

经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对C程序原理也了有更深的理解。

知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。

通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。

能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。

课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。

除了课堂外,课程设计是最能学到东西的,最考验人的。

在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。

经过这次课程设计,让我们对C++这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。

只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。

在编写本程序时,在网上寻找的参考程序起到了很大的启发与参考作用。

六、参考文献1、《C语言程序设计.谭浩强版》2、《C语言上机指导》3、《Microsoft Visual C++ 6.0指南》4、附:在编写本程序时,在网上寻找的参考程序起到了很大的启发与参考作用。

相关文档
最新文档