C-Sprachkursdesign-Bibliotheksverwaltungssystem

  • Bedarfsanalyse:

  Um den Anforderungen der Bibliotheksverwaltung gerecht zu werden, wird Computertechnologie eingesetzt, um Bibliotheksmanagern und Lesern das Ausleihen und Zurückgeben von Büchern zu erleichtern. Ein Bibliotheksverwaltungssystem wurde in der Sprache C geschrieben. Dieses System implementiert hauptsächlich die Funktion der Buchinformationsverwaltung. Über dieses System können die Buchinformationen des Bibliotheksinventars verwaltet und gepflegt werden. Verwirklicht die allgemeinen Funktionen der Bibliotheksverwaltung, einschließlich Abfragen, Ausleihen von Büchern, Zurückgeben von Büchern, Hinzufügen, Löschen, Ändern von Buchinformationen usw. Das entworfene System funktioniert menüweise, bietet Benutzern klare Benutzeraufforderungen, führt verschiedene Verarbeitungen entsprechend den Entscheidungen des Benutzers durch und ist so kompatibel wie möglich mit ungewöhnlichen Situationen, die während der Verwendung des Benutzers auftreten können. Zu den Buchinformationen gehören Seriennummer, Buchtitel, Autor, Verlag, Auflage usw. Die Eingabe und Anzeige von Buchinformationen erfordert ein bestimmtes standardisiertes Format. Die eingegebenen Buchinformationen werden in Form einer Datei gespeichert und grundlegende Vorgänge wie Durchsuchen, Abfragen, Ändern und Löschen können darauf ausgeführt werden. Das gesamte Programm implementiert verknüpfte Listenoperationen, und Operationen an Buchinformationen werden nacheinander ausgeführt. Änderungen an einer Buchinformation sollten sich nicht auf andere Buchdatensätze auswirken.

  • Umrissentwurf:
  • detailliertes Design:
  1. Design Thinking

  Während des gesamten Systemherstellungsprozesses waren viele Wissenspunkte in der C-Sprache beteiligt. Verschiedene Datentypen, Programmsteuerungsstrukturen und Datenstrukturen wurden analysiert und zusammengefasst und mit diesem Thema für eine umfassende Anwendung kombiniert, was bis zu einem gewissen Grad erreicht wurde. Integrieren Sie das erlernte Wissen. Die theoretischen Grundkenntnisse der erlernten Hauptfächer werden weiter vertieft und gefestigt sowie die Fähigkeit zur umfassenden Problemanalyse und -lösung gefördert. Bei der Gestaltung des Programms wird auf die Modularisierung und Strukturierung des Programms geachtet. In der Hauptfunktion werden verschiedene Unterfunktionen aufgerufen und die Bedienoberfläche ist einfach und leicht zu bedienen.

  1. Kommentare zur Implementierung

  Dieses praktische kleine Buchverwaltungsprogramm wird durch verknüpfte Listenoperationen vervollständigt und realisiert Funktionen wie das Eingeben und Speichern von Dateiinformationen. Alle Informationen werden zur Benutzerfreundlichkeit in Festplattendateien gespeichert. Verwirklicht die Grundfunktionen der Buchverwaltung, einschließlich Bucheingabe, Speicherung, Abfrage, Hinzufügung, Löschung, Änderung, Ausleihe und Rückgabe von Büchern. Bei der Abfrage können Sie nach dem Buchtitel suchen und nach dem Finden alle Informationen zum Buch ausgeben. Nach dem Hinzufügen von Buchinformationen wird auch ein Sortiervorgang für verknüpfte Listen hinzugefügt und die gesamte verknüpfte Liste ausgegeben, um Benutzern die Überprüfung der Informationen zu erleichtern. Der Bestandsstatus von Büchern kann abgefragt werden, sodass Benutzer bequem Bücher ausleihen und zurückgeben können. Nachdem das Buch erfolgreich ausgeliehen und zurückgegeben wurde, ändert sich der Bibliotheksstatus des Buchs und eine Aufforderungsmeldung wird angezeigt, damit der Benutzer die Informationen speichern kann. Die Hauptdatenstruktur im System sind Buchinformationen, einschließlich Seriennummer, Buchtitel, Autor, Verlag, Menge usw. Während der Verarbeitung kann jedes Element als unterschiedliche Attribute eines Buches verarbeitet werden.

  1. Design Thinking

