长江大学工程技术学院C语言课程设计实习报告_第1页
长江大学工程技术学院C语言课程设计实习报告_第2页
长江大学工程技术学院C语言课程设计实习报告_第3页
长江大学工程技术学院C语言课程设计实习报告_第4页
长江大学工程技术学院C语言课程设计实习报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长江大学工程技术学院 C 语言课程设计实习报告小型仓库管理系统学生姓名: 周伟 学号: 序号: 专业班级:测控 61001 指导老师:贾晓艳报告日期: 2011.07.1033长江大学工程技术学院 2010级C语言程序设计实验报告第一部分课程设计的题目与要求1、问题的提出在主函数中读入原始数据文件的内容, 保存在对应的结构体数组中,然后显 示菜单,利用菜单调用函数,分别完成一下功能:2、功能要求(1) 对仓库中库存物品信息实现查询和显示功能:按物品名查询查询库 存数量不足的物品 显示全部信息。将满足查询条件的整条记录显示在屏幕上。(2) 对物品库存信息实现排序功能:按物品名排序按物品的分类排序

2、。 将排序后的结果显示在屏幕上。(3) 统计仓库整所以物品的总价,以及每种不同分类物品的总价。用C语言 创建一个数据文件,用该文件来存放统计后的结果。(4)实现物品的出库。当要从出库中提取某种物品时,先查询该物品的库存数 是否满足要求。若满足,则允许出库,此时要将物品的出库信息写在物品 的出库文件中。并修改物品的库存信息。(5)实现物品库存信息的修改功能。先查询出要修改的记录,然后选择要修改 的字段名,并输入新的字段信息。将新的字段信息写入文本文件中。第二部分 课程设计题目功能1、系统功能模块框图设计1主函数main ()2、数据结构说明基本类型:intn用来储存库存信息的条数。数组类型:ch

3、ar s1200用来储存无规律的字符串。 结构体:struck STORE用来储存物品库存信息。3、详细设计CD函数findshangpin(),函数的作用是按物品名查找物品。其中定义变量 int a,i=1; char s220;a是循环变量,i是用作if的判断条件,字符数组char用 于储存输入的字符串。 函数buzu(),函数作用是按库存数不足查询。其中的变量有 int a,i=1;a 是循环变量,i是用作if的判断条件。 函数 paixu(),作用是按物品名排序。其中定义变量:int s=8,i,j,k;struct STORE tt;s是for循环的结束条件,i, j, k是循环变量

4、, 结构体tt用来保存物品的信息。 函数danzongjia(),作用是计算单个物品的总价,其中定义变量:double s20;int i;char s2200 ; s2用来保存总价,i是循环变量,s2用来保存无规 律的字符串。 函数fenzongjia(),作用是统计单个物品的总价。其中定义的变量: double sum4=0,0,0,0;int i; char s2200="分类 分类总价 n" struct fen。 长江大学工程技术学院 2010级C语言程序设计实验报告实型数组sum4用来保存计算的总价,i是循环变量,字符数组s2用来保存 无规律的字符串,结构体st

5、ruct用来保存各种物品名。 函数cuku(),作用是实现物品的出库。其中定义的变量:int s,a,i=1,x=0;char s220其中s是储存物品的出库数量,i, x都是用作if的判断条件,字 符数组s2是用来储存出库物品的物品名。 函数quanbuxinxi(),作用是显示全部信息。其中定义的变量:int i是循 环变量。 函数baocun(),作用是保存修改后的信息,其中变量int i是循环变量。 函数read(),作用是从文件中读取数据,并把数据赋给结构体structSTORE store20;其中变量int i是循环变量。函数main(),作用是作菜单并调用其他功能的函数。例如:

