c语言设备管理系统课件
- 格式:doc
- 大小:2.05 MB
- 文档页数:20
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 2017年5月12日1 设计目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。
通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养C语言只是运用与自学能力,加强程序分析能力。
2 任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。
能够显示和统计各种设备的信息。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。
3、进一步要求:完成设备按种类、按所属部门进行统计。
3 模块划分系统可设计为:实验设备信息写入模块实验设备信息输出模块.实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块结构体成员包括设备号,设备名称,设备领用人,设备所属部门,设备数量,设备购买时间,设备价格。
4 主要函数说明及其N-S图4.1主函数流程图4.2 N-S图4.3查询记录4.4读入/写入文件图4.44.5添加数据图4.54.6删除数据图4.7修改数据4.8统计数据5 程序运行数据及其结果图5.1 进入界面图5.2菜单&功能选择图5.3 添加数据图5.4 查看数据图5.5 删除数据图5.6 修改数据图5.7 统计数据6 课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 2017年5月12日1 设计目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。
通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养C语言只是运用与自学能力,加强程序分析能力。
2 任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。
能够显示和统计各种设备的信息。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。
3、进一步要求:完成设备按种类、按所属部门进行统计。
3 模块划分系统可设计为:实验设备信息写入模块实验设备信息输出模块.实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块结构体成员包括设备号,设备名称,设备领用人,设备所属部门,设备数量,设备购买时间,设备价格。
4 主要函数说明及其N-S图4.1主函数流程图4.2 N-S图4.3查询记录图4.4读入/写入文件图4.44.5添加数据图4.54.6删除数据图4.7修改数据4.8统计数据5 程序运行数据及其结果图5.1 进入界面图5.2菜单&功能选择图5.3 添加数据图5.4 查看数据图5.5 删除数据图5.6 修改数据图5.7 统计数据6 课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。
一、设计目的1.1 设计题目:设计实现一个实验设备管理系统。
实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
1.2 设计要求(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的破损耗费和遗损处理(4)设备的查询(5)采用二进制文件方式存储数据,系统以菜单方式工作1.3 系统功能需求分析系统功能需求:设备信息的录入、修改;设备分类统计;设备破损耗费和遗损处理;设备信息查询;二进制文件方式存储数据;菜单方式工作;用户操作流程:运行程序后会弹出菜单界面,根据菜单界面的提示选择需要完成的相应功能即可完成操作。
数据处理流程:通过input函数将用户输入的各信息以二进制文件方式存储数据,后续可根据需要调用change函数、sort函数、search函数以及del函数进行数据的相应处理,最后通过output函数实现数据的输出显示。
二、总体设计实验设备管理系统功能结构图如下所示:三、详细设计3.1 结构体struct equipment_infor//定义结构体包含各设备信息{char ID[20]; //设备编号int sort; //设备种类(1代表微机 2代表打印机 3代表扫描机)char name[20]; //设备名称float price; //设备价格char buy_date[20]; //设备购买日期int state; //设备状态(报废为1,未报废为0)char scrap_date[20]; //设备报废日期}device[NUM];定义结构体数组,其中包含设备所有信息,方便数据信息的录入、输出等。
3.2 主要函数3.2.1 void load()加载已有数据函数void load() //加载已有数据{count=0;FILE* fp_5=fopen("binary.txt","rb");if(fp_5==NULL){return;}for(int i=0;;i++,count++){if(feof(fp_5)!=0){count--;break;}fread(&device[i], sizeof(struct equipment_infor),1,fp_5);}fclose(fp_5);}此函数实现了加载已有信息的功能,能够使得下次运行时上次的数据得以保留,同时计算出了count的值,可提供后续函数for循环的循环条件,一举两得。
课程设计报告课程名称:通讯录管理系统专 业 : 计算机科学与技术 班 级 : 11级计算机科学与技术<3>班 学生姓名 : 李 孝 东 学 号 : 2011404010337 指导教师 : 任 正 云 提交日期 : 2012.06.15JINGCHU UNIVERSITY OF TECHNOLOGY摘要:纸质的通讯录已经不能满足我们的要求,更新麻烦,查询困难等缺点是纸质通讯录所不能克服的。
在此情况下,迫切需要一个电子版的通讯录来满足我们的需求。
这次课程设计的通讯录采用了二叉搜索树这一数据结构,并完成了添加、查找、删除、保存等功能。
在TC2.0平台下实现了人机交互界面上的图形化设计,其中菜单的显示为逐桢动画,在等待用户按键输入时设计了友好的系统。
关键字:数组,结构体,指针,函数,文件summary:paper's address book can't meet our requirements, update the trouble, inquires the difficulty is the disadvantages such as paper address book can't overcome. In this case, the urgent need to a version of the address book to meet our needs. The course design of the address book adopted binary search trees the data structure, and completed add, delete, save search, etc. Function. In TC2.0 the workbench realized on the man-machine interface graphical design, including the menu that by standard for animation, waiting for the user input buttons when the friendly system design.Key words:arrays, structures, pointer, function, file目录一、设计题目及要求 (3)二、概要设计 (3)三、详细设计 (4)3.1 通讯录: (4)3.2 工作流程图: (5)四、源程序代码 (9)五、用户手册 (16)六、课程设计总结和心得体会 (17)七、参考文献 (17)一、设计题目及要求:建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;能够提供添加、删除和修改通讯录信息的功能;能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;将通讯录保存在文件中;能够按表格方式输出通讯录信息。
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 2017年5月12日1 设计目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。
通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养C语言只是运用与自学能力,加强程序分析能力。
2 任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。
能够显示和统计各种设备的信息。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。
3、进一步要求:完成设备按种类、按所属部门进行统计。
3 模块划分系统可设计为:实验设备信息写入模块实验设备信息输出模块.实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块结构体成员包括设备号,设备名称,设备领用人,设备所属部门,设备数量,设备购买时间,设备价格。
4 主要函数说明及其N-S图4.1 主函数流程图4.2 N-S 图4.3查询记录4.4读入/写入文件图4.44.5添加数据图4.54.6删除数据4.7修改数据4.8统计数据5 程序运行数据及其结果图5.1 进入界面图5.2菜单&功能选择图5.3 添加数据图5.4 查看数据图5.5 删除数据图5.6 修改数据图5.7 统计数据6 课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。
c语言设备管理系统————————————————————————————————作者:————————————————————————————————日期:课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 2017年5月12日1 设计目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。
通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养C语言只是运用与自学能力,加强程序分析能力。
2 任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。
能够显示和统计各种设备的信息。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。
3、进一步要求:完成设备按种类、按所属部门进行统计。
3 模块划分系统可设计为:实验设备信息写入模块实验设备信息输出模块.实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块结构体成员包括设备号,设备名称,设备领用人,设备所属部门,设备数量,设备购买时间,设备价格。
4 主要函数说明及其N-S 图4.1 主函数流程图输入数字numberT number==1 Fchec() T number==2Fadd() T number==3 Fdel() T number==4Falt() T number==5Fcount() T number==0F退出系统 4.2 N-S 图4.3查询记录设备管进入菜单实验设备信实验设备信实验设备信实验设备 实验设备实验设备实验设备图4.3 4.4读入/写入文件图4.4 4.5添加数据图4.5开定义文判断文写入关闭结按要求完成一条是否继创建一按要求结FF4.6删除数据图4.6 4.7修改数据图4.74.8统计数据图4.8输入设备进行删除结开输入要修按要求修结选择统显示统开结5 程序运行数据及其结果图5.1 进入界面图5.2菜单&功能选择图5.3 添加数据图5.4 查看数据图5.5 删除数据图5.6 修改数据图5.7 统计数据6 课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。
C语言课程设计报告设备管理系统
一、课程设计的目的
本课程设计的目的是为了建立一个设备管理系统,用于实现对设备的实时管理,以及帮助设备使用者更好的实现设备的日常管理。
二、系统分析
1.功能分析
本设备管理系统主要实现以下功能:(1)用户可以添加设备信息,以便之后更好的管理其它功能;(2)用户可以查看设备信息,以便对设备进行更好的管理;(3)用户可以更新设备的信息,以便更好的管理设备;(4)用户可以删除设备,以便实现设备资源的有效利用;(5)用户可以记录设备状态,以及记录设备使用情况,从而更好的管理设备。
2.实现系统
本设备管理系统实现的主要技术有C 语言,因为C语言拥有极强的处理图形化界面的能力,可以更好地实现系统的功能。
三、设计思想
本设备管理系统采用了模块化设计思想,在建立系统的结构的时候,将系统的功能按照每一个模块做好规划,实现每一个模块的功能,从而实现整个系统的功能。
四、系统实现
1.界面设计
设备管理系统的界面可以采用菜单实现,用户可以从菜单中选择不同的功能,进行相应的操作。
2.功能实现
通过C语言实现设备管理系统功能,具体实现步骤为:(1)通过定义结构来创建存放信息的数据结构;(2)设计不同功能的函数,分别实现设备管理系统的功能;(3)调用相应的函数,实现设备管理系统的各项功能;(4)调试系统,完善系统的功能。
五、总结
本设备管理系统主要实现了设备信息添加、查看、更新和删除的功能,是一个可以帮助管理者更好的管理设备的系统。
它实现的方式是采用C语言,通过模块化设计思想,设计具体实现,最终实现了设备管理系统的功能,为管理者管理设备提供了强有力的支撑。
本文由导员0000贡献doc文档课程设计报告书实验设备管理系统<br />班学姓<br />级:号:名:<br />0909方 0909-1 20096409 王晶康亚男<br />指导教师:指导教师:<br />石家庄铁道大学四方学院<br />二零一零年七月十五号<br />1<br />课程设计报告内容<br />1. 选择题目<br />题目:实验设备管理系统题目:实验设备管理系统 2. 内容摘要<br />实验室设备管理系统是典型的设备信息管理系统,要求能为学校实验摘要:室管理提供信息化动态化的管理,方便实验室设备管理工作,提高设备管理质量和使用效率。
而且系统应符合设备管理的有关规定,包括新设备的申请、购买确认、新设备信息录入、旧设备维修和报废及用户管理等。
能满足日常工作的基本需要,并达到操作过程中的直观、方便、实用、安全等有关要求。
实验室设备管理系统是一个典型的信息管理系统,采用面向对象的分析方法,给出系统的基本结构?设计特色?设计模型及实现途径,并且对系统的开发技术进行研究?本系统是一个为适应对学校实验室设备管理的迫切需求而设计开发的软件系统。
<br /> 3. 索引关键词<br />关键词:结构体、文件、数组、函数<br />4.目录目录<br />目录……………………………………………………………目录题目要求………………………………………………………3 题目要求设计思想……………………………………………………3-4 设计思想系统完成及功能系统完成及功能……………………………………………… 4 界面设计……………………………………………………4-5 界面设计<br />2<br />核心算法及说明………………………………………….5-11 核心算法及说明结论…………………………………………………………11 结论考资料………………………………………………………12 考资料后记…………………………………………………………12 后记附录………………………………………………………12-13 附录<br />5. 正文<br />包括课程设计的要求,设计思想,系统完成的功能,及界面设计,核心算法及说明,和结论几部分,正文必须从页首开始。
目录目录.............................................................................................................................-1 - 一设计目的.................................................................................................................-2 - 二课程设计的内容.....................................................................................................-2 - 三课程设计的要求与数据.........................................................................................-2 - 四课程设计应完成的工作.........................................................................................-2 - 五总体设计(包含几大功能模块——流程图).....................................................-2 - 六详细设计(各功能模块的具体实现算法——流程图).....................................-3 -七调试分析(包含各模块的测试用例,及测试结果) (8)八总结.........................................................................................................................-17 - 九成员设计内容 (17)十参考资料.................................................................................................................-17 -一:设计目的练习与巩固《C语言程序设计》)理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。
一份可以在vc6.0等软件上运行的C语言代码清单,其中一个主函数,设置多个调用函数,分别实现排序,输入,读取等功能模块。
#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>#define feipeineicun(p) do{ p=(shebei*)malloc(sizeof(shebei));if(p==NULL){printf("内存分配失败!");exit(-1);} }while(0)#define len sizeof(shebei)typedef struct time{int year;int mouth;int day;}time;typedef struct shebei{int bianhao;char mingcheng[15];char zhonglei[15];int danjia;int niandai;char chanjia[15];char baofei[10];time time;struct shebei *next;}shebei;//extern int//函数声明下面void caidan(shebei *top);int xuanze();shebei *xinxiluru(shebei *top); void neirongxianshi(shebei *top); void xinxichazhao(shebei *top); shebei *xinxixiugai(shebei *top); shebei *xinxishanchu(shebei *top); shebei *shebeibaofei(shebei *top);shebei *xinxipaixu(shebei *top);void fenleitongji(shebei *top);void tongmingguibing(shebei *top);void baocun(shebei *top);//#include"头文件.h"void main(){shebei *top;printf("\t************************************************* *********\n");printf("\t----------------------------------------------------------\n");printf("\t************************************************* *********\n");printf("\t--------\n");printf("\t**** 欢迎进入单位仪器设备基本信息管理系统****\n");printf("\t--------\n");printf("\t************************************************* *********\n");printf("\t----------------------------------------------------------\n");printf("\t************************************************* *********\n");do{ top=(shebei*)malloc(sizeof(shebei));if(top==NULL){printf("内存分配失败!");exit(-1);} }while(0);top->next=NULL;caidan(top);}//#include"头文件.h"void caidan(shebei *top){while(1){switch(xuanze()){case 1:top=xinxiluru(top);break;case 2:neirongxianshi(top);break;case 3:xinxichazhao(top);break;case 4:top=xinxixiugai(top);break;case 5:top=xinxishanchu(top);break;case 6:top=shebeibaofei(top);break;case 7:top=xinxipaixu(top);break;case 8:tongmingguibing(top); //先同名合并fenleitongji(top);break;case 9:baocun(top);break;default:printf("退出操作,拜拜!\n");exit(0);}}}int xuanze(){int n;printf("\n1.增加记录\n");printf("2.查看信息\n");printf("3.查找信息\n");printf("4.修改信息\n");printf("5.删除信息\n");printf("6.设备报废\n");printf("7.信息排序\n");printf("8.分类统计\n");printf("9.保存信息\n");printf("按0退出\n");for(;;){scanf("%d",&n);if(n<0||n>9)printf("\n输入错误,请重新输入:");elsebreak;}return n;}//#include"头文件.h"shebei *shebeibaofei(shebei *top){shebei *p;char b[15],c;p=top->next;if(top->next==NULL){printf("没有信息记录,返回菜单选择\n");return top;}printf("请输入要报废的设备名称:");scanf("%s",b);while(p){if(strcmp(b,p->mingcheng)==0){if(strcmp(p->baofei,"是")!=0){printf("将要报废的设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废\n");printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);printf("是否确认报废?(Y/N):");scanf("%c",&c);scanf("%c",&c);if(c=='y'||c=='Y'){strcpy(p->baofei,"是");printf("此设备已被报废\n");}}elseprintf("此设备已经为报废状态\n");break;}p=p->next;}if(p==NULL)printf("没有找到该设备信息\n");printf("按任意键返回主菜单\n");getchar();getchar();return top;}//#include"头文件.h"shebei *xinxiluru(shebei *top){int n;shebei *p,*q;p=top;while(p->next!=NULL){p=p->next;}printf("请输入设备信息:\n输入0则结束\n"); do{feipeineicun(q);printf("请输入设备的编号");scanf("%d",&q->bianhao);if(q->bianhao==0)break;printf("请输入设备的名称");scanf("%s",q->mingcheng);printf("请输入设备的种类");scanf("%s",q->zhonglei);printf("请输入设备的单价");scanf("%d",&q->danjia);printf("请输入设备的年代");scanf("%d",&q->niandai);printf("请输入设备的生产产家");scanf("%s",q->chanjia);printf("请输入设备的报废情况\n");printf("0.没有报废\n1.已经报废\n");for(;;){scanf("%d",&n);if(n!=0&&n!=1)printf("输入错误,请重新输入:\n");elsebreak;}if(n==0){strcpy(q->baofei,"否");q->time.year=q->time.day=q->time.day=0;}else{strcpy(q->baofei,"是");printf("请输入报废时间(格式为2015 10 12):");scanf("%d%d%d",&q->time.year,&q->time.mouth,&q->time.day);}p->next=q;p=q;p->next=NULL;}while(1);free(q);printf("录入完毕,按任意键返回主菜单\n");getchar();getchar();return top;}//#include"头文件.h"void neirongxianshi(shebei *top){shebei *p;p=top->next;if(top->next){printf("设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废\n");}elseprintf("记录为空,返回菜单\n");while(p){printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);p=p->next;}printf("按任意键返回主菜单\n");getchar();getchar();}//#include"头文件.h"void baocun(shebei *top){FILE *fp;shebei *p;p=top->next;if(top->next==NULL){printf("没有东西可存!\n");return;}if((fp=fopen("shebei.txt","wb"))==NULL) {printf("\n");exit(1);}while(p){fwrite(p,len,1,fp);p=p->next;}fclose(fp);printf("信息已经存入文件,请继续\n"); }//#include"头文件.h"void xinxichazhao(shebei *top){shebei *p;int a,n;char b[15];p=top->next;if(top->next==NULL){printf("没有记录信息,返回菜单选择\n");return;}printf("查找方式:\n");printf("1.按编号查找\n2.按名称查找\n");for(;;){scanf("%d",&n);if(n!=2&&n!=1)printf("输入错误,请重新输入:\n");elsebreak;}if(n==1){printf("请输入设备编号:");scanf("%d",&a);while(p){if(a==p->bianhao){printf("查找到的设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废\n");printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);break;}p=p->next;}}elseif(n==2){printf("请输入设备名称:");scanf("%s",b);while(p){if(strcmp(b,p->mingcheng)==0){printf("查找到的设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废");printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);break;}p=p->next;}}if(p==NULL)printf("没有找到该信息\n");printf("按任意键返回主菜单\n");getchar();getchar();}//#include"头文件.h"shebei *xinxipaixu(shebei *top){shebei *p,*q,*s,*t;t=top;s=p=top->next;if(p==NULL){printf("内容为空,按任意键返回菜单选择");getchar();getchar();return top;}if(p->next==NULL){printf("排序完毕,返回主菜单\n");return top;}while(p){q=p->next;while(q){if(p->danjia>q->danjia){s->next=q->next;t->next=q;q->next=p;p=q;q=q->next;}else{s=s->next;q=q->next;}}t=t->next;s=p=p->next;}printf("排序完毕,返回主菜单\n");return top;}//#include"头文件.h"shebei *xinxishanchu(shebei *top){shebei *p,*q;int a;p=top->next;q=top;if(top->next==NULL){printf("没有可删除的信息,按任意键返回菜单选择\n");getchar();getchar();return top;}printf("请输入要删除的设备编号:");scanf("%d",&a);while(p){if(a==p->bianhao){printf("\n删除的设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废\n");printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);if(p->next==NULL){q->next=NULL;free(p);}else{q->next=p->next;free(p);}break;}q=q->next;p=p->next;}if(p==NULL)printf("此设备不存在,按任意键返回\n");elseprintf("----删除成功,按任意键返回----\n");getchar();getchar();return top;}//#include"头文件.h"void tongmingguibing(shebei *top){shebei *p,*q,*s,*t,*j,*k;int flag;t=top;s=p=top->next;if(p==NULL){// printf("内容为空,按任意键返回上级");getchar();getchar();return;}if(p->next==NULL){// printf("排序完毕,返回上级\n");return;}while(p){flag=0;q=p->next;while(q){if(strcmp(p->mingcheng,q->mingcheng)==0){s->next=q->next;t->next=q;q->next=p;p=q;q=s->next;}else{if(flag==0){j=q;k=s;flag++;}s=s->next;q=q->next;}}if(flag!=0){p=j;t=s;}else{//printf("归并完毕,返回主菜单\n");return;}}// printf("归并完毕,返回主菜单\n");return;}void fenleitongji(shebei *top){shebei *p,*q,*s;int flag,n=0;p=top->next;s=p;if(top->next==NULL){printf("内容为空,按任意键返回菜单选择");getchar();getchar();return;}//tongmingguibing(top);while(p){flag=0;n=1;q=p->next;while(q){if(strcmp(p->mingcheng,q->mingcheng)==0)n++;else{if(flag==0)s=q;flag++;}q=q->next;}printf("名称为%s的设备数量为%d\n",p->mingcheng,n);if(flag!=0)p=s;elsereturn;}}//#include"头文件.h"shebei *xinxixiugai(shebei *top){shebei *p;int a,m,n;char b[15];p=top->next;if(top->next==NULL){printf("没有可供修改的信息,返回菜单选择\n");return top;}printf("请输入修改方式:\n");printf("1.按编号\n2.按名称\n");for(;;){scanf("%d",&n);if(n!=2&&n!=1)printf("输入错误,请重新输入:\n");elsebreak;}if(n==1){printf("请输入要修改的设备编号:");scanf("%d",&a);while(p){if(a==p->bianhao){printf("查找到要修改的设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废\n");printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);printf("请重新输入设备的编号");scanf("%d",&p->bianhao);printf("请重新输入设备的名称");scanf("%s",p->mingcheng);printf("请重新输入设备的种类");scanf("%s",p->zhonglei);printf("请重新输入设备的单价");scanf("%d",&p->danjia);printf("请重新输入设备的年代");scanf("%d",&p->niandai);printf("请重新输入设备的生产产家"); scanf("%s",p->chanjia);printf("请重新输入设备的报废情况\n"); printf("0.没有报废\n1.已经报废\n");for(;;){scanf("%d",&m);if(m!=0&&m!=1)printf("输入错误,请重新输入:\n");elsebreak;}if(m==0){strcpy(p->baofei,"否");p->time.year=p->time.day=p->time.day=0;}else{strcpy(p->baofei,"是");printf("请输入报废时间(格式为2015 10 12):");scanf("%d%d%d",&p->time.year,&p->time.mouth,&p->time.day);}break;}p=p->next;}}elseif(n==2){printf("请输入要修改的设备名称:");scanf("%s",b);while(p){if(strcmp(b,p->bianhao)==0){printf("查找到要修改的设备信息如下:\n");printf("设备编号设备名称设备种类设备单价购进年代生产厂家是否报废\n");printf("%d %s %s %d %d %s %s\n",p->bianhao,p->mingcheng,p->zhonglei,p->danjia,p->niandai,p->chan jia,p->baofei);printf("请重新输入设备的编号");scanf("%d",&p->bianhao);printf("请重新输入设备的名称");scanf("%s",p->mingcheng);printf("请重新输入设备的种类");scanf("%s",p->zhonglei);printf("请重新输入设备的单价");scanf("%d",&p->danjia);printf("请重新输入设备的年代");scanf("%d",&p->niandai);printf("请重新输入设备的生产产家"); scanf("%s",p->chanjia);printf("请重新输入设备的报废情况\n"); printf("0.没有报废\n1.已经报废\n");for(;;){scanf("%d",&m);if(m!=0&&m!=1)printf("输入错误,请重新输入:\n");elsebreak;}if(m==0){ strcpy(p->baofei,"否");p->time.year=p->time.day=p->time.day=0; }else{strcpy(p->baofei,"是");printf("请输入报废时间(格式为2015 10 12):");scanf("%d%d%d",p->time.year,p->time.mouth,p->time.day);}break;}p=p->next;}}if(p==NULL)printf("不存在你要修改的信息\n");printf("按任意键返回主菜单\n");getchar();getchar();return top;}。
实验设备管理系统一、设计内容与设计要求1.设计内容:通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理。
实验设备信息包括:设备编号,设备种类,设备名称(如烧杯、酒精灯等),设备价格,设备购入日期,是否报废,报废日期等。
主要功能:1)、能够完成对设备的录入和修改2)、对设备进行分类统计3)、设备的破损耗费和遗损处理4)、设备的查询5)、将设备信息保存到文件中2.设计要求:1)、设计正确,方案合理。
2)、界面友好,使用方便。
3)、程序精炼,结构清晰。
4)、设计报告5000字以上,。
5)、上机演示。
#include "stdio.h"#include "stdlib.h"#include "string.h"struct shebei{char ID[10];char name[15];char kind[15];char over[15];char yesno[10];char time[10];char price[10];};typedef struct node{struct shebei data;struct node *next; //建立一个链表。
}Node;void Add(Node *equip) //添加记录{Node *p,*r,*s;char id[10]; //先用于输入ID,也用于判断是否跳出循环r=equip;s=equip->next; //使s为第一个有用的结点while(r->next!=NULL) //这个循环的作用是使r为最后一个有用的结点r=r->next; //将指针置于最末尾while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); //申请空间strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。
C语言程序设计报告课程设计的目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。
二课程设计报告正文1课程设计题目的原文;实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1 )能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。
3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。
4建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。
4详细设计A主函数void mai n(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t 设备管理系统\n"); equip=(Node*)malloc(sizeof(Node));printf("\n2 修改记录\n");printf("\n3 显示记录\n");printf("\n4统计分类记录\n");prin tf("\nO*-EXIT-*\n ”);printf("请输入你要操作的序号:”);sca nf("%d", &flag);switch(flag){case 0: printf("\n>>>>>>>>>> 提示:已经退出系统,ByeBye!\n");break; case 1: Add(equip); break; // 增加记录case 2: Modify(equip); break;// 修改记录case 3: Disp(equip); break;// 显示记录信息case 4: Ton gji(equip); break;// 统计记录default: printf("\n>>>>>>>>>> 提示:输入错误!\n"); break;}}}B各功能模块设计(1 )输入模块Struct shebei{ char ID[10]; char name[15]; char kind[15]; char over[15]; char yesno[10]; char time[10]; char price[10];};(2 )追加模块void Add(Node *equip) // 添加记录{Node *p,*r,*s;char id[10]; //先用于输入ID,也用于判断是否跳出循环r=equip;s=equip->next; //使s 为第一个有用的结点 while(r->next!=NULL) // 这个循环的作用是使r=r->next; //将指针置于最末尾 while(1){ printf(">>>>>>>>>>提示:输入0则返回主菜单printf("\n 请你输入设备ID 号:"); sca nf("%s",id);if(strcmp(id,"0")==0) break; p=(Node*)malloc(sizeof(Node)); // 申请空间 strcpy(p->data.ID,id); printf("\n 请输入设备名称:"); scanf("%s",p->data .n ame); printf("\n 请输入设备种类:");sca nf("%s",p->data.ki nd); printf("\n 请输入报废日期:"); sca nf("%s",& p->data.over); printf("\n 请输入设备是否报废:"); sca nf("%s", &p->data.yes no);printf("\n 请输入设备购买时间:”); sca nf("%s",&p->data.time); printf("\n 请输入设备价格:"); scanf("%s", &p->data.price); printf(">>>>>>>>>>提示:已经完成一条记录的添加。
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:实验设备管理系统起迄日期:指导教师:日期: 2017年5月12日1.设计目的练习与巩固《C语言程序设计》理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。
掌握运用C语言独立地编写调试应用程序和进行其它相关设计的技能。
2.任务概述要求实验设备管理系统实现对实验设备基本信息(设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期等)的管理。
系统应给用户提供一个操作简便的人机界面,使用户可以通过菜单的方式来方便的调用提供的功能。
主要功能(1)完成对设备信息的录入函数(2)完成修改某个设备信息的函数(3)根据给定信息对设备进行分类统计(4)设备的破损耗费和遗损处理(5)设备的查询3 模块划分功能[1]:添加新的设备信息功能[2]: 统计设备数量功能[3]:查找符合条件的设备及其数量功能[4]:对设备信息按条件进行分类排序功能[5]:修改设备信息功能[6]:删除某条设备记录4(1)查找search()图查找操作N-S图5(3)删除delect()图删除界面删除后图删除结果(4)添加图添加前图添加后(5)查找check()图界面图查找结果(6)分类sort()图分类界面图分类结果6 课程设计心得这次课程设计遇到了很多问题,有的是文档格式的设置不符合要求,有的是编译的代码运行不出来,于是又翻出了上学期的C语言书籍温习有关知识。
划分功能模块时,对于实验设备方面的知识欠缺,于是在网上查找了相关知识,结合网上热心网友提供的资源。
完成了这一步。
一个功能对应一个函数,有些函数比较复杂,请教了其他同学并结合网上的例子完成了编写。
第一次修改说明书之前,对于N-S图的画法不是太熟悉,于是用了流程图,后来班长多次强调才改成了N-S图,看了看班长在群里发的例子,又结合书上的说明,完成了N-S图。
文档格式的设置主要通过网上的教程来完成。
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期 :指导教师 :日期: 2017 年5 月12 日1 设计目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。
通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握 C 语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养 C 语言只是运用与自学能力,加强程序分析能力。
2 任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为 1 条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。
能够显示和统计各种设备的信息。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个文件,包含一个部门10 台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。
3、进一步要求:完成设备按种类、按所属部门进行统计。
3 模块划分系统可设计为:实验设备信息写入模块实验设备信息输出模块.实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块结构体成员包括设备号,设备名称,设备领用人,设备所属部门,设备数量,设备购买时间,设备价格。
4 主要函数说明及其N-S 图设备管理系统实验进入实验实验实验实验实验实验菜单设备设备设备设备设备设备设备信息信息信息信息信息信息信息写入查询输出添加查询删除统计功能选择模块模块模块模块模块模块模块4.1 主函数流程图输入数字numberT number==1Fchec() T number==2Fadd() T number==3Fdel() T number==4 Falt() T number==5 Fcount() T number==0 F退出系统4.2 N-S 图4.3 查询记录开始按要求查看记录图4.3结束4.4 读入/ 写入文件开始定义文件指针F判断文件是否可存在?图4.4创建一个文件T写入数据关闭文件结束4.5 添加数据开始按要求输入信息图4.5完成一条记录的添加F是否继续输入?T结束4.6 删除数据开始输入设备ID 号图4.6进行删除操作结束4.7 修改数据开始输入要修改的ID 号图4.7按要求修改数据结束4.8 统计数据开始选择统计方式图4.8显示统计结果结束5 程序运行数据及其结果图5.1 进入界面图5.2 菜单&功能选择图5.3 添加数据图5.4 查看数据图5.5 删除数据图5.6 修改数据图5.7 统计数据6 课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。
在大一下学期C语言实训中,不仅有网上已有成果的借鉴与分析,以及向同学的请教,还有相关资料的查阅,既加深了自身能力的认知与对自己不足的体会,也优化了和同学的关系,真可谓一举两得。
同时还得出一个结论:亲身下河知深浅,亲口尝梨知酸甜!作为一名软件工程的学生,平时在电脑跟前敲代码的过程是必需的,谁也躲不了,一份努力,一份收获,同时,学习C语言需要细密又严谨的思维,良好的操作习惯,这样才有可能在编程的道路上百尺竿头更进一步!也希望各位老师、身边的同学监督,更需要自己的积极自省。
期待三年后一个成熟优秀的自己!附录:#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>void menu(); // 功能选择void add(); // 添加信息void del(); // 删除信息void alt(); // 修改信息void chec(); // 查看信息void count(); // 统计信息void read(); // 读取文件void write(); // 写入文件struct array{char ano[20],aname[20],aowner[20],aapartment[20],aamount[20],atime[20],aprice[20];int del; // 判断是否删除,值为0 为未删除, 1 为已删除} a[20];int No,sum;int main(){system("mode con cols=145 lines=35");puts("\n\n\n\n\n\n\n\n\n\n\n\n\n <<<<<< 欢迎使用设备管理系统!>>>>>>");getchar();read(); // 实现文件读进内存menu(); // 实现功能选择write(); // 实现信息写入文件return 0;}void menu(){system("cls");int a;puts("\n\n\n\n\n\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 请选择需要的功能:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");puts(" 1. 查看设备信息\n2. 添加设备信息\n3. 删除设备信息\n4. 修改设备信息\n5. 统计设备信息\n0. 退出系统");printf("\t\t 请选择你的功能(选择0~5)[ ]\b\b");scanf("%d",&a);switch (a){case 0:return;case 1:chec();break;case 2:add();break;case 3:del();break;case 4:alt();break;case 5:count();break;default:printf(" 信息有误!请检查后重新输入\n");}}void read(){No=0;FILE *fp=fopen("D:\\infor.txt","r+"); // 读写功能if(fp==NULL){f p=fopen("D:\\infor.txt","w+"); // 若没有则创建一个txtf close(fp);}int i;for(i=0;!feof(fp);i++){fread(&a[i],sizeof(struct array),1,fp); // 一次读取一个No++;}No=No-1;fclose(fp);}void write(){int i;FILE *fp=fopen("D:\\infor.txt","w+");for (i=0;i<No;i++)if (!a[i].del)fwrite(&a[i],sizeof(struct array),1,fp);fclose(fp);}void chec(){int i;printf(" 设备号设备名称领用人所属部门数量购买时间价格\n");for(i=0;i<No;i++){i f(a[i].del==0)printf("%8s%20s%20s%20s%20s%20s%20s\n",a[i].ano,a[i].aname,a[i].aowner,a[i].aapartment,a[i].aamount,a[i].atime,a[i].aprice);}getchar();getchar();menu();}void add(){char s;printf(" 请输入要添加的设备号:\n");scanf("%s",a[No].ano);printf(" 请输入要添加的设备名称:\n");scanf("%s",a[No].aname);printf(" 请输入要添加的设备领用人:\n");scanf("%s",a[No].aowner);printf(" 请输入要添加的设备的所属部门:\n");scanf("%s",a[No].aapartment);printf(" 请输入要添加的设备数量:\n");scanf("%s",a[No].aamount);printf(" 请输入要添加的设备购买时间:\n");scanf("%s",a[No].atime);printf(" 请输入要添加的设备价格:\n");scanf("%s",a[No].aprice);a[No].del=0;No+=1;printf(" 请问是否继续添加?(Y/N)(不区分大小写)\n");while (1){getchar();gets(&s);i f (s=='Y'||s=='N'||s=='y'||s=='n')break;else{puts(" 信息有误!请检查后重新输入\n");puts(" 按任意键重新输入!");getchar();getchar();getchar();}}if(s=='Y'||s=='y')add();else if(s=='N'||s=='n')system("cls");menu();}void del(){char ch[20],s;int i;printf(" 请输入要删除的设备编号:(0 键返回菜单栏)\n");printf(" 设备号设备名称领用人所属部门数量购买时间价格\n");for(i=0;i<No;i++){i f(a[i].del==0)printf("%4d%20s%20s%20s%20s%20s%20s%20s\n",i+1,a[i].ano,a[i].aname,a[i].aowner,a[i].a apartment,a[i].aamount,a[i].atime,a[i].aprice);}while (1){scanf("%s",ch);i =atoi(ch);i f (i>=1 && i<=No)break;else if(i==0)return;else puts(" 信息有误!请检查后重新输入\n");}a[i-1].del=1;printf(" 是否继续删除?(Y/N)(不区分大小写)\n");while (1){getchar();gets(&s);i f (s=='Y'||s=='N'||s=='y'||s=='n')break;else puts(" 信息有误!请检查后重新输入\n");}if(s=='Y'||s=='y')del();else if(s=='N'||s=='n')system("cls");menu();}void alt(){char s,ch[20];int i,j;printf(" 请输入修改的设备的编号:\n");printf(" 设备号设备名称领用人所属部门数量购买时间价格\n");for(i=0;i<No;i++){printf("%4d%20s%20s%20s%20s%20s%20s%20s\n",i+1,a[i].ano,a[i].aname,a[i].aowner,a[i].aapartment,a[i].aamount,a[i].atime,a[i].aprice);}while (1){scanf("%s",ch);i =atoi(ch);i f (i>=1 && i<=No)break;else if(i==0)return;else puts(" 信息有误!请检查后重新输入\n");}if(a[i-1].del==1){printf(" 该设备已被删除!\n");r eturn;}printf(" 请输入您要修改的内容的编号:\n1. 设备号\n2. 设备名称\n3. 领用人\n4. 所属部门\n5. 数量\n6. 购买时间\n7. 价格\n0. 返回菜单栏\n");while (1){scanf("%s",ch);j =atoi(ch);i f (j>=1 && j<=7)break;else if(i==0){return;}else puts(" 信息有误!请检查后重新输入\n");}printf(" 请输入要修改的信息:\n");switch (j){c ase 1:{scanf("%s",a[i-1].ano);break;}case 2:{scanf("%s",a[i-1].aname);break;}case 3:{scanf("%s",a[i-1].aowner);break;}case 4:{scanf("%s",a[i-1].aapartment);break;}case 5:{scanf("%s",a[i-1].aamount);break;}c ase 6:{scanf("%s",a[i-1].atime);break;}c ase 7:{scanf("%s",a[i-1].aprice);break;}}printf(" 是否继续修改?(Y/N)(不区分大小写)\n"); while (1){getchar(); // 获取回车gets(&s); // 获取si f (s=='Y'||s=='N'||s=='y'||s=='n')break;else puts(" 信息有误!请检查后重新输入\n");}if(s=='Y'||s=='y')alt();else if(s=='N'||s=='n')system("cls");menu();}void count(){char ch[20],temp[20],s;int i,j,n;sum=0;printf(" 请选择统计方式:\n1. 所有设备的总价值。