ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:22.32KB ,
资源ID:9693093      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9693093.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言商品管理系统文件的应用.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言商品管理系统文件的应用.docx

1、c语言商品管理系统文件的应用/编制于2012.11.45号/*库文件包含*/#includestdio。h/输入输出函数库includestdlib.h/常用错误控制程序库#includeconio.h/调用dos控制台i/o库#includedos。h/msdos和8086调用的一些常量和函数库includestring.h/串操作和内存操作函数库/*宏定义*/define LEN sizeof(struct commdity)#define FORMAT ”8d%15s12。1lf%-12。1lf%-12.1lf%n#define DATA commi。num,commi。name,com

2、mi.price,commi。count,commi。total/*商品结构体*/struct commdity int num; /编号 char name20;/商品名称 double price;/单价 double count;/数量 double total;/总金额 ;struct commdity comm50;/定义结构体数组/*函数申明*/void in();/录入商品信息函数void show();/显示商品信息函数void order();/按总金额排队函数void del();/删除商品信息函数void modify();/修改商品信息函数void menu();/主菜

3、单函数void insert();/插入商品信息函数void total();/统计总商品数函数void search();/查找商品信息函数void version();/版本信息/*主函数*/void main() int n; menu(); scanf(d”,&n); while(n) switch(n)/问题switch()中的数据类型是什么?答案:是常量表达式,可以是任何数据类型*/ case 1: in();/录入商品信息 break; case 2: search();/寻找商品信息 break; case 3: del(); /删除商品信息 break; case 4: mo

4、dify();/修改商品信息 break; case 5: insert();/插入商品信息 break; case 6: order();/排序商品 break; case 7: total();/统计商品 break; case 8: version();/版本信息 break; default: break; getch(); menu();/返回菜单界面 scanf(”d”,n); return ;/*被调函数体*/菜单模块void menu() system(”CLS);/清屏函数 printf(nnnnn); printf(”tt*商品管理系统*|n); printf(”tt|t

5、0 退出 n); printf(”ttt 1 追加记录 |n”); printf(”ttt 2 查找记录 n”); printf(”ttt 3 删除记录 |n”); printf(”ttt 4 修改记录 n”); printf(ttt 5 插入记录 n); printf(tt|t 6 排序记录 (按总金额) |n”); printf(”ttt 7 统计记录 n); printf(ttt 8 版本信息 n); printf(”tt*n); printf(”ttt 选择(0-8):”);/录入信息模块/基本的流程为先判断是否存在记录,/若存在则读到商品结构体中,并显示之。/ 根据用户选择在文件后面

6、追加记录void in() int i,m = 0; char ch2; FILE *fp; /以读写可追加的方式打开文件,如果不存在则新建文件 if(fp = fopen(data。txt”,”a+”)=NULL) printf(”不能打开文件!n); return; /读取文件到商品结构体数组中,直到全部读取完毕 while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); /判断读取的数量,如果为0则表示没有相关记录,反之显示记录 if(m = 0) printf(”没有找到记录!n”); else system(”CLS”);

