版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计题 目 商店存储管理系统 学生姓名 徐 玲 指导教师 秦 飞 学 院 管理科学与工程学院 专业班级 息 082 完成时间 2010.06.10 目 录第一章 课程设计目的2第二章 课程设计内容和要求2第三章 课程设计分析3第四章 算法描述4第五章 源代码8第六章 运行结果分析13第七章 结束语15第八章 参考文献15第一章 课程设计目的通过实习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。通过实习巩固并提高实习者的C语言知识,并初步了解Visual C+的
2、知识,提高其编程能力与专业水平。第二章 课程设计内容和要求2.1课程设计内容建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,包括5个种类的货物情况,能对商品信息进行扩充(追加),修改和删除以及简单的排序;3.进一步要求:扩充商品数量,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。2.2要求:1.界面友好,函数功能要划分好2.总体设计应画一流程图3.程序要加必要的注释4.要提供程序测试方案5.程序一定要经得起测试,宁可功能少一些,也要能运行起来,
3、不能运行的程序是没有价值的。2.3 运行环境该程序的运行环境为Windows xp系统,Microsoft Visual C+6.0版本。第三章 课程设计分析3.1需要定义一个结构体数组,其中name表示商品的名称,time表示商品的进货时间,year表示商品的生产日期,no表示商品的保质期。3.2利用冒泡法,对商品进行排序。3.3选择需要的功能,其中功能包括商品的最原始添加,商品的插入,删除,查找,将数据写入文件中,从文件中读出数据等操作。3.4选择输入09,10个数的其中一个数,进行相应的操作。3.5进行完所的操作之后,选择保存功能,将数据保存到文件中。3.6退出程序。第四章 算法(数据结
4、构)描述4.1先定义一个商品的结构体数组:typedef struct /*定义结构体数组*/ char name20;/*商品名称*/ int time;/*进货时间*/ int year;/*生产日期*/ int no;/*保质期*/goods;4.2建立一个菜单函数,显示10个功能,供用户选择,进行人机对话。4.3设置一个排序的函数,void Sort_by_time(goods gs,int n)。利用冒泡法先对商品按进货的时间排序,对进货时间一样的货物,再按离保质期最近排序。 4.4设置一个输入的函数,int Input(goods gs,int n)。这个函数是最初商品输入函数,当
5、选择了这个功能后,如果是第一次运行这个程序,保存输入,那将在D盘产生一个名为“商品.doc”的文件,如果已经运行过了,并保存输入,那输入的商品信息将代替原有的信息,数据输入使用交互输入,进行人机对话,确定是否进行下一个数据的添加。并且调用了上面的排序函数,对输入的数据进行排序。4.5设置一个显示的函数,void Display(goods gs,int n)。显示上面输入的所有数据,或者是从文件中读取的数据。4.6设置一个插入的函数,int Insert_a_record(goods gs,int n)。每次插入一组数据,如果要再插入,则再选择这个功能进行操作。并且在插入的同时,已经排好序,把
6、数据插入适合的位置。4.7设置一个查找删除的函数,int Delete_a_record(goods gs,int n)。输入要查找的商品名称,如果不存在,则输出失败信息,如果存在,则用下一个信息代替原有信息的位置。4.8设置一个查找显示的函数,void Query_a_record(goods gs,int n)。输入要查找的商品名称,如果不存在,则输出失败信息,如果存在,则显示信息。4.9设置一个写入文件的函数,void WritetoText(goods gs,int n)。设置文件指针,先判断文件是否能打开并且能进行写操作,不能则输出失败信息,能则循环写入数据,写完关闭文件。4.10设
7、置一个读文件的函数,int AddfromText(goods gs,int n)。设置文件指针,判断文件是否能打开而且能进行读操作,能则先读出总的数据量,接着循环读出数据,最后关闭文件。4.11进入最后一步,main函数。判断选择的操作,根据用户选择的操作,利用switch语句进行相应的函数调用。4.12选择保存功能,对数据进行保存,然后选择结束程序退出功能,退出程序。Sort_by_time(gs,n)初始条件:数据已经存在操作结果:数据进行排序Input(gs, n)初始条件:没有任何数据存在,或者要替换原文件中的所有数据 操作结果:数据进行输入Display(gs,n)初始条件:数据已
8、经存在 操作结果:数据显示Insert_a_record(gs,n) 初始条件:数据已经存在操作结果:数据插入Delete_a_record(gs,n)初始条件:数据已经存在 操作结果:数据删除Query_a_record(gs,n)初始条件:数据已经存在 操作结果:数据统计WritetoText(gs,n)初始条件:数据已经存在 操作结果:写入文件中AddfromText(gs,n)初始条件:文件已经存在 操作结果:从文件中读出4.13流程图:退出程序写入文件排序数据统计数据添加数据查找数据删除数据显示数据新数据重新选择功能读文件Main函数功能8功能1功能2功能3功能4功能5功能6功能9功
9、能7 功能0第五章 源代码#include<stdio.h> /*引用库函数*/ #include<stdlib.h> #include<ctype.h> #include<string.h> typedef struct /*定义结构体数组*/ char name20;/*商品名称*/ int time;/*进货时间*/ int year;/*生产日期*/ int no;/*保质期*/goods;goods gs80; /*结构体数组变量*/ int menu_select() /*菜单函数*/ char c; do system("
10、cls"); /*运行前清屏*/ printf("tt* 商品系统*n"); /*菜单选择*/ printf("tt | 1. 输入数据 |n"); printf("tt | 2. 显示数据 |n"); printf("tt | 3. 插入数据 |n"); printf("tt | 4. 删除数据 |n"); printf("tt | 5. 查找数据 |n"); printf("tt | 6. 统计并显示进货时间最早且最接近保质期中止时间的货物 |n&qu
11、ot;); printf("tt | 7. 写入文件 |n"); printf("tt | 8. 读文件 |n"); printf("tt | 9. 对读入的文件进行排序 |n"); printf("tt | 0. 退出 |n"); printf("tt*n"); printf("ttt请选择(0-9):"); c=getchar(); /*读入选择*/ while(c<'0'|c>'9'); return(c-'0'
12、;); /*返回选择*/ void Sort_by_time(goods gs,int n) /*按进货时间排序*/ int i,j,*a,*b,c,*p,*q,s,*m,*k,d,e,f; char t10; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(gsj.time>gsj+1.time) a=&gsj+1.time; b=&gsj.time; c=*a; *a=*b; *b=c; strcpy(t,gsj+1.name); strcpy(gsj+1.name,); strcpy(
13、,t); p=&gsj+1.year; q=&gsj.year; s=*p; *p=*q; *q=s; m=&gsj+1.no; k=&gsj.no; d=*m; *m=*k; *k=d; else if(gsj.time=gsj+1.time) p=&gsj.year; a=&gsj+1.year; b=&gsj.no; q=&gsj+1.no; e=(*p)+(*b)*10000; f=(*a)+(*q)*10000; if(e>f) a=&gsj+1.time; b=&gsj.time;
14、 c=*a; *a=*b; *b=c; strcpy(t,gsj+1.name); strcpy(gsj+1.name,); strcpy(,t); p=&gsj+1.year; q=&gsj.year; s=*p; *p=*q; *q=s; m=&gsj+1.no; k=&gsj.no; d=*m; *m=*k; *k=d; int Input(goods gs,int n) /*输入若干条记录*/ int i=0; char sign,x10; while(sign!='n'&&sign!=
15、39;N') /*判断*/ printf("ttt商品名称:"); /*交互输入*/ scanf("ttt%s",gsn+); printf("ttt进货时间(例20070201):"); scanf("ttt%d",&gsn+i.time); printf("ttt生产日期(例20070201):"); scanf("ttt%d",&gsn+i.year); printf("ttt保质期(年):"); scanf(&q
16、uot;ttt%d",&gsn+i.no); gets(x); /*清除多余的输入*/ printf("ttt继续输入?(Y/N)"); scanf("ttt%c",&sign); /*输入判断*/ i+; Sort_by_time(gs,n+i); /*调用排序函数*/ return(n+i); void Display(goods gs,int n) /*显示所有记录*/ int i; printf("tt-n"); /*格式头*/ printf("tt商品名称 进货时间 生产日期 保质期(年)
17、n"); printf("tt-n"); for(i=1;i<n+1;i+) /*循环输入*/ printf("tt%-5s %d %d %dn",,gsi-1.time,gsi-1.year,gsi-1.no); if(i>1&&i%10=0) /*每十个暂停*/ printf("ttt-n"); /*格式*/ printf("ttt"); system("pause"); printf("ttt-n"); prin
18、tf("ttt"); system("pause"); /*按任何键继续*/ int Insert_a_record(goods gs,int n) /*插入一条记录*/ char x10; /*清除多余输入所用*/ printf("ttt商品名称:"); /*交互输入*/ scanf("ttt%s",); printf("ttt进货时间:"); scanf("ttt%d",&gsn.time); printf("ttt生产日期:"
19、); scanf("ttt%d",&gsn.year); printf("ttt保质期:"); scanf("ttt%d",&gsn.no); gets(x); n+; Sort_by_time(gs,n); /*调用排序函数*/ printf("ttt插入成功!n"); /*返回成功信息*/ return(n); int Delete_a_record(goods gs,int n) /*按商品名字查找,删除一条记录*/ char s20; int i=0,j; printf("ttt商
20、品名称:"); scanf("%s",s); while(strcmp(,s)!=0&&i<n) i+; /*查找判断*/ if(i=n) printf("ttt没找到!n"); /*返回失败信息*/ return(n); for(j=i;j<n-1;j+) /*删除操作*/ strcpy(,gsj+1.name); gsj.time=gsj+1.time; gsj.year=gsj+1.year; gsj.no=gsj+1.no; printf("ttt删除成功!n&quo
21、t;); /*返回成功信息*/ return(n-1); void Query_a_record(goods gs,int n) /*查找并显示一个记录*/ char s20; int i=0; printf("ttt输入要查找的商品名称:"); scanf("ttt%s",s); while(strcmp(,s)!=0&&i<n) i+; /*查找判断*/ if(i=n) printf("ttt没找到!n"); /*输入失败信息*/ return; printf("ttt进贷时间:%d
22、n",gsi.time); /*输出该商品信息*/ printf("ttt生产日期:%dn",gsi.year); printf("ttt保质期:%dn",gsi.no); void WritetoText(goods gs,int n) /*将所有记录写入文件*/ int i=0; FILE *fp; /*定义文件指针*/ if(fp=fopen("d:商品.doc","wb")=NULL) /*打开文件*/ printf("tttcann't open the filen"
23、); system("pause"); return; fprintf(fp,"%dn",n); /*循环写入数据*/ while(i<n) fprintf(fp,"%-5s%d %d %dn",,gsi.time,gsi.year,gsi.no); i+; fclose(fp); /*关闭文件*/ printf("tttSuccessed!n"); /*返回成功信息*/ int AddfromText(goods gs,int n) /*从文件中读入数据*/ int i=0,num; FIL
24、E *fp; /*定义文件指针*/ if(fp=fopen("d:商品.doc","rb")=NULL) /*打开文件*/ printf("tttcann't open the filen"); /*打开失败信息*/ printf("ttt"); system("pause"); return(n); fscanf(fp,"%d",&num); /*读入总记录量*/ while(i<num) /*循环读入数据*/ fscanf(fp,"%s%d
25、%d%d",gsn+,&gsn+i.time,&gsn+i.year,&gsn+i.no); i+; n+=num; fclose(fp); /*关闭文件*/ printf("tttSuccessed!n"); printf("ttt"); system("pause"); return(n); void main() /*主函数*/ int n=0; for(;) switch(menu_select() /*选择判断*/ case 1: printf("ttt输入最初商品n&
26、quot;); /*输入若干条记录*/ n=Input(gs,n); break; case 2: printf("ttt显示所有商品n"); /*显示所有记录*/ Display(gs,n); break; case 3: printf("ttt插入n"); n=Insert_a_record(gs,n); /*插入*/ printf("ttt"); system("pause"); break; case 4: printf("ttt删除n"); n=Delete_a_record(gs,n
27、); /*按商品名称查找,删除*/ printf("ttt"); system("pause"); break; case 5: printf("ttt查找并显示n"); Query_a_record(gs,n); /*查找并显示*/ printf("ttt"); system("pause"); break; case 6: printf("ttt统计并显示进货时间最早且最接近保质期中止时间的货物n"); printf("ttt共有 %d 件商品.n",
28、n); /*总共记录数*/ printf("ttt进货时间最早且最接近保质期中止时间的货物:n"); printf("ttt商品名称r:%sn",); printf("ttt进货时间:%dn",gs0.time); printf("ttt生产日期:%dn",gs0.year); printf("ttt保质期:%dnn",gs0.no); printf("ttt"); system("pause"); break; case 7: print
29、f("ttt写到文件中n"); WritetoText(gs,n); /*循环写入数据*/ printf("ttt"); system("pause"); break; case 8: printf("ttt文件中读数据n"); n=AddfromText(gs,n); printf("ttt");/*文件中读数据*/ break; case 9: printf("tttn"); Sort_by_time(gs,n); printf("ttt");/*对读入的文件进行排序*/ break; case 0: printf("tt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度艺术涂料定制漆工施工工程合同
- 二零二五年度酒吧租赁合同合同签订前的尽职调查要求
- 2025年度个性化阳台封窗设计与施工合同
- 2025年度黄金饰品品牌跨界合作与联合营销合同
- 二零二五年度粮油产业链金融服务合同
- 二零二五年度电子版个人应急借款合同
- 2025年度离婚协议书附共同财产分割及子女抚养费调整合同
- 2025年度知识产权授权与许可使用合作协议
- 二零二五年度货车租用合同附带物流信息查询与分析
- 2025年度特殊儿童入托免责协议及教育干预服务合同
- 2025届河南省郑州一中高三物理第一学期期末学业水平测试试题含解析
- 个体工商户章程(标准版)
- 七年级英语阅读理解55篇(含答案)
- 废旧物资买卖合同极简版
- 2024年正定县国资产控股运营集团限公司面向社会公开招聘工作人员高频考题难、易错点模拟试题(共500题)附带答案详解
- 李克勤红日标准粤语注音歌词
- 教科版六年级下册科学第一单元《小小工程师》教材分析及全部教案(定稿;共7课时)
- 中药材产地加工技术规程 第1部分:黄草乌
- 危险化学品经营单位安全生产考试题库
- 案例分析:美国纽约高楼防火设计课件
- 移动商务内容运营(吴洪贵)任务一 用户定位与选题
评论
0/150
提交评论