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

这是一篇关于使用C语言进行课程设计的文章,详细介绍了如何构建一个图书信息管理系统,涵盖了系统的实现细节。
摘要由CSDN通过智能技术生成

图书信息管理系统(C语言)

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:
系统以菜单方式工作
      1)  图书信息录入功能(图书信息用文件保存)--输入
      2)  图书信息浏览功能--输出
      3)  查询和排序功能:(至少一种查询方式)--算法
      4)  按书名查询
      5)  按作者名查询
      6)  图书信息的删除与修改(可选项)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
typedef struct book                                             /*定义结构体*/
{
	char bookname[100] ;        /*书名*/
	char writer[100];           /*作者*/
	char classnumber[100];      /*出版号*/
	char publisher[100];        /*出版单位*/
	char time[100];             /*出版日期*/
	char price[100];            /*价格*/
	struct book *next;          /*下个图书的信息*/
}Book;

int mima()
{
	int i=0;
	char user[10]="hut";
	char Code[10]="416426";
	char getuser[10];
	char Getskey[10];

	while(1)
	{
		printf("\t\t\t请输入账号:");
		scanf("%s",getuser);
		printf("\t\t\t请输入密码:");
		while(1)
		{
			Getskey[i]=getch();
			if(Getskey[i]=='\r')
				break;
			else if(Getskey[i]=='\b')
			{
				if(i==0)
					continue;
				printf("\b");
				printf(" ");
				printf("\b");
				i--;
			}
			else
			{
				printf("*");
				i++;
			}
		}
		Getskey[6]='\0';
		if(strcmp(user, getuser)==0&&strcmp(Code, Getskey)==0)
			return 1;
		else
		{
			printf("\n\n\t\t\t账号不存在或密码输入错误,请重新输入\n");
			i = 0;
		}
	}
}

void showmenu1()                                                /*显示管理员菜单*/ 
{
	system("cls");
	printf("\n\n\n\n\n");
	printf("\t************************************************************\n");
    printf("\t*                                                          *\n");
    printf("\t*                 欢迎来到图书信息管理系统                 *\n");
    printf("\t*                                                          *\n");
    printf("\t*                                                          *\n");
	printf("\t*                          主菜单                          *\n");
	printf("\t*                                                          *\n");
	printf("\t*                     1.录入图书信息                       *\n");
    printf("\t*                                                          *\n");
	printf("\t*                     2.删除图书信息                       *\n");          
	printf("\t*                                                          *\n");
	printf("\t*                     3.修改图书信息                       *\n");
	printf("\t*                                                          *\n");
	printf("\t*                     4.查询图书信息                       *\n");
	printf("\t*                                                          *\n");
	printf("\t*                     5.显示所有图书信息                   *\n");        
    printf("\t*                                                          *\n");
    printf("\t*                     6.返回登录界面                       *\n");
    printf("\t*                                                          *\n");
	printf("\t*                     7.保存数据并退出系统                 *\n"); 
    printf("\t*                                                          *\n");
    printf("\t************************************************************\n\n");
}

void showmenu2()                                                /*显示游客菜单*/ 
{
	system("cls");
	printf("\n\n\n\n\n");
	printf("\t************************************************************\n");
   	printf("\t*                                                          *\n");
   	printf("\t*                 欢迎来到图书信息管理系统  
#include #include #include 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 lookup() { system("cls"); printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n"); int i ; for ( 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"); int i ; for( 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"); int i ; for( 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 search() /*定义查询函数*/ { int a; system("cls"); /*进行清屏*/ printf("\t\t******************************\n"); printf("开始查询\n"); printf("\t\t\t1---------------search_by_name\n"); printf("\t\t\t2---------------search_by_writer\n"); printf("\t\t\t0---------------exit\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; } } 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--; } else printf("\n cannot found!\n"); save(); fflush(stdin); getchar(); } void update()//修改图书信息 { 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(); } else printf("\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(); }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值