收藏 分销(赏)

力学实验设备管理系统--课程设计.doc

上传人:可**** 文档编号:2019684 上传时间:2024-05-13 格式:DOC 页数:74 大小:639KB 下载积分:10 金币
下载 相关 举报
力学实验设备管理系统--课程设计.doc_第1页
第1页 / 共74页
力学实验设备管理系统--课程设计.doc_第2页
第2页 / 共74页


点击查看更多>>
资源描述
成都职业技术学院 力学实验设备管理系统 姓 名 : DEV-C编辑 2017年1月 目录 第1章 设计目的 2 第2章 总体设计 2 2.1力学实验设备管理系统的要求 2 2.2流程图 3 2.3模块图 7 2.4设置的主要函数 8 2.5设置文件保存位置及文件名 9 1 :D:\shebei.dat 9 第三章 需求规定 9 3.1 功能规定 9 1.设备管理员 9 2.设备使用者 10 3.2其余功能分析表 11 3.3性能规定 11 1. 精度 11 2.灵活性 11 第4章 分工合作 12 第1章 设计目的 本次C语言课程设计是对本学期程序设计基础课程的实际应用,通过课程设计主要达到如下目的: 1. 巩固和加深对C语言课程的基本知识的理解和掌握。 2. 掌握C语言编程和程序调试的基本技能。 3. 利用C语言进行基本的软件设计。 4. 掌握书写程序设计说明文档的能力。 5. 提高运用C语言解决实际问题的能力。 第2章 总体设计 2.1力学实验设备管理系统的要求 通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存、删除等操作的管理。 实验设备信息包括:设备编号,设备种类,设备名称(如烧杯、酒精灯等),设备价格,设备购入日期,是否报废,报废日期等。 主要功能: 1)、能够完成对设备的录入和修改 2)、对设备进行分类统计 3)、设备的破损耗费和遗损处理 4)、设备的查询 5)、将设备信息保存到文件中 2.2流程图 根据设计要求,画出如下流程图: 1 整体流程图 Y N N Y Y N N Y 退出 返回 录入 浏览 修改 删除 查询 返回 查询 浏览 密码 菜单 开 始 设备管理员 设备使用者 2 设备使用者流程图 3 设备管理者流程图 编号查询 种类查询 名称查询 返回 删除 修改 显示 查询 录入 管理员 开始 菜单 2.3模块图 种类查询 名称查询 编号查询 浏览 开 始 退出 返回 录入 浏览 修改 删除 查询 返回 查询 设备管理员 设备使用者 2.4设置的主要函数 void menu() //菜单函数 void Browse() //显示 M *Input() //录入(增加)成员 M *Delet() //删除 void Search() //查找 void Findchoice() //选择查找方式函数 M *Modify() //修改信息 结构体 Typedef struct mechanical //定义力学设备结构体 { char no[6]; //编号 char name[20]; //名称 char kind[20]; //种类 char price[10]; //价格 char purtime[8]; //购买日期 char scrtime[8]; //报废日期 char scrap[3]; //是否报废 char cost[10] ; //破损耗费 struct mechanical *next; //指向结构体数据类型的指针 }M; 2.5设置文件保存位置及文件名 1 :D:\shebei.dat 第三章 需求规定 3.1 功能规定 功能需求分析举例 1.设备管理员 建立设备库 流程: 1) 登录者选择“管理员登陆”菜单,打开“管理员”页面 2) 输入密码,验证通过后进入“管理员”界面。 3) 选择“录入”对应选项,打开录入设备界面 4) 按照要求输入需要新增的设备信息,完成设备新增操作。 5) 新增完成后,返回“管理员”页面列表。 输入: 输入名称 数据类型 长度限制 备注 编号 char * 6 名称 char * 20 种类 char * 20 价格 char * 10 购买日期 char * 8 报废日期 char * 8 是否报废 char * 3 破损耗费 char * 10 输出:图书保存成功!按任意键返回主菜单。。。。 2.设备使用者 浏览设备 查询设备 流程: 1) 登录者选择“使用者”登陆菜单,打开“使用者”页面 2) 选择“查询,浏览”对应的选项,打开界面 3) 按照要求输入需要查询的设备信息,完成使用者查询操作。 4) 查询完成后,返回“使用者”页面列表。 输入: 输入名称 数据类型 长度限制 备注 名称 char* 20 编号 char* 6 种类 char* 20 输出:登记成功! 3.2其余功能分析表 设备管理员 1. 建立设备库 2. 查询设备信息(根据:编号、名称、种类) 3. 添加设备 4. 修改设备 5. 删除设备 设备使用者 1. 浏览设备信息 2. 编号查询 3. 名称查询 4. 种类查询 3.3性能规定 1. 精度 1.要按照严格的数据格式输入,否则软件不予响应进行处理。 2.查询是要保证查全率,所有相应域包含查询关键字的记录都应能查到。由于通常有文件的记录会很多,所以本软件采用两种方法进行查询:直接查询和模糊查询 2.灵活性 当需求发生某些变化时,该软件具有较强的适应能力,如: a. 本软件的运行环境将不会变化。 b. 精度与有效时限不会改变。 c. 计划将会进行改进。 第4章 分工合作 4.1 暂时分工 附录 #include "windows.h" #include "stdio.h" #include "string.h" #include "stdlib.h" #include "conio.h" #include "time.h" #define MaxPwdLen 32 //密码的最大长度 struct mechanical { char no[8]; //编号 char name[20]; //名称 char kind[20]; //种类 char price[10]; //价格 char purtime[12]; //购买日期 char scrtime[12]; //报废日期 char scrap[4]; //是否报废 char cost[10]; //破损耗费 struct mechanical *next; } *root_mechanical,s[1000]; struct regis //注册信息结构体定义 { char number1[32]; //注册使用者账号 char pwd1[32]; // char pwd2[32]; //注册使用者密码 char pwd3[32]; // }R[1000]; FILE *fp;//文件指针 void gotoxy(int,int);//光标定位 struct mechanical *input(void);//录入 void Browse(struct mechanical *);//浏览 struct mechanical * insert(struct mechanical *);//增加 void del(void);// 删除 void password();//密码 int sj(void);//时间 // system("color f0"); //------------主菜单 caidan() { int choice; system("cls"); system("color f0");//颜色 背景 白 前景 黑 while(1) { system("cls"); printf("\n\t\t\t┏━━━━━━━━━━━━━━━━━━━━━━━┓\n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 力学实验室设备管理系统 \n");printf("\t\t\t┃ \n"); printf("\t\t\t┣━━━━━━━━━━━━━━━━━━━━━━━━━\n"); printf("\t\t\t┣━━━━━━━━━━━━━━━━━━━━━━━━━\n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 1.设备使用者登录界面 \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 2.设备管理员界面 \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 3.设备使用者注册界面 \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 0.退出系统 \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━\n"); gotoxy(60,25);sj(); gotoxy(40,18); printf("请输入选项[ ]\b\b\b");scanf("%d",&choice); switch(choice) { case 2: PassWord();//管理员 break; case 1:password1();//使用者 break; case 3:R_register();//使用者注册 break; case 0:tc();exit(0); getch(); default:printf("输入错误!!!...\n按任意键返回\n");getch();break; } } } //-----------------使用者菜单 people() { int choice ; system("color f0"); while(1) { system("cls"); printf("\t\t\t┏━━━━━━━━━━━━━━━━┓\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┃ 设备使用者界面 ┃\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┣━━━━━━━━━━━━━━━━┫\n"); printf("\t\t\t┣━━━━━━━━━━━━━━━━┫\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┃ 1.浏览 ┃\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┃ 2.查询 ┃\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┃ 0.返回 ┃\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┃ ┃\n"); printf("\t\t\t┗━━━━━━━━━━━━━━━━┛\n"); gotoxy(60,25);sj(); gotoxy(35,18); printf("请输入选项[ ]\b\b\b");scanf("%d",&choice); switch(choice) { case 1:Browse(root_mechanical); //----浏览 break; case 2:Search2();//-----查询 break; case 0:caidan();//----返回菜单 break; default:printf("输入错误!!!...\n按任意键返回\n");getch();break; } } } //-------------------------管理员菜单 adm() { int c; root_mechanical=NULL; while(1) { system("cls"); printf("\t\t\t┏━━━━━━━━━━━━━━━━━━━━━━━━━\n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 设备管理员界面 \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┣━━━━━━━━━━━━━━━━━━━━━━━━━\n"); printf("\t\t\t┣━━━━━━━━━━━━┳┳━━━━━━━━━━━\n"); printf("\t\t\t┃ ┃┃ \n"); printf("\t\t\t┃ 1.录入 ┃┃ 2.显示 \n"); printf("\t\t\t┃ ┃┃ \n"); printf("\t\t\t┃ 3.添加 ┃┃ 4.删除 \n"); printf("\t\t\t┃ ┃┃ \n"); printf("\t\t\t┃ 5. 修改 ┃┃ 6.查询 \n"); printf("\t\t\t┃ ┃┃ \n"); printf("\t\t\t┃ 7.查看注册信息 ┃┃ 8.删除注册信息 \n"); printf("\t\t\t┃ ┃┃ \n"); printf("\t\t\t┣━━━━━━━━━━━━┻┻━━━━━━━━━━\n"); printf("\t\t\t┃ \n"); printf("\t\t\t┃ 0.返回 \n"); printf("\t\t\t┃ \n"); printf("\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━\n"); gotoxy(60,25);sj(); gotoxy(40,20); printf("请输入选项:[ ]\b\b\b");scanf("%d",&c); switch(c) { case 1:root_mechanical=input();break; //-----录入 case 2:Browse(root_mechanical);break;//-----显示 case 3:root_mechanical=insert(root_mechanical);break;//------添加 case 4:del();break;//----删除 case 5:Modify();break;// -----修改 case 6:Search();break;//-----查询 case 7:zc();break;//-----查看注册信息 case 8:zcsc(R);break;//-----查看注册信息 case 0:caidan();break;//---退出 default:printf("输入错误!!!...\n按任意键返回\n");getch();break; } } } //---------------------------------------建立链表 struct mechanical *input(void) { struct mechanical *root,*p1,*p2; char c; int f=0,n,i,m=1; system("cls"); fp=fopen("d:\\shebei.dat","wb"); root=p1=(struct mechanical *)malloc(sizeof(struct mechanical)); gotoxy(40,f+10); printf("请输入你需要输入的数量:[ ]\b\b\b\b\b\b"); scanf("%d",&n); system("cls"); printf("\n---------------------------------------------------------------------------------------------------------\n"); printf("| 编号 | 名称 | 种类 | 价格 | 购买日期 | 报废日期 | 是否报废 | 破损耗费 | \n"); printf("---------------------------------------------------------------------------------------------------------\n"); for(i=1;i<=n;i++) { // printf("| | | | | | | | |\n"); //printf("---------------------------------------------------------------------------------------------------------\n"); // gotoxy(2,20+m); //printf("---------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:最多六位数\n"); gotoxy(2,f+4); scanf("%s",p1->no); // gotoxy(2,20+m); //printf("---------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:最多五个字\n"); gotoxy(12,f+4); scanf("%s",p1->name); // gotoxy(2,20+m); //printf("-----------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:最多五个字 \n"); gotoxy(27,f+4); scanf("%s",p1->kind); // gotoxy(2,20+m); //printf("-----------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:最多9位数 \n"); gotoxy(41,f+4); scanf("%s",p1->price); // gotoxy(2,20+m); //printf("-----------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:输入格式如:20011011 \n"); gotoxy(55,f+4); scanf("%s",p1->purtime); // gotoxy(2,20+m); //printf("-----------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:输入格式如:20011011 \n"); gotoxy(68,f+4); scanf("%s",p1->scrtime); // gotoxy(2,20+m); //printf("-----------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:输入(是\否) \n"); gotoxy(83,f+4); scanf("%s",p1->scrap); // gotoxy(2,20+m); // printf("-----------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21+m); printf(" "); gotoxy(2,21+m); printf("提示:最多8位数 \n"); gotoxy(95,f+4); scanf("%s",p1->cost); gotoxy(2,21+m); printf(" "); gotoxy(95,f+4); //printf("\n"); f+=2; m++; fwrite(p1,sizeof(struct mechanical),1,fp); p2=(struct mechanical *)malloc(sizeof(struct mechanical)); p1->next=p2;//链接到下一个链表 p1=p2; } fclose(fp); return root; } //--------------------------------------------------浏览 void Browse(struct mechanical *root) { struct mechanical *p1; int i=0; p1=root; fp=fopen("d:\\shebei.dat","rb"); if(fp==NULL) { printf("\n\n文件打开失败,按任意键返回主菜单"); getch(); return; } system("cls"); printf("\n---------------------------------------------------------------------------------------------------------\n"); printf("| 编号 | 名称 | 种类 | 价格 | 购买日期 | 报废日期 | 是否报废 | 破损耗费 | \n"); printf("---------------------------------------------------------------------------------------------------------\n"); while(1) { p1=(struct mechanical *)malloc(sizeof(struct mechanical)); fread(p1,sizeof(struct mechanical),1,fp); if(feof(fp)!=0) break; printf("|%10s|%14s|%13s|%11s|%12s|%12s|%11s|%13s|\n",p1->no,p1->name,p1->kind,p1->price,p1->purtime,p1->scrtime,p1->scrap,p1->cost); printf("---------------------------------------------------------------------------------------------------------\n"); if(i==5) { getch(); i=0; printf("\n\n"); } }getch(); fclose(fp); printf("数据浏览完毕,按任意键返回。。"); getch(); } //-----------------------------------链表末尾添加 struct mechanical * insert(struct mechanical *root) { struct mechanical *new_stu,*p; char c; int f=0,i,n; fp=fopen("d:\\shebei.dat","ab"); system("cls"); gotoxy(40,f+10); printf("请输入你需要输入的数量:[ ]\b\b\b\b\b\b"); scanf("%d",&n); system("cls"); printf("\n---------------------------------------------------------------------------------------------------------\n"); printf("| 编号 | 名称 | 种类 | 价格 | 购买日期 | 报废日期 | 是否报废 | 破损耗费 | \n"); printf("---------------------------------------------------------------------------------------------------------\n"); // new_stu=(struct mechanical *)malloc(sizeof(struct mechanical)); for(i=0;i<n;i++) { printf("| | | | | | | | |\n"); printf("---------------------------------------------------------------------------------------------------------\n"); new_stu=(struct mechanical *)malloc(sizeof(struct mechanical)); gotoxy(2,20); printf("---------------------------------------------------------------------------------------------------------\n"); gotoxy(2,21); printf(" "); gotoxy(2,21); printf("提示:最多六位数\n"); gotoxy(2,f+4); scanf("%s",new_stu->no); gotoxy(2,20); printf("---------------------
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服