当前位置:文档之家› c语言实验设备管理系统

c语言实验设备管理系统

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:实验设备管理系统起迄日期:指导教师:日期: 2017年5月12日1.设计目的练习与巩固《C语言程序设计》理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。

掌握运用C语言独立地编写调试应用程序和进行其它相关设计的技能。

2.任务概述要求实验设备管理系统实现对实验设备基本信息(设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期等)的管理。

系统应给用户提供一个操作简便的人机界面,使用户可以通过菜单的方式来方便的调用提供的功能。

主要功能(1)完成对设备信息的录入函数(2)完成修改某个设备信息的函数(3)根据给定信息对设备进行分类统计(4)设备的破损耗费和遗损处理(5)设备的查询3 模块划分功能[1]:添加新的设备信息功能[2]: 统计设备数量功能[3]:查找符合条件的设备及其数量功能[4]:对设备信息按条件进行分类排序功能[5]:修改设备信息功能[6]:删除某条设备记录图3.1功能图图3.2 菜单图4 主要函数说明及其N-S录入设备信息的N-S 图,如下图所示 实验设备管理系统添加设备信息修改设备信息 查询设备信息 删除设备信息 显示设备信息 统计设备信息退出系统(1)查找search()图4.4 查找操作N-S图(2)分类sort()按某种条目进行分类也是需要通过查找相同,但不同的是条目的具体内容是不确定的,只是把条目内容相同的部分进行排序使其归类在一起,使用了冒泡排序法。

由于是使用字符串,所以排序的依据是根据ASCII码顺序。

图4.5 分类N-S图图4.5 分类N-S图(3)删除delect()读取文件内容,但读写时跳过需要删除的行不读,然后把读取出的内容重新写入文件图4.6 删除N-S图5 程序运行数据及其结果(1) 录入input()图5.1 显示内容界面图(2) 修改change()int i,j; char c[20];printf("\nenter you want delete name :\n");for(i=0;i<count;i++)if(strcmp(c,dev[i].devname)==0)Y Nfor(j=i;j<count-1;j++)dev[j]=dev[j+1];printf("\t\t\tyou had delete %s\n",c);count--;output();图5.2 修改界面图修改后显示图5.3 修改结果(3)删除delect()图5.4 删除界面删除后图5.5 删除结果(4)添加图5.6 添加前图5.7 添加后(5)查找check()图5.8 界面图5.9 查找结果(6)分类sort()图5.10 分类界面图5.11 分类结果6 课程设计心得这次课程设计遇到了很多问题,有的是文档格式的设置不符合要求,有的是编译的代码运行不出来,于是又翻出了上学期的C语言书籍温习有关知识。

划分功能模块时,对于实验设备方面的知识欠缺,于是在网上查找了相关知识,结合网上热心网友提供的资源。

完成了这一步。

一个功能对应一个函数,有些函数比较复杂,请教了其他同学并结合网上的例子完成了编写。

第一次修改说明书之前,对于N-S图的画法不是太熟悉,于是用了流程图,后来班长多次强调才改成了N-S图,看了看班长在群里发的例子,又结合书上的说明,完成了N-S图。

文档格式的设置主要通过网上的教程来完成。

对于一名新手来说,网上做图并不是一件容易的事,刚开始不是错位就是字体太大,有时候修改了文本图又飞到了下一页。

一次次的修改后总算积攒了一些经验,后来画多了总算能够比较快而准确的画出来。

C语言是一门实践性较强的课程,只学会书本上的知识是远远不够的,还需要实训来巩固知识并让我们学会运用。

C语言也是软件工程后期学习的基础语言,因此必须学好C语言。

一名优秀的程序员,不仅要掌握编程方面的知识,还应该学会怎样使用办公软件。

