1、 N Y 主函数的菜单流程图main()system(cls);/*清屏*/menu();void menu()int w,n;doprintf(tt WELCOME TO THE EQUIPMENT MANAGEMENT SYSTEMnnnnntt=*=nnnttt1:Add message of new equipmennnttt2:Load the message of all equipmentnnttt3:Correct the message of equipmentnnttt4:Ddlete the message of broken equipmentnnttt5:Search
2、 the message of equipmentnnttt6:Search of all the equipmentnnttt7:ExitnPlease choice your number: bbscanf(%d,&n);if(n7) w=1;else w=0;while (w=1);/*选择功能*/switch(n)case 1:add_new_message();break;/*添加模块*/case 2:load_record();/*显示模块*/case 3:modify();/*修改模块*/case 4:delete();/*删除模块*/case 5:search();/*查询模块
3、*/case 6:statistic();/*统计模块*/case 7:exit(0);/*退出模块*/2. 各功能模块设计(1)添加模块 【数据结构】 【分析】 单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。实际上操作时发现只有字符型的数据可以在文件中成功被保存,所以本题所有数据一律采用字符型。struct equipchar number4;char name11;char b_time11;char bin_time11;char bout_time11;char giveb_t
4、ime11;char repair_time11; /*time为下面程序中按时间查找和修改时记录输入的时间*/int state;equM;【注意】equM中的M是仪表仪器个数,程序中采用宏定义的方式,可以随时在源程序宏定义中改,本程序宏定义#define M 50。 【流程图】输入模块流程图【程序】/*添加模块*/void add_new_message()int t,i,m;t=load_equ();How many groups datas do you want to add?ninput the number: bbbm);for(i=0;im;i+)nInput %dth equ
5、ipment record.n,i+1);input(t+i);/*调用输入函数*/save(t+m,0);/*调用保存函数 保存t+m组数据*/*返回登陆界面*/*输入函数*/ void input(int i)Please input:nnumber name b_time b_in_time b_out_time g_back_time repair_time staten%s %s %s %s %s %s %s %dequi.number,&equi.name,&equi.b_time,&equi.bin_time,&equi.bout_time,&equi.giveb_time,&e
6、qui.repair_time,&equi.state);/*显示记录模块*/void load_record()int t;printf_n(t);nnnPress any key to go back.nngetchar();/*显示一个仪器记录的函数*/void printf_one(int i)%-3s %-10s %-10s %-10s %-10s %-10s %-10s %d.nn,equi.number,equi.name,equi.b_time,equi.bin_time,equi.bout_time,equi.giveb_time,equi.repair_time,equi.
7、state);/*显示n个仪器记录的函数*/void printf_n(int n)int j;/*清屏*/number name b_time b_in_time b_out_time g_back_time repair_time snfor(j=0;j=0)&(strcmp(equi.b_time,year2)*nnvoid sb_par_number()/*按指定编号查询*/Please input the equipment number(000999): if(strcmp(equi.number,number)=0) /*把符合条件的记录显示出来*/ /*把符合条件的记录保存在查
8、询记事本里*/ void sb_name()/*按仪器名称查询*/Please input the equipment name: if(strcmp(equi.name,name)=0) save_search_record(i);(4)删除模块 该模块的功能与修改模块一样先显示所有仪器仪表信息,同样考虑到记录较多,建议采用分屏显示。显示完所有记录后,用户输入要修改的仪器仪表编号,根据编号查找仪器仪表记录,并提示用户是否确定要删除。删除 并保存未删除的记录删除模块流程图 /*删除模块*/3. void delete1()4. 5. FILE *fp1;6. /struct equip mod;7. int t,i,m,w,addr=-1;8. char number4=9. /char a12,a22;10. system(11. t=load_equ();12. if(fp1=fopen(record.txt,w)=NULL)/*以只写方式打开*/13. 14. printf(nCannot open filen15. exit(0);16. 17. system(18. do19. 20. system(21. printf(nPlease Input the equipmentnumber or name to find it( 1:the number
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2