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

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

// MyLibManSys.cpp : Defines the entry point for the console application.
// 

#include "stdafx.h"
#include "iostream" 

struct book{
  int id;
  char title[20];
  char author[20];
  double price;
  char state[20];
  int student_id;
  char student_name[20];
  struct book* next;
}; 

struct student{
  int id;
  char name[20];
  char sex[10];
  char borrow_book[30];
  struct student* next;
};
void Print_Book(struct book *head_book);
void Print_Student(struct student *head_student);
struct book *Create_New_Book();/*创建新的图书库*/
struct student *Create_New_Student();/*创建新的学生库*/
struct book *Insert_Book(struct book *head_book,struct book *new_book);/*增加图书,逐个添加*/
//void Insert_Book(struct book *head_book,struct book *new_book);/*增加图书,逐个添加*/
//函数的参数是一个指针时,不要在函数体内部改变指针所指的地址,那样毫无作用,需要修改的只能是指针所指向的内容。即应把指针当作常量
struct student *Insert_Student(struct student *head_student,struct student *new_student);/*增加学生,逐个添加*/
struct book *Search_Book_ById(int id,struct book *head_book);
struct book *Search_Book_ByTitle(char *title,struct book *head_book);
struct book *Search_Book_ByPrice(double price_h,double price_l,struct book *head_book);
//bool Delete_Book(int id,book* head_book);
struct book* Delete_Book(int id,book* head_book);
struct student *Search_Student(int id,struct student *head_student);
struct student* Delete_Student(int id,student* head_student); 

void Lent_Book(int id,int student_id,struct book *head_book,struct student *head_student);
void Back_Book(int id,int student_id,struct book *head_book,struct student *head_student); 