① Registrieren Sie ein neues Buch und geben Sie die Buchinformationen ein, z. B. Seriennummer, Titel, Autor, Verlag und Auflage

②Buchinformationen anzeigen

③Geben Sie den Buchtitel ein, um dessen Informationen abzufragen

④Geben Sie die Seriennummer ein, um die Buchinformationen zu ändern

⑤Geben Sie die Seriennummer ein, um das Buch zu löschen

⑥Geben Sie den Buchtitel ein, um das Buch auszuleihen

⑦Geben Sie die Bibliotheksausweisnummer ein, um das Buch zurückzugeben

⑧Verlassen Sie das System

  • Testergebnisse:

Hauptschnittstelle des Systems (wählen Sie eine Nummer aus, um das System zu betreten und zu verlassen)

Code

#include<stdio.h>  //预处理 
#include<string.h>
#include<stdlib.h>
#include<conio.h>

//定义结构体 
struct book
{
	int id;
	char name[31];
	char author[27];
	char publish[31];
	int store;
	int total;
	int user[10];
	int days[10];
}books[100];

//显示整体标题标题函数 
void page_title(char *menu_item)
{
	printf("\t\t********欢迎大家使用长春工业大学图书管理系统********\n\n-%s-\n\n",menu_item);
 } 
//等待返回函数 
void return_confirm()
{
	printf("\n请按任意键返回……\n");
	getch();
} 


 
book_add()
{
	int i;
	system("cls");   //清屏 
	page_title("注册新书"); 
	for(i=0;i<2;i++)
	{
		
		printf("序号:");
		scanf("%d",&books[i].id);
		printf("书名:");
		scanf("%s",&books[i].name); 
		printf("作者:");
		scanf("%s",&books[i].author); 
		printf("出版社:");
		scanf("%s",&books[i].publish); 
		printf("数量:");
		scanf("%d",&books[i].total);
		books[i].store=books[i].total;
		printf("\n"); 
		
		
			
	} 
}


book_show()
{
	int i,flag=0;
	system("cls");
	for(i=0;i<100;i++)
	{     
		if(strlen(books[i].publish)!=0)
		{
			printf("序号:%d\t  ",books[i].id);
			printf("书名:%s\t  ",books[i].name);
			printf("作者:%s\t  ",books[i].author);
			printf("出版社:%s\t  ",books[i].publish);
			printf("存数:%d\t",books[i].store);
			printf("总数:%d\n\n",books[i].total);
			flag=1;
			
		}	
	} 
	
	if(flag==0)
	{
		printf("没有找到相关书籍\n");
		
	}
	
	getch();
	return i;	
}


int book_search()
{
	int n,i,flag=0;
	char nam[30];
	system("cls");
	printf("请输入书名:");
	scanf("%s",&nam);
	for(i=0;i<100;i++)
	{
		if(strcmp(books[i].name,nam)==0)
		{
			printf("序号:%d\t  ",books[i].id);
			printf("书名:%s\t  ",books[i].name);
			printf("作者:%s\t  ",books[i].author);
			printf("出版社:%s\t  ",books[i].publish);
			printf("存数:%d\t",books[i].store);
			printf("总数:%d\n",books[i].total);
			n=i;
			flag=1;
			getch();
			break;
		}	
		
	} 
		
		if(flag==0)
		{
			printf("\n没有找到相关书籍\n");
			getch();
			return -1;
		}
	return n;
}

