还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
中国地质大学本科生课程论文封面课程名称c语言课程设计教师姓名刘文中本科生姓名陈文本科生学号20121003931本科生专业网络工程所在院系计算机学院类别:日期:课程设计评语对课程论文的评语:平时成绩课程论文成绩总成绩评阅人签名注
1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩目录TOC\o1-3\h\z\u课程设计评语2目录31.课程论文题目42.程序设计思路43.功能模块图54.数据结构设计55.算法设计66.程序代码137.程序运行结果228.编程中遇到的困难及解决方法259.总结心得及良好建议2610.致谢261.课程论文题目物资管理系统2.程序设计思路
(1)库存和领料信息以文本文件的方式存放在两个文件里,提供相应的输入输出操作
(2)提供库存几种方式的查找
(3)提供库存的建立、插入
(4)能查找满足领货要求的信息,并修改库存、领货文本文件3.功能模块图4.数据结构设计
(一)主函数一般是设计简洁,只提供输入,处理和输出部分的函数调用其中各功能模块用菜单方式选择其中流程图如图
(1)图
(1)菜单****/do{puts\n\t\t*****************菜单********************\n\n;puts\t\t\t
1.信息输入;puts\t\t\t
2.信息查询;puts\t\t\t
3.信息插入;puts\t\t\t
4.领货;puts\t\t\t
5.信息打印;puts\t\t\t
6.退出;puts\n\n\t\t***************************************\n;puts\t\t******************************陈文\n;printf请选择[1-6]:[]\b\b;scanf%dn;ifn1||n6{w1=1;getchar;}elsew1=0;}whilew1==1;switchn/***********选择功能***********/{case1:enter;break;/***********信息输入模块***********/case2:search;break;/***********信息查询模块***********/case3:insert;break;/***********信息添加模块***********/case4:lend;break;/***********物资__模块***********/case5:print;break;/***********信息打印模块***********/case6:exit0;/***********退出模块***********/}}__in/***********主函数***********/{menu;}
(二)各功能模块设计
1.输入模块*********几种类型,名称等信息*********/***********信息输入模块***********/voidenter{intin;printf\n产品种类数量0-%d:N-1;scanf%dn;printf\n请输入数据\n\n;fori=0;in;i++{printf输入第%d种产品数据:\ni+1;inputi;}ifi!=0s__en;printf_back;}
2.searchmenu*******查询模块*******/***********信息查询模块***********/voidsearchmenu{intnw2;do{puts\n\t\t*****************查询********************\n\n;puts\t\t\t
1.按名称查询;puts\t\t\t
2.按日期查询;puts\t\t\t
3.按名称规格查询;puts\t\t\t
4.返回;puts\n\n\t\t***************************************\n;printf请选择[1-4]:[]\b\b;scanf%dn;ifn1||n4{w2=1;getchar;}elsew2=0;}whilew2==1;switchn/***********选择功能***********/{case1:search_by_name;break;/***********按名称查询***********/case2:search_by_date;break;/***********按日期查询***********/case3:search_by_nameandsize;break;/*********按名称规格查询*********/case4:getch;menu;/***********退出模块***********/}}voidsearch{searchmenu;}/***********按名称查询***********/voidsearch_by_name{intjnm=0;chara
[20];n=load;printf\n请输入产品名称!\nname:;scanf%sa;forj=0;jn;j++ifstrcmpapro[j].p_name==0{m++;printf_dataj;}printf\n找到%d种产品!m;getch;menu;}/***********按日期查询***********/structs_date{intyear;intmonth;intday;}s;voidsearch_by_date{intjnm=0;n=load;printf\n输入你想查找的产品日期!\ndate:;scanf%d.%d.%ds.years.months.day;forj=0;jn;j++ifs.year==pro[j].in_date.years.month==pro[j].in_date.months.day==pro[j].in_date.day{m++;printf_dataj;}printf\n找到当天的此产品%d!m;getch;menu;}/*********按名称规格查询*********/voidsearch_by_nameandsize{intjnm=0;chara
[20]b
[4];n=load;printf\n输入你想找的产品名称!\n名称:;scanf%sa;printf\n输入你想找的产品库存量!\n库存量:;scanf%sb;forj=0;jn;j++ifstrcmpapro[j].p_name==0strcmpbpro[j].size==0{m++;printf_dataj;}printf找到%d种产品!m;getch;menu;}
3.新物资的录入在此函数上对新料进行了记录/***********信息添加模块***********/voidinsert{intnc;n=load;puts\n输入一个数据:\n;do{inputn;printf_datan;printf\n\n是否确信\n
1.是\n
2.取消并重试\n
3.返回不保存[]\b\b;scanf%dc;ifc==1{s__en+1;printf_back;}elseifc!=2menu;}whilec==2;}
4.领料模块*****查找对所领聊的信息,若满足领料要求,便登记一系列内容,并修改/***********物资__模块***********/structone_pro{charp_name
[20];charsize
[4];structdateone_date;longinttotal;structone_pro*next;}check;voidlend{intjn;n=load;printf\n请检查你想取的产品的信息!;printf\n名称1-20letter库存量1-4letter日期amount\n;forj=0;jn;j++{pro[j].real_s-=check.total;printf_dataj;s__en;printf_back;}elseprintf数据错误!;}
5.打印领料单和物资库存清单/***********信息打印模块***********/voidprint{intin;n=load;fori=0;in;i++printf_datai;getch;menu;}
(三).采用文件来存储数据信息/***********公共函数*************/#includestdio.hvoids__eintn/***********保存函数**************/{FILE*fp;intk;iffp=fopenpro.datwb==NULL{printf\n无法打开文件!\n;}fork=0;kn;k++ifpro[k].real_s!=0iffwritepro[k]sizeofstructproduct1fp!=1printf文件书写错误!\n;fclosefp;}intload/************加载函数*************/{FILE*fp;intk;iffp=fopenpro.datrb==NULL{printf\n无法打开文件!\n;returnNULL;}fork=0;!feoffp;k++freadpro[k]sizeofstructproduct1fp;fclosefp;returnk-1;}voidinputinti/************输入一种产品信息***********/{printf\n名称1-20letter:;scanf%spro[i].p_name;printf\n编号1-7num:;scanf%dpro[i].p_num;printf\n库存量1-4letter:;scanf%spro[i].size;printf\n日期:;scanf%d.%d.%dpro[i].in_date.yearpro[i].in_date.monthpro[i].in_date.day;printf\namount[min-real-__x]:;scanf%d-%d-%dpro[i].min_spro[i].real_spro[i].__x_s;}voidprintf_datainti/************输出信息函数***********/{printf\n名称\t\t编号\t规格\t日期\t\tmin-real-__x\n;printf%s\t%d\t%s\t%d.%d.%d\t%d-%d-%dpro[i].p_namepro[i].p_numpro[i].sizepro[i].in_date.yearpro[i].in_date.monthpro[i].in_date.daypro[i].min_spro[i].real_spro[i].__x_s;}voidprintf_back{printf\n\n请按任意键回主菜单!\n;getch;menu;}
5.算法设计
6.程序代码#includestdio.h#includestring.h#includestdlib.h#includeconio.h#defineN100structdate{intyear;intmonth;intday;};structproduct{charp_name
[20];longintp_num
[7];charsize
[4];structdatein_date;longint__x_s;longintmin_s;longintreal_s;structproduct*next;}pro[N];voidenter;voidsearch;voidsearchmenu;voidsearch_by_name;voidsearch_by_date;voidsearch_by_nameandsize;voidinsert;voidlend;voidprint;voids__eintn;intload;voidinputinti;voidprintf_datainti;voidprintf_back;voidmenu/***************菜单*************/{intnw1;/****变量p保存选择菜单数字,w1判断输入数字对应菜单****/do{puts\n\t\t*****************菜单********************\n\n;puts\t\t\t
1.信息输入;puts\t\t\t
2.信息查询;puts\t\t\t
3.信息插入;puts\t\t\t
4.领货;puts\t\t\t
5.信息打印;puts\t\t\t
6.退出;puts\n\n\t\t***************************************\n;puts\t\t******************************陈文\n;printf请选择[1-6]:[]\b\b;scanf%dn;ifn1||n6{w1=1;getchar;}elsew1=0;}whilew1==1;switchn/***********选择功能***********/{case1:enter;break;/***********信息输入模块***********/case2:search;break;/***********信息查询模块***********/case3:insert;break;/***********信息添加模块***********/case4:lend;break;/***********物资__模块***********/case5:print;break;/***********信息打印模块***********/case6:exit0;/***********退出模块***********/}}__in/***********主函数***********/{menu;}/***********信息输入模块***********/voidenter{intin;printf\n产品种类数量0-%d:N-1;scanf%dn;printf\n请输入数据\n\n;fori=0;in;i++{printf输入第%d种产品数据:\ni+1;inputi;}ifi!=0s__en;printf_back;}/***********信息查询模块***********/voidsearchmenu{intnw2;do{puts\n\t\t*****************查询********************\n\n;puts\t\t\t
1.按名称查询;puts\t\t\t
2.按日期查询;puts\t\t\t
3.按名称规格查询;puts\t\t\t
4.返回;puts\n\n\t\t***************************************\n;printf请选择[1-4]:[]\b\b;scanf%dn;ifn1||n4{w2=1;getchar;}elsew2=0;}whilew2==1;switchn/***********选择功能***********/{case1:search_by_name;break;/***********按名称查询***********/case2:search_by_date;break;/***********按日期查询***********/case3:search_by_nameandsize;break;/*********按名称规格查询*********/case4:getch;menu;/***********退出模块***********/}}voidsearch{searchmenu;}/***********按名称查询***********/voidsearch_by_name{intjnm=0;chara
[20];n=load;printf\n请输入产品名称!\nname:;scanf%sa;forj=0;jn;j++ifstrcmpapro[j].p_name==0{m++;printf_dataj;}printf\n找到%d种产品!m;getch;menu;}/***********按日期查询***********/structs_date{intyear;intmonth;intday;}s;voidsearch_by_date{intjnm=0;n=load;printf\n输入你想查找的产品日期!\ndate:;scanf%d.%d.%ds.years.months.day;forj=0;jn;j++ifs.year==pro[j].in_date.years.month==pro[j].in_date.months.day==pro[j].in_date.day{m++;printf_dataj;}printf\n找到当天的此产品%d!m;getch;menu;}/*********按名称规格查询*********/voidsearch_by_nameandsize{intjnm=0;chara
[20]b
[4];n=load;printf\n输入你想找的产品名称!\n名称:;scanf%sa;printf\n输入你想找的产品库存量!\n库存量:;scanf%sb;forj=0;jn;j++ifstrcmpapro[j].p_name==0strcmpbpro[j].size==0{m++;printf_dataj;}printf找到%d种产品!m;getch;menu;}/***********信息添加模块***********/voidinsert{intnc;n=load;puts\n输入一个数据:\n;do{inputn;printf_datan;printf\n\n是否确信\n
1.是\n
2.取消并重试\n
3.返回不保存[]\b\b;scanf%dc;ifc==1{s__en+1;printf_back;}elseifc!=2menu;}whilec==2;}/***********物资__模块***********/structone_pro{charp_name
[20];charsize
[4];structdateone_date;longinttotal;structone_pro*next;}check;voidlend{intjn;n=load;printf\n请检查你想取的产品的信息!;printf\n名称1-20letter库存量1-4letter日期amount\n;forj=0;jn;j++{pro[j].real_s-=check.total;printf_dataj;s__en;printf_back;}elseprintf数据错误!;}/***********信息打印模块***********/voidprint{intin;n=load;fori=0;in;i++printf_datai;getch;menu;}/***********公共函数*************/#includestdio.hvoids__eintn/***********保存函数**************/{FILE*fp;intk;iffp=fopenpro.datwb==NULL{printf\n无法打开文件!\n;}fork=0;kn;k++ifpro[k].real_s!=0iffwritepro[k]sizeofstructproduct1fp!=1printf文件书写错误!\n;fclosefp;}intload/************加载函数*************/{FILE*fp;intk;iffp=fopenpro.datrb==NULL{printf\n无法打开文件!\n;returnNULL;}fork=0;!feoffp;k++freadpro[k]sizeofstructproduct1fp;fclosefp;returnk-1;}voidinputinti/************输入一种产品信息***********/{printf\n名称1-20letter:;scanf%spro[i].p_name;printf\n编号1-7num:;scanf%dpro[i].p_num;printf\n库存量1-4letter:;scanf%spro[i].size;printf\n日期:;scanf%d.%d.%dpro[i].in_date.yearpro[i].in_date.monthpro[i].in_date.day;printf\namount[min-real-__x]:;scanf%d-%d-%dpro[i].min_spro[i].real_spro[i].__x_s;}voidprintf_datainti/************输出信息函数***********/{printf\n名称\t\t编号\t规格\t日期\t\tmin-real-__x\n;printf%s\t%d\t%s\t%d.%d.%d\t%d-%d-%dpro[i].p_namepro[i].p_numpro[i].sizepro[i].in_date.yearpro[i].in_date.monthpro[i].in_date.daypro[i].min_spro[i].real_spro[i].__x_s;}voidprintf_back{printf\n\n请按任意键回主菜单!\n;getch;menu;}7.程序运行结果
8.困难,解决方法在学习C语言这门课时,由于是第一次接触计算机的课程,而且这门课本来就很抽象,因此,上课时就觉得听不懂.上程序设计课时也是一知半解,加上设计课的时间短,所以自己也没有什么进步老师布置课程设计后,通过不断的学习与实践,慢慢有了一些进步,自己在综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的方面有了很大的提高当今科学技术发展日新日异,计算机应用在生活中更是无处不在作为一个大学来说掌握计算机技术是十分重要的
9.心得回顾这次的课程设计,我感慨良多从题目到编程,再从编程到调试,我学到很多很多的的东西,通过这次课程设计,我懂得了学习计算机靠的是大量的上机编程调试,从中才可以不断提高编程水平在设计的过程中,我遇到了很多问题,这毕竟第一次做的,难免会遇到过各种各样的问题,比如说结构体、调试不成功……我很高兴在我遇到困难的时候,同学们给了我很多的帮助,可以这么说,没有同学们,我现在肯定还没有完成这次课程设计在设计中遇到了很多编程问题,在同学的帮助下,最后都迎刃而解最后,我要再次对各位同学和老师说一声,谢谢大家的帮助,谢谢!物资管理系统信息输入模块信息查询模块信息添加模块物资__模块信息打印模块退出模块开始显示一系列功能选择判断m是否是1到6?根据n值调用各功能模块函数结束。