int main()
{
  struct book* head_book,*p_book;
  struct student* head_student, *p_student;
  int choice, f, id, student_id;
  int m = 1;
  char name[20],sex[10];
  char title[20];
  double price_h,price_l,price;
  char author[20];
  int size_book=sizeof(struct book);
  int size_student=sizeof(struct student);
  printf("\n欢迎您第一次进入图书管理系统!\n\n");
  printf("----->[向导]----->[新建图书库]\n\n");
  printf("注意:当输入图书编号为0时,进入下一步.\n\n");
  head_book=Create_New_Book();
  system("cls");
  //Print_Book(head_book);
  printf("\n欢迎您第一次进入图书管理系统!\n\n");
  printf("----->[向导]----->[新建会员库]\n\n");
  printf("注意:当输入会员学号为0时,进入主菜单.\n\n");
  head_student=Create_New_Student();
  system("cls");
  //Print_Student(head_student);
  do{
    printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
    printf("\n");
    printf("\t\t\t[1]:借书办理\t");printf(" [6]:还书办理\n");
    printf("\n");
    printf("\t\t\t[2]:查询图书\t");printf(" [7]:查询学生\n");
    printf("\t\t\t[3]:添加图书\t");printf(" [8]:添加学生\n");
    printf("\t\t\t[4]:删除图书\t");printf(" [9]:删除学生\n");
    printf("\t\t\t[5]:遍历图书\t");printf("[10]:遍历学生\n\n");
    printf("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n");
    printf("\t\t\t0:退出\n\n");
    printf("请选择<0~10>:");
    scanf("%d",&choice);
    switch(choice){
    case 0:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("\n谢谢您的使用!\n\n");
      break;
    case 1:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("输入借出图书编号:\n");
      scanf("%d",&id);
      printf("输入借入学生学号:\n");
      scanf("%d",&student_id);
      Lent_Book(id,student_id,head_book,head_student);
      break;
    case 2:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("1.按编号查询\n\n");
      printf("2.按名称查询\n\n");
      printf("3.按价格区间查询\n\n");
      printf("0.返回主菜单\n\n");
      printf("请选择:");
      scanf("%d",&f);
      if(f==1){
        printf("请输入查询图书编号:");
        scanf("%d",&id);
        printf("相关信息如下:\n\n");
        head_book=Search_Book_ById(id,head_book);
        break;
      }
      else if(f==2){
        getchar();
        printf("请输入查询图书名称:");
        gets(title);
        printf("相关信息如下:\n\n");
        head_book=Search_Book_ByTitle(title,head_book);
        break;
      }
      else if(f==3){
        printf("请输入最高价格:");
        scanf("%lf",&price_h);
        printf("请输入最低价格:");
        scanf("%lf",&price_l);
        printf("相关信息如下:\n\n");
        head_book=Search_Book_ByPrice(price_h,price_l,head_book);
        break;
      }
      else if(f==0){
        break;
      }
      break;
    case 3:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("请输入图书编号:");
      scanf("%d",&id);
      printf("请输入图书名称:");
      scanf("%s",title);
      printf("请输入作者名字:");
      scanf("%s",author);
      printf("请输入单价:");
      scanf("%lf",&price);
      printf("\n");
      struct book *ptr_b;
      for(ptr_b=head_book;ptr_b;ptr_b=ptr_b->next)
      {
        if(ptr_b->id==id)
        {
          printf("此编号图书已存在\n");
          m=0;
          break;
        }
      }
      if(m){
        p_book=(struct book *)malloc(size_book);
        strcpy(p_book->title,title);
        p_book->id=id;
        p_book->price=price;
        p_book->student_id=-1;
        strcpy(p_book->author,author);
        strcpy(p_book->state,"存在");
        strcpy(p_book->student_name,"待定");
      // head_book=Insert_Book(head_book,p_book);
        Insert_Book(head_book,p_book);
        printf("\n添加图书成功!\n\n");
      }
      break;
    case 4:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("输入删除图书编号:\n");
      scanf("%d",&id);
      /*if(Delete_Book(id,head_book)){
        printf("\n删除图书成功!\n\n");
      }else{
        printf("删除失败");
      }*/
      head_book = Delete_Book(id,head_book);
      break;
    case 5:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      Print_Book(head_book);
      break;
    case 6:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("输入归还图书编号:\n");
      scanf("%d",&id);
      printf("输入归还学生学号:\n");
      scanf("%d",&student_id);
      Back_Book(id,student_id,head_book,head_student);
      break;
    case 7:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("请输入查询学生学号:");
      scanf("%d",&id);
      printf("相关信息如下:\n\n");
      head_student=Search_Student(id,head_student);
      break;
    case 8:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("请输入学生编号:");
      scanf("%d",&id);
      printf("请输入学生姓名:");
      scanf("%s",name);
      printf("请输入学生性别:");
      scanf("%s",sex);
      printf("\n");
      struct student *ptr_s;
      for(ptr_s=head_student;ptr_s;ptr_s=ptr_s->next)
      {
        if(ptr_s->id==id)
        {
          printf("此学号学生已存在\n");
          m=0;
          break;
        }
      }
      if(m){
        p_student=(struct student *)malloc(size_student);
        p_student->id=id;
        strcpy(p_student->name,name);
        strcpy(p_student->sex,sex);
        strcpy(p_student->borrow_book,"无");
        head_student=Insert_Student(head_student,p_student);
        printf("\n添加学生成功!\n\n");
      }
      break;
    case 9:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      printf("输入删除学生学号:\n");
      scanf("%d",&id);
      head_student = Delete_Student(id,head_student);
      break;
    case 10:
      system("cls");
      printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
      Print_Student(head_student);
    }
  }while(choice!=0);
  return 0;
} 

struct book *Create_New_Book(){
  struct book *head_book,*p_book;
  int id, tag;
  double price;
  char title[20],author[20];
  int size_book=sizeof(struct book);  

