收藏 分销(赏)

力学设备管理系统程序设计.docx

上传人:pc****0 文档编号:8784427 上传时间:2025-03-02 格式:DOCX 页数:27 大小:570.94KB 下载积分:10 金币
下载 相关 举报
力学设备管理系统程序设计.docx_第1页
第1页 / 共27页
力学设备管理系统程序设计.docx_第2页
第2页 / 共27页


点击查看更多>>
资源描述
课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 力学实验设备管理系统 专 业 土木工程 班 级 0902 学 号 23 姓 名 伍建 指导教师 陈世清 扬子华 曹燚 2010年 12 月 27 日 湖南工程学院 课 程 设 计 任 务 书 课程名称 C语言课程设计 课 题 力学实验设备管理系统 专业班级 土木0902 学生姓名 伍建 学 号 200909070223 指导老师 陈世清  扬子华 曹燚 审 批 任务书下达日期 2010 年 12 月 27 日 任务完成日期 2011年 1 月 2日 一、设计内容与设计要求 1.设计内容: 通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理。 实验设备信息包括:设备编号,设备种类,设备名称(如烧杯、酒精灯等),设备价格,设备购入日期,是否报废,报废日期等。 主要功能: 1)、能够完成对设备的录入和修改 2)、对设备进行分类统计 3)、设备的破损耗费和遗损处理 4)、设备的查询 5)、将设备信息保存到文件中 2.设计要求: 1)、设计正确,方案合理。 2)、界面友好,使用方便。 3)、程序精炼,结构清晰。 4)、设计报告5000字以上,。 5)、上机演示。 二、进度安排 第17周 星期一 布置任务,查找资料。 星期二 确定总体方案,进行详细设计。 星期三 编写程序,上机调试。 星期四 编写程序,上机调试。 星期五 答辩,总结。 星期六~星期天 写课程设计报告 附: 课程设计报告装订顺序:封面、任务书、目录、正文、附件、评分(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、1、设计目的 2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施 5、总结与体会:课程设计的心得与体会。附件:源程序清单,清单中应有足够的注释 正文总字数要求在5000字以上(不含程序原代码)。 目录 1、 总体设计 2、 详细设计 3、 调试与测试: 4、 总结与体会 附:源程序清单和执行结果 一、设计目的 1)了解和掌握c语言面向对象程序设计的基本过程 2)学会总体规划一个程序,从各个部分把一个程序完成好 3)能够使自己的程序实现一定的功能,对C++产生一种浓厚的兴趣 4)培养耐心,遇困难不退缩 5)了解团队精神的重要性,团结合作 6)进一步熟悉C语言的特点 二、总体设计 1、力学实验设备管理系统 信息录入 信息修改 信息删除 信息统计 信息查询 信息保存 2、流程 (1)开始进入系统 开始 添加记录 查找记录 显示记录 删除记录 修改记录 结束 Menu_select 退出保存 1 2 3 4 5 6 Break Break Break Break Break break (2)菜单界面 基本信息录入 基本信息保存 基本信息查询 基本信息显示 基本信息删除 基本信息修改 (3)信息录入 1)按编号查询 2)按名称查询 3)按种类查询 (4)显示所有 (5)结束,保存信息 (6)退出系统 三、调试与测试 3.1调试 执行程序时,显示如下信息: 输入一组数据后,显示菜单: 选择不同的选项,执行相应的功能。选择1添加设备信息 选择2查找设备信息,可按三种方式查找 选择3,可显示信息 。 选择4,删除设备信息 选择5,修改设备信息。 选择0,保存并退出。 3、2测试及其解决问题 在测试过程中,关于购买日期和报废日期,输入正常,显示则成了乱码,经过仔细检查发现在定义变量的出现了问题,及时改正。 另外由于疏忽,没有将密码函数链接到主函数中,使得密码功能没有体现,及时调整。显示内容与表头进行调整对齐,由于显示函数和查找函数都有显示功能,需要同时调整。 四、详细设计 4.1函数以及调用关系 void userinterface() /*菜单函数*/ 开始 添加记录 查找记录 显示记录 删除记录 修改记录 结束 Menu_select 退出保存 1 2 3 4 5 6 Break Break Break Break Break break void showall(); /*显示函数*/ 开始 调用save( ) head==NULL ==== ==N NNNNNNNNNULL NULL NULL hhhhhead hhhhhead==NULL 显示信息 真 假 真 退出 结束 void add() /*增加设备函 开始 输入编号 Record=0 假 真 输入数据( 名称、种类、价格、购买日期、报废日期、是否报废) 继续添加 结束 void delet() /*删除函数*/ 开始 输入要删除学生学号 输入num Num=!0 真 假 删除成功 Choices() 结 束 void find() /*查找函数* 开始 按名称查找 按种类查找 按编号查找 判断 显示要查找内容 没有找到 退 出 void findchoice() 真 假 void modify() /*修改信息函数*/ 开始 输入编号 Record=0 假 真 输入数据( 新的名称、种类、价格、购买日期、报废日期、是否报废) 结束 void save(); /*把信息保存到磁盘*/ 退 出 关闭文件 开始 打开文件 数据写入文件 void load(); /*读数据*/ 开始 关闭文件 读出数据 打开文件 退 出 五、心得与体会 经过一个学期的C 语言学习,在老师的悉心帮助下,我懂得了许多关于程方面的知识,知道怎么运用一个程序,学会编写简单的程序。 实验室设备信息的浏览查询:分为对设备信息的浏览和对设备信息的准确查询。查询可以是不同字段的联合查询。该操作是所有用户都具有的操作权限。 设备事故记录:分为对设备事故的增加、设备事故的删除、设备事故的修改。作权限是管理员具有。设备资料管理模块:分为对设备施工单位、设备生产厂家、设备的相关信息。该操作权限是管理员具有设备的损坏管理:对设置的使用过程中遇到的设备损坏进行记录,并且修改相关联的数据信息。该操作对管理员开发,一般用户不具备。设备损坏信息浏览查询:实现对损坏设备信息的准确查询。查询可以是不同字段的联合查询。该操作是所有用户都具有的操作权限设备类别设置:实验室的仪器分门别类,包括类别名称,类别数量,最低数量的设置。该操作属于管理员权限。系统用户的管理:使用该系统的包括:管理员和实验课指导教师,管理员具有对实验课指导教师记录进行添加,修改,删除等操作权限。用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率 虽然对C语言知识的学习还只是皮毛,但通过这一段时间的学习和认知,我以深深爱上了C语言,希望以后能继续学习,继续深入的研究,加深对这门课程的理解,把知识运用到我们的生活当中。 附件:源程序清单 #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define SIZE 50 #define MAX 100 void Read( );  /* 读数据 */ void Save( );  /* 存数据 */ void Search( );  /* 查找 */ void SearchByID( );  /* 按编号查找 */ void SearchByEQUIP_Name( );  /* 按实验设备名称查找 */ void Delete( );  /* 删除 */ void Print( );  /* 显示 */ void Add( );  /* 录入  */ void Modify( );  /* 修改 */ void Count( );  /* 统计 */ struct cEQUIP  /* 实验设备结构体 */ { char ID[SIZE];  /* 编号 */ char EQUIP_Name[SIZE];  /* 实验设备名称 */ double  Price;  /* 设备价格 */ char Kind[SIZE];  /* 实验设备种类 */ char DP[SIZE];  /* 购买日期 */ char YN[SIZE];  /* 是否报废 */ char DR[SIZE];  /* 报废日期 */ } EQUIP[MAX],temp; int     EQUIPIndex=0; int     EQUIPSum=0; int     EQUIPFlag[MAX]; void Add( )  /* 录入数据 */ { printf("请输入编号:"); scanf("%s",temp.ID); printf("请输入实验设备名称:"); scanf("%s",temp.EQUIP_Name); printf("请输入 实验设备的设备价格:"); scanf("%lf",&temp.Price); printf("请输入实验设备种类:"); scanf("%s",temp.Kind);         printf("请输入购买日期:"); scanf("%s",temp.DP);         printf("请输入是否报废:"); scanf("%s",temp.YN);         printf("请输入报废日期:"); scanf("%s",temp.DR); EQUIP[EQUIPIndex]=temp; EQUIPFlag[EQUIPIndex]=1; EQUIPSum++; EQUIPIndex++; printf("录入成功!\n"); getch(); } void Read( )  /* 读取数据 */ { FILE *pfile= NULL; char buf[SIZE]; if((pfile = fopen("EQUIP.txt", "r")) == NULL)         {                 printf("读取信息失败!\n");                 return;          } while(fgets(buf, SIZE, pfile)) { fscanf(pfile,"%s",EQUIP[EQUIPIndex].ID); fscanf(pfile,"%s",EQUIP[EQUIPIndex].EQUIP_Name); fscanf(pfile,"%lf\n",&EQUIP[EQUIPIndex].Price); fscanf(pfile,"%s",EQUIP[EQUIPIndex].Kind);                 fscanf(pfile,"%s",EQUIP[EQUIPIndex].DP);                 fscanf(pfile,"%s",EQUIP[EQUIPIndex].YN);                 fscanf(pfile,"%s",EQUIP[EQUIPIndex].DR); EQUIPFlag[EQUIPIndex]=1; EQUIPSum++; EQUIPIndex++;  } EQUIPSum--; EQUIPIndex--; fclose(pfile); return; } void Save( )  /* 保存数据 */ { int i=0; FILE *pfile= NULL; if((pfile = fopen("EQUIP.txt", "w+")) == NULL)         {                  printf("保存信息失败!\n");                 return;          } for(i=0;i<EQUIPIndex;i++) if(EQUIPFlag[i]>0) { fprintf(pfile,"\n"); fprintf(pfile,"%s\n",EQUIP[i].ID); fprintf(pfile,"%s\n",EQUIP[i].EQUIP_Name); fprintf(pfile,"%lf\n",EQUIP[i].Price); fprintf(pfile,"%s\n",EQUIP[i].Kind);                         fprintf(pfile,"%s\n",EQUIP[i].DP);                         fprintf(pfile,"%s\n",EQUIP[i].YN);                         fprintf(pfile,"%s\n",EQUIP[i].DR);  } printf("保存成功!\n"); getch( ); fclose(pfile); } void Search( )  /* 查找 */ { int choose=0; while(1) { system("cls"); printf("\n\n\n"); printf("                     1:  按实验设备编号查询\n\n"); printf("                     2:  按实验设备名称查询\n\n"); printf("                     3:  返回\n\n"); printf("请选择:"); scanf("%d",&choose); switch(choose) { case 1:SearchByID( ); break; case 2:SearchByEQUIP_Name( ); break; case 3: return; default:break;  }  } return; } void SearchByID( )  /* 按编号查找 */ { char id[SIZE]; int i=0; printf("\n输入编号:"); scanf("%s",id); for(i=0;i<EQUIPIndex;i++) { if(strcmp(EQUIP[i].ID,id)==0) break; } if(i>=EQUIPIndex)     printf("查找失败\n"); else if(EQUIPFlag[i]==0) printf("查找失败\n"); else { printf("\n查找成功:\n"); printf("\n编号:%s\t实验设备名称:%s\n",EQUIP[i].ID,EQUIP[i].EQUIP_Name); printf("\t\t设备价格:%lf\t\t实验设备种类:%s\n",EQUIP[i].Price,EQUIP[i].Kind); printf("\t\t购买日期:%s\t\t是否报废%s\t\t报废日期:%s\n",EQUIP[i].DP,EQUIP[i].YN,EQUIP[i].DR); } printf("\n"); getch( ); return; } void SearchByEQUIP_Name( )  /* 按实验设备名称查找 */ { char EQUIP_Name[SIZE]; int i=0,j=0; printf("\n请输入实验设备名称:"); scanf("%s",EQUIP_Name); for(i=0;i<EQUIPIndex;i++) { if(strcmp(EQUIP[i].EQUIP_Name,EQUIP_Name)==0) { if(EQUIPFlag[i]!=0) { j=1; printf("\n编号:%s\t实验设备名称:%s\n",EQUIP[i].ID,EQUIP[i].EQUIP_Name); printf("\t\t设备价格:%lf\t\t实验设备种类:%s\n",EQUIP[i].Price,EQUIP[i].Kind); printf("\t\t购买日期:%s\t\t是否报废%s\t\t报废日期:%s\n",EQUIP[i].DP,EQUIP[i].YN,EQUIP[i].DR); } } } if(j==0)     printf("查找失败\n"); printf("\n"); getch( ); return; } void Modify( )  /* 修改 */ { char id[SIZE]; int i=0; printf("请输入编号:"); scanf("%s",id); for(i=0;i<EQUIPIndex;i++) { if(strcmp(EQUIP[i].ID,id)==0) break; } if(i>=EQUIPIndex)     printf("查找失败\n"); else if(EQUIPFlag[i]==0) printf("查找失败\n"); else { printf("查找成功:\n"); printf("\n编号:%s\t实验设备名称:%s\n",EQUIP[i].ID,EQUIP[i].EQUIP_Name); printf("\t\t设备价格:%lf\t\t实验设备种类:%s\n",EQUIP[i].Price,EQUIP[i].Kind); printf("\t\t购买日期:%s\t\t是否报废%s\t\t报废日期:%s\n",EQUIP[i].DP,EQUIP[i].YN,EQUIP[i].DR); printf("\n开始修改:\n"); printf("请输入编号:"); scanf("%s",temp.ID); printf("请输入实验设备名称:"); scanf("%s",temp.EQUIP_Name); printf("请输入设备价格:"); scanf("%lf",&temp.Price); printf("请输入实验设备种类:"); scanf("%s",temp.Kind); printf("请输入购买日期:"); scanf("%s",temp.DP); printf("请输入是否报废:"); scanf("%s",temp.YN); printf("请输入报废日期:"); scanf("%s",temp.DR); EQUIP[i]=temp; } printf("\n"); return; } void Delete( )  /* 删除 */ { char id[SIZE]; int i=0; printf("请输入编号:"); scanf("%s",id); for(i=0;i<EQUIPIndex;i++) { if(strcmp(EQUIP[i].ID,id)==0) break; } if(i>=EQUIPIndex)  printf("查找失败\n"); else if(EQUIPFlag[i]==0) printf("查找失败\n"); else    { printf("\n查找成功:\n"); printf("\n编号:%s\t实验设备名称:%s\n",EQUIP[i].ID,EQUIP[i].EQUIP_Name); printf("\t\t设备价格:%lf\t\t实验设备种类:%s\n",EQUIP[i].Price,EQUIP[i].Kind); printf("\t\t购买日期:%s\t\t是否报废%s\t\t报废日期:%s\n",EQUIP[i].DP,EQUIP[i].YN,EQUIP[i].DR);     EQUIPSum--; EQUIPFlag[i]=0; printf("\n"); printf("删除成功\n"); } printf("\n"); getch( ); return; } void Print( )  /* 显示 */ {   int i=0; if(EQUIPSum<=0) { printf("\n无力学实验设备信息!\n"); getch( ); return; } printf("\n数量:%d\n\n",EQUIPSum); for(i=0;i<EQUIPIndex;i++) if(EQUIPFlag[i]>0) { printf("\n编号:%s\t实验设备名称:%s\n\n",EQUIP[i].ID,EQUIP[i].EQUIP_Name); printf("\t\t设备价格:%lf\t\t实验设备种类:%s\n\n",EQUIP[i].Price,EQUIP[i].Kind); printf("\t\t购买日期:%s\t\t是否报废%s\t\t报废日期:%s\n\n",EQUIP[i].DP,EQUIP[i].YN,EQUIP[i].DR); } printf("\n"); getch( ); return; } void Count( )  /* 统计 */ { double  AllSum=0.0,avg=0.0; int i; for(i=0;i<EQUIPIndex;i++) { if(EQUIPFlag[i]!=1) continue; AllSum+=EQUIP[i].Price; } avg=AllSum/EQUIPSum; printf("实验设备价格平均值为:%lf\n",avg); printf("以下实验设备设备价格超过此平均值:\n"); for(i=0;i<EQUIPIndex;i++) { if(EQUIPFlag[i]!=1) continue; if(EQUIP[i].Price>=avg) { printf("\n编号:%s\t实验设备名称:%s\n",EQUIP[i].ID,EQUIP[i].EQUIP_Name); printf("\t\t设备价格:%lf\t\t实验设备种类:%s\n",EQUIP[i].Price,EQUIP[i].Kind); printf("\t\t购买日期:%s\t\t是否报废%s\t\t报废日期:%s\n",EQUIP[i].DP,EQUIP[i].YN,EQUIP[i].DR); } } getch(); } int main( )  /* 主函数 */ { int choose=0,i; for(i=0;i<MAX;i++) EQUIPFlag[i]=0; Read( ); while(1) { system("cls"); printf("\n\t************************************************************************"); printf("\n\t***************     欢迎进入力学实验设备信息管理系统    ***************\n"); printf("\t*********************                              *********************\n"); printf("\t****************       1:  力学实验设备信息录入         ****************\n"); printf("\t****************       2:  力学实验设备信息浏览         ****************\n"); printf("\t****************       3:  力学实验设备信息查询         ****************\n"); printf("\t****************       4:  力学实验设备信息删除         ****************\n"); printf("\t****************       5:  力学实验设备信息修改         ****************\n"); printf("\t****************       6:  统计超过平均值的设备         ****************\n"); printf("\t****************       7:  力学实验设备信息保存         ****************\n"); printf("\t****************       8:  退出                         ****************\n"); printf("\t****************                                        ****************\n"); printf("\t************************************************************************\n"); printf("请选择相应的操作<1-8>:"); scanf("%d",&choose); switch(choose) { case 1:Add( );     /* 力学实验设备信息录入 */ break; case 2:Print( );   /* 力学实验设备信息浏览 */ break; case 3:Search( );  /* 力学实验设备信息查询 */ break; case 4:Delete( );  /* 力学实验设备信息删除 */ break; case 5:Modify( );  /* 力学实验设备信息修改 */ break;                 case 6:Count( );   /* 统计超过平均值的设备 */ break; case 7:Save( );    /* 力学实验设备信息保存 */ break; case 8: exit(0); default:break; } } return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 管理财经 > 管理学资料

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服