目录

  • 1 C语言概述
    • 1.1 课件
    • 1.2 vc2010编译环境介绍
    • 1.3 例1-1显示“Hello World!”
    • 1.4 Dev c软件及在线编程网址
    • 1.5 课后拓展-中国大学慕课视频
    • 1.6 主题讨论:C语言的作用
    • 1.7 章节测验
  • 2 C语言基本数据类型
    • 2.1 课件
    • 2.2 课后拓展-中国大学慕课视频
    • 2.3 动画讲解位运算
    • 2.4 主题讨论:++a和a++的区别
    • 2.5 章节测验
  • 3 简单程序设计
    • 3.1 课件
    • 3.2 例3-3获取三位数的个十百位
  • 4 分支结构
    • 4.1 课件
    • 4.2 例4-2一元二次方程求实根
    • 4.3 例4-4判断字符的类别
    • 4.4 例4-6百分制分数分等级
    • 4.5 视频讲解-双分支结构
    • 4.6 课后拓展-中国大学慕课视频
    • 4.7 章节测验
  • 5 循环结构
    • 5.1 课件
    • 5.2 例5-2求 1-1/3+1/5-… 的前n项的和
    • 5.3 例5-4求各位数字之和
    • 5.4 例5-5素数判断
    • 5.5 例5-10求e的值
    • 5.6 for循环
    • 5.7 while和do--while循环
    • 5.8 视频讲解-循环嵌套
    • 5.9 视频讲解-循环辅助语句
    • 5.10 视频讲解-百钱百鸡问题
    • 5.11 课后拓展-中国大学慕课视频
    • 5.12 章节测验
  • 6 函数
    • 6.1 课件
    • 6.2 例6-1计算公式
    • 6.3 例6-3观察程序的输出结果
    • 6.4 例6-8递归法计算阶乘
    • 6.5 例6-12静态局部变量的值
    • 6.6 视频讲解-函数1(定义和调研)
    • 6.7 视频讲解-函数2(嵌套和递归调用)
    • 6.8 视频讲解-函数3(局部全局变量+预处理命令)
    • 6.9 课后拓展-中国大学慕课视频
    • 6.10 动画详解C语言函数基础及其底层原理
    • 6.11 章节测验
  • 7 数组
    • 7.1 课件
    • 7.2 例7-6指定数据插入到已排序序列
    • 7.3 例7-8求矩阵的最大值及对应行列位置
    • 7.4 例7-13删除指定字符
    • 7.5 例7-16连接两个字符串
    • 7.6 视频讲解-一维数组(逆序,排序,求平均找最大值,插入排序)
    • 7.7 视频讲解-二维数组
    • 7.8 视频讲解-字符数组
    • 7.9 课后拓展-中国大学慕课视频
    • 7.10 冒泡排序动画讲解
    • 7.11 补充其他排序讲解
    • 7.12 章节测验
  • 8 指针
    • 8.1 课件
    • 8.2 例8-2观察程序输出结果
    • 8.3 例8-8交换两个数
    • 8.4 例8-14二级指针访问变量
    • 8.5 视频讲解-指针2
    • 8.6 课后拓展-中国大学慕课视频
    • 8.7 动画讲解指针
    • 8.8 主题讨论:数组变量和指针的关系
    • 8.9 章节测验
  • 9 结构体和共用体
    • 9.1 课件
    • 9.2 例9-1计算平均成绩
    • 9.3 例9-3整班学生信息输出
    • 9.4 视频讲解-结构体类型定义和结构体变量定义
    • 9.5 章节测验
  • 10 文件
    • 10.1 课件
    • 10.2 例10-2字符写入文件并在屏幕输出
    • 10.3 例10-5存储并输出学生信息
    • 10.4 例10-7学生信息二进制读写
    • 10.5 视频讲解-文件
    • 10.6 文件应用综合实例
    • 10.7 章节测验
  • 11 拓展大作业
    • 11.1 题目要求及部分源代码
题目要求及部分源代码

图书管理系统

【问题描述】

设计一个计算机管理系统完成图书管理基本业务。

【基本要求】

1)   每种书的登记内容包括书号、书名、著作者、现存量和库存量;