  head_book=NULL;
  printf("请输入图书编号:");
  scanf("%d",&id);
  printf("请输入图书名称:");
  scanf("%s",title);
  printf("请输入作者名字:");
  scanf("%s",author);
  printf("请输入单价:");
  scanf("%lf",&price);
  printf("\n");
  while(true){
    p_book=(struct book *)malloc(size_book);
    strcpy(p_book->title,title);
    p_book->id=id;
    p_book->price=price;
    p_book->student_id=-1;
    strcpy(p_book->author,author);
    strcpy(p_book->state,"存在");
    strcpy(p_book->student_name,"待定");
    head_book=Insert_Book(head_book,p_book);
    printf("是否继续?继续输入1,退出按任意键\n");
    scanf("%d",&tag);
    if(tag!=1){
      break;
    }
    printf("请输入图书编号:");
    scanf("%d",&id);
    printf("请输入图书名称:");
    scanf("%s",title);
    printf("请输入作者名字:");
    scanf("%s",author);
    printf("请输入单价:");
    scanf("%lf",&price);
    printf("\n");
  }
  return head_book;
} 

struct student *Create_New_Student(){
  struct student *head_student,*p_student;
  int id, tag;
  char sex[10];
  char name[20];
  int size_student=sizeof(struct student);  

  head_student=NULL;
  printf("请输入学生编号:");
  scanf("%d",&id);
  printf("请输入学生姓名:");
  scanf("%s",name);
  printf("请输入学生性别:");
  scanf("%s",sex);
  printf("\n");
  while(true){
    p_student=(struct student *)malloc(size_student);
    p_student->id=id;
    strcpy(p_student->name,name);
    strcpy(p_student->sex,sex);
    strcpy(p_student->borrow_book,"无");
    head_student=Insert_Student(head_student,p_student);
    printf("是否继续?继续输入1,退出按任意键\n");
    scanf("%d",&tag);
    if(tag!=1){
      break;
    }
    printf("请输入学生编号:");
    scanf("%d",&id);
    printf("请输入学生姓名:");
    scanf("%s",name);
    printf("请输入学生性别:");
    scanf("%s",sex);
    printf("\n");
  }
  return head_student;
} 

struct book *Insert_Book(struct book *head_book,struct book *new_book){
  struct book *p,*q; 

  p=q=head_book; 

  if(head_book==NULL){  //单向链表为空的情况
    head_book=new_book;
    new_book->next = NULL;
  }else{
    while((new_book->id>p->id)&&(p->next!=NULL)){
      q = p;
      p = p->next;
    }
    if(new_book->id<=p->id){
      new_book->next=p;
      if(head_book==p)
        head_book=new_book;
      else
        q->next = new_book;
    }else{
      p->next=new_book;
      new_book->next=NULL;
    }
  }
  return head_book;
}; 

struct student *Insert_Student(struct student *head_student,struct student *new_student){
  struct student *p,*q; 

  p=q=head_student; 

  if(head_student==NULL){ //单向链表为空的情况
    head_student=new_student;
    new_student->next = NULL;
  }else{
    while((new_student->id>p->id)&&(p->next!=NULL)){
      q = p;
      p = p->next;
    }
    if(new_student->id<=p->id){
      new_student->next=p;
      if(head_student==p)
        head_student=new_student;
      else
        q->next = new_student;
    }else{
      p->next=new_student;
      new_student->next=NULL;
    }
  }
  return head_student;
} 

struct book *Search_Book_ById(int id,struct book *head_book){
  struct book *ptr_book = head_book;
  int flag=0;
  while(ptr_book!=NULL)
  {
    if(ptr_book->id==id){
      printf("图书编号:%d\n",ptr_book->id);
      printf("图书名称:%s\n",ptr_book->title);
      printf("图书单价:%.2lf\n",ptr_book->price);
      printf("图书作者:%s\n",ptr_book->author);
      printf("存在状态:%s\n",ptr_book->state);
      printf("借书人姓名:%s\n",ptr_book->student_name);
      printf("学号:%d\n",ptr_book->student_id);
      printf("\n");
      flag++;
    }
    if(flag>0)
    {
      break;
    }
    ptr_book = ptr_book->next;
  }
  if(flag==0){
      printf("暂无此图书信息!\n\n");
  }
  return head_book;
}; 

