C语言实现简单的图书管理系统

本文实例为大家分享了C语言实现简单图书管理系统的具体代码,供大家参考,具体内容如下

代码:

/*
 课程设计项目名称:图书查询系统
 作者:施瑞文
 时间:2018.3.4
*/
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<conio.h>
#include<stdlib.h>
#define N sizeof(struct BOOK)

struct BOOK    //图书信息
{
 char number[10];  //登录号
 char name[10];   //书名
 char author[10];  //作者名
 char type[10];   //类型
 char publish[10]; //出版单位
 char time[8];    //出版时间
 float price;    //价格
 int num;     //数量
 int x;
 struct BOOK *next;  //指针域
};
typedef struct BOOK Book;
typedef Book *book; 

void HideCursor();  //隐藏光标
void toxy(int x, int y);  //将光标移动到X,Y坐标处
void color(short x);   //设置颜色
void over();       //退出
void menu();      //菜单
void input_book();   //图书入库
void save_book(book p);//将图书信息存入文件
void find_book();   //查询
void print_book();  //图书总览
void del_book();   //删除图书
void amend_book();  //修改信息
book ss();
void find_name_book(); //按书名查询
void find_author_book(); //按作者查询
void find_number_book(); //按登录号查询
void find_publish_book(); //按出版社查询
void fuzzy_search();   //模糊查找 