7、 show(); /以追加的方式打开 if(fp=fopen(data。txt,”a)=NULL) printf(不能打开文件!n); return; printf(”是否输入?(y/n):”); scanf(s,ch); while(strcmp(ch,”Y”)=0|strcmp(ch,”y”)=0)/判断是否要录入新信息*/ printf(”编号:”); scanf(”d”,commm.num);/*输入学生学号/ for(i=0;im;i+) if(commi.num = commm。num) printf(该记录已经存在,按任意键继续!”); getch(); fclose(fp);

8、return; printf(”商品名:”); scanf(”s,commm.name); /*输入学生姓名*/ printf(”单价:”); scanf(”%lf,&commm.price); /输入商品单价/ printf(”数量:”); scanf(%lf,commm。count); /输入商品数量*/ commm。total=commm。price commm.count; /*计算出总金额*/ if(fwrite(&commm,LEN,1,fp)!=1) /*将新录入的信息写入指定的磁盘文件/ printf(不能保存!”); getch(); else printf(”s 已经保存!

9、n”,commm。name); m+; printf(是否继续?(y/n):”);/询问是否继续*/ scanf(%s”,ch); fclose(fp); printf(”OK!n”);/显示模块/基本流程,先把文件中的数据依次读入到商品结构体中,/并依次显示void show() FILE fp; int i,m=0; fp=fopen(data。txt”,a+”); while(!feof(fp) if(fread(commm ,LEN,1,fp)=1) m+; fclose(fp); printf(编号 商品名称 单价 数量 总金额tn); for(i=0;im;i+) printf(F

10、ORMAT,DATA);/*将信息按指定格式打印*/ /排序模块/基本流程,先把文件中的数据读到商品结构体数组缓冲区中,/然后进行冒泡排序,/最后写入文件,/在关闭文件void order() FILE *fp; struct commdity t;/用来作为交换时的中间变量 int i=0,j=0,m=0; /以追加,读写的方式打开文件 if(fp=fopen(”data。txt”,a+”)=NULL) printf(不能打开文件!n); return; /先把文件中的数据读到结构体数组中去。并得到文件中记录的个数,再关闭文件 while(!feof(fp)) if(fread(commm

11、,LEN,1,fp)=1) m+; fclose(fp); /根据记录条数做出相应的选择,没记录则返回,有记录则排序 if(m=0) printf(没有记录!n”); return; else /冒泡排序 for(i=0;im1;i+) for(j=i+1;jm;j+) if(commi。total commj。total) t=commi; commi=commj; commj=t; /以写的方式打开文件 if(fp=fopen(”data。txt”,w”)=NULL) printf(”不能打开n); return; /将重新排好序的内容重新写入指定的磁盘文件中,并关闭文件 for(i=0;

12、im;i+) if(fwrite(&commi ,LEN,1,fp)!=1) printf(”s 不能保存!n”); getch(); return; fclose(fp); printf(保存成功n”); /查找记录模块/本模块的流程是先打开文件并读取里面的数据到商品结构体数组缓冲区中/用户输入编号与商品结构体中缓冲区的数据进行比较,如果有则显示,没有则输出提示信息void search() FILE *fp; int num,i,m=0; char ch2; /以追加 和写的方式打开文件 if(fp=fopen(”data.txt,a+”))=NULL) printf(”不能打开文件!n”

13、); return ; /把文件中的数据依次读入到结构体中,并关闭文件 while(!feof(fp) if(fread(commm,LEN,1,fp)=1) m+; fclose(fp); /如果没有记录,则返回,否则执行显示操作 if(m=0) printf( 没有记录!n); return; else /用户输入编号 printf(”请输入编号:); scanf(”%d”,num); /用循环语句来比较用户输入的编号是否存在 for(i=0;im;i+) if(num=commi。num) printf(”已经找到该记录,是否显示?(y/n); scanf(”s”,ch); if(str

14、cmp(ch,”y)=0strcmp(ch,Y”)=0) printf(编号 商品名称 单价 数量 总金额tn); printf(FORMAT,DATA); break; else return; /如果上面的循环语句执行完都没有找到 ,则会执行本判断语句 if(i=m) printf(”没有找到相关记录!n”); /删除商品模块/本模块的流程为先打开文件,并把数据写到商品结构体数组缓冲区中去/用户输入相关编号与结构体数组中的数据相比较,如果存在则把结构体数组缓冲区进行修改/把修改后的结构体数组缓冲区再次写入文件void del() FILE fp; int num,i,j,m=0; char

15、 ch2; /以追加和读的方式打开文件 if(fp=fopen(data。txt”,”a+”)=NULL) printf(”不能打开文件n”); return; /把文件中的内容依次写到商品结构体数组中,并记录信息条数,最后关闭文件 while(!feof(fp)) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); /根据商品信息条数进行相应的处理 if(m=0) printf(”没有记录!n”); return; else /用户输入编号 printf(”请输入编号:); scanf(%d”,num); /用循环语句来比较是否有用户输入的记录 for(

16、i=0;im;i+) if(num=commi。num) break; /没找到用户需要的记录则返回 if(i=m) printf(没有找到相关记录”); getchar(); return; /找到用户需要的记录,要求用户输入选择 printf(”该记录已经找到,是否删除?(y/n)); scanf(”s,ch); if(strcmp(ch,”y”)=0|strcmp(”ch”,Y”)=0) for(j=i;jm;j+)/*从找到的记录起,依次把他后面的数据覆盖前面的数据/ commj=commj+1; m;/*记录条数减一个*/ printf(”成功删除!n”); /以写的方式打开文件 i

17、f(fp=fopen(”data.txt,”w”))=NULL) printf(不能打开n”); return; /把商品结构体数组中的数据依次写入文件 for(j=0;jm;j+) if(fwrite(commj,LEN,1,fp)!=1) printf(保存出错!n”); return; printf(”保存成功!n); fclose(fp); /修改商品模块/本模块流程为先打开文件读商品结构体数组缓冲区中/用户输入数据与缓冲区得数据进行比较/有则先显示,并修该对应的缓冲区/把修改后的缓冲区写入到文件void modify() FILE fp; int i,j,m=0,num; char

18、ch2; /以追加和读的方式打开文件 if(fp=fopen(data。txt,”a+”))=NULL) printf(”不能打开文件!n); return; /把文件中的信息写入到商品结构体数组中,并统计记录条数,然后关闭文件 while(!feof(fp)) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); /根据记录条数做出相应的选择 if(m=0) printf(没有记录!n); return; else /用户输入编号 printf(”请输入编号:); scanf(”d”,&num); /用循环语句来比较是否有用户输入的记录 for(i=0;i

19、m;i+) if(num=commi.num) break; /没有找到用户输入的记录,返回 if(i=m) printf(没有找到相关记录”); getchar(); return; /先显示本条记录 printf(编号 商品名称 单价 数量 总金额tn”); printf(FORMAT,DATA); /用户输入选择 printf(是否修改?(y/n); scanf(”s,ch); if(strcmp(ch,y”)=0 | strcmp(ch,Y)=0) printf(”商品名:n); scanf(”%s,commi.name); printf(”单价:n); scanf(”lf”,comm

20、i。price); printf(”数量:n); scanf(lf,commi.count); commi.total = commi.price commi.count; /以写的方式打开文件 if(fp=fopen(data。txt”,”w”)=NULL) printf(”不能打开文件!n); return; for(j=0;jm;j+) if(fwrite(commj,LEN,1,fp)!=1) printf( 不能保存!n”); fclose(fp); return; printf(”保存成功!n”); fclose(fp); printf(ok”); /软件的一些信息void ver

21、sion() printf(”version 1.0n); printf(the writer is xxxn); printf(”在艰苦的环境中编写的程序2012。11。45n); return;/插入模块/基本流程为先打开一个文件,把数据写入缓冲区/在哪个编号后面插入,如果有此编号则插入,反之退出/在插入之前先把这个空间空出来,再输入插入的编号,如果有重复则退出,否则为这个空间赋值/把新的缓冲区写到文件中void insert() FILE *fp; int i,j,k,m=0,num; /以追加和读的方式打开一个文件 if(fp=fopen(data。txt”,a+”))=NULL) p

22、rintf( 不能打开文件n”); return; /把文件中的内容依次写入缓冲区,统计记录条数,并关闭文件 while(!feof(fp) if(fread(commm,LEN,1,fp)=1) m+; fclose(fp); /根据记录条数做出相应选择 if(m=0) printf(”没有记录n”); return; else printf(”请在某条记录后插入:n”); scanf(”%d,num); for(i=0;ii;j-) commj+1 = commj;/*从最后一个位置依次往后挪动,为要插入的地方腾出一块空间*/ /对这个空间赋值 printf(”现在输入插入的信息!n); printf(请输入编号:n);/编号/ scanf(d,commi+1。num);/*往此空间输入信息/ for(k=0;k=m;k+)/*判断是否输入重复的记录/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1