struct book *Search_Book_ByTitle(char *title,struct book *head_book){
  struct book *ptr_book = head_book;
  int flag=0;
  while(ptr_book!=NULL)
  {
    if(strcmp(ptr_book->title,title)==0){
      printf("图书编号:%d\n",ptr_book->id);
      printf("图书名称:%s\n",ptr_book->title);
      printf("图书单价:%.2lf\n",ptr_book->price);
      printf("图书作者:%s\n",ptr_book->author);
      printf("存在状态:%s\n",ptr_book->state);
      printf("借书人姓名:%s\n",ptr_book->student_name);
      printf("学号:%d\n",ptr_book->student_id);
      printf("\n");
      flag++;
    }
    if(flag>0)
    {
      break;
    }
    ptr_book = ptr_book->next;
  }
  if(flag==0){
      printf("暂无此图书信息!\n\n");
  }
  return head_book;
}; 

struct book *Search_Book_ByPrice(double price_h,double price_l,struct book *head_book){
  struct book *ptr_book = head_book;
  int flag=0;
  while(ptr_book!=NULL)
  {
    if(ptr_book->price>=price_l&&ptr_book->price<=price_h){
      printf("图书编号:%d\n",ptr_book->id);
      printf("图书名称:%s\n",ptr_book->title);
      printf("图书单价:%.2lf\n",ptr_book->price);
      printf("图书作者:%s\n",ptr_book->author);
      printf("存在状态:%s\n",ptr_book->state);
      printf("借书人姓名:%s\n",ptr_book->student_name);
      printf("学号:%d\n",ptr_book->student_id);
      printf("\n");
      flag++;
    }
    ptr_book = ptr_book->next;
  }
  if(flag==0){
      printf("暂无此图书信息!\n\n");
  }
  return head_book;
} 

/*bool Delete_Book(int id,book* head_book){
  bool flag=true;
  struct book *p,*q;
  p=q=head_book;
  if(p->id==id&&p->next==NULL){
    head_book=NULL;
  } 

  while(p->id!=id&&p->next!=NULL){
    q=p;
    p=p->next;
  }
  if(p->id==id){
    if(p==head_book){
      head_book=p->next;
    }else{
      q->next=p->next;
    }
    free(p);
  }else{
    flag=false;
    printf("找不到该书");
  }
  return flag;
};*/ 

struct book* Delete_Book(int id,book* head_book){
  bool flag=true;
  struct book *p,*q;
  p=q=head_book; 

  while(p->id!=id&&p->next!=NULL){
    q=p;
    p=p->next;
  }
  if(p->id==id){
    if(p==head_book){
      head_book=p->next;
    }else{
      q->next=p->next;
    } 

    free(p);
    printf("删除成功!\n");
  }else{
    flag=false;
    printf("找不到该书");
  }
  return head_book;
}; 

struct student* Delete_Student(int id,student* head_student){
  bool flag=true;
  struct student *p,*q;
  p=q=head_student; 

  while(p->id!=id&&p->next!=NULL){
    q=p;
    p=p->next;
  }
  if(p->id==id){
    if(p==head_student){
      head_student=p->next;
    }else{
      q->next=p->next;
    } 

    free(p);
    printf("删除成功!\n");
  }else{
    flag=false;
    printf("找不到该学生");
  }
  return head_student;
}; 

struct student *Search_Student(int id,struct student *head_student){
  struct student *ptr_student = head_student;
  int flag=0;
  while(ptr_student!=NULL)
  {
    if(ptr_student->id==id){
      printf("学号:%d\n",ptr_student->id);
      printf("姓名:%s\n",ptr_student->name);
      printf("性别:%s\n",ptr_student->sex);
      printf("借书:%s\n",ptr_student->borrow_book);
      printf("\n");
      flag++;
    }
    if(flag>0)
    {
      break;
    }
    ptr_student = ptr_student->next;
  }
  if(flag==0){
      printf("暂无此学生信息!\n\n");
  }
  return head_student;
}; 

