c语言程序设计实验报告.doc
《c语言程序设计实验报告.doc》由会员分享,可在线阅读,更多相关《c语言程序设计实验报告.doc(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、西安郵電學院C语言课程设计报告题 目:超市管理系统院系名称:计算机学院专业名称:网络工程班 级:网络1001班学生姓名:李婷婷学号(8位):指导教师:张 红 英设计起止时间:2011年6月13日2011年6月22日一. 设计目的1.掌握带头节点的链表的工作原理和处理方法。2.会使用malloc、free等函数对链表进行创建、增加、删除、查询、统计等操作。3.加深理解模块化的编程思想,将一个程序划分成不同的函数来编写,掌握函数之间有效的调用关系。4.会使用C语言对文件进行读取、修改等操作,掌握文件的读、写操作。5.了解商品管理中所需处理的信息以及县官的处理方法6.掌握简单的加密方法,同时对密码加
2、密。二. 设计内容本程序主要分为六个模块:主模块、信息输出修改模块、新建信息模块、排序模块、统计模块、打印模块。1) 主模块:通过调用各分模块实现功能;2) 信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3) 新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4) 排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5) 打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;6) 统计模块:统计商品信息。 三概要设计 1功能模块图;管理员/用户户管理员用户信息的输入/输出信息查询
3、信息修改信息统计信息排序添加信息删除信息输出信息信息查询信息统计商品编号查询商品名称查询生产单位查询按种类统计按商品价格按生产日期升序输出降序输出升序输出降序输出商品编号商品名称生产单位按种类统按商品价按生产日期2各个模块详细的功能描述。 1重新输入管理员信息 1.升序输出 2.输出管理员基本信息 2.降序输出3.查询管理员基本信息 1.按姓名查询 管理员信息 4.删除管理员信 2.按管理号 5.统计管理员信息 1.增加管理员 6.修改管理员信息 2.修改管理员 7.读取链表到文件超市管理系统 1.输入/输出商品信息 1.升序输出 2.商品排序 2.降序输出 3.添加商品信息 1.按编号查询商
4、品信息 4.查询商品信息 2.按名称查查询 5.修改商品信息 3.按生产单位查询 6.删除商品信息 1.按种类统计 7.统计商品信息 2.按生产日期统计 8.读取文件信息 3.按价格统计四详细设计1功能函数的调用关系图管理员/用户登录主函数主界面输入商品信息输出商品信息商品信息排序添加商品信息查询商品信息修改商品信息删除商品信息统计商品信息打印信息报表读取文件信息输出商品信息查询商品信息统计商品信息管理员录入管理员信息输出管理员信息删除管理员信息修改管理员信息统计管理员信息读取文件信息返回主界面2各功能函数的数据流程图修改商品信息流程图开始请输入要修改商品名q-next!=NULLq=q-ne
5、xtStrcmp(q-name)=0选择你要修改的项目输入修改后的信息leaf=0Leaf=0未找到修改的人结束查询商品信息流程图开 始请输入要查找的姓名:nameq=q-nextq-next!=NULLstrcmp(q-name,name)=0输出人员信息leafname,name)0p-next=NULL结束交换结点内容指针指向下一结点输入商品信息流程图开 始给头节点head开辟空间i-0inext=NULLreturn head结 束输入n给p1开辟空间向p1中输入结构体内容p2-next=p1p2=p1输出商品信息流程图h-next!=NULL结束开始输出统计个数n指针指向下一结点P=
6、p-next打开文件流程图h-next=NULL 打开文件 写入文件 开始 结束统计商品信息流程图 开始 i=0 p-next!=NULL i+ p=p-next 输出i 结束删除商品信息流程图p0=p-nextP0!=NULLstrcmp(p0-num,num)= =0)p-next=p0-next free(p0) p=p0 p0=p0-next 结束 开始添加商品信息流程图传入链表头结点t,t1=t,t2=t-next inext,t2=t2-nextt2!=NULL&t2-name=t0-nameefree(t0),flag=0flag=1,t0-next=t1-nextt1-next
7、=t0return(t)开始输入n,i=0创建新结点t0t2!=NULL&strcmp(t2-name,t0-name)=0 结 束3重点设计及编码商品信息的你排序/降序排序struct good *jiangxu(struct good *h)struct good *p1=h-next,*p2,*p;while(p1-next!=NULL)p=p1;p2=p1-next;while(p2!=NULL)if(strcmp(p-num,p2-num)next;if(p!=p1)exchange(p,p1);p1=p1-next;return h;/升序排序struct good *shengx
8、u(struct good *h)struct good *p1=h-next,*p2,*p;while(p1-next!=NULL)p=p1;p2=p1-next;while(p2!=NULL)if(strcmp(p-num,p2-num)0)p=p2;p2=p2-next;if(p!=p1)exchange(p,p1);p1=p1-next;return h;void exchange(struct good *p,struct good *p1)char cdata50;strcpy(cdata,p1-num);strcpy(p1-num,p-num);strcpy(p-num,cdat
9、a);strcpy(cdata,p1-name);strcpy(p1-name,p-name);strcpy(p-name,cdata); strcpy(cdata,p1-kind);strcpy(p1-kind,p-kind);strcpy(p-kind,cdata); strcpy(cdata,p1-price);strcpy(p1-price,p-price);strcpy(p-price,cdata); strcpy(cdata,p1-unit);strcpy(p1-unit,p-unit);strcpy(p-unit,cdata);strcpy(cdata,p1-quantity);
10、strcpy(p1-quantity,p-quantity);strcpy(p-quantity,cdata); strcpy(cdata,p1-pro_time);strcpy(p1-pro_time,p-pro_time);strcpy(p-pro_time,cdata);统计商品信息/按种类统计tongji1(struct good *p)int flag=0,i=0;char spkind20;printf(请输入种类:);scanf(%s,spkind);while(p-next!=NULL)p=p-next;if(strcmp(p-kind,spkind)=0)i+;flag=1;
11、if(flag=0)printf(no find!);if(flag=1)printf(这个种类的商品有%d个.n,i);删除商品信息/删除商品信息函数int shanchu(struct good *p0)char num10;struct good *p;p=p0-next;printf(请输入删除的商品号:);scanf(%d,&num);while(p!=NULL)if(strcmp(p-num,num)=0)p0-next=p-next;free(p);return 1;printf(删除后的商品信息:n);printf(商品编号:%s n,p-num);printf(商品名称:%s
12、 n,p-name);printf(商品类型:%s n,p-kind);printf(商品价格:%s n,p-price);printf(商品生产单位:%s n,p-unit);printf(商品数目:%s n,p-quantity);printf(商品生产日期:%s n,p-pro_time);printf(*n);p0=p;p=p-next;printf(删除失败!);return 0;五测试数据及运行结果1正常测试数据和运行结果要求提供3组正常测试数据和运行结果2异常测试数据及运行结果六调试情况,设计技巧及体会1改进方案对于密码的设计以及加密把握不太准确,调试时经常会出现密码不匹配的情况
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 报告
限制150内