• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言设计图书登记系统与停车场管理系统的实例分享

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

作者:hackbuteer1 字体:[增加 减小] 来源:互联网 时间:2017-05-28

hackbuteer1 通过本文主要向大家介绍了c语言编程实例,c语言编程实例100题,c语言100经典实例编程,c语言实例,c语言项目开发实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

图书登记管理系统

图书登记管理系统应该具有下列功能:
(1)、 通过键盘输入某本图书的信息;
(2) 、给定图书编号,显示该本图书的信息;
(3) 、给定作者姓名,显示所有该作者编写的图书信息;
(4) 、给定出版社,显示该出版社的所有图书信息;
(5) 、给定图书编号,删除该本图书的信息;
(6) 、提供一些统计各类信息的功能。

程序完整的实现代码如下:

#include "stdio.h" 
#include "stdlib.h" 
#include "string.h" 
typedef struct book 
{ 
  int book_id;     //图书编号 
  char book_name[20];  //图书名字 
  char name[20];    //作者姓名 
  char press[20];    //出版社 
  struct book *next; 
}book; 
book *head=NULL; 
int length;  //链表的长度 
 
void create() 
{ 
  book *p1,*p2; 
  length=0; 
  p1=(book *)malloc(sizeof(book)); 
  p1->book_id=-1; 
  if(head==NULL) 
    head=p1; 
  printf("请输入图书的编号、名字、作者姓名、出版社信息:\n"); 
  while(1) //图书编号为0的时候退出 
  { 
    p2=(book *)malloc(sizeof(book)); 
    scanf("%d %s %s %s",&p2->book_id,p2->book_name,p2->name,p2->press); //输入图书信息 
    if(p2->book_id==0) 
    { 
      printf("图书信息输入完成!\n"); 
      break; 
    } 
    length++; //链表的长度 
    p1->next=p2; 
    p2->next=NULL; 
    p1=p1->next; 
  } 
  return ; 
} 
 
void display() 
{ 
  book *p=head->next; 
  printf("链表中所有的图书信息如下:\n"); 
  while(p!=NULL) 
  { 
    printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
    p=p->next; 
  } 
  return ; 
} 
void search() 
{ 
  int num,x,flag1=0,flag2=0; 
  char name[20],press[20]; 
  book *p=head->next; 
  printf("1、根据图书编号进行查找\n"); 
  printf("2、根据作者姓名进行查找\n"); 
  printf("3、根据出版社进行查找\n"); 
  printf("请选择功能:"); 
  scanf("%d",&x); 
  if(x==1) 
  { 
    printf("需要查找的图书编号为:"); 
    scanf("%d",&num); 
 
    while(p!=NULL) 
    { 
 
      if(p->book_id==num) 
      { 
        printf("图书编号为%d的图书的信息如下:\n",num); 
        printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
        return; 
      }   
      p=p->next; 
    } 
    if(p==NULL) 
      printf("无此记录!\n"); 
  } 
  else if(x==2) 
  { 
    printf("需要查找的作者姓名为:"); 
    scanf("%s",name); 
    while(p!=NULL) 
    { 
      if(strcmp(p->name,name)==0) 
      { 
        if(flag1==0) 
          printf("作者%s编写的图书信息如下:\n",name); 
        flag1=1; 
        printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
      } 
      p=p->next; 
    } 
    if(flag1==0) 
      printf("图书馆没有作者%s编写的图书!\n",name); 
  } 
  else if(x==3) 
  { 
    printf("需要查找的出版社为:"); 
    scanf("%s",press); 
    while(p!=NULL) 
    { 
      if(strcmp(p->press,press)==0) 
      { 
        if(flag2==0) 
          printf("出版社为%s编写的图书信息如下:\n",press); 
        flag2=1; 
        printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
      } 
      p=p->next; 
    } 
    if(flag2==0) 
      printf("图书馆没有出版社%s编写的图书!\n",press); 
  } 
  return ; 
} 
 