void Lent_Book(int id,int student_id,struct book *head_book,struct student *head_student){
  struct book* p=head_book;
  struct student* q=head_student;
  if(p==NULL||q==NULL){
    printf("书本或学生不存在\n");
    return;
  }
  while(p!=NULL&&q!=NULL){
    if(p->id!=id){
      p=p->next;
    }
    if(q->id!=student_id){
      q=q->next;
    }
    if(p->id==id&&q->id==student_id){
      break;
    }
  }
  if(p==NULL||q==NULL){
    printf("书本或学生不存在\n");
    return;
  }else{
    if(strcmp(p->state,"存在")!=0){
      printf("书已借出!抱歉!");
      return;
    }else{
      p->student_id=student_id;
      strcpy(p->student_name,q->name);
      strcpy(q->borrow_book,p->title);
      strcpy(p->state,"已借出");
      printf("已成功借出!/n");
    }
  }
}; 

void Back_Book(int id,int student_id,struct book *head_book,struct student *head_student){
  struct book* p=head_book;
  struct student* q=head_student;
  if(p==NULL||q==NULL){
    printf("书本或学生不存在\n");
    return;
  }
  while(p!=NULL&&q!=NULL){
    if(p->id!=id){
      p=p->next;
    }
    if(q->id!=student_id){
      q=q->next;
    }
    if(p->id==id&&q->id==student_id){
      break;
    }
  }
  if(p==NULL||q==NULL){
    printf("书本或学生不存在\n");
    return;
  }else{
    if(strcmp(p->state,"存在")==0){
      printf("书未借出!抱歉!");
      return;
    }else{
      p->student_id=-1;
      strcpy(p->student_name,"待定");
      strcpy(q->borrow_book,"无");
      strcpy(p->state,"存在");
      printf("已成功归还!/n");
    }
  }
}; 

void Print_Book(struct book *head_book){
  struct book* p=head_book; 

  if(p==NULL){
    printf("\n无记录\n\n");
    return;
  }
  printf("\n图书编号\t图书名称\t图书单价\t图书作者\n\n");
  while (p!=NULL)
  {
    printf("%d\t\t%s\t\t%.2lf\t\t%s\n\n",p->id,p->title,p->price,p->author);
    p = p->next;
  }
} 

void Print_Student(struct student *head_student){
  struct student* p=head_student; 

  if(p==NULL){
    printf("\n无记录\n\n");
    return;
  }
  printf("\n学生姓名\t学生性别\t学生学号\n\n");
  while (p!=NULL)
  {
    printf("%s\t\t%s\t\t%d\n",p->name,p->sex,p->id);
    p = p->next;
  }
} 

代码可以直接运行,这里我都是在控制台上直接显示的,如果想从文件读取和向文件写入学生和图书信息,只需要把相应的printf和scanf部分改为文件操作。这个是很久之前写的,详细的函数以及功能讲解这里就不介绍了。欢迎大家讨论和指导。

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

您可能感兴趣的文章:

  • c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)
  • 使用C语言打造通讯录管理系统和教学安排系统的代码示例
  • C语言设计图书登记系统与停车场管理系统的实例分享
  • C语言职工管理系统设计
  • C语言学生管理系统源码分享
  • C语言数据结构之学生信息管理系统课程设计
  • C语言实现图书管理系统
  • C语言图书管理系统课程设计
  • C语言图书管理系统简洁版
  • C语言实现图书管理系统
(0)