2)   对书号建立索引表(线性表)以提高查找效率;

3)   系统主要功能如下:

*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;

*归还:注销对借阅者的登记,改变该书的现存量。


初始化图书信息及系统主菜单界面



部分源代码(主要模块函数需要补充完整

#include<stdio.h>

#include <string.h>

#include <stdlib.h>

#include<conio.h>

#define Max 4 

  

typedef struct book

{

       charbook_num[10];

       charbook_name[20];

       charbook_writer[10];

       intbook_xy;

       intbook_kc;

       intn;

       structbook *next;

}BK;

 

typedef struct borrow

{

       charborrow_book_num[10];

       charlimit_date[10];

       }BO;

      

typedef struct reader

{

       charreader_num[10];

       charreader_name[10];

       intright;

       intm;

       BOborrow[Max];

       structreader *next;

}RD;

 

BK *h_book;

RD *h_reader;

int n=0;

int m=0;

 

void Login();             

int Menu();

void Init();            

void Menu_select();  

void Insert_New_Book();                

void add_reader();

void Print_reader();     

void Print_book();       

void Borrow_Book();       

void Return_Book();

void Save();

void Save_Book();

void Save_Reader();

void Load();

void Load_Reader();

void Load_Book();

 

void Login()

{

       system("cls");

       printf("\n\n\n\t\t***************************************\n");

       printf("\n\n\n\t\t**        欢迎使用图书管理系统       **\n");

       printf("\n\n\n\t\t***************************************\n");

       printf("\n\n\n\t\t按任意键进入系统...");

      

       getch();

       system("cls");

}

 

int Menu() /*主菜单*/

{

       int dm;

      

       printf("\n\t\t图书管理系统主菜单\n");

       printf("=================================================\n");

       printf("*\t1----采编入库          \n");

       printf("*\t2----登记读者          \n");

       printf("*\t3----借阅登记          \n");

       printf("*\t4----还书管理          \n");

       printf("*\t5----查询图书信息      \n");

       printf("*\t6----查询读者信息      \n");

       printf("*\t0----退出系统          \n");

       printf("=================================================\n");

       printf("请选择相应的代码:");

      

       for(;;)

       {

              scanf("%d",&dm);//dm输入的数字

              if(dm<0||dm>6)

                     printf("\n错误!请重新输入:");

              else

                     break;

       }

      

       return dm;

}


void Menu_select()/*主菜单选择函数*/

{  }

void Init() /*初始化*/

{

       BK*p0;

       printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");

       p0=(BK*)malloc(sizeof(BK));

       h_book=p0;

  ...../*补全代码 */

}

void Insert_New_Book()/*新书入库*/

{   }

void add_reader()/*添加读者*/

{   }

void Borrow_Book() /*借书模块*/

{   }

void Return_Book() /*还书模块*/

{   }

void Print_book() /*查询图书信息*/

{   }

void Save() /*保存信息*/

{   }

void Save_Book() /*保存图书信息*/

{    }

void Load() /*加载信息*/

{

       Load_Reader();

       Load_Book();

}

void Load_Reader()   /*加载读者信息*/

{

  RD *p1,*p2,*p3;

  FILE *fp;           /*创建文件型指针*/

  fp=fopen("Reader.txt","rb");       /*打开文件*/

  p1=(RD *)malloc(sizeof(RD));

  fread(p1,sizeof(RD),1,fp);

  h_reader=p3=p2=p1;

  

  while(! feof(fp))   /*读出信息,重新链入链表*/

  {

              p1=(RD*)malloc(sizeof(RD));

              fread(p1,sizeof(RD),1,fp);

              p2->next=p1;

              p3=p2;

              p2=p1;

  }

  

  p3->next=NULL;

  free(p1);

  fclose(fp); /*关闭文件*/

}

 

void Load_Book() /*加载图书信息*/

{   }


int main()

{

    FILE *fp_book,*fp_reader;              /*创建文件型指针*/

   

    Login();

   

   if((fp_book=fopen("Book.txt","rb"))==NULL||(fp_reader=fopen("Reader.txt","rb"))==NULL)

              Init();

    else

              Load();

             

  Menu_select(); /*调用主菜单*/

}