void Delete() 
{ 
  int num; 
  book *p,*q; 
  q=head,p=head->next; 
  printf("请输入要删除的图书编号:\n"); 
  scanf("%d",&num); 
 
  while(p!=NULL) 
  { 
    if(p->book_id==num) 
    { 
      q->next=p->next; 
      free(p); 
      length--; 
      printf("删除成功!\n"); 
      return ; 
    } 
    p=p->next; 
    q=q->next; 
  } 
  if(p==NULL) 
  { 
    printf("找不到要删除的图书编号!\n"); 
    return ; 
  } 
} 
void menu() 
{ 
  printf("________________________________________________________________\n"); 
  printf("|        图书登记管理系统                |\n"); 
  printf("|        0、 退出系统                  |\n"); 
  printf("|        1、 输入图书信息                |\n"); 
  printf("|        2、 显示图书信息                |\n"); 
  printf("|        3、 查询图书信息                |\n"); 
  printf("|        4、 删除图书信息                |\n"); 
  printf("________________________________________________________________\n"); 
  return ; 
} 
int main(void) 
{ 
  int a; 
  menu(); 
  while(1) 
  { 
    printf("请选择相应的功能:"); 
    scanf("%d",&a); 
    switch(a) 
    { 
    case 0: 
      return 0; 
    case 1: 
      create(); 
      menu(); 
      break; 
    case 2: 
      if(head) 
      { 
        display(); 
        menu(); 
      } 
      else 
      { 
        printf("图书信息为空,请先输入图书信息!\n"); 
        menu(); 
      } 
      break; 
    case 3: 
      if(head) 
      { 
        search(); 
        menu(); 
      } 
      else 
      { 
        printf("图书信息为空,请先输入图书信息!\n"); 
        menu(); 
      } 
      break; 
    case 4: 
      if(head) 
      { 
        Delete(); 
        menu(); 
      } 
      else 
      { 
        printf("图书信息为空,请先输入图书信息!\n"); 
        menu(); 
      } 
      break; 
    default: 
      break; 
    } 
  } 
  system("pause"); 
  return 0; 
} 

</div>


停车场管理系统
设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
基本要求:
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。

完整的实现代码如下:

第一种方法:

#include "stdio.h" 
#include "stdlib.h" 
#include "string.h" 
 
#define MAX 2  //车库容量  
#define price 0.05  //每车每分钟费用 
typedef struct time //时间结点 
{  
  int hour;  
  int min;  
}Time; 
typedef struct node //车辆信息结点  
{  
  char num[10];  
  Time reach;  
  Time leave;  
}CarNode; 
typedef struct NODE  //模拟车站 
{  
  CarNode *stack[MAX+1];  
  int top;  
}SeqStackCar; 
typedef struct car 
{  
  CarNode *data;  
  struct car *next;  
}QueueNode;  
typedef struct Node //模拟通道 
{  
  QueueNode *head;  
  QueueNode *rear;  
}LinkQueueCar; 
 
void InitStack(SeqStackCar *); //初始化栈 
int InitQueue(LinkQueueCar *); //初始化便道 
int arrival(SeqStackCar *,LinkQueueCar *); //车辆到达 
void leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); //车辆离开  
void list(SeqStackCar,LinkQueueCar); //显示存车信息 
 
int main(void)  
{  
  SeqStackCar Enter,Temp;  
  LinkQueueCar Wait;  
  int ch;  
  InitStack(&Enter);  //初始化车站  
  InitStack(&Temp);   //初始化让路的临时栈  
  InitQueue(&Wait);   //初始化通道  
  while(1)  
  {  
    printf("\n        1. The car arrive\n");  
    printf("        2. The car leave\n");  
    printf("        3. The schedule\n");  
    printf("        4. Exit\n");  
    while(1)  
    {  
      scanf("%d",&ch);  
      if(ch>=1 && ch<=4) 
        break;  
      else 
        printf("\nPlease choose: 1|2|3|4.");  
    }  
    switch(ch)  
    {  
    case 1: 
      arrival(&Enter,&Wait);  //车辆到达 
      break; 
    case 2: 
      leave(&Enter,&Temp,&Wai



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言实现获取内存信息并输出的实例
  • c语言实现输入一组数自动从大到小排列的实例代码
  • 利用C语言实现顺序表的实例操作
  • C语言数据类型转换实例代码
  • C语言合并排序及实例代码
  • C 语言快速排序实例代码
  • C语言以数据块的形式读写文件实例代码
  • C语言设计图书登记系统与停车场管理系统的实例分享
  • 实例讲解C语言编程中的结构体对齐
  • C语言编写获取Linux本地目录及本机信息的小程序实例

相关文章

  • 2017-05-28如何使用递归和非递归方式反转单向链表
  • 2017-05-28C 语言快速排序实例代码
  • 2022-04-30C语言编译和链接详解(通俗易懂,深入本质)
  • 2017-05-28C语言数据结构中串的模式匹配
  • 2017-05-28C++/Php/Python 语言执行shell命令的方法(推荐)
  • 2017-05-28简易Dota改键外挂程序制作
  • 2017-05-28用C++类实现单向链表的增删查和反转操作方法
  • 2017-05-28VC++简单实现关机、重启计算机实例代码
  • 2017-05-28C++中delete和delete[]的区别说明
  • 2017-05-28从C++单例模式到线程安全详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解C++编程中类模板的相关使用知识
    • 使用WindowsAPI获取录音音频的方法
    • C/C++中的mem函数和strcopy函数的区别和应用
    • C++中四种对象生存期和作用域以及static的用法总结分析
    • C++二分查找在搜索引擎多文档求交的应用分析
    • C++中Boost库裁剪与其应用详解
    • C 语言基础教程(我的C之旅开始了)[二]
    • 探讨:程序在内存中的分配(常量,局部变量,全局变量,程序代码)问题
    • 浅谈C语言编程中程序的一些基本的编写优化技巧
    • C++联合体union用法实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有