附录:#include "stdio.h"#include "stdlib.h"#include "cstring"#define COUNT 30void start(); //函数声明void input();void change();void sort();void dele();void output();void search();struct deviceInfor{char devno[30];int devsort; //1 代表微机 2代表打印机 3代表扫描机char devname[30];int devprice;char devbuydate[30];int devstate;char devdonedate[30];}dev[COUNT];int count=0;main() //主函数{while(1)start();}void start() //启动菜单{int chi;printf(" 实验设备管理系统\n"); printf("|-----------------------------------------------|\n");printf(" | ********************************************|\n");printf(" | 1.设备信息的录入: |\n");printf(" | 2.设备信息的修改: |\n");printf(" | 3.设备信息的分类统计: |\n");printf(" | 4.删除某个设备: |\n");printf(" | 5.查找某个设备: |\n");printf(" | 6.退出系统: |\n");printf(" | ********************************************|\n");printf("|-----------------------------------------------|\n");printf(" 输入你的选择: ");scanf("%d",&chi);//printf("\n");if(chi==1) input();else if(chi==2) change();else if(chi==3) sort();else if(chi==4) dele();else if(chi==5) search();else if(chi==6) { printf("你已经退出设备管理系统!\n"); exit(0);}else { printf(" You Enter The Choice Is Not valid ! \n"); }}void input() //数据录入{char flag[20];do{printf("请输入你的设备信息:\n");printf("设备编号:");scanf("%s",dev[count].devno);printf("设备种类(1 代表微机 2代表打印机 3代表扫描机):"); scanf("%d",&dev[count].devsort);printf("设备名字:");scanf("%s",dev[count].devname);printf("设备价格:");scanf("%d",&dev[count].devprice);printf("设备购买日期:");scanf("%s",dev[count].devbuydate);printf("设备状态(1未报废 0报废):");scanf("%d",&dev[count].devstate);printf("设备报废日期:");scanf("%s",dev[count].devdonedate);count++;printf("是否继续输入数据 y是 n否 : ");scanf("%s",flag);}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0);output();}void change() //数据修改{char ch[20],a[20];int i;printf("\nyou sure want change devInfor y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nenter you want change devName:");scanf("%s",a);for(i=0;i<count;i++){if(strcmp(dev[i].devname,a)==0){ printf("\nyou sure want change dev name(y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nname:"); scanf("%s",dev[i].devname);}printf("\nyou sure want change dev no(y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nno"); scanf("%s",dev[i].devno);}printf("\nyou sure want change dev sort(y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nsort"); scanf("%d",&dev[i].devsort);}printf("\nyou sure want dev price(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nprice"); scanf("%d",&dev[i].devprice);}printf("\nyou sure want dev done date(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\ndone date"); scanf("%s",dev[i].devdonedate);}}}}output();}void sort() //数据分类显示{int i,chi,sum=0,wei=0,da=0,sao=0;printf("输入你想要统计的信息: 1(报废的机器总数) 2(机器的总类数目)"); scanf("%d",&chi);if(chi==1) {for(i=0;i<count;i++) {if(dev[i].devstate==0) sum++;}printf("报废的机器数目为 %d \n",sum);}else if(chi==2){for(i=0;i<count;i++) {if(dev[i].devsort==1) wei++;else if(dev[i].devsort==2) da++;else if(dev[i].devsort==3) sao++;}printf("微机数目为%d 打印机数目为%d 扫描机数目为 %d",wei,da,sao);}else { printf("你输入的选项不符合要求!\n");}}void dele() //数据删除{int i,j;char c[20];printf("\nenter you want delete name :\n");printf("name:");scanf("%s",c);for(i=0;i<count;i++)if(strcmp(c,dev[i].devname)==0) break;for(j=i;j<count-1;j++)dev[j]=dev[j+1];printf("\t\t\tyou had delete %s\n",c);count--;output();}void output() //数据输出{int i;for(i=0;i<count;i++){printf("%s %d %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdon edate);}}void search() //数据查找{int i;char a[20],ch[10];printf("\nenter you want look name:");scanf("%s",a);for(i=0;i<count;i++)if(strcmp(dev[i].devname,a)==0)printf("%s %d %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].de vname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdon edate);}。

相关主题