相关推荐

  • c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)

    复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>        /*屏幕操作函数库*/ /*主管权限数据格式化*/#define HEADER1_zg "-----------------------------货物管理系统(主管)--------------------------------\n"#define H

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

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

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

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

  • C语言职工管理系统设计

    本文实例为大家分享了C语言职工管理系统设计代码,供大家参考,具体内容如下 代码如下: #include<stdio.h> #include<stdlib.h> #include <string.h> struct Worker { int id;//工号 char name[16];//姓名 char sex[8];//性别 int age;//年龄 char edu_exp[32];//学历 int wage;//工资 char adress[32];//地址 cha

  • C语言学生管理系统源码分享

    本文实例为大家分享了C语言学生管理系统源码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> //结构体可以存放的学生信息最大个数,不可变变量 int const MAX_LENGTH=100; //学生信息结构体数组,最多可以存放100个学生信息 struct student{ int id; //学号 char *name; //姓名 int age; //年龄 float c_score; //C语言成绩 float engl

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

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

  • 使用C语言打造通讯录管理系统和教学安排系统的代码示例

    通讯录管理系统 实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计

  • C语言数据结构之学生信息管理系统课程设计

    本文实例为大家分享了学生信息管理系统设计的具体代码,供大家参考,具体内容如下 建立一个动态链表,链表中每一结点包括:学号.姓名.性别.年龄.成绩.程序能实现以下功能: 建立链表      显示链表      查找链表中是否存在某个元素,并显示这个元素的所有信息,若没有这个元素则显示"无此记录!"的信息.      删除链表中指定学号的结点.      在链表中指定的位置插入一个新结点(学号不能和其他结点重复). 要求:程序运行中,先显示实现以上功能所构成的菜单,然后根据选项调用相应程序

  • 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语言单链表实现图书管理系统

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

  • C语言链表实现学生管理系统

    本文实例为大家分享了C语言链表实现学生管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<ctype.h> #include<fstream> #include<stdlib.h> #include<string.h> #include<iostream> using namespace std; typedef struct ndoe{ char id[10]; char name[1

  • C语言链表实现商品库存管理系统

    本文实例为大家分享了C语言链表实现商品库存管理系统的具体代码,供大家参考,具体内容如下 代码: #include <stdio.h> #include <stdlib.h> #include <string.h> //定义一个商品结构体 typedef struct sp {     char no[12];     //商品编号     char name[40];   //名称     int workload;    //库存量     struct sp *ne

  • C语言链表实现工资管理系统

    本文实例为大家分享了C语言链表实现工资管理系统的具体代码,供大家参考,具体内容如下 自己的作业,分享一下,自己为了调试方便,又多加入了一些功能 题目:建立工资管理系统,对职工工资的相关信息进行管理.职工工资相关信息包括职工工号,职工姓名,月份,每月工资和年度总工资等,具体要求如下; 1.建立该系统的存储结构2.录入职工某个月的工资3.查找某个职工某个月的工资4.修改某个职工某个月的工资5.删除每个职工的工资相关信息6.统计某个职工年度总工资7.对职工的月工资或年度总工资进行排名 源码 #incl

  • C语言链表实现销售管理系统

    本文实例为大家分享了C语言链表实现销售管理系统的具体代码,供大家参考,具体内容如下 源码 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct sale {     char no[12];            //代号     char name[40];          //姓名     int month[12];          //月份     float sales

  • C++使用链表实现图书管理系统

    本文实例为大家分享了vue + element ui实现锚点定位的具体代码,供大家参考,具体内容如下 一.程序实现功能 1.录入书籍:将书籍录入图书管理系统 2.浏览书籍:查看图书管理系统里的所有书籍 3.借阅书籍:书籍存在可以借阅,库存-1,书的库存不足则无法借阅 4.归还书籍:库存+1,如果该书不是图书馆里的书籍,则无法录入 5.删除书籍:以书名为基础从图书管理系统中删除该书籍 6.查找书籍:按书名查找书籍,显示书籍的基本信息 7.排序书籍:按价格将书籍排序(降序) 二.要求 使用函数.指针

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

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

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

    本文实例为大家分享了C语言链表实现图书管理系统的具体代码,供大家参考,具体内容如下 实现功能: 用C语言制作图书管理系统,实现图书进行登记书籍,浏览书籍,借阅书籍,归还书籍,书籍排序,删除书籍信息,查找书籍等功能. 功能展示 1.登记书籍 2.浏览书籍 3.借阅书籍 4.归还书籍 5.书籍排序 6.删除书籍 7.查找书籍 8.退出程序 代码如下 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h>

  • 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 //

随机推荐