增删改查基本操作
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#define K 100
typedef struct message
{
char num[20]; //设备编号
char kind[20]; //设备种类
char name[20]; //设备名称
char gdate[20]; //购入日期
char scarp[20]; //是否报废
char bdate[20]; //报废日期
char qita[20]; //其他信息
}Message;
Message sebei[K];//全局变量,设备信息数组
static int Amount=0;//Amount变量用来保存当前设备数量
//声明部分
int pan_duan(int a,int b);//判断输入数值是否合理
void menu_show();//用来显示菜单
void Xinxi_Luru();//信息录入
void Xinxi_Liulan();//信息浏览
void Xinxi_Zuijia();//信息追加
void Xinxi_Xiugai();//信息修改
void Xinxi_Shanchu();//信息删除
void Xinxi_Chaxun();//信息查询
int main()
{
int m; //用来保存用户键盘输入的选项
while(1)
{
menu_show();
m=pan_duan(0,6);
switch(m)
{
case 1:
{
system("cls");//调用系统cls命令,实现清空屏幕的功能
Xinxi_Luru();//信息录入
break;
}
case 2:
{
system("cls");
Xinxi_Liulan();//信息浏览
break;
}
case 3:
{
system("cls");
Xinxi_Zuijia();//信息追加
break;
}
case 4:
{
system("cls");
Xinxi_Xiugai();//信息修改
break;
}
case 5:
{
system("cls");
Xinxi_Shanchu();//信息删除
break;
}
case 6:
{
system("cls");
Xinxi_Chaxun();//信息查询
break;
}
case 0:
{
printf("谢谢你的使用,再见!\n");
system("pause");//调用系统pause命令,实现在命令行上输出一行文字,等待用户按一个键,然后返回。
exit(0); //正常结束程序运行
break;
}
default: printf("Error!\n"); break;
}
}
return 0;
}
void menu_show() //系统界面函数
{
system("cls");
printf(" 欢迎进入实验设备管理系统!\n");
printf("请输入您选择的操作(0~6):\n");
printf("===========================\n");
printf(" 1. 实验设备信息的录入\n");
printf(" 2. 实验设备信息的浏览\n");
printf(" 3. 实验设备信息的追加\n");
printf(" 4. 实验设备信息的修改\n");
printf(" 5. 实验设备信息的删除\n");
printf(" 6. 实验设备信息的查询\n");
printf(" 0. 退出管理系统\n");
printf("===========================\n");
}
int pan_duan(int a,int b) //用来判断键盘输入,将一个介于0到5之间的整数值返回,若输入的值不在[0,5]之间,则显示欢迎界面,重新输入.
{
int p;
scanf("%d",&p);
while(p<a||p>b)
{
system("cls");
printf("你输入错误! (范围 %ld~%ld)\n",a,b);
system("pause");
printf("请重新输入:");
return;
}
return p;
}
void Xinxi_Luru()//录入
{
int b,i=0;
while(1)
{
printf("请输入设备编号:");
scanf("%s",&sebei[Amount].num);
printf("请输入设备种类:");
scanf("%s",&sebei[Amount].kind);
printf("请输入设备名称:");
scanf("%s",&sebei[Amount].name);
printf("请输入设备购入日期:");
scanf("%s",&sebei[Amount].gdate);
printf("请输入设备是否报废:");
scanf("%s",&sebei[Amount].scarp);
printf("请输入设备报废日期:");
scanf("%s",&sebei[Amount].bdate);
Amount++;
printf("返回上一级请输入[0],继续录入请输入[1]:");
scanf("%d",&b);
if(b==0)
return;
}
}
void Xinxi_Liulan()//浏览
{
int b;
while(1)
{
int i;
printf("编号 种类 名称 购入日期 是否报废 报废日期 其他\n");
for(i=0;i<Amount;i++)
{
printf("%s %s %s %s %s %s %s",sebei[i].num,sebei[i].kind,sebei[i].name,sebei[i].gdate,sebei[i].scarp,sebei[i].bdate,sebei[i].qita);
printf("\n");
}
printf("返回上一级请输入[0]");
scanf("%d",&b);
if(b==0)
return;
}
}
void Xinxi_Zuijia()//信息追加
{
int i,b;
char p[20];
while(1)
{
system("cls");
printf("请输入编号:");
scanf("%s",p);
for(i=0;i<Amount;i++)
{
if(strcmp(p,sebei[i].num)==0)
{
printf("请输入追加信息:");
scanf("%s",&sebei[i].qita);
break;
}
}
if( i==Amount)
{
printf("无此设备\n");
}
system("pause");
printf("返回上一级请输入[0],继续录入请输入[1]:");
scanf("%d",&b);
if(b==0)
return;
}
}
void Xinxi_Chaxun()//查询
{
int k,i;
char o[20],p[20];
while(1)
{
system("cls");
printf("请输入您选择的操作:\n");
printf("===========================\n");
printf(" 1. 按编号查询\n");
printf(" 2. 按名称查询\n");
printf(" 0. 返回\n");
printf("===========================\n");
k=pan_duan(0,2);
switch(k)
{
case 1:
{
system("cls");
printf("请输入编号:");
scanf("%s",o);
for(i=0;i<Amount;i++)
{
if(strcmp(o,sebei[i].num)==0)
{
printf("编号 种类 名称 购入日期 是否报废 报废日期 其他\n");
printf("%s %s %s %s %s %s %s\n",sebei[i].num,sebei[i].kind,sebei[i].name,sebei[i].gdate,sebei[i].scarp,sebei[i].bdate,sebei[i].qita);
break;
}
}
if(i==Amount)
{
printf("无此设备\n");
}
system("pause");
break;
}
case 2:
{
system("cls");
printf("请输入名称:");
scanf("%s",p);
for(i=0;i<Amount;i++)
{
if(strcmp(p,sebei[i].name)==0)
{
printf("编号 种类 名称 购入日期 是否报废 报废日期 其他\n");
printf("%s %s %s %s %s %s %s\n",sebei[i].num,sebei[i].kind,sebei[i].name,sebei[i].gdate,sebei[i].scarp,sebei[i].bdate,sebei[i].qita);
break;
}
}
if(i==Amount)
{
printf("无此设备\n");
}
system("pause");
break;
}
case 0:
{
break;
}
default: printf("Error!\n"); break;
}
if(k==0)
return;
}
}
void Xinxi_Shanchu()
{
int i,j,b;
char o[20];
while(1)
{
system("cls");
printf("请输入想要删除的设备编号:");
scanf("%s",o);
for(i=0;i<Amount;i++)
{
if(strcmp(o,sebei[i].num)==0)
{
printf("编号 种类 名称 购入日期 是否报废 报废日期 其他\n");
printf("%s %s %s %s %s %s %s\n",sebei[i].num,sebei[i].kind,sebei[i].name,sebei[i].gdate,sebei[i].scarp,sebei[i].bdate,sebei[i].qita);
for(j=i;j<Amount-1;++j)
{
sebei[j]=sebei[j+1];
}
Amount--;
system("pause");
break;
}
}
if(i--==Amount)
{
printf("无此设备\n");
}
printf("返回上一级请输入[0],继续删除请输入[1]:");
scanf("%d",&b);
if(b==0)
return;
}
}
void Xinxi_Xiugai()
{
int i,b;
char p[20];
while(1)
{
system("cls");
printf("请输入编号:");
scanf("%s",p);
for(i=0;i<Amount;i++)
{
if(strcmp(p,sebei[i].num)==0)
{
printf("请输入更改后的设备编号:");
scanf("%s",&sebei[i].num);
printf("请输入更改后的设备种类:");
scanf("%s",&sebei[i].kind);
printf("请输入更改后的设备名称:");
scanf("%s",&sebei[i].name);
printf("请输入更改后的设备购入日期:");
scanf("%s",&sebei[i].gdate);
printf("请输入更改后的设备是否报废:");
scanf("%s",&sebei[i].scarp);
printf("请输入更改后的设备报废日期:");
scanf("%s",&sebei[i].bdate);
system("pause");
break;
}
}
if(i==Amount)
{
printf("无此设备\n");
}
printf("返回上一级请输入[0],继续录入请输入[1]:");
scanf("%d",&b);
if(b==0)
return;
}
}