⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图书管理系统.cpp

📁 一个学生通讯录系统 用C++做的 有以下功能:能查看所有成员的名单。 能增加、删除、修改一位成员的资料。 能查询成员资料。 能清空通讯录。
💻 CPP
字号:
//信息工程系图书管理系统

#include "stdio.h"
#include "process.h"
#include "string.h"
#define N 6
struct BOOK{
      char name[10];   /*图书名称*/
      int num;        /*图书编号*/
      int press;       /*图书所属的出版社*/
      float price;
      char borrower[20];
      struct DATE{
         int year;
         int month;
         int day;
      }borrow,back;  /*借书日期,归还日期*/
      struct BOOK *next;   /*定义一个象自己一样的结构体变量*/
};
void enter_data(struct BOOK book[]);
void find_data(struct BOOK book[]);
void show_data(struct BOOK book[]);
struct BOOK *add(),*dele();
void main()
{
   int m=0,n;
   struct BOOK book[N];
   struct BOOK *x,*y;
    while(m==0)
   {
      printf("\n");
      printf("*********************\n");
      printf(" * * * * * * * * * *\n");
      printf("* 信息工程系图书管理系统 *\n");
      printf(" * * * * * * * * * *\n");
      printf("*                  *\n");
      printf("* 1.建立数据函数 *\n");
      printf("* 2.增加数据函数 *\n");
      printf("* 3.删除数据函数 *\n");
      printf("* 4.查找数据函数 *\n");
      printf("* 5.输出数据函数 *\n");
      printf("* 6.退出系统 *\n");
      printf("*                 *\n");
      printf("********************\n");
      printf(" 请输入选项(1-6): \n");
      scanf("%d",&n);
      switch(n)
      {
         case 1:printf("执行建立数据函数的命令。\n");enter_data(book);break;
         case 2:printf("执行增加数据函数的命令。\n");y=add();break;
         case 3:printf("执行删除数据函数的命令。\n");x=dele();break;
         case 4:printf("执行查找数据函数的命令。\n");find_data(book);break;
         case 5:printf("执行输出数据函数的命令。\n");show_data(book);break;
         case 6:printf("退出系统。\n");m=1;break;
         default:printf("输入有误,重输!!\n");break;
      }
   }
}
void enter_data(struct BOOK book[N])
{
   int i;
 /*  FILE *fp;    //定义文件指针
   if((fp=fopen("BOOK.dat","r"))==NULL)  //打开文件失败,退出
   {
      printf("cannot open this file\n");
      exit(1);
   }                          */
   for(i=0;i<N;i++)
   {
      printf("please input the xinxi of this book:\n");
      scanf("%s%d%d%12f%s%d%d%d%d%d%d",book[i].name,&book[i].num,&book[i].press,&book[i].price,book[i].borrower,&book[i].borrow.year,&book[i].borrow.month,&book[i].borrow.day,&book[i].back.year,&book[i].back.month,&book[i].back.day);
      printf("\n\n");
   }
}
struct BOOK *add()
{
	int i,j;
	struct BOOK book[20];
	struct BOOK *p,*q,*head,*next;
	p=head;
	if(p==NULL)   exit(1);
        puts("please input the data:");
	scanf("%s%d%d%12f%s%d%d%d%d%d%d",book[i].name,&book[i].num,&book[i].press,&book[i].price,book[i].borrower,&book[i].borrow.year,&book[i].borrow.month,&book[i].borrow.day,&book[i].back.year,&book[i].back.month,&book[i].back.day);
        
	if(i==0&&head==NULL)
		return p;
	else if(i<0)   /*数据错误,不做任何操作*/
		return head;
	else
	{
		j=1;
		q=head;
		while(q->next!=NULL&&j<i)    /*走链到第i个结点*/
		{
			q=q->next;
			j++;
		}
		if(j==i)
		{
			p->next=q->next;
			q->next=p;
			return head;
		}
	}
}

void find_data(struct BOOK book[])
{
	char temp_name[10];
	int i;
	
	printf("\nplease input name of a book  that you want to find");
	scanf("%s",temp_name);   /*输入要查询的图书名称*/
	for(i=0;i<N;i++)
	{
		if(strcmp(book[i].name,temp_name)==0)
		{
			printf("%s %d %d %12f %s %d %d %d %d %d %d",book[i].name,&book[i].num,&book[i].press,&book[i].price,book[i].borrower,&book[i].borrow.year,&book[i].borrow.month,&book[i].borrow.day,&book[i].back.year,&book[i].back.month,&book[i].back.day);
                        break;   /*跳出循环*/
		}
	}
	if(i<0||i>=N)      /*查询失败输出失败信息*/
		printf("not found\n");    
}
struct BOOK *dele()
{
	int i,j;
	struct BOOK *q,*head;
	if(i==0||head==NULL)   return head;    /*如果原来的链表为空或参数为0*/
	else if(i<0)   return head;        /*错误数据,不做任何操作*/
	else if(i==1&&head->next==NULL)    return NULL;
	else  
	{
       j=1;
	   q=head;
	   while(q->next->next!=NULL&&j<i-1)    /*走链到第i-1个结点*/
	   {
		 q=q->next;
		 j++;
	   }
	   if(j==i-1)
	   {
		 q->next=q->next->next;
		 return head;
	   }
	}
}
void show_data(struct BOOK book[])
{
   int i;
   FILE *fp;     /*定义文件指针*/
   if((fp=fopen("TEACHER.dat","r"))!=NULL)
   {
      for(i=0;i<N;i++)
      {
         fscanf(fp,"%s%d%d%12f%s%d%d%d%d%d%d",book[i].name,&book[i].num,&book[i].press,&book[i].price,book[i].borrower,&book[i].borrow.year,&book[i].borrow.month,&book[i].borrow.day,&book[i].back.year,&book[i].back.month,&book[i].back.day);    /*从文件中读入各项数据*/
         printf("%s%d%d%12f%s%d%d%d%d%d%d",book[i].name,book[i].num,book[i].press,book[i].price,book[i].borrower,book[i].borrow.year,book[i].borrow.month,book[i].borrow.day,book[i].back.year,book[i].back.month,book[i].back.day);
         printf("\n\n");
      }
   }
   else
   {
      printf("\ncannot open this file\n");   /*文件打开失败,退出*/
      exit(1);
   }
   fclose(fp);            /*关闭文件*/
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -