




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、商品(shngpn)出境管理系统C语言课程设计2013届物联网(lin wn)工程学院 自动化(2)班 李俊年本系统(xtng)所实现的功能本系统(xtng)由C语言编写(binxi)而成,主要实现对出境商品的管理。系统主要内容为商品的名称、数量、总重量(吨)、商品性质(金属制品、肉制品、植物制品、瓷制品等)和出境时间(年月日),可实现从外部读入数据、数据输入、添加、查询、删除、排序(数量和总重量)以及对所输入的数据的保存等功能。本系统所用程序(一、结体、数构组):#include#include#include#include#define N 200/头文件定义/*-*/typedef s
2、truct shangpin/构造结构体int num; /商品序号char name50; /商品名称int number; /单位int weight; /总吨数char nature50; /物品性质char time20; /出境时间Shangpin;Shangpin zhouN;int length;/返回值int i;int find(Shangpin t,int n,char *s );/查找函数声明int menue_select();/菜单选择函数声明int input(Shangpin t);/输入函数声明void output(Shangpin t,int n);/显示(
3、xinsh)函数声明int add(Shangpin t ,int n);/添加函数(hnsh)声明void search(Shangpin t,int n);/查找(ch zho)函数声明void print(Shangpin t);/打印函数声明void sort(Shangpin t ,int n);/排序函数声明void change(Shangpin t ,int n );/修改函数声明void save(Shangpin t ,int n);/保存函数声明int Delete(Shangpin t ,int n);/删除函数声明int load(Shangpin t);/读入函数声
4、明/*-调用函数的声明-*/void main()/主函数内容doswitch(menue_select()case 0:length=load(zhou);getch();system(cls);break;case 1:length=input(zhou);system(cls);break;case 2:output(zhou,length); getch();system(cls);break;case 3:length=add(zhou,length); getch(); break; case 4:length=Delete(zhou,length);getch(); system
5、(cls);break;case 5:search(zhou,length);getch();system(cls);break;case 6:sort(zhou,length);getch();system(cls);break;case 7:change(zhou,length);getch();system(cls);break;case 8:save(zhou,length); getch();system(cls);break;case 9:exit(0);while(1);/*-*/*读入函数,参数为结构体数组*/int load(Shangpin t) int i,n; FILE
6、 *fp; /*指向文件的指针*/ if(fp=fopen(record.txt,r+)=NULL)/*打开(d ki)文件*/ printf(不能打开(d ki)文件n); /*不能打开(d ki)*/ exit(0); for(i=0;in;i+) fscanf(fp,%6d %12s %10d %10d %16s %16s,&ti.num,,&ti.number,&ti.weight,ti.nature,ti.time); /*按格式读入记录*/ fclose(fp); /*关闭文件*/ printf(你已经从文件中正确读入数据!n); /*显示读入成功*/ getch()
7、;/任意键继续 return n; /*返回记录数*/*-菜单选择函数-*/int menue_select()char s80;int c;printf(ttt欢迎使用商品出境管理系统n);printf(n);printf(ttt 0. 读取已有商品信息nn);printf(ttt 1. 输入商品信息nn);printf(ttt 2. 显示全部商品信息nn); printf(ttt 3. 添加商品nn);printf(ttt 4. 删除商品nn);printf(ttt 5. 查找商品nn);printf(ttt 6. 按商品信息排序nn);printf(ttt 7. 改变商品信息nn);pr
8、intf(ttt 8. 保存文件nn);printf(ttt 9. 退出系统nn);printf(n);SIGN:printf(请输入您的选择序号:);scanf(%s,&s);c=atoi(s);/把字符串转化为整型if(c9)printf(输入不合法);goto SIGN; /无条件转向return c;/*-输入(shr)商品信息函数-*/int input(Shangpin t) int i,n; system(cls); printf(tt 输入(shr)商品信息 n); printf( n请输入(shr)商品个数(n200):n); scanf(%d,&n); /*接收输入系统的商
9、品数量*/ system(cls); getch();/任意键继续 for(i=0;in;i+) printf(请输入第%d个商品的信息n,i+1);printf(商品名称/ 数量/ 总重量(吨)/ 商品性质(植物/肉/金属/塑料)/ 出境时间):n);scanf(%s %d %d %s %s,,&ti.number,&ti.weight,ti.nature,ti.time);zhoui.num=i+1;/商品序号增加1位printf(-n); return n;/*显示全部输入记录的函数,参数为结构体和商品序号*/void output(Shangpin t,int n) in
10、t i; system(cls); printf(n); printf(ttt商品信息n); printf(-n); printf( 序号 商品名称 数量 总重量(吨) 物品性质 出境时间 n); printf(-n); for(i=0;in;i+) printf(%6d %12s %10d %10d %16s %16sn, ti.num,,ti.number,ti.weight,&ti.nature,ti.time); getch();/任意键继续(jx) if(i+1)%10=0) /*判断(pndun)输出是否达到10条记录(jl)*/ printf(按任意键继续.n);
11、/*提示信息*/ getch(); /任意键继续 printf(*结束*n);/*插入函数,参数为结构体数组和记录数*/int add(Shangpin t,int n)printf(请输入一条记录n);printf(商品名称/ 数量/ 总重量(吨)/ 商品性质(植物/肉/金属/塑料)/ 出境时间):n);scanf(%s %d %d %s %s,,&tn.number,&tn.weight,tn.nature,tn.time);zhoun.num=n+1;printf(插入成功!);n=n+1;return n; /*查找函数,参数为记录数组和记录条数以及商品名称s */int
12、 find(Shangpin t,int n,char *s) int i; for(i=0;in-1) /*如果in-1超过了数组的长度*/ printf(没有要删除的记录n); /*显示没找到要删除的记录*/ else print(ti); /*调用输出函数显示该条记录信息*/ printf(确定删除吗?(1/0)n); /*确认是否要删除*/ scanf(%d,&ch); /*输入一个整数0或1*/ if(ch=1) /*如果确认删除整数为1*/ for(j=i+1;jn-1) /*如果整数i值大于n-1,说明没找到*/ printf(没有找到你所找的商品!n); else print(
13、ti); /*找到,调用显示函数显示记录*/ getch();/任意键继续void sort(Shangpin t,int n) /*排序函数*/ int i,j,a; Shangpin temp; system(cls); printf(-排序信息-n); printf(n-1.数量 2.总重量 n); printf(n-请选择排序类别(1/2):n); /*选择按什么排序*/ getch();/任意键继续 scanf(%d,&a); switch(a) case 1: for(i=0;in-1;i+)for(j=i+1;jn;j+)if(tj.numberti.number) temp=t
14、i;ti=tj;tj=temp; break; /*用选择(xunz)法排序*/ case 2: for(i=0;in-1;i+)for(j=i+1;jn;j+)if(tj.weightti.weight) temp=ti;ti=tj;tj=temp; break; /*用选择(xunz)法排序*/ printf(序号 商品名称 数量(shling) 总重量(吨) 物品性质 出境时间 nn); for(i=0;in-1) /*如果in-1超过了数组的长度*/ printf(没有找的要修改的记录n); /*显示没找到要修改的记录*/ else print(ti); /*调用输出函数显示(xins
15、h)该条记录信息*/ printf(确定(qudng)修改吗(1/0)?n); scanf(%d,&j);getch();/任意键继续(jx) switch(j) case 0: break; case 1:printf(-n);printf( 1.商品名称 2.数量 3.总重量(吨) 4.物品性质 5.出境时间6.退出 n);printf( 选择要修改的项目(1/2/3/4/5/6) :n); /*选择要找修改的内容*/scanf(%d,&k);switch(k)case 1: printf( 请输入商品名称: ); scanf(%s,); break;case 2 : pri
16、ntf( 请输入数量: ); scanf(%d,&ti.number); break;case 3 : printf( 请输入总重量(吨): ); scanf(%d,&ti.weight); break;case 4 : printf( 请输入物品性质: ); scanf(%s,ti.nature); break;case 5 : printf(请输入出境时间: ); scanf(%s,ti.time); break;case 6 :break;default: break; void save(Shangpint,int n)int i;FILE *fp;/指向(zh xin)文件的指针if
17、(fp=fopen(record.txt,w+)=NULL)/打开(d ki)文件,并判断(pndun)打开是否正常printf(n没有打开n);exit(0);printf(n 保存文件n);getch();/任意键继续fprintf(fp,rn);for(i=0;in;i+)fprintf(fp,%6d %12s %10d %10d %16s %16sn, ti.num,,ti.number,ti.weight,&ti.nature,ti.time); fprintf(fp,rn); /*将换行符号写入文件*/ getch();/任意键继续printf(*保存成功*n);fc
18、lose(fp);本系统所用程序(二、结构体、链表):#include#include#include/*头文件定义(dngy)*/typedef struct lnode/构造(guzo)结构体char name50; /商品名称int number; /单位(dnwi)int weight; /总吨数char nature50; /物品性质char time20; /出境时间struct lnode *next;Lnode;Lnode *first=NULL;FILE *fp;int num; /商品序号int data;char temp10;void Detect(); /读取文件函数
19、声明,显示文件是否存在void Print(); /主页显示函数声明void Answer(); /响应选择函数声明void Input(); /文件读入函数声明void Output(); /文件输出函数声明void Display(); /显示信息函数声明void Add(); /添加数据函数声明void Change(); /修改信息函数声明void Delete(); /删除信息函数声明void Find(); /查找信息函数声明void Sort(); /排序信息函数声明void Exit(); /退出函数声明void Seek_str(int m); /按字符查找用函数声明void
20、 Seek_num(int m); /按数字查找用函数声明Lnode *Get_Lnode(int pos); /返回第pos个节点,pos从零开始/*主函数*/int main()Detect();while(1)Print();Answer();return 0;/*检测(jin c)文件函数*/void Detect()int i;Lnode *p1;Lnode *p2;if(fp=fopen(data.txt,r)=NULL)/若没有(mi yu)数据文件,新建一个(y )数据文件data=0;fp=fopen(data.txt,w);num=0;fprintf(fp,%s %dnn,
21、商品数量:,num);fprintf(fp,%15s %15s %10s %15s %15sn,商品名称,商品数量,总重量,商品性质,出境日期);fclose(fp);elsedata=1;fscanf(fp,%s %d %s %s %s %s %s,temp,&num,temp,temp,temp,temp,temp);for(i=0;iname,&p1-number,&p1-weight,p1-nature,p1-time);p1-next=NULL;if(first=NULL)first=p1;elsep2-next=p1;p2=p1;fclose(fp);/* *主页显示(xinsh)
22、函数*/void Print()printf(*商品(shngpn)出境管理系统*nnn);printf(tttt1.导入信息(xnx)nn);printf(tttt2.导出信息nn);printf(tttt3.显示所有商品信息nn);printf(tttt4.添加商品nn);printf(tttt5.修改商品nn);printf(tttt6.删除商品数据nn);printf(tttt7.查找商品nn);printf(tttt8.按商品信息排序nn);printf(tttt0.退出并保存nn);printf(请输入要执行的功能选项号码:);if(!data)printf((数据文件不存在,请导
23、入数据文件或重新写入数据));data=1;/*选择函数*/void Answer()int i;/功能选项scanf(%d,&i);while(i8)/防止输入有误printf(您输入的号码有误,请输入正确的选项号码(0-8之间):);scanf(%d,&i);switch(i)case 1:Imput();break;case 2:Output();break;case 3:Display();break;case 4:Add();break;case 5:Change();break;case 6:Delete();break;case 7:Find();break;case 8:Sor
24、t();break;case 0:Exit();break;/*1导入数据(shj)函数*/void Input()char data_id200;int i;Lnode *p1;Lnode *end;printf(*导入数据(shj)*nn);doprintf(输入(shr) 1 进行导入数据;输入 0 返回:);scanf(%d,&i);if(i)printf(n请输入数据存放的完整路径地址(包含文件名称):n);scanf(%s,data_id);if(fp=fopen(data_id,r)!=NULL)fscanf(fp,%s %d %s %s %s %s %s,temp,&num,t
25、emp,temp,temp,temp,temp);first=NULL;for(i=0;iname,&p1-number,&p1-weight,p1-nature,&p1-time);p1-next=NULL;if(first=NULL)first=p1;elseend-next=p1;end=p1;fclose(fp);printf(n数据(shj)导入成功!nn);elseprintf(您输入(shr)的地址有误!nn);printf(*nn);while(i);/*2导出数据(shj)函数*/void Output()char data_id200;int i;Lnode *p1;pri
26、ntf(*导出数据*n); doprintf(输入 1 进行导出数据;输入 0 返回:);scanf(%d,&i);if(i)printf(n请输入数据存放的完整路径地址(包含文件名称):n);scanf(%s,data_id);if(fp=fopen(data_id,w)!=NULL)fprintf(fp,%s %dnn,商品种类:,num);fprintf(fp,%-15s %-15s %-10s %-15s %15sn,商品名称,商品(shngpn)数量,总重量,商品(shngpn)性质,出境(ch jng)日期);p1=first;while(p1-next!=NULL)fprintf
27、(fp,%-15s %-15d %-15d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);p1=p1-next;fprintf(fp,%-15s %-15d %-15d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);fclose(fp);printf(n数据导出成功!nn);printf(导出数据的地址为“%s”nn,data_id);elseprintf(您输入的地址有误nn);printf(*nn);while(i);/*3显示信息函数*/vo
28、id Display()int i;Lnode *p1;printf(*显示商品信息*n);printf(%s %dnn,商品种类:,num);printf(%-15s %-15s %-10s %-15s %15sn,商品名称,商品数量,总重量,商品性质,出境日期n);p1=first;if(first!=NULL)while(p1-next!=NULL)printf(%-15s %-15d %-15d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);p1=p1-next;printf(%-15s %-15d %-15d
29、%-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);printf(n*n);do/返回(fnhu)主页printf(n输入(shr) 0 返回(fnhu):);scanf(%d,&i);while(i);/*4添加信息函数*/void Add()int i;Lnode *p1;Lnode *end;printf(*添加商品*n);end=first;if(first!=NULL)end=Get_Lnode(num-1);doprintf(输入 1 继续添加数据;输入 0 返回:);scanf(%d,&i);if(i)print
30、f(n请输入新添商品的信息(按“商品名称 商品数量 总重量 商品性质 出境日期”的形式输入):n);p1=(Lnode *)malloc(sizeof(Lnode);scanf(%s %d %d %s %s,p1-name,&p1-number,&p1-weight,p1-nature,p1-time);p1-next=NULL;if(first=NULL)first=p1;elseend-next=p1;end=p1;num+;printf(n输入(shr)成功!nn);printf(*nn);while(i);/*5修改信息(xnx)函数*/void Change()int i,m;Lno
31、de *p1;printf(*修改(xigi)商品信息*n);p1=first;for(i=0;iname,p1-number,p1-weight,p1-nature,p1-time);p1=p1-next;doprintf(n输入对应编号 1-%d 修改该商品信息;输入 0 返回:,num);scanf(%d,&m);if(m)/非 0 进入(jnr)操作if(m0 & mnext;*/p1=Get_Lnode(m-1);scanf(%s %d %d %s %s,p1-name,&p1-number,&p1-weight,p1-nature,p1-time);printf(n修改成功!nn)
32、;printf(*nn);elseprintf(n您的输入有误,请重新输入:n);while(m);/输入 0 退出循环/*6删除信息函数*/void Delete()int i,m;Lnode *p1;Lnode *p2;printf(*删除(shnch)商品信息*n);p1=first;for(i=0;iname);p1=p1-next;doprintf(n输入对应(duyng)编号 1-%d 删除该商品信息;输入 0 返回:,num);scanf(%d,&m);if(m)/非 0 进入操作if(m0 & mnext;free(p2);elsep1=Get_Lnode(m-2); /待删除
33、节点的先驱p2=p1-next;/待删除节点p1-next=p2-next;/待删除节点的后继free(p2);num-;printf(n删除(shnch)成功!nn);p1=first;for(i=0;iname);p1=p1-next;printf(*nn);elseprintf(n您的输入(shr)有误,请重新输入:n);while(m);/输入 0 退出循环/*7查找信息函数*/void Find()int sk;printf(*查找商品*n);printf(1.商品名称n2.商品数量n3.总重量n4.商品性质n5.出境日期nn);printf(按以上哪一项进行筛选?请输入对应编号(输
34、入 0 返回):);doscanf(%d,&sk);if(sk=0 & sk=0|sk=5)elseprintf(您的输入有误,请重新输入:);while(sk);/输入 0 退出循环/*8排序函数*/void Sort()int i,j;int st1;/排序类型选项char st2;/升降序选项int *sqc;/存放已排序数据的下标Lnode *p1;/待比较节点Lnode *p2;/已排序节点sqc=(int *)malloc(num*sizeof(int);printf(*按商品信息排序(pi x)*n);printf(1.按商品(shngpn)数量n2.按总重量na.升序nb.降序
35、nn);printf(选择哪一种(y zhn)排序方法?请输入对应的编号和字母n(以“数字字母”的格式,无需空格;输入 0 返回):);doscanf(%d %c,&st1,&st2);printf(n*nn);if(st1)/非 0 进入操作if(st1=1 | st1=2) & (st2=a | st2=b)/验证输入if(st1=1)/按 商品数量 排序,默认升序printf(按 商品数量 排序,);sqc0=0;for(i=1;i=0;j-)/对已排序的数据遍历p2=Get_Lnode(sqcj);if(p1-number number)/待插入数据和已排序数据比较大小sqcj+1=s
36、qcj;elsesqcj+1=i;break;if(j0)sqc0=i;/Pgi.number为最小的情况(qngkung)else/按 总重量排序(pi x),默认(mrn)升序printf(按 总重量 排序,);sqc0=0;for(i=1;i=0;j-)p2=Get_Lnode(sqcj);if(p1-weight weight)sqcj+1=sqcj;elsesqcj+1=i;break;if(j=0;j-)p1=Get_Lnode(sqcj);printf(%-15s %-15d %-15d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-na
37、ture,p1-time);else/输出(shch)降序结果printf(降序结果(ji gu):nn);printf(%-15s %-15s %-15s %-15s %-15sn,商品名称,商品(shngpn)数量,总重量,商品性质,出境日期n);for(j=0;jname,p1-number,p1-weight,p1-nature,p1-time);printf(n*nn);printf(输入相应的“数字字母”重新进行排序,输入数字 0 退出排序:);elseprintf(n您的输入有误,请重新输入:n);while(st1);free(sqc);/*9退出并保存函数*/void Exi
38、t()Lnode *p1;fp=fopen(数据.data,w);fprintf(fp,%s %dnn,商品种类:,num);fprintf(fp,%-15s %-15s %-10s %-15s %-15sn,商品名称,商品数量,总重量,商品性质,出境日期);p1=first;if(first!=NULL)while(p1-next!=NULL)fprintf(fp,%-15s %-15d %-15d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);p1=p1-next;fprintf(fp,%-15s %-15d %-1
39、5d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);fclose(fp);printf(n*n);printf(n数据(shj)已保存!系统安全退出(tuch)!nn);printf(*nn);exit(0);/*Seek_str()函数(hnsh)*/void Seek_str(int m)char str30;/存放查找条件int i;int cnt=0;/查找结果计数Lnode *p1;scanf(%s,str);printf(n*nn);p1=first;for(i=0;iname,str)if(!cnt)/输出
40、结果表头printf(查找到以下(yxi)相符的数据:nn);printf(%-15s %-15s %-10s %-15s %-15sn,商品名称,商品(shngpn)数量,总重量,商品(shngpn)性质,出境日期n);printf(%-15s %-15d %-15d %-15s %-15sn,p1-name,p1-number,p1-weight,p1-nature,p1-time);cnt+;break;case 4:/m为4,按 商品性质 查找if(!strcmp(p1-nature,str)if(!cnt)/输出结果表头printf(查找到以下相符的数据:nn);printf(%-15s %-15s %-10s %-15s %-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 污染防治技术方案报告书
- 各行业收入来源分析表
- 江安县2024年第二次公开选聘县属国有企业领导人员笔试参考题库附带答案详解
- 金华浙江金华市应急管理局所属金华市应急管理技术服务保障中心选调工作人员笔试历年参考题库附带答案详解
- 湖南2025年湖南第一师范学院高层次人才招聘86人笔试历年参考题库附带答案详解
- 2022年11月监理工程师考试《建设工程监理基本理论与相关法规》真题及答案
- 多功能撑开固定托盘在腔镜活检钳再生处理中的应用
- 高空保洁服务协议书(2篇)
- 安全事故周年反思警示教育
- 小心触电安全
- 感染性休克患者的护理-蕾
- 世界各国区号大全
- 2014中国驾照公证英文翻译
- 九小场所安全培训
- 牛肉酥饼制作
- 十二经络及常用穴位
- 护士延续注册体检表通用
- 高标准农田建设勘测可研规划设计与预算编制技术方案
- 超高层框架-核心筒结构塔楼施工组织设计
- 2023年国际贸易术语解释通则(中文完整版)
- SH/T3508-2011【石油化工安装工程施工质量验收统一标准】表格
评论
0/150
提交评论