2022年沈阳中考满分作文C语言课程方案报告—实验设备管理系统 .docx
精选学习资料 - - - - - - - - - 11 级信息工程系组员:向长伟杨文智个人资料整理仅限学习使用C 语言试验治理系统程序设计一 课程设计的目的 方法和调试技能;二 课程设计正文提高程序设计才能,检验课堂教案内容,把握程序设计的基本1 课程设计题目的原文;试验设备信息包括:设备编号、设备种类<如:微机打印机 扫描仪 等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等;试设计一试验设备信息治理系统,使之能供应以下功能:<1 )能够完成对设备的录入和修改<2 )对设备进行分类统计<3 )设备的查询2 需求分析 试验室设备信息用文件储备,供应文件的输入输出操作;要能够完成设备的录入和修改,需要供应设备添加和修改操作;实现对设备进行分类统计,需要供应排序操作;实现对设备查询需要供应查找操作,设备的查询可依据设备编号设备种类设备购入日期 正常设备 <未报废的)等多种方式查询;另外仍要依据键盘式挑选菜单以实现功能挑选;3 总体设计与模块的划分 整个系统可设计为试验设备信息输入模块 试验设备信息添加模块 试验设备信息修改模块 试验设备分类统计模块和试验设备查询模块;4 建立试验设备信息结构体,结构体成员包括设备编号 设备种类 设备名称 设备价格 设备购入日期 是否报废 报废日期;试验设备治理系统设计实 验实 验实 验实 验实 验功 能设 备设 备设 备设 备设 备挑选信 息信 息信 息分 内查 询输 入添 加修 改统 计模块模块模块模块模块4 具体设计A 主函数名师归纳总结 - - - - - - -第 1 页,共 7 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用void main> Node *equip ;FILE *fp ;int flag ;Node *p,*q ;printf"tttt 设备治理系统 n"> ;equip=Node*>mallocsizeofNode>>;开头N equip->next=NULL;p=equip ;fp=fopen" 设备治理系统 ","wb+"> ;显示一系列功能挑选q=Node*>mallocsizeofNode>>;iffreadq,sizeofNode>,1,fp>> /将文件的内容放入接点中输入 n,判定 m q->next=NULL;p->next=q ;是否是 0到 4?p=q ; /将该接点挂入链表中 fclosefp> ; /关闭文件 依据 n 值调用各 while1> 功能模块函数 printf"*目录 *">;终止printf"n1 添加记录 n"> ;printf"n2 修改记录 n"> ;printf"n3 显示记录 n"> ;printf"n4 统计分类记录 n"> ;printf"n0*-EXIT-*n">;printf" 请输入你要操作的序号 :">;scanf"%d",&flag> switchflag> case 0: printf"n>>>>>>>>>>提示 :已经退出系统 ,ByeBye.n"> ; break ;case 1: Addequip>; break ; /增加记录case 2: Modifyequip>; break ;/修改记录case 3: Dispequip>; break ;/显示记录信息case 4: Tongjiequip>; break ; /统计记录default: printf"n>>>>>>>>>> B 各功能模块设计<1 )输入模块 Struct shebei 提示 :输入错误 .n"> ; break ;名师归纳总结 - - - - - - -第 2 页,共 7 页精选学习资料 - - - - - - - - - char ID10; char name15个人资料整理仅限学习使用; char ; char kind15; char over15; char yesno10time10 ;char price10 ;<2 )追加模块 void AddNode *equip> / 添加记录 Node *p,*r,*s ;char id10 ; /先用于输入 ID,也用于判定是否跳出循环 r=equip ;s=equip->next ; /使 s 为第一个有用的结点whiler->next.=NULL> /这个循环的作用是使r 为最终一个有用的结点开头r=r->next ; /将指针置于最末尾while1> printf">>>>>>>>>> 提示 :输入 0 就返回主菜单 .n"> ;printf"n 请你输入设备 ID 号:">;scanf"%s",id>;ifstrcmpid,"0">=0> break;输入 ID 号,并将指针置于最 末尾p=Node *>mallocsizeofNode>>; /申请空间n"> ;依次输入shebei 结构体内容,strcpyp->data.ID,id>;完成一条添加记录printf"n 请输入设备名称:">;提示以完成一条记录添加scanf"%s",p->data.name>;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">>>>>>>>>>提示 :已经完成一条记录的添加;p->next=NULL;r->next=p ; /这一步是必需的,将 p 与从前的链表连起来构成一条新链表r=p ; /也是必需的 .将 r 又重设为新链的最终一个有用结点 <3 )修改模块 void ModifyNode *equip>/ 修改 名师归纳总结 - - - - - - -第 3 页,共 7 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用Node *p ;char find20 ;if.equip->next> printf"n>>>>>>>>>>提示 :没有资料可以修改.n"> ;开头N return ; 判定是否有内容可以修printf" 请输入要修改的设备ID 号:">;改scanf"%s",find>;p=equip->next;没 有 资 料 可 以 修whilep.=NULL> 改,跳出ifstrcmpp->data.ID,find>=0> /假如找到的话返回的是符合要求break ;p=p->next ;请输入要修改的设 备 ID 号ifp> / 如找到 int x ;while1> ;完成修改输入0 否 着输入任意数进行printf" 完成修改请输入0 否就输入任意数再进行修改:">;修改scanf"%d",&x>;修改胜利提示该项ifx=0> break ; 记录资料胜利修改printf" 请输入新设备号原先是 %s >:",p->data.ID>;scanf"%s",p->data.ID>;终止printf" 请输入新设备名称原先是 %s >:",p->data.name>;scanf"%s",p->data.name>;printf" 请输入新设备设备种类名称原先是 %s >:",p->data.kind>scanf"%s",p->data.kind>;printf" 请输入新设备报废日期名称原先是 %s >:",p->data.over>scanf"%s",p->data.over>;printf" 请输入新设备是否报废原先是 %s >:",p->data.yesno>;scanf"%s",p->data.yesno>;printf" 请输入新设备购买时间原先是 %s >:",p->data.kind>;scanf"%s",p->data.time>;printf" 请输入新设备价格原先是 %s >:",p->data.price>;scanf"%s",p->data.price>;printf"n>>>>>>>>>>提示 :该项记录资料已经胜利修改.n"> ; else printf"n>>>>>>>>>>提示 :你要修改的信息不存在.n"> ; 名师归纳总结 - - - - - - -第 4 页,共 7 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用<4 )输出记录 void DispNode *equip>/ 输出记录 Node *p ;p=equip->next;if.p> printf"n>>>>>>>>>>提示 :没有记录可以显示.n"> ;return ; printf"tttt 显示结果 n"> ;printf" 设备号码设备名称 设备种类 报废日期是否报废 购买时间价格 n"> ;whilep> printf"n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price>;p=p->next ; 开头 没有记录可以显示,跳出有记录者按要求输出结<5 )统计模块void TongjiNode *equip>/ 统计 Node *p ;int sel ;int flag2=0,ha=0; char find20 ;p=equip->next;if.equip->next> / 如链表为空 printf"n>>>>>>>>>>提示 :没有资料可以统计分类.n"> ;return ; 名师归纳总结 printf">>>>>>>>>>提示 :n=>0退出 n=>1按设备号统计 n=>2按设备名称第 5 页,共 7 页- - - - - - -精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用统计 n"> ;scanf"%d",&sel>;ifsel=1> printf"n 输入你要统计分类的设备号 :">;scanf"%s",find>whilep> ifstrcmpp->data.ID,find>=0> flag2+ ; ifflag2=1&&ha.=flag2> printf" 设备号码 设备名称设备种类 报废日期 是否报废购买时间 价格 n"> ;printf"n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price>;ha=flag2 ; else ifflag2>ha>printf"n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price>;ha=flag2 ; p=p->next ; ifflag2> printf"n*按设备号%s统计分类的有%d条记录:*nn",find,flag2>; else printf"n按设备号 %s 统计的结果为0 个nn",find> ; else ifsel=2> printf"n 输入你要统计分类的设备名称 :">;scanf"%s",find>;whilep> ifstrcmpp->data.name,find>=0> flag2+ ; ifflag2=1&&ha.=flag2> printf" 设备号码 设备名称设备种类 报废日期 是否报废购买时间 价格 n"> ;printf"n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.name,p-名师归纳总结 >data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price>;第 6 页,共 7 页- - - - - - -精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用ha=flag2 ; else ifflag2>ha>printf"n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price>;ha=flag2 ; p=p->next ; ifflag2> printf"n*按设备名称%s统计的有%d条记录:*nn",find,flag2>; else printf"n按设备名称 %s 统计分类的结果为0 个nn",find> ; else ifsel=0> return; 名师归纳总结 - - - - - - -第 7 页,共 7 页