6、void fin dsha ngpin()void buzu()void paixu()-void fen paix un()void danzon gjia()-void fenzon gjia()-void cuku()void qua nbux in xi()void xiugai()-void baoc un() void read() void main () int a;read();while(1) printf ("*小型产库管理系统* n");printf (".I.按物品名查询物品n");printf (".2.查询库存数量

7、不足的物品n");printf (".3.按物品名排序n");3printf ("4. 按物品名的分类排序n");printf ("5.单个物品总价 n");printf ("6.分类物品总价 n");printf ("7.物品出库 n");printf ("8.显示全部信息 n");printf ("9.信息修改 n");printf ("10. 保存 n");printf ("11. 退出 n");pr

8、intf (" 请选择 n");scanf("%d",&a);switch(a)case 1:findshangpin();break;case 2:buzu();break;case 3:paixu();break;case 4:fenpaixun();break;case 5:danzongjia();break;case 6:fenzongjia();break;case 7:cuku();break;case 8:quanbuxinxi();break;case 9: xiugai();break; case 10: baocun();b

9、reak;case 11:"exit(0)"4、调试与测试1 程序运行开始:长江大学工程技术学院 2010级C语言程序设计实验报告=*C: DOCU1EKTS JJTO SETT ING SYADMIFISTRATORXWxSfBfl1 Debug 1. ez e单价库存数量05 001001000 0 12 53 0 0 03 -序-二1统物不封.0理*1数蕾总总信 名名品品库農 品品物物出全修 物物个信RT品用食料品 习品料饮用 懐啓面饮习 主 .1 - /昭干方專 番台®S咖矿本一一 光明購舛巢一业 富光红江=分物5需干方橐 番台席咖矿本- 光明雷师巢一业

10、Z 富光红江0 I I0 1 3 0 0 0 0 0 -7 0 : 盒盒10 品用食料品产 习品料饮暑- 寥啓面饮习小0 0 自心 .U.0理查数酋总总信 运吕名存名名品品库器 库品库品品物物岀全修芋 物物个类品一習輔酣 刀物显信帝-Si001调整输入法后输入所要查找的物品例如:“作业本”,输入后查找出作业本 按物品名查询物品,由键盘输入数字1,按下回车键,得出所有物品的全 部信息,例如:輕"C:DOCUMEHTS AND SETT ING S ADIINIS TRATORX 桌面 I 新建文杵夹 Debugl. exe的全部信息,例如:沁"C:DOCUMEHTS)SETT

11、IHGSADMIHISTRATORX桌面l新建文件夹Debugl. exer-口x|AJ4-斗1I1.按物品名查询物品逾入要查找的物品:陀业本乍业本 学习用品 单价师 库存185攫狗排音半:jd如果没有所要查找的物品则输出“ NO FOUND”,例如: 查询库存不足的物品,题目要求选出库存数量小于30的物品则输入2后,在所有物品中找出库存数少于30的物品所有信息,程序运行结果为:沁"C:DOCUMEHTS AND SETTIHGSADMIHISTRATORX桌面'新建文件夹Debugl. exe口口单价15.00库存202.30 库存20 埠系金充耳耳>OO<KX

12、>O<K2 查询库存数量不足的 红吒台灯学习用品 江哺饼干悔立麹搜狗拼音半:运行后找出“红叶台灯”,“江明饼干”库存不足30. 按物品名分类排序,比较物品名的大小,由小到大排序,输入3,运行结果为:7-00506.00 10015.00202.30203.5010010.00 1001.00 10001.001853.按物品名排序 商品窖分类单价库存数量_ X輕"C:DOCUMEHTS AND SETTIHGSADMIHISTRATORX桌面'新建文件夹Debugl. eze需干方專 番台席咖矿本于: 光明雷师巢一业一一狗 富光红江-'饮习库 生 鶯品用食

13、料品理 习品料饮團吕6 统计单个物品总价,单价乘以库存数得出的总价,运行后将所有物品的长江大学工程技术学院 2010级C语言程序设计实验报告搜狗拼音半:1.00 1000 1000.001.00185185.00总价信息输出来,输入4,得出结果,例如:*C:DOCUMEHTS AND SETT ING S ADIINIS TRATORY 桌面 I 新建文件夹 Debugl. exe篇囂物黑P单价库存统 品品 系 品用食料品理 习品料饮担吕 习库 生 $HL. 面 小 便水冃 需干方專 番台席咖矿本- 光明雷师巢一业一一 富光红江-6.00100600.0015.0020300.002.3020

14、46.003.50100350.0010.001001000.007.0050350.00统计分类物品总价,按照生活用品,学习用品,食品,饮料进行分类,并 统计出个大类物品的总价后输出,输入 6,运行出结果,例如:ca *C: DOCUIENTS AND SETTIKGSADIINISTRATOR桌面、新建文杵夹DeLugl. eze2609.396.0Q请选择6品品十音用用拼485.00350.aa护产库管軒统8出霜库泉 品l八人出归也 物一品 7 2厘先统商库有数量亠芒邑小型左磊理橐弟2搜弼并音半:990迥 物品出库,选择所要出库的物品及数量,如果所要出库的数量小于库存数,输出所选的物品及

