这里写目录标题

  • 实验室设备管理系统
    • 题目要求
    • 源代码
    • 运行结果

实验室设备管理系统

题目要求

实验设备管理系统设计
实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
主要功能:
(1)能够完成对设备的录入和修改
(2)对设备进行分类统计
(3)设备的破损耗费和遗损处理
(4)设备的查询
要求:使用文件方式存储数据。

源代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<malloc.h>
#include<windows.h>
#include<conio.h>/*定义存放仪器信息的结构体*/
typedef struct Information
{char Name[20];       //仪器名称char Sort[2];        //仪器种类char ID[20];         //仪器编号char Price[20];      //仪器价格char Buydate[20];    //设备购买日期char State[2];       //设备状态char Donatedate[20]; //报废日期struct Information* next;
} Information;/*定义文件*/
FILE* fp;/*读出文件信息*/
Information* Fscanf()
{Information* head = (Information*)malloc(sizeof(Information));head->next = NULL;FILE* fp = fopen("Equipment.txt", "rt");if (fp == NULL){puts("文件打开失败");exit(1);   //程序异常退出}if (fscanf(fp, "%s %s %s %s %s %s %s", head->Name, head->Sort, head->ID, head->Buydate, head->Price, head->State, head->Donatedate) != EOF){while (fgetc(fp) != EOF)  //判断是否已经到文件尾部了{Information* cur = (Information*)malloc(sizeof(Information));fscanf(fp, "%s %s %s %s %s %s %s", cur->Name, cur->Sort, cur->ID, cur->Buydate, cur->Price, cur->State, cur->Donatedate);cur->next = head;head = cur;}  //利用头插法将文件读入链表中}elsereturn NULL;fclose(fp);return head->next;
}/*存入文件*/
void Fprintf(Information* head)
{if ((fp = fopen("Equipment.txt", "w")) == NULL){printf("\n\n文件打开失败!\n");exit(1);}Information* cur = head;while (cur){fprintf(fp, "%s %s %s %s %s %s %s\n", cur->Name, cur->Sort, cur->ID, cur->Buydate, cur->Price, cur->State, cur->Donatedate);cur = cur->next;}fclose(fp);
}/*目录*/
Information* Addition(Information* head);//添加设备信息
Information* Query(Information* head);//查找设备信息
Information* Modify(Information* head);//修改仪器信息
Information* Delect(Information* head);//删除仪器信息
void Over();//结束系统
void Menu();//系统目录/*添加设备信息*/
Information* Addition(Information* head)
{int n, count = 0;printf("\n请输入要添加的设备数量:");  //请输入要添加的设备数量scanf("%d", &n);system("cls");  //清屏操作while (n--){Information* cur = (Information*)malloc(sizeof(Information));printf("*-------------请输入设备的信息------------*");printf("\n");printf("          %d.", ++count);printf("        名称:          ");scanf("%s", cur->Name);fflush(stdin);                        //每一次输入完后清空缓存区printf("\n");printf("        种类(1微机 2打印机 3扫描机):          ");scanf("%s", cur->Sort);fflush(stdin);printf("\n");printf("        编号:          ");scanf("%s", cur->ID);fflush(stdin);printf("\n");printf("       购买日期:        ");scanf("%s", cur->Buydate);fflush(stdin);printf("\n");printf("       价格:        ");scanf("%s", cur->Price);fflush(stdin);printf("\n");printf("       是否报废(未报废 0 报废 1):          ");scanf("%s", cur->State);fflush(stdin);printf("\n");printf("       报废日期:          ");scanf("%s", cur->Donatedate);fflush(stdin);system("cls");  //清屏cur->next = head->next;head->next = cur;}return head;
}/*查询仪器信息*/
Information* Query(Information* head)
{system("cls");char choice;printf("***************************************\n");printf("**--------1.按仪器名称查询-----------**\n");printf("**--------2.按仪器编号查询-----------**\n");printf("**--------3.按仪器种类查询-----------**\n");printf("**--------4.返回菜单----------——---**\n");printf("***************************************\n");choice = _getch();fflush(stdin);  //清空缓存区system("cls");switch (choice)   //以三种方式查询{case '1':{printf("\n请输入仪器名称:");  //请输入仪器名称char name[20];gets_s(name);fflush(stdin);system("cls");Information* cur = head->next;while (cur && strcmp(cur->Name, name) != 0) cur = cur->next;if (cur == NULL){printf("\n未找到该仪器信息!");  //未找到该仪器信息}else  //打印找出的信息{printf("\n\t\t                                       --仪器信息--                                            \n\n");printf("\t---------------------------------------------------------------------------------------------------------\n");printf("\t---名称---种类(1微机2打印机3扫描机)----编号-----价格-----购买日期------状态(0未报废 1报废)------报废日期\n");printf("\t   %s         %s                   %s     %s       %s           %s                   %s\n", cur->Name, cur->Sort, cur->ID, cur->Price, cur->Buydate, cur->State, cur->Donatedate);cur = cur->next;}printf("\n\t\t按任意键返回.");  //按任意键返回_getch();break;}case '2':{printf("\n请输入仪器编号:");  //请输入仪器编号char id[20];gets_s(id);fflush(stdin);Information* pcur = head->next;while (pcur && strcmp(pcur->ID, id) != 0) pcur = pcur->next;if (pcur == NULL) printf("未找到该仪器信息!");  //未找到该仪器信息else  //打印找出的信息{printf("\n\t\t                                       --仪器信息--                                            \n\n");printf("\t---------------------------------------------------------------------------------------------------------\n");printf("\t---名称---种类(1微机2打印机3扫描机)----编号-----价格-----购买日期------状态(0未报废 1报废)------报废日期\n");printf("\t   %s         %s                   %s     %s       %s           %s                   %s\n", pcur->Name, pcur->Sort, pcur->ID, pcur->Price, pcur->Buydate, pcur->State, pcur->Donatedate);pcur = pcur->next;}printf("\t\t按任意键返回.");  //按任意键返回_getch();break;}case '3':{printf("\n请输入仪器种类:");  //请输入仪器种类int a = 0;char sort[2];gets_s(sort);fflush(stdin);Information* pcur = head->next;printf("\n\t\t                                       --仪器信息--                                            \n\n");printf("\t---------------------------------------------------------------------------------------------------------\n");printf("\t---名称---种类(1微机2打印机3扫描机)----编号-----价格-----购买日期------状态(0未报废 1报废)------报废日期\n");while (pcur != 0){while (pcur && strcmp(pcur->Sort, sort) != 0) pcur = pcur->next;if (pcur != NULL){printf("\t   %s         %s                   %s     %s       %s           %s                   %s\n", pcur->Name, pcur->Sort, pcur->ID, pcur->Price, pcur->Buydate, pcur->State, pcur->Donatedate);pcur = pcur->next;a++;}if (a == 0){printf("未找到该种类信息!");  //未找到该仪器信息}}printf("\t\t按任意键返回.");  //按任意键返回_getch();break;}case '4':{Menu();  //返回主菜单break;}default:{printf("输入错误!");  //输入错误break;}}return head;
}
/*修改仪器信息*/
Information* Modify(Information* head)
{system("cls");printf("\n请输入仪器名称:");  //请输入仪器名称char name[20];gets_s(name);fflush(stdin);Information* cur = head;while (cur && strcmp(cur->Name, name) != 0) cur = cur->next;if (!cur){printf("\n未找到该仪器信息!");  //未找到该仪器信息printf("\n\n\t\t按任意键返回.");  //按任意键返回_getch();}else  //输入修改后信息{system("cls");printf("*-------------输入修改后信息------------*");printf("\n");printf("            名称:         ");scanf("%s", cur->Name);fflush(stdin);printf("\n");printf("            种类(1微机 2打印机 3扫描机):         ");scanf("%s", cur->Sort);fflush(stdin);printf("\n");printf("            编号:         ");scanf("%s", cur->ID);fflush(stdin);printf("\n");printf("            价格:       ");scanf("%s", cur->Price);fflush(stdin);printf("\n");printf("            购买日期:       ");scanf("%s", cur->Buydate);fflush(stdin);printf("\n");printf("            状态:         ");scanf("%s", cur->State);fflush(stdin);printf("            报废日期:         ");scanf("%s", cur->Donatedate);fflush(stdin);printf("\n");system("cls");//修改完后打印这条信息printf("\n\t\t                                       --仪器信息--                                            \n\n");printf("\t---------------------------------------------------------------------------------------------------------\n");printf("\t---名称---种类(1微机2打印机3扫描机)----编号-----价格-----购买日期------状态(0未报废 1报废)------报废日期\n");printf("\t   %s         %s                   %s     %s       %s           %s                   %s\n", cur->Name, cur->Sort, cur->ID, cur->Price, cur->Buydate, cur->State, cur->Donatedate);printf("\n\n\t\t按任意键继续.");_getch();}system("cls");return head;
}
Information* Delect(Information* head)
{system("cls");char choice;printf("***************************************\n");printf("**--------1.删除某个仪器信息---------**\n");printf("**--------2.删除全部仪器信息---------**\n");printf("**--------3.返回菜单-----------------**\n");printf("***************************************\n");choice = _getch();fflush(stdin);system("cls");switch (choice){case '1':{printf("\n输入要删除的仪器名称:");  //输入要删除的仪器名称char name[20];gets_s(name);Information* pre = head;while (pre->next && strcmp(pre->next->Name, name) != 0) pre = pre->next;if (!pre->next){printf("\n没有找到该仪器信息!");printf("\n\n\t\t按任意键返回.");_getch();}else{system("cls");Information* cur = pre->next;pre->next = pre->next->next;free(cur);printf("\n\t\t删除成功!");  //已删除成功printf("\n");printf("\n\t\t按任意键返回.");_getch();}return head;}case'2':{system("cls");Information* pre = head;pre->next = NULL;printf("\n\t\t\t删除成功 !\n");printf("\n\t\t按任意键返回.");_getch();return head;}case '3':{Menu();break;}default:{printf("输入错误!");break;}return head;}
}/*退出系统*/
void Over(Information* head)
{char t;printf("***********************************");printf("|       1.是         2.否        |");printf("***********************************");while (1){t = _getch();     //输入t并且不回显switch (t){case '1':{Fprintf(head->next);system("cls");printf("Exiting....");Sleep(1000);   //暂停1秒 system("cls");printf("退出成功");exit(0); break; //终止程序 }case '2':{Menu();  //调用函数,进入菜单 break;}default:break;}}
}/*主菜单*/
void Menu()
{Information* head = (Information*)malloc(sizeof(Information));head->next = Fscanf();do{system("cls");char t;printf("  ******************************\n");printf("  -------实验设备管理系统------\n");printf("  |    1.录入仪器信息          |\n");printf("  |    2.查询仪器信息          |\n");printf("  |    3.修改指定仪器信息      |\n");printf("  |    4.仪器删除              |\n");printf("  |    5.退出程序              |\n");printf("  ******************************");t = _getch();  //不回显函数 system("cls");switch (t){case '1':head = Addition(head); break;case '2':head = Query(head); break;case '3':head = Modify(head); break;case '4':head = Delect(head); break;case '5':Over(head); break;default:printf("输入错误,请重新输入!"); break;}} while (1);}int main(void)
{Information* createlist = (Information*)malloc(sizeof(Information));Menu();return 0;
}

运行结果

(1)信息录入功能(2)数据查询功能

(3)分类统计功能

(4)修改功能

鉴于我不明白老师给的题目中设备的破损耗费和遗损处理是什么意思,便只做了记录破损情况处理,代码中还有许多不足的地方,如有不当之处请指出。

【C语言】实验室设备管理系统相关推荐

  1. C语言实验室设备管理系统

    C语言实验室设备管理系统 设计主界面 主界面中分为9个选项,设备信息录入,设备信息更改,删除,查找,维修记录管理,显示所有设备,使用手册,关于系统,退出,用户可进行功能选择 设备信息录入 包括设备编号 ...

  2. 数据结构课程设计--实验室设备管理系统(c语言)

    #include <stdio.h> //标准输入输出函数库 #include <stdlib.h> //标准函数库 #include <string.h> //字 ...

  3. C语言课程设计-实验室设备管理系统

    设计要求 实验室设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号.设备名称.领用人.所属部门.数量.购买时间.价格等.能够完成 ...

  4. asp毕业设计—— 基于asp+access的实验室设备管理系统设计与实现(毕业论文+程序源码)——实验室设备管理系统

    基于asp+access的实验室设备管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的实验室设备管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  5. Java计算机毕业设计实验室设备管理系统演示录像2020源码+系统+数据库+lw文档

    Java计算机毕业设计实验室设备管理系统演示录像2020源码+系统+数据库+lw文档 Java计算机毕业设计实验室设备管理系统演示录像2020源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B ...

  6. 基于Javaweb实现实验室设备管理系统

    项目编号:BS-XX-013 本项目基于JSP/Servlet技术实现开发,开发工具采用IDEA或ECLIPSE,数据库采用MYSQL数据库. 首次使用,需要进入src/com/util/DBOK 修 ...

  7. c语言药房系统书写指导书,C语言药房管理系统[文书借鉴]

    <C语言药房管理系统[文书借鉴]>由会员分享,可在线阅读,更多相关<C语言药房管理系统[文书借鉴](16页珍藏版)>请在人人文库网上搜索. 1.include#include# ...

  8. C语言课程学籍管理课程书面报告,C语言学籍管理系统课程设计报告书

    <C语言学籍管理系统课程设计报告书>由会员分享,可在线阅读,更多相关<C语言学籍管理系统课程设计报告书(30页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计课程设计报告学 ...

  9. c语言火车票管理系统源代码2000行,C语言教务管理系统[2000行代码].doc

    专业资料 精心整理 C语言教务管理系统 一.程序结构图 二.程序运行截图 1. 个人信息简介 2. 修改颜色 3. 注册界面 4. 信息保存至文件 5. 登录界面 6. 管理员录入信息 7. 学生信息 ...

  10. c语言学生管理系统常见问题,关于C语言学生管理系统问题

    关于C语言学生管理系统问题 我弄了两天啦~就快疯掉啦~本来那个txt文件还可以储存的~但现在又不能啦~还有那个输出所有学生的信息~我不会弄啊~~望各位达人伸出援手啊~~小弟感激不尽 #include ...

最新文章

  1. 基本数据类型转换规则
  2. Python的故事_two
  3. CV之路 —— Opencv学习
  4. bp神经网络应用实例_预测方法合集——BP神经网络
  5. 小米6 twrp_小米6刷上统信 UOS 国产系统,操作流畅但安装需谨慎!
  6. html制作一个简单的邮件,使用HTML编写简单的邮件模版
  7. php中将excel写入mysql数据库的示例
  8. 帧大小超过交换机mtu_三层交换机与路由器区别在哪里?
  9. RIDE的底部的日志没显示处理
  10. U8服务器怎么修改会计制度,用友GRP-U8乡镇财政精细化管理新会计制度操作手册..doc...
  11. html左右箭头翻页代码,左右箭头图片_js实现图片上显示左右箭头类似翻页效果的代码...
  12. 手写原笔迹输入_OneNote/YouNote原笔迹手写_原道 W8S_平板电脑评测-中关村在线
  13. mpc-hc设置说明
  14. 【Windows】联想win10系统截屏快捷键
  15. s4 android4.4.2,三星Galaxy S4(GT-I9500)开始Android 4.4.2升级
  16. 2646-61-9, 脯氨酰内肽酶(PEP)底物: Z-GPLGP-OH
  17. 【JavaScript】ES5和ES6面向对象
  18. 依米花音乐播放器php源码下载
  19. PHP中数字转为百分位,千分位,万分位。。。
  20. 凝心聚力,不负好时光——慧慧兔团建拓展之旅

热门文章

  1. python论文用到的外文参考文献_论文外文文献怎么找?
  2. SpringMVC在返回JSON数据时出现406错误解决方案
  3. [3维影像]360度杯子环绕拍摄
  4. 静态页面练习(pc和移动端两套)
  5. 如何制作MacOS安装U盘
  6. java 坐标反算_Java实现坐标反算方位角
  7. iPad Java编辑器_学会这五款软件 让iPad Pro在你手里变得更强大
  8. chrome打不开网页 转圈圈
  9. 干货分享:免费文字转语音工具哪个比较好?
  10. 如何解除计算机上的安全警报,怎么关闭windows的安全警报