book_edit()
{
	int i,id_change;
	system("cls");
	page_title("修改图书信息:");
	printf("输入要修改的图书id:");
	scanf("%d",&id_change);
	
	for(i=0;i<100;i++)
	{
		if(books[i].id==id_change)
		{
		
		printf("修改书名:");
		scanf("%s",&books[i].name); 
		printf("修改作者:");
		scanf("%s",&books[i].author); 
		printf("修改出版社:");
		scanf("%s",&books[i].publish); 
		printf("修改数量:");
		scanf("%d",&books[i].total);
		printf("修改图书信息成功\n");
		books[i].store=books[i].total;
		return i; 
		}	
	} 
	
	printf("\n没有找到相关信息\n");
	getch();
	return -1;
}


int book_del()
{
	int i,num,j;
	system("cls");
	page_title("删除图书");
	printf("输入所要删除的书的id:");
	scanf("%d",&num);
	for(i=0;i<100;i++)
	{
		if(books[i].id==num)
		{
			for(j=i;j<100;j++)
			{
				books[j].id=books[j+1].id;
				strcpy(books[j].name,books[j+1].name);
				strcpy(books[j].publish,books[j+1].publish);
				printf("该书已经删除了!!!\n");
				getch();
				return i;
			}
		}	
	} 
	printf("未找到相关记录\n");
	getch();
	return -1;
}




//借书 
book_out()
{
	int n,s,i,d;
	system("cls");
	page_title("借阅图书");
	n=book_search();
	if(n!=-1&&books[n].store>0)
	{
		//赋初值,全为零 
	for(i=0;i<10;i++)
		{
			
				books[n].user[i]=0;
				books[n].days[i]=0;
					
		} 	 
		
		
		
		
		printf("借书证序号:");
		scanf("%d",&s);
		printf("输入可借天数:");
		scanf("%d",&d); 
		
		books[n].user[0]=s;
		books[n].days[0]=d; 
		books[n].store--;	
	
		
	}
	
	else if(n!=-1&&books[n].store==0)
	{
		printf("此书已经完全借完\n\n");
		getch();
	}
	else
			;
	
	
	return_confirm();
}



 //归还图书
void book_in()
{
	int n,s,i;
	page_title("归还图书");
	n=book_search();
	printf("%d",n);
	if(n!=-1&&books[n].store<books[n].total)
	{
		printf("借阅图书证列表\n");
		for(i=0;i<10;i++)
		{
			if(books[n].user!=0)
			{
				printf("[%d]--%d天\n",books[n].user[i],books[n].days[i]);
			}
			printf("输入借书证号:");
			scanf("%d",&s);
			for(i=0;i<10;i++)
			{
				if(books[n].user[i]==s)
				{
					books[n].store++;
				}
			}
		} 
	}
	
	
	if(n!=-1&&books[n].store==books[n].total)
		{
			printf("全部归还\n");
		}
	else if(n!=-1&&books[n].store<books[n].total)
	{
		printf("归还成功\n");
	}
	else 	
			;
	return_confirm();
	
}  








main()
{

	menu:page_title("操作选单");
	 printf("用数字选择操作\n\n");
	 printf("\t\t1注册新书\t\t2显示图书\n");
	 printf("\t\t3查询图书信息\t\t4修改图书信息\n");
	 printf("\t\t5删除图书\t\t6借阅图书\n");
	 printf("\t\t7归还图书\t\t8退出系统\n");
	 printf("请按数字键:\n");
	
	switch(getchar())
	{
		case'1': book_add();break;
		case'2': book_show();break;
		case'3': book_search();break;
		case'4': book_edit();break;
		case'5': book_del();break;
		case'6': book_out();break;
		case'7': book_in();break;
		case'8': exit(0);
		
	}    
	goto menu;
	
	
 } 

Guess you like

Origin blog.csdn.net/m0_54570435/article/details/130246281
C