15、数量,并修改库存数,输入物品名“统一矿泉水”,和数量30后得出结果,例如:环 *C:DOCUIENTS AHD SETTINGSADIIMISTRATOR桌面'新建文杵夹Debugl. exe需的塑品名:统一矿泉水品餅需的数量:10朮岀库后信息:分类 单价如果出库数量不满足则输出“库存量不足,不能出库” 出结果,例如:,输入出库数10000,得C< "C:DOCUMEKTS AND SETT ING S AMI MI 5 TRATORX ®Debugl.exe?7 请道ZK泉0矿圈0充:2名数出库品的能产WK型黑摩而品足出務不品入、/n里搜狗拼音半; 显示全部

16、信息,将出库后的物品信息全部显示出来,输入8,显示出信息,例如:C:< *C: DOCUIEHTS AHD SETTINGSXADIINISTRATORXffikSfftXDebugXU exe8 显丕全部信息 商品茗分类单价库存数董-I品品 品用食料品 却习品料饮用 谨善饮习 生 学面#: 光明關师巣一业糊 富光红江*7-00506.00 10015.00202.30203.501001Q.QQ 1001,009901.001B519保存,保存运行后的所有信息到原文本文件中,程序运行全部结束第三部分课程设计总结C语言课程设计是一门比较接近实际的课程,刚开始接触这门课程时,总觉得这太复杂

17、了,和我们平时学习的编程题有太大的不同,因为它的综合性太强了。由于平时学习的知识太散乱,不容易整合到一起,哪怕是平时学习时一个知识 点没搞懂,都很难把程序继续编下去,刚开始的上课,完全无从下手,所以只好 再把课本看一遍,经过几次课,渐渐感觉到整个程序不就是多个小程序组合在一 起。之后我就将程序分成查找、分类、排序、修改,这几大类。虽然把程序分解后,还是遇到很多麻烦,特别是要写“物品出库”这个函数时, 很是头疼,因为这个程序既要考虑到物品名,又要考虑出库数,还要考虑出库数 是否满足库存数,程序总是出现问题,不过后来接触多了,不懂得去问老师、同 学,了解的多了,渐渐地也就懂了不少,尤其是把整个程序

18、写完后,运行处结果 长江大学工程技术学院 2010级C语言程序设计实验报告了,就感觉到付出这么多也算值了。虽然程序设计完成了,但是还是有一些不足之处,例如:程序编得太复杂,缺 少一些警告语句等。不过在这半个月的学习中,确实学到了很多东西,我们考虑 事情不能太过简单,太过马虎,一定要思维严谨,当然相互交流,相互合作也是 非常重要的。总之,这次课程设计过得挺充实。#include <stdio.h>#include <stdlib.h>#include <string.h>struct STOREchar shangpin50;char fenlei50;flo

19、at danjia;int kucun ;store20;int n=8;char s1200;struct STORE1char shangpin30;float danjia;int kucun;STORE120;void findshangpin() int a,i=1;char s220;printf( "1.按物品名查询物品n");printf ("输入要查找的物品:n");fflush(stdin); 清除缓冲区scanf( "%s",s2);for (a=0;a<n;a+)if (strcmp(s2,storea.

20、shangpin)=0) 判断查找物品是否存在printf ("%s %s 单价 %.2f 库存 %d n" ,storea.shangpin,storea.fenlei,storea.danjia,storea.kucun);i=0;if (i)printf( "NO FOUND):void buzu() /int a,i=1;printf( "2.查询库存数量不足的物品n");for (a=0;a<n;a+)if (storea.kucun<=30) 判断库存数是否小于3010printf ( "%s %s 单价 %.

21、2f 库存 %d n" ,storea.shangpin, storea.fenlei,storea.danjia,storea.kucun);i=0;if (i)printf( "NO FOUND)"void paixu() int s=8,i,j,k; struct STORE tt; printf( "3. 按物品名排序 n" );for (i=0;i<s-1;i+) k=i;for (j=i+1;j<s;j+)if (strcmp( storek.shangpin,storej.shangpin)>0)比较字符串k=j

22、;if (k!=i)tt=storei; storei=storek; storek=tt;puts(s1);for (i=0;i<n;i+) printf( "%s %s %.2f %dn",storei.shangpin,storei.fenlei,storei.danjia,storei.kucun );void fenpaixun() printf( "4. 按物品名的分类排序 n" );void danzongjia() double s20; int i; char s2200= "商品名分类 单价 库存 总价 n"