void HideCursor()   //隐藏光标
{
 CONSOLE_CURSOR_INFO cursor_info = {1, 0};
 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

void color(short x)
{
 if(x>=0&&x<=15)
 {
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
 }
 else
 {
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
 }
} 

void toxy(int x, int y)   //将光标移动到X,Y坐标处
{
COORD pos = { x , y };
HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(Out, pos);
}

void menu()  //菜单
{
 do
 {
 system("cls"); //清屏
 HideCursor(); //隐藏光标
 color(15);  //设置一个好看的颜色
 char t;
 toxy(50,5);//将光标移动到(50,5)坐标处
 printf(" 图书查询管理系统");
 toxy(48,8);
 printf("|   1.图书入库   |");
 toxy(48,10);
 printf("|   2.修改信息   |");
 toxy(48,12);
 printf("|   3.删除信息   |");
 toxy(48,14);
 printf("|   4.图书查询   |");
 toxy(48,16);
 printf("|   5.图书总览   |");
 toxy(48,18);
 printf("|   6.退出软件   |");
 t=getch();  //不回显函数
 switch(t)
 {
  case '1':input_book();break;
  case '2':amend_book();break;
  case '3':del_book();break;
  case '4':find_book();break;
  case '5':print_book();break;
  case '6':over();break;
  default :break;
 }
 }while(1);
} 

book ss()   //将文件中的内容读出到链表中,返回值为表头地址
{
 FILE *fp;    //文件指针
 int n=0;
 book head=NULL;
 book p2,p,pr=NULL;
 fp=fopen("mybook","ab+");   //以只读的方式打开文件
 if(fp==NULL)
 {
 printf("cannot open file\n");
 }
 while(!feof(fp))    //判断文件位置标志是否移动到文件末尾
 {
  n++;
   p=(book)malloc(N); //向内存申请一段空间
  fread(p,N,1,fp);   //将fp所指向的文件中的内容赋给p
  if(n==1)
  {
    head=p;
    p2=p;
   }
   else       //创建链表
   {
   pr=p2;
   p2->next=p;
   p2=p;
 }
  }
  if(pr!=NULL)
    pr->next=NULL;
  else
    head=NULL;
  fclose(fp);  //关闭文件
  return head;  //返回头指针
}

void input_book()  //图书录入
{
 do
 {
 system("cls");
 color(10);
 char t;
 book p;
 p=(book)malloc(N);   //申请空间
 //输入图书信息
 toxy(48,8);
 printf("请输入图书登录号(小于10位数):");
 scanf("%s",p->number);getchar();
 toxy(48,10);
 printf("请输入书名(小于10位数):");
 scanf("%s",p->name);getchar();
 toxy(48,12);
 printf("请输入作者名(小于10位数):");
 scanf("%s",p->author);getchar();
 toxy(48,14);
 printf("请输入图书类别(小于10位数):");
 scanf("%s",p->type);getchar();
 toxy(48,16);
 printf("请输入图书出版单位(小于10位数):");
 scanf("%s",p->publish);getchar();
 toxy(48,18);
 printf("请输入图书出版时间(小于8位数):");
 scanf("%s",p->time);getchar();
 toxy(48,20);
 printf("请输入图书价格:");
 scanf("%f",&p->price);getchar();
 toxy(48,22);
 printf("请输入图书数量:");
 scanf("%d",&p->num);
 save_book(p);
 toxy(48,24);
 printf("正在保存....");
 Sleep(500);  //暂停0.5秒
 system("cls");
 toxy(46,8);
 printf("-------------------------");
 toxy(46,9);
 printf("|            |");
 toxy(46,10);
 printf("| 保存成功!是否继续? |");
 toxy(46,12);
 printf("| 1.是       2.否 |");
 toxy(46,13);
 printf("|            |");
 toxy(46,14);
 printf("-------------------------");
 while(1)  //利用死循环可有效防止其他按键干扰
 {
  t=getch();
  if(t=='1')
  {
  break;
  }
  else if(t=='2')
  {
   menu();
  }
 }
 }while(1);

} 

void amend_book()  //修改图书信息
{
 do
 {
 system("cls");
 color(10);
 book head,p;
 int i=11,j=0,x;
 char ch,t;
 FILE *fp;  //文件指针
 char _name[10];
 char number[10];  //登录号
 char name[10];   //书名
 char author[10];  //作者名
 char type[10];   //类型
 char publish[10]; //出版单位
 char time[8];    //出版时间
 float price;    //价格
 int num;     //数量
 head=ss();
 p=head;
 toxy(48,10);
 printf("请输入你要修改的图书的书名:");
 gets(_name);
 while(p!=NULL)  //初始化p->x为0
 {
  p->x=0;
  p=p->next;
 }
 p=head;  //让p重新指向表头
 toxy(20,5);
 printf("***********************************************图书信息******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
  if(p!=NULL&&strcmp(p->name,_name)==0)
  {
  toxy(20,i);
  j++;
  printf("%d:%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",j,p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  p->x=j;  //给符合查询标准的结点标号
  i++;
  }
  p=p->next;
 }
 if(j==0)          //如果j=0,即没有进入前面的搜索循环,也就是没有找到相应的信息
 {
  toxy(50,i);
  printf("没有找到相应的信息!(按0返回,按1重新搜索)");
  while(1)        //死循环是为了防止除0和1的其他按键干扰
  {
  ch=getch();
  if(ch=='0')
  {
   menu();break;
  }
  else if(ch=='1')
  {
   break;
  }
  }
  if(ch=='1')   //如果输入的ch等于1,则结束本次循环
   continue;
 }
 while(1)
 {
  toxy(45,i);
  printf("请输入您要修改的图书的编号:");
  scanf("%d",&x);getchar();
  if(x>j||x==0)
  {
  toxy(45,++i);
  printf("输入错误,请重新输入!");
  Sleep(500);
  }
  else
  {
  break;
  }
 }
 p=head;   //让p重新指向表头
 while(p!=NULL&&p->x!=x)  //遍历链表查询符合条件的结点
 {
  p=p->next;
 }
 if(p)  //如果p不为空
 {
  system("cls");
  //输入要修改的信息
  toxy(48,8);
  printf("请输入图书登录号(小于10位数):");
  scanf("%s",number);getchar();strcpy(p->number,number);
  toxy(48,10);
  printf("请输入书名(小于10位数):");
  scanf("%s",name);getchar();strcpy(p->name,name);
  toxy(48,12);
  printf("请输入作者名(小于10位数):");
  scanf("%s",author);getchar();strcpy(p->author,author);
  toxy(48,14);
  printf("请输入图书类别(小于10位数):");
  scanf("%s",type);getchar();strcpy(p->type,type);
  toxy(48,16);
  printf("请输入图书出版单位(小于10位数):");
  scanf("%s",publish);getchar();strcpy(p->publish,publish);
  toxy(48,18);
  printf("请输入图书出版时间(小于8位数):");
  scanf("%s",time);getchar();strcpy(p->time,time);
  toxy(48,20);
  printf("请输入图书价格:");
  scanf("%f",&price);getchar();p->price=price;
  toxy(48,22);
  printf("请输入图书数量:");
  scanf("%d",&num);getchar();p->num=num;
 }
 color(7);
 toxy(46,8);
 printf("-------------------------");
 toxy(46,9);
 printf("|            |");
 toxy(46,10);
 printf("|   是否确认修改?  |");
 toxy(46,12);
 printf("| 1.是       2.否 |");
 toxy(46,13);
 printf("|            |");
 toxy(46,14);
 printf("-------------------------");
 while(1)  //利用死循环防止其他按键干扰
 {
  t=getch();
  if(t=='1')
  {
  break;
  }
  else if(t=='2')
  {
  menu();
  }
 }
 system("cls");
 toxy(46,10);
 printf("正在修改,请稍后....");
 fp=fopen("mybook","wb");  //以只写的方式打开名为mybook的二进制文件,打开的同时清空文件中的内容
 if(fp==NULL)
 {
  printf("cannot open file");
 }
 if(fwrite(head,N,1,fp)!=1)  //将head写入fp所指向的文件中
 {
  printf("write error!");
 }
 fclose(fp);  //关闭文件
 if(head!=NULL)  //如果head不为空
 {
  p=head->next;   //让p指向第二个结点
  fp=fopen("mybook","ab");  //以追加的方式打开文件
  if(fp==NULL)
  {
  printf("cannot open file");
  }
  while(p!=NULL)
  {
  if(fwrite(p,N,1,fp)!=1)//将p写入fp所指向的文件中
  {
   printf("write error!");
  }
  p=p->next;
  }
  fclose(fp); //关闭文件
 }
 Sleep(500);  //暂停0.5秒
 system("cls");
 toxy(46,10);
 printf("修改成功!即将自动返回主菜单....");
 Sleep(500);
 break;
 }while(1);
}

void del_book()  //删除信息
{
 do
 {
 system("cls");
 color(9);
 FILE *fp;
 book head,p,pre=NULL;
 int j=0,x,i=11;
 char name[10];
 char t,c,ch;
 head=ss();  //调用函数,返回表头地址
 toxy(48,10);
 printf("请输入你要删除的图书的书名:");
 scanf("%s",name);
 p=head;
 while(p!=NULL)
 {
  p->x=0;
  p=p->next;
 }
 p=head;
 toxy(20,5);
 printf("***********************************************图书信息******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
  if(p!=NULL&&strcmp(p->name,name)==0)
  {
  toxy(20,i);
  j++;
  printf("%d:%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",j,p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  p->x=j;
  i++;
  }
  p=p->next;
 }
 if(j==0)          //如果j=0,即没有进入前面的搜索循环,也就是没有找到相应的信息
 {
  toxy(50,i);
  printf("没有找到相应的信息!(按0返回,按1重新搜索)");
  while(1)        //死循环是为了防止除0和1的其他按键干扰
  {
  ch=getch();
  if(ch=='0')
  {
   menu();break;
  }
  else if(ch=='1')
  {
   break;
  }
  }
  if(ch=='1')   //如果输入的ch等于1,则结束本次循环
   continue;
 }
 while(1)
 {
  toxy(45,i);
  printf("请输入您要删除的图书的编号:");
  scanf("%d",&x);getchar();
  if(x>j||x==0)
  {
  toxy(45,++i);
  printf("输入错误,请重新输入!");
  Sleep(500);
  }
  else
  {
  break;
  }
 }
 color(7);
 toxy(46,8);
 printf("-------------------------");
 toxy(46,9);
 printf("|            |");
 toxy(46,10);
 printf("|   是否确认删除?  |");
 toxy(46,12);
 printf("| 1.是       2.否 |");
 toxy(46,13);
 printf("|            |");
 toxy(46,14);
 printf("-------------------------");
 while(1)
 {
  t=getch();
  if(t=='1')
  {
  break;
  }
  else if(t=='2')
  {
  menu();
  }
 }
 p=head;
 while(p!=NULL&&p->x!=x)
 {
  pre=p;
  p=p->next;
 }
 if(p!=NULL)
 {
  if(pre==NULL)
  {
  head=head->next;
  }
  else
  {
  pre->next=p->next;
  }
 }
 free(p);
 fp=fopen("mybook","wb");
 if(fp==NULL)
 {
  printf("cannot open file");
 }
 if(fwrite(head,N,1,fp)!=1)
 {
  printf("write error!");
 }
 fclose(fp);
 if(head!=NULL)
 {
  p=head->next;
  fp=fopen("mybook","ab");
  if(fp==NULL)
  {
  printf("cannot open file");
  }
  while(p!=NULL)
  {
  if(fwrite(p,N,1,fp)!=1)
  {
   printf("write error!");
  }
  p=p->next;
  }
  fclose(fp);
 }
 system("cls");
 toxy(46,10);
 printf("正在删除,请稍后....");
 Sleep(500);
 system("cls");
 toxy(46,8);
 printf("-------------------------");
 toxy(46,9);
 printf("|            |");
 toxy(46,10);
 printf("| 删除成功,是否继续? |");
 toxy(46,12);
 printf("| 1.是       2.否 |");
 toxy(46,13);
 printf("|            |");
 toxy(46,14);
 printf("-------------------------");
 while(1)
 {
  c=getch();
  if(c=='1')
  {
  break;
  }
  else if(c=='2')
  {
  menu();
  }
 }
 }while(1);
}

void print_book()  //图书总览
{
 system("cls");
 color(6);
 book head,p;
 int i=11;
 int sum=0;
 head=ss();
 toxy(20,5);
 printf("***********************************************图书总览******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 if(head==NULL)
 {
 toxy(45,11);
 printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)");
 getch();
 menu();
 }
 p=head;
 while(p!=NULL)
 {
 toxy(20,i);
 printf("%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
 i++;
 sum+=p->num;//计算图书总量
 p=p->next;
 }
 toxy(48,7);
 printf("图书总量为:%d",sum);
 toxy(45,i);
 printf("按任意键返回");
 getch();//不回显函数
}

void find_book() //查询图书
{
 do
 {
 system("cls"); //清屏
 color(8);
 char t;
 toxy(50,5);
 printf(" 图书查询");
 toxy(48,8);
 printf("|   1.书名 查询   |");
 toxy(48,10);
 printf("|   2.作者 查询   |");
 toxy(48,12);
 printf("|   3.登录号查询   |");
 toxy(48,14);
 printf("|   4.出版社查询   |");
 toxy(48,16);
 printf("|   5.模糊 查询   |");
 toxy(50,18);
 printf("按0返回主菜单");
 t=getch();
 switch(t)
 {
  case '0':menu();break;
  case '1':find_name_book();break;
  case '2':find_author_book();break;
  case '3':find_number_book();break;
  case '4':find_publish_book();break;
  case '5':fuzzy_search();break;
  default :break;
  }
 }while(1);
}

void find_name_book() //按名字查询
{
 system("cls");
 color(8);
 book head,p;
 int i=11;
 head=ss();
 char name[10];
 toxy(48,8);
 printf("请输入您要查询图书的书名:");
 gets(name);
 toxy(48,10);
 printf("正在查询....");
 Sleep(500);
 p=head;
 toxy(20,5);
 printf("***********************************************图书总览******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
 if(p!=NULL&&strcmp(p->name,name)==0)
 {
  toxy(20,i);
  printf("%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  i++;
 }
 p=p->next;
 }
 toxy(45,i);
 printf("按任意键返回!");
 getch();
 find_book();
}

void find_author_book()  //按作者名查询
{
 system("cls");
 color(8);
 book head,p;
 int i=11;
 head=ss();
 char author[10];
 toxy(48,8);
 printf("请输入您要查询图书的作者名:");
 gets(author);
 toxy(48,10);
 printf("正在查询....");
 Sleep(500);
 p=head;
 toxy(20,5);
 printf("***********************************************图书总览******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
 if(p!=NULL&&strcmp(p->author,author)==0)
 {
  toxy(20,i);
  printf("%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  i++;
 }
 p=p->next;
 }
 toxy(45,i);
 printf("按任意键返回!");
 getch();
 find_book();
}

void find_number_book()  //按图书编号查询
{
 system("cls");
 color(8);
 book head,p;
 int i=11;
 head=ss();
 char number[10];
 toxy(48,8);
 printf("请输入您要查询图书的登录号:");
 gets(number);
 toxy(48,10);
 printf("正在查询....");
 Sleep(500);
 p=head;
 toxy(20,5);
 printf("***********************************************图书总览******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
 if(p!=NULL&&strcmp(p->number,number)==0)
 {
  toxy(20,i);
  printf("%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  i++;
 }
 p=p->next;
 }
 toxy(45,i);
 printf("按任意键返回!");
 getch();
 find_book();
}

void find_publish_book()  //按出版商查询
{
 system("cls");
 color(8);
 book head,p;
 int i=11;
 head=ss();
 char publish[10];
 toxy(48,8);
 printf("请输入您要查询图书的出版社:");
 gets(publish);
 toxy(48,10);
 printf("正在查询....");
 Sleep(500);
 p=head;
 toxy(20,5);
 printf("***********************************************图书总览******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
 if(p!=NULL&&strcmp(p->publish,publish)==0)
 {
  toxy(20,i);
  printf("%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  i++;
 }
 p=p->next;
 }
 toxy(45,i);
 printf("按任意键返回!");
 getch();
 find_book();
}

void fuzzy_search()  //模糊查询
{
 system("cls");
 color(8);
 book head,p;
 int i=11;
 head=ss();
 char information[10];
 toxy(48,8);
 printf("请输入您要查询图书的信息:");
 gets(information);
 toxy(48,10);
 printf("正在查询....");
 Sleep(500);
 p=head;
 toxy(20,5);
 printf("***********************************************图书总览******************************************************");
 toxy(20,8);
 printf("-------------------------------------------------------------------------------------------------------------");
 toxy(20,9);
 printf("登录号    书名    作者名     图书类别     出版单位     出版时间     价格    数量");
 toxy(20,10);
 printf("-------------------------------------------------------------------------------------------------------------");
 while(p!=NULL)
 {
 if(p!=NULL&&(strcmp(p->name,information)==0||strcmp(p->author,information)==0||strcmp(p->number,information)==0||strcmp(p->publish,information)==0))
 {
  toxy(20,i);
  printf("%s%14s%14s%14s  %14s  %18s     %.2f%12d\n",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
  i++;
 }
 p=p->next;
 }
 toxy(45,i);
 printf("按任意键返回!");
 getch();
 find_book();
}

void save_book(book p)  //将p中内容写入文件
{
 FILE *fp;  //文件指针
 fp=fopen("mybook","ab");  //以追加的方式打开名字为mybook的二进制文件
 if(fp==NULL)
 {
 printf("cannot open file");
 }
 if(fwrite(p,N,1,fp)!=1)  //将p所指向的一段大小为N的内容存入fp所指向的文件中
 {
 printf("write error");
 }
 fclose(fp);  //关闭文件
 } 

void over()    //退出软件
{
 char t;
 toxy(48,11);
 printf("-----------------------");
 toxy(48,12);
 printf("|  您确定要退出吗? |");
 toxy(48,14);
 printf("| 1.确定   2.取消  |");
 toxy(48,15);
 printf("-----------------------");
 while(1)
 {
 t=getch();     //输入t
 switch(t)
 {
  case '1':
  system("cls");
   color(6);
  toxy(48,10);
  printf("正在安全退出....");
  Sleep(1000);   //暂停1秒
  system("cls");
  color(8);
  toxy(48,10);
  printf("已安全退出软件");
  toxy(48,12);
  printf("谢谢使用!");
  toxy(48,14);
  printf("by-by^_^");
  exit(0); break; //终止程序
  case '2':
  menu(); break;  //调用函数,进入菜单
  default :break;
 }
 }
} 

main()  //简洁明了的主函数
{
 menu();//菜单
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言图书管理系统简洁版

    DOS界面的图书管理系统,具体内容如下 程序分为两块:管理员操作(收录图书.删除图书等)和会员操作(注册.借书.还书等): 1.管理员操作界面 2.会员操作界面 global.h头文件:(程序中只使用了一个编写的头文件,在这里存放了所有的接口函数以及需要使用到的头文件,还有结构体的定义) #include "iostream" #include "string" #include "fstream" #include "conio.h&

  • C语言图书管理系统课程设计

    这是本人大一第二学期初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]; cha

  • C语言链表实现图书管理系统

    之前参照网上的资料用链表实现了图书管理系统,包括简单的增删改查功能以及借书还书功能,我是VC6.0下写的一个控制台程序,格式参照的网上的.在动手编码之前,你需要理清自己的思路.首先,需要确定图书馆里系统中主要有那几个对象,这里我写了学生对象和图书对象.不妨在纸上写出或画出它们主要包括哪些属性以及其可能的对应关系,这里根据不同人的要求会有所不同.清楚这些之后,就可以设计学生和图书的数据结构,比如这里我用的结构体存储其信息.然后就需要考虑,我想要哪些功能,除了基本的增删改查之外,我还想要哪些功能?比

  • C语言设计图书登记系统与停车场管理系统的实例分享

    图书登记管理系统 图书登记管理系统应该具有下列功能: (1). 通过键盘输入某本图书的信息: (2) .给定图书编号,显示该本图书的信息: (3) .给定作者姓名,显示所有该作者编写的图书信息: (4) .给定出版社,显示该出版社的所有图书信息: (5) .给定图书编号,删除该本图书的信息: (6) .提供一些统计各类信息的功能. 程序完整的实现代码如下: #include "stdio.h" #include "stdlib.h" #include "s

  • C语言实现图书管理系统

    目前为止跟着学校进度学习C语言大概半年左右,基础学习只学到了指针,学得非常浅.说实话,起初对C语言的印象---只是一个学习计算机语言的敲门砖,对具体C语言如何应用等,非常迷茫.直到大一下半学期的高级语言设计课程之后,试过dos运行的图形化界面的完整小程序,才发现C语言的魅力. ok,废话不多说了,下面是我第二节课的作品----C语言的图书管理系统.一个简单的小程序.并非纯原创,是基于网络搜索到的"学生管理系统"改编而成的.通过直接浏览.修改一个完整的代码,我的收获颇丰.我认为这样比枯燥

  • C语言实现简单的图书管理系统

    本文实例为大家分享了C语言实现简单图书管理系统的具体代码,供大家参考,具体内容如下 代码: /* 课程设计项目名称:图书查询系统 作者:施瑞文 时间:2018.3.4 */ #include<stdio.h> #include<string.h> #include<windows.h> #include<conio.h> #include<stdlib.h> #define N sizeof(struct BOOK) struct BOOK //

  • C语言大作业之图书管理系统的实现详程

    目录 主要内容 概要设计 项目源码 结构体 登录界面函数 选择界面函数 操作界面函数 添加函数 查找函数 删除函数 借书管理函数 信息储存函数 还书函数 修改函数 添加借书函数 查找借书函数 借书管理函数 主函数 总结 序 时间在流去,我们在长大. 嗨,这里是狐狸~~ 今天是2022年的一月四日了,元旦小长假也过去了,新年新气象,新年新目标,我们要向前看,不要执意过去了,感谢过去,把握现在,展望未来,这是我们现在应该做的.好了,废话不多说,今天我们分享一个系统,确实也有许久没有分享过系统了,今天

  • java实现简单的图书管理系统

    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一.项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get.set方法 Library类: 写了登录函数(1.普通用户,2.管理员,3.退出系统), Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get.set方法,定义了一些书. operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表 Root类:继承了Person

  • C语言单链表实现图书管理系统

    本文实例为大家分享了C语言单链表实现图书管理系统的具体代码,供大家参考,具体内容如下 单链表实现的图书管理系统相比于结构体实现的管理系统,可以随时开辟新的空间,可以增加书的信息 单链表的实现 首先肯定还是打印单链表的常规操作,创建表头,创建节点,表头法插入,特定位置删除,打印链表 struct book {     char name[20];     float price;     int num;          //书的数量 }; //3 数据容器--链表 struct Node {

  • C语言实现简单员工工资管理系统

    本文实例为大家分享了C语言实现简单员工工资管理系统的具体代码,供大家参考,具体内容如下 (一)公司现状分析 1.公司主要有经理.技术员.销售员.销售经理4类岗位人员,他们都有基本信息:职工号.姓名.性别.部门.岗位.工龄.当月工资等.一个部门最多只能有一个销售经理,一个部门可以有多个销售员,一个部门可以有若干个经理和若干技术员. 2.员工数据包括基本资料数据和工资数据两部分,员工基本资料数据包括职工号.姓名.性别.部门.岗位.工龄:员工工资数据包括工作时间.小时工资.销售额.底薪.当月工资. 3

  • 基于C语言实现简单学生成绩管理系统

    本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.系统主要功能 1.密码登录2.输入数据3.查询成绩4.修改成绩5.输出所有学生成绩6.退出系统 二.代码实现 #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 struct student {     char num[10];     char name[20];     int ol

  • C语言实现简单的停车场管理系统

    本文实例为大家分享了C语言实现简单停车场管理系统的具体代码,供大家参考,具体内容如下 1.问题描述 1)有一个两层的停车场,每层有6个车位,当第一层车位停满后才允 许使用第二层(停车场可用一个二维数组实现),每辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分钟计算:2)假设停车场初始状态为第一层空.第二层已经有四辆车,其车位号依次为第二层的1-4号,停车时间依次为20,15,10,5:3)停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先

  • C++实现简单的图书管理系统

    今天再为大家介绍另一个常用的管理系统--图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果. 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式)         .按书名查询         .按作者名查询 (4)图书信息的删除与修改 分享代码如下 #include<iostream.h>

  • Python实现简单的图书管理系统

    本文实例为大家分享了Python实现图书管理系统的具体代码,供大家参考,具体内容如下 题目要求: 利用Python写一个简易的图书管理系统 需求: 图书管理系统 1.查询图书2.增加图书3.借阅图书4.归还图书5.退出系统 代码如下: class Book(object):     def __init__(self, name, author, status, bookindex):         self.name = name         self.author = author  

  • C语言实现简单班级成绩管理系统

    前言: 有朋友最近在做c语言课设,要求写一个班级成绩管理系统,便写份简单的代码来玩.代码原创,未参考任何其他人的代码 程序要求 说明 本程序主要采用结构体数组 本文件采用多文件编写,由于程序规模小,故未采用编写头文件的方式 使用 #pragma once 来防止头文件重复包含 代码 怎么使用本程序看看注释应该就知道了.run main.c 就行.其他各文件作用: def.c 定义了一些常量和全局变量,结构体 myIO.c 实现了成绩录入和成绩打印输出 file.c 实现了将成绩保存为文件 men

随机推荐