实验室设备管理系统c语言程序设计_设备管理系统怎么实现

实验室设备管理系统c语言程序设计_设备管理系统怎么实现#include#include#includetypedefstructequipment{intnum;//编号charname[20];//名称charmodel[20];//型号charfactory[20];//厂家charbuy_date[20];//购买日期struc

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct equipment{
int num;   //编号
char name[20];  //名称
char model[20];     //型号
char factory[20];   //厂家
char buy_date[20];  //购买日期
struct equipment *next;
char repair_time[20];
}Equipment;
void fprintE(Equipment *head);  //将设备信息输出到文件
void addEquipment(Equipment *head);     //添加设备
void deleteEquipment(Equipment *head,int num);  //删除设备
void changeEquipment(Equipment *head,int num);  //更新设备
void findEquipment();   //设备查找
Equipment* fscanE();  //从文件读取设备信息
void repairEquipment();     // 维修管理
void printList(Equipment *head);   //输出设备信息列表
int checkNum(Equipment *head, int num);
//将设备信息输出到文件
void addEquipment(Equipment *head){
Equipment *tail = head;
while(tail->next!=NULL) tail = tail->next;
Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));
printf("请输入设备编号:");
scanf("%d",&newnode->num);
if(checkNum(head,newnode->num)){
printf("输入编号已有,输入失败!");
return;
}
printf("请输入设备名称:");
scanf("%s",&newnode->name);
printf("请输入设备型号:");
scanf("%s",&newnode->model);
printf("请输入设备厂家:");
scanf("%s",&newnode->factory);
printf("请输入设备购买日期:");
scanf("%s",&newnode->buy_date);
tail->next = newnode;
newnode->next = NULL;
fprintE(head);
printf("录入成功!");
}
//将链表输入到文件
void fprintE(Equipment *head){
FILE *fp=fopen("data.txt","w");
Equipment *current = head->next;
while(current){
fprintf(fp,"%d\n",current->num);
fprintf(fp,"%s\n",current->name);
fprintf(fp,"%s\n",current->model);
fprintf(fp,"%s\n",current->factory);
fprintf(fp,"%s\n",current->buy_date);
//printf("%d %s %s %s %s ",current->num,current->name,current->model,current->factory,current->buy_date);
current = current->next;
}
fclose(fp);
}
//删除设备
void deleteEquipment(Equipment *head,int num){
if(head->next==NULL){
printf("没有设备!请先录入设备!");
return;
}
Equipment *current = head;
Equipment *current_next = current->next;
while(current_next){
if(current_next->num==num){
current->next = current_next->next;
printf("删除成功!");
fprintE(head);
return;
}
current = current->next;
current_next = current_next->next;
}
printf("删除失败,没有找到设备编号!");
}
//设备更新
void changeEquipment(Equipment *head,int num){
if(head->next==NULL){
printf("没有设备!请先录入设备!");
return;
}
Equipment *current = head->next;
while(current && (current->num!=num)){
current = current->next;
}
if(current!=NULL){
printf("请输入更新后的数据:\n");
printf("请输入设备编号:");
scanf("%d",¤t->num);
printf("请输入设备名称:");
scanf("%s",¤t->name);
printf("请输入设备型号:");
scanf("%s",¤t->model);
printf("请输入设备厂家:");
scanf("%s",¤t->factory);
printf("请输入设备购买日期:");
scanf("%s",¤t->buy_date);
fprintE(head);
}else{
printf("操作失败,没有找到设备编号!");
}
}
//设备查找
void findEquipment(){
Equipment *head = fscanE();
if(head->next==NULL){
printf("没有设备!请先录入设备!");
return;
}
int num;
printf("请输入查找设备的编号:");
scanf("%d",&num);
while(head){
if(head->num==num){
printf("编号为%d的信息为:\n",num);
printf("编号:%d\n",head->num);
printf("名称:%s\n",head->name);
printf("型号:%s\n",head->model);
printf("厂家:%s\n",head->factory);
printf("生产日期:%s\n",head->buy_date);
return;
}
head = head->next;
}
printf("查找失败,没有找到设备编号!");
}
//从文件读取设备信息
Equipment* fscanE(){
Equipment *head1 = (Equipment*)malloc(sizeof(Equipment));
head1->next = NULL;
Equipment *current = head1;
FILE *fp = fopen("data.txt","r");
while(!feof(fp)){
Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));
fscanf(fp,"%d\n",&newnode->num);
fscanf(fp,"%s\n",newnode->name);
fscanf(fp,"%s\n",newnode->model);
fscanf(fp,"%s\n",newnode->factory);
fscanf(fp,"%s\n",newnode->buy_date);
current->next = newnode;
newnode->next = NULL;
current = current->next;
}
close(fp);
return head1;
}
//维修信息管理
void repairEquipment(){
int num;
int oper;
char time[16];
printf("请输入维修操作(1~2):\n1.记录\t2.查找\n");
scanf("%d",&oper);
getchar();
switch(oper){
case 1:{
FILE *fp = fopen("myfile.txt","a");
printf("请输入维修编号:");
scanf("%d",&num);
printf("请输入维修时间(xxxx-xx-xx):");
scanf("%s",&time);
fprintf(fp,"%d\n",num);
fprintf(fp,"%s\n",time);
fflush(fp);
close(fp);
printf("记录成功!");
break;
}case 2:{
int t = 0;
printf("请输入查找编号:");
scanf("%d",&num);
int rnum;
FILE *fp = fopen("myfile.txt","r");
while(!feof(fp)){
fscanf(fp,"%d\n",&rnum);
fscanf(fp,"%s\n",&time);
if(rnum==num){
printf("编号:%d,维修时间:%s\n",rnum,time);
t = 1;
}
}
if(t==0){
printf("查询错误,没有找到维修记录!");
}
close(fp);
break;
}
default:{
printf("输入有误,操作失败!");
}
}
}
//输出设备信息列表
void printList(Equipment *head){
if(head->next==NULL){
printf("没有设备,请先录入设备!");
return;
}
Equipment *current = head->next;
printf("=====================================================\n");
printf("    编号  名称  型号      厂家      生产日期  \n");
while(current){
printf("\t%d\t%s\t%s\t%s\t%s\n",current->num,current->name,current->model,current->factory,current->buy_date);
current = current->next;
}
printf("===================================================\n");
}
//检查设备编号是否相同
int checkNum(Equipment *head, int num){
if(head->next==NULL) return 0;
Equipment *current = head->next;
while(current){
if(current->num == num){
return 1;
}
current = current->next;
}
return 0;
}
int main(){
Equipment *head = (Equipment*)malloc(sizeof(Equipment));
head->next = NULL;
int num = -1;
while(num!=0){
printf("~~~~~~~~~~~~~欢迎进入实验室设备管理系统!~~~~~~~~~~~\n");
printf("\n~~~~~~~~~~请输入您选择的操作(0~7):~~~~~~~~~~~~~~\n");
printf("1.设备信息录入\t2.设备信息更改\t");
printf("3.设备信息删除\n4.设备查找\t5.维修记录管理\t6.显示所有设备\n\t7.关于\t\t\t0.退出\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
scanf("%d",&num);
int num1;
system("cls");
switch(num){
case 0:{break;}
case 1:{
addEquipment(head);
break;
}
case 2:{
printf("请输入更改信息的设备编号:");
scanf("%d",&num1);
getchar();
changeEquipment(head,num1);
break;
}
case 3:{
printf("请输入需要删除的设备编号:");
scanf("%d",&num1);
getchar();
deleteEquipment(head,num1);
break;
}
case 4:{
findEquipment();
break;
}
case 5:{
repairEquipment();
break;
}case 6:{
printList(head);
break;
}case 7:{
printf("*************************************\n");
printf("\t实验名称:实验室设备管理系统\n");
printf("\t系统版本:2.0\n");
printf("\t系统作者:pisces_hao\n");
printf("*************************************\n");
break;
}
default:{
printf("输入有误,操作失败!");
}
}
system("Pause");
system("cls");
}
return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182351.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)

    基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)我的毕业设计就叫毕业设计管理系统的设计与实现,哈哈目录1.摘要2.需求分析3.数据库设计4.功能模块的设计与实现5.项目截图6.项目源码1.摘要毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的…

  • navicat永久激活码最新【永久激活】

    (navicat永久激活码最新)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZP…

  • preference用法for_interference用法

    preference用法for_interference用法文章目录PreferenceFragment简介PreferenceFragment使用PreferenceFragment扩展PreferenceFragment简介在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,…

  • Android开发笔记(序)写在前面的目录[通俗易懂]

    知识点分类一方面写写自己走过的弯路掉进去的坑,避免以后再犯;另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平。因此博主就想,入门的东西咱就不写了,人不能老停留在入门上;其次是想拾缺补漏,写写虽然小众却又用得着的东西;另外就是想以实用为主,不求大而全,但求小而精;还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来。个人的经验…

  • 桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!「建议收藏」

    桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!「建议收藏」前言前段时间,写了篇博客关于Python自制一款炫酷音乐播放器。有粉丝问我,音乐播放器为什么要用PyQt5,效果是不是比Tkinter赞?PyQt5真的可以实现这些炫酷的UI画面吗?之前没接触过PyQt5,能不能多分享一些这方面的开发案例?今天就带大家,一起用Python的PyQt5开发一个有趣的自定义桌面动画挂件,看看实现的动画挂件效果!下面,我们开始介绍这个自定义桌面动画挂件的制作过程。一、核心功能设计总体来说,我们需要实现将自己喜欢的动态图gif或者视频转成一个桌面动画挂件,并且可以通过鼠

  • 文件服务器审计—首选Netwrix文件服务器审计工具

    文件服务器审计—首选Netwrix文件服务器审计工具文件服务器审计—首选Netwrix文件服务器审计工具为了遵守外部法规和确保业务连续性,企业需要审核他们的文件服务器,以确保防止敏感数据泄漏和未经授权的修改。看到论坛很多类似的讨论,而且微软自带的审计策略往往不能满足IT的所有需求。常常通过第三方的软件来实现文件服务器的审计功能。NetwrixWindows文件服务器工具有免费版本的变更通知工具以及收费版本的审计工具。可以自…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号