23、 ;printf( "5. 单个物品总价 n" );for (i=0;i<n;i+) si=storei.danjia*storei.kucun;FILE *fp; 定义指针变量用来储存文件地址fp=fopen( "CK0133_store02.txt" , "w");打开文件并将文件的地址赋给fpif (fp=NULL)判断文件中要找的物品是否存在printf( "文件打开失败 n" );exit(0); fputs(s2,fp);for (i=0;i<n;i+)fprintf(fp, "%

24、s %s %.2f %d %.2lfn" ,storei.shangpin ,storei.fenlei,storei.danjia,storei.kucun,si);长江大学工程技术学院 2010级C语言程序设计实验报告fclose(fp); 关闭文件puts(s2);输出函数for (i=0;i<n;i+),storei.shangpin ,printf( "%s %s %.2f %d %.2lfn"storei.fenlei,storei.danjia,storei.kucun,si);void fenzongjia()double sum4=0,0,

25、0,0;int i;char s2200="分类分类总价 n" ;struct fen char ming10;m4="饮料","食品","学习用品","生活用品"printf ("6.分类物品总价n");for (i=0;i<n;i+) if (strcmp(storei.fenlei,"饮料")=0)sum0=sum0+storei.danjia*storei.kucun;if (strcmp(storei.fenlei,"食品&quo

26、t;)=0)sum1=sum1+storei.danjia*storei.kucun;if (strcmp(storei.fenlei,"学习用品")=0)sum2=sum2+storei.danjia*storei.kucun;if (strcmp(storei.fenlei,"生活用品")=0)sum3=sum3+storei.danjia*storei.kucun;FILE *fp;fp=fopen( "CK0133_store03.txt" , "w");if (fp=NULL)判断文件中要找的物品是否存在

27、printf( "文件打开失败n");exit(0);fputs(s2,fp);for (i=0;i<4;i+)fprintf(fp, "%s %.2lfn" ,mi.ming,sumi);fclose(fp);puts(s2);for (i=0;i<4;i+)printf( "%s %.2lfn" ,mi.ming,sumi);void cuku()printf ("7.物品出库 n");int s,a,i=1,x=0;char s220;12printf( " 请输入所需的物品名 :&qu

28、ot; );fflush(stdin);清空缓冲区gets(s2);for (a=0;a<n;a+)if (strcmp(s2,storea.shangpin)=0) printf(" 请输入物品所需的数量 :" );scanf( "%d",&s);if (storea.kucun>=s)printf( " 允许出库 n" ); storea.kucun=storea.kucun-s;printf("%s出库后信息:n" ,s2);puts(s1);printf( "%s %s %.2

29、f%dn",storea.shangpin ,storea.fenlei,storea.danjia,storea.kucun );x=1;将商品的详细详细输出来elseprintf( "库存量不足,不能出库 n");i=0;break ;if (i) printf( " 没有此种商品 n" );if (x)FILE *fp,*fp1;定义指针变量fp=fopen("CK0133_out.txt" ,"a" );if (fp=NULL)判断文件中要找的物品是否存在printf("文件打开失败 n

30、" );exit(0);fprintf(fp,"%s%.2lf%dn" ,s2,storea.danjia,s);fclose(fp);fp1=fopen( "CK0133_store.txt" ,"w" );if (fp=NULL)printf( " 文件打开失败 n" );exit(0);fputs(s1,fp1);for (i=0;i<n;i+)fprintf(fp1, "%s %s %.2f%dn",storei.shangpin,storei.fenlei,storei

31、.danjia,storei.kucun);fclose(fp1); void quanbuxinxi()长江大学工程技术学院 2010级C语言程序设计实验报告 int i;printf ("8.显示全部信息n");puts(sl);for (i=0;i<n;i+)printf( "%s %s %.2f %dn",storei.shangpin ,storei.fenlei,storei.danjia,storei.kucun );void xiugai()printf ("9.信息修改 n");void baocun() in

32、t i;printf ("10.保存 n");FILE *fp;fp=fopen( "CK0133_store.txt" , "w");if (fp=NULL)printf("文件打开失败n");exit(0);fputs(s1,fp);for (i=0;i<n;i+)fprintf(fp, "%s %s %.2f %dn" ,storei.shangpin , storei.fenlei ,storei.danjia ,storei.kucun );fclose(fp);void rea

33、d() / int i;FILE *fp;fp=fopen( "CK0133_store.txt" , "r"); if (fp=NULL)printf("文件打开失败n");exit(0);fgets(s1,180,fp);for (i=0;i<n;i+)fscanf(fp,"%s%s%f%d,"storei.shangpin,storei.fenlei,&storei.danjia,& storei.kucun);printf("从文件读出的结果为:n");puts(s1);for (i=0;i<n;i+)printf( "%s %s %.2f %dn", 14storei.shangpin ,storei.fenlei, storei.danjia,storei.kucun); fclose(fp);void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论