c语言设备管理系统课件
c语言设备管理系统
![c语言设备管理系统](https://img.taocdn.com/s3/m/85a5bb8ba5e9856a57126042.png)
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 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语言设备管理系统
![c语言设备管理系统](https://img.taocdn.com/s3/m/d288d77f77232f60dccca115.png)
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 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语言版
![实验设备管理系统c语言版](https://img.taocdn.com/s3/m/5dec1e0d4a35eefdc8d376eeaeaad1f346931134.png)
printf("**********************************************************\n");
printf("请输入要修改的设备编号:\n");
scanf("%s",code); /*输入要修改的设备编号*/
printf("------------------------------------\n");
}
fclose(fp);
printf("\n-----------------------\n");
printf("返回主菜单 \n");
printf("1.是\n");
printf("2.不,退出\n");
scanf("%d",&c);
if(c==1)return(-1);
if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/
实验室设备信息用文件存储,故要提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作;另外还要提供键盘式选择菜单以实现功能选择总体设计
整个系统被设计为实验设备信息输入模块、实验设备信息添加模块、实验设备信息修改模块、实验设备分类统计模块和实验设备查询模块。
{
if((fp=fopen("","r"))==NULL)
{printf("\n不能打开文件!\n");}
实验设备管理系统-c语言实现
![实验设备管理系统-c语言实现](https://img.taocdn.com/s3/m/4161b8a3ab00b52acfc789eb172ded630a1c9843.png)
一、设计目的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循环的循环条件,一举两得。
计算机操作系统之设备管理PPT课件
![计算机操作系统之设备管理PPT课件](https://img.taocdn.com/s3/m/f7e4170b326c1eb91a37f111f18583d049640fb0.png)
中断处理的概念与作用
中断处理的过程
中断检测
当设备产生中断信号时,处理器会检测到该信号并确定相应的中断类型。
保存现场
处理器会保存当前任务的上下文信息,包括程序计数器、寄存器等,以便在中断处理完毕后能够恢复到原来的任务继续执行。
执行中断处理程序
处理器会转而执行相应的中断处理程序,处理设备请求或异常情况。
设备驱动程序是操作系统与硬件之间的接口,它为应用程序提供了一个统一的接口,使得应用程序可以使用设备而无需了解设备的具体实现细节。
设备驱动程序通常由设备制造商编写,并由操作系统厂商集成到操作系统中。
设备驱动程序的概念
设备驱动程序的功能
01
控制设备:设备驱动程序负责控制设备的操作,例如打开设备、关闭设备、读写设备等。
设备独立性
设备独立软件
操作系统对设备的抽象
统一设备驱动程序
操作系统提供统一的设备驱动程序,使得应用程序可以使用标准的函数调用来访问设备。
标准接口
操作系统提供标准接口,使得应用程序可以使用标准的I/O函数来访问设备,如open、read、write、close等。
统一设备接口
03
设备驱动程序
设备驱动程序:是操作系统内核的一部分,负责与计算机硬件设备进行交互。
应用场景
多道程序设计广泛应用于各种操作系统中,如Windows、Linux等;同时也应用于各种应用领域,如数据库系统、网络通信等。
多道程序设计技术
THANKS FOR
WATCHING
感谢您的观看
缓冲的分类
根据缓冲区的管理方式,缓冲可以分为单缓冲、双缓冲和多缓冲。单缓冲用于解决输入输出速度不匹配的问题;双缓冲用于解决数据交换时的停顿问题;多缓冲则用于解决多个进程对多个设备的访问冲突问题。
c语言课程设计 实验设备管理系统
![c语言课程设计 实验设备管理系统](https://img.taocdn.com/s3/m/a79f232b2f60ddccda38a0d3.png)
课程设计报告课程名称:通讯录管理系统专 业 : 计算机科学与技术 班 级 : 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)一、设计题目及要求:建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;能够提供添加、删除和修改通讯录信息的功能;能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;将通讯录保存在文件中;能够按表格方式输出通讯录信息。
c语言设备管理系统
![c语言设备管理系统](https://img.taocdn.com/s3/m/7a66e7dd71fe910ef12df86b.png)
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期: 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语言实验室设备管理系统
![C语言实验室设备管理系统](https://img.taocdn.com/s3/m/f309c5b2bb0d4a7302768e9951e79b896902687a.png)
减少内存占用:优 化数据结构和算法, 减少内存消耗
提高运行速度:采用 高效的算法和数据结 构,减少不必要的计 算和等待时间
增强可维护性:采 用模块化设计,方 便代码的修改和维 护
增加功能:根据实 际需求,增加必要 的功能,提高系统 的实用性和易用性
系统部署与维护
硬件准备:准备服务器、网络设备、存储设备等 软件安装:安装操作系统、数据库、C语言编译器等 系统配置:配置网络、存储、数据库等参数 测试与上线:进行系统测试,确保系统正常运行,正式上线使用
操作
系统测试与优化
定义与目的:对程序中的每个模块 进行单独测试,确保其功能正确性
测试用例设计:针对每个模块设计 测试用例,包括正常情况、异常情 况等
添加标题
添加标题
添加标题
添加标题
测试方法:白盒测试、黑盒测试、 灰盒测试等
测试结果分析:对测试结果进行统 计和分析,找出问题并进行修复
定义:将多个模块组合在一起进行测试,确保系统整体功能正常运行 目的:发现模块间接口问题,确保系统稳定性和可靠性 测试方法:采用黑盒测试、白盒测试等方法,模拟实际使用场景进行测试 测试用例设计:根据需求和功能设计测试用例,覆盖所有功能点和异常情况
设备管理功能: 实现设备的添加、 删除、修改和查 询等操作
设备状态监控功 能:实时监控设 备的运行状态, 及时发现故障并 报警
设备预约功能: 学生可以通过系 统预约设备,提 高设备使用效率
设备报修功能: 学生可以通过系 统报修设备故障, 方便管理员及时 处理
数据库设计:包 括表结构、字段 定义等
理效率。
系统特点:该系 统采用C语言开发, 具有高效、稳定、 易用等特点,能 够满足实验室设 备管理的需求。
实验设备管理系统c语言版
![实验设备管理系统c语言版](https://img.taocdn.com/s3/m/c03cbe3516fc700abb68fc3b.png)
用for循环使用feof函数从文件头逐个读取文件字符直到文件结尾,其中用了strcmp函数,比较文件中的数据与输入数是否匹配,若是匹配,返回0,说明你输入的编号正确,键面进入请输入新的编号、种类、名称等,将修改后的信息写入文件中,成功后输出write。
int modifty()/*修改模块*/
Visual C++
三、内容与设计思想(1 .设计思路 2 .主要数据结构 3 .主要代码结构 4 .主要代码段分析 。 )
1 .设计思路
如下图所示
2 .主要数据结构
typedef struct EquInfo //定义结构体
{ char equipCode[10]; //编号
char equipType[20]; //种类
fprintf(fp,"%s %s %s %f %s %d %s ",newequ[j].equipCode,newequ[j].equipType,newequ[j].equipName,newequ[j].equipPrice,newequ[j].buyDate,newequ[j].scrap,newequ[j].scrapDate);
}
fclose(fp);
四、调试过程(1 .测试数据设计 2 .测试结果分析)
(1)测试数据设计:
进入主菜单:根据需求操作,按“1”添加信息,以便测试
设备个数:2
设备编号:1
设备各类:abc
设备名称:switch
设备价格:90
购买日期:
是否报废:0
报废日期:0
(2)测试结果分析:
1.主菜单函数:根据需求输入相应的操作
if(strcmp(equ.equipCode,code)==0){
c语言设备管理系统
![c语言设备管理系统](https://img.taocdn.com/s3/m/3c6c2226a26925c52dc5bf2a.png)
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语言课程设计报告设备管理系统
![C语言课程设计报告设备管理系统](https://img.taocdn.com/s3/m/84041be2a0c7aa00b52acfc789eb172ded6399f8.png)
C语言课程设计报告设备管理系统
一、课程设计的目的
本课程设计的目的是为了建立一个设备管理系统,用于实现对设备的实时管理,以及帮助设备使用者更好的实现设备的日常管理。
二、系统分析
1.功能分析
本设备管理系统主要实现以下功能:(1)用户可以添加设备信息,以便之后更好的管理其它功能;(2)用户可以查看设备信息,以便对设备进行更好的管理;(3)用户可以更新设备的信息,以便更好的管理设备;(4)用户可以删除设备,以便实现设备资源的有效利用;(5)用户可以记录设备状态,以及记录设备使用情况,从而更好的管理设备。
2.实现系统
本设备管理系统实现的主要技术有C 语言,因为C语言拥有极强的处理图形化界面的能力,可以更好地实现系统的功能。
三、设计思想
本设备管理系统采用了模块化设计思想,在建立系统的结构的时候,将系统的功能按照每一个模块做好规划,实现每一个模块的功能,从而实现整个系统的功能。
四、系统实现
1.界面设计
设备管理系统的界面可以采用菜单实现,用户可以从菜单中选择不同的功能,进行相应的操作。
2.功能实现
通过C语言实现设备管理系统功能,具体实现步骤为:(1)通过定义结构来创建存放信息的数据结构;(2)设计不同功能的函数,分别实现设备管理系统的功能;(3)调用相应的函数,实现设备管理系统的各项功能;(4)调试系统,完善系统的功能。
五、总结
本设备管理系统主要实现了设备信息添加、查看、更新和删除的功能,是一个可以帮助管理者更好的管理设备的系统。
它实现的方式是采用C语言,通过模块化设计思想,设计具体实现,最终实现了设备管理系统的功能,为管理者管理设备提供了强有力的支撑。
c语言程序设计实验设备管理系统-百度文库
![c语言程序设计实验设备管理系统-百度文库](https://img.taocdn.com/s3/m/632c6ded998fcc22bcd10d10.png)
本文由导员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 />包括课程设计的要求,设计思想,系统完成的功能,及界面设计,核心算法及说明,和结论几部分,正文必须从页首开始。
c语言课程设计之实验设备管理系统
![c语言课程设计之实验设备管理系统](https://img.taocdn.com/s3/m/4056ee72a26925c52cc5bffd.png)
目录目录.............................................................................................................................-1 - 一设计目的.................................................................................................................-2 - 二课程设计的内容.....................................................................................................-2 - 三课程设计的要求与数据.........................................................................................-2 - 四课程设计应完成的工作.........................................................................................-2 - 五总体设计(包含几大功能模块——流程图).....................................................-2 - 六详细设计(各功能模块的具体实现算法——流程图).....................................-3 -七调试分析(包含各模块的测试用例,及测试结果) (8)八总结.........................................................................................................................-17 - 九成员设计内容 (17)十参考资料.................................................................................................................-17 -一:设计目的练习与巩固《C语言程序设计》)理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。
C语言课程设计-设备管理系统
![C语言课程设计-设备管理系统](https://img.taocdn.com/s3/m/ae2e0046a216147917112861.png)
一份可以在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;}。
C语言-实验设备管理系统
![C语言-实验设备管理系统](https://img.taocdn.com/s3/m/0c3df704172ded630a1cb6ef.png)
实验设备管理系统一、设计内容与设计要求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语言课程设计报告—实验设备管理系统
![C语言课程设计报告—实验设备管理系统](https://img.taocdn.com/s3/m/4123c4db3968011ca30091f9.png)
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(">>>>>>>>>>提示:已经完成一条记录的添加。
c语言实验设备管理系统
![c语言实验设备管理系统](https://img.taocdn.com/s3/m/52fd6419d4d8d15abf234e9c.png)
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:实验设备管理系统起迄日期:指导教师:日期: 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图。
文档格式的设置主要通过网上的教程来完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期 :指导教师 :日期: 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. 所有设备的总价值。