超商品信息管理系统_第1页
超商品信息管理系统_第2页
超商品信息管理系统_第3页
超商品信息管理系统_第4页
超商品信息管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、苏州科技学院二。一一二。一二学年第二学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班 级: 软件1112学 号:1120126206姓 名:沈鑫指导教师:严辿新二。一二年二月附录2:课程设计报告示例1题目超市商品信息管理系统的设计与实现2.功能(1)每一条记录包括一种商品的编号,名称,生产地,数量,进货价格和卖出价格。(2)添加功能:每回都是录入一条商品信息,但是会有提示问您是否继续接着进行商品 信息的录入,如果是,您可以继续添加,不是,则返回主菜单。每回添加的信息会自动以二 进制格式写入文件中。(3)删除功能:每回您可以删除一条您所指定编号的信息。(4)修改功能:会逐条提示您所

2、要修改的商品信息,修改后的信息会自动以二进制格式 写入文件中。(5)查询功能:输入您所要查询的商品编号,会显示出您所要查询的商品信息。(6)浏览功能:会逐个显示出商品的信息。(7)退出功能:每回回到菜单界面,您可以根据菜单提示退出系统。(9)有一个美观的欢迎界面,输入任意键,可以进入系统菜单。(10)有一个清晰美观的系统菜单界面来调用各个功能。3.要求(1)整个系统均用C语言实现;(2)利用指针来实现学生成绩的数据结构设计;(3)系统具有添加,删除,修改,查询,浏览,退出等基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将商品信息保存在文件中。(6)可以将商品信息从文件中读取

3、出来。4 .设计内容整个系统除了主函数外,另外还有8个函数,实现九大功能:添加功能、删除功能、修改功能、查询功能、浏览功能、退出功能、保存功能、读取功能、判断功能。各个函数的详 细设计说明分别如下:4.1 主函数 void main()显示一个美观的欢迎界面,按任意键清屏之后显示系统菜单界面。效果如下:4.2 系统菜单函数 void menu()其中有一个switch循环,利用这个循环实现各个函数的调用,当您输入的数字不在菜单 范围内时,会要求您重新输入,清屏之后重新返回菜单界面,继续操作。效果如下:4.3 判断函数 int Panduan(int id)这是一个有返回值的函数,它不是被菜单函

4、数引用,而是被添加函数引用, 主要是判断您新添加的信息是否和之前的信息重复,如果重复,会返回值1,如果不重复则是返回 0。4.4 添加函数 void Tianjia()首先以追加数据的形式打开文件,接着利用判断函数判断所添加的信息是否和先前的 信息重复,如果重复,则会提示您重新输入,如果不重复,则会逐条显示提示,根据提示, 开始添加信息。完毕之后,提示您是否继续,如果输入“ Y”或" y”,表示继续,函数 则会引用自身,又开始新的添加,如果输入“ N”或" n”,表示不继续,则会清屏,重新 回到菜单界面。效果如下: C商品信息查询3商品信息浏览】=退出管理系统】请洞人意要出

5、挥的菜单1国1奶由11 £14也B 1 1-:s z Z泉产帚价.胡启生麓安品品品品晶品西商商商商商请您输入要入库商品的喧息-4.5 删除函数 void Delete()首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有可以执行的操作,函数开始把文件中的数据存放到一个结构体数组中,接着提示您要删除的商品编号,利用循环,将不要删除的信息重新写入文件,将删除的信息不重新写入,就是相当于删除了。完毕之后,提示您是否继续,如果输入“ Y”或"y”,表 示继续,函数则会引用自身,又开始新的删除,如果输入“ N”或" n”,表示不继续,

6、则 会清屏,重新回到菜单界面。下过如下:4.6 修改函数 void Xiugai()首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示 “系统错误,请 您重试”,当有可以执行的操作,函数开始把文件中的数据存放到一个结构体数组中,关闭文件。在以只读的方式打开,接着提示您要修改的商品编号,利用循环,将不要修改的信息重新写入文件,而要修改的信息则在提示下修改完后重新写入文件。修改完毕之后,提示您是否继续,如果输入“ Y”或" y”,表示继续,函数则会引用自身,又开始新的删除, 如果输入“ N”或"n”,表示不继续,则会清屏,重新回到菜单界面。效果如下:请加人意要出挥至

7、菜里3=a -退出管理系统=商品信息浏览匈= = = = = " = = = = = = = 3商品侣息查询商品信息修改 SA 旃 请1小国 一党中 一»01-Sil 屈改改 的名片八4.7 查询函数 void Chaxun()首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有信息时,则提示您要查询的商品编号,判断是否有这个商品,如果有,则会 显示出该商品信息,完毕之后,提示您是否继续,如果输入“ Y”或" y”,表示继续, 函数则会引用自身,又开始新的查询,如果输入“N”或"n”,表示不继续,则会清屏,重新回到菜

8、单界面。如果没有,则会提示“输入的编号不存在,请您重新输入”。效果如下:4.8 浏览函数 void Liulan()首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有信息时,则会逐条显示出所有商品的信息,完毕之后,提示您是否继续,如 果输入“ 丫”或“y”,表示继续,函数则会引用自身,又开始新的浏览,如果输入“ N 或“n”,表示不继续,则会清屏,重新回到菜单界面。效果如下:N-S流程图如下:4.9 退出函数 void Tuichu选择退出后首先会清屏,接着显示提示“您确定要退出系统吗就口果您想退出请按'y',其它键将返回主菜单”,如果选

9、择"Y”或" y”,则会退出系统,如果按其他任一键,则重新回到菜单界面。效果如下:5 .调试分析(1)刚开始写好后,经过调试发现很多错误,这其中有粗心犯下的,例如没有注意到 中英文之间的切换,忘记写分号,函数名称拼写不一致等等。(2)由于对文件知识的陌生,每回写到文件就会卡在那里,然后翻阅书籍,慢慢想, 应该如何打开,用什么方式打开,有时候还会忘记关闭文件,反正遇到各种各样的问题,后来通过上网查阅和求助同学,才把文件一块的很多内容完成。(3)有时候在写循环时,很多时候搞不清要循环多少次,也就是其中的判断条件不好 确定,后来没办法,我就一个一个去试,再通过观察,写出条件。(4

10、)本来一开始写的时候我每个函数后面没有重新回到主菜单这一步骤,每次运行的 结果都是堆积在屏幕上的,很不美观,但是我看到其他同学的每次运行完后可以回到菜单, 于是向同学请教,也终于做到了这一点。6.总结:C语言已学习了两个学期了。总算对其有了初步的认识与了解!虽然不能算上手,但基本能看懂许多代码。当然让自己独立编写有某些功能的程序还是十分吃力的。比如这次的超市商品信息管理系统, 虽然基本算法还算简易, 但从文件的各种打开方式和读取开始就很难 把持。只有照着书上的例题去理解,去套用!才能略有小成的把程序做出来,当然缺陷百出!怎么讲呢?总觉得时间不够用! 写程序时感觉时间过得很快, 一边写的过程中也

11、在一边学习, 每天要消化的东西很多!通过这次课题编写, 使我对C语言有了更深入、更全面的了解,同时也发现自己的英文 和函数基础不是很好, 对很多地方不是特别懂, 甚至对有些概念都还很模糊, 但通过这次课 程设计,使我对 C语言有了新的认识和了解。平常在书上学的这些知识在我看来是些最基本的知识!其实C语言应该还包括很多, 但就这些基本的知识我们学起来还是很辛苦的,我个人认为C语言的语句块中无非是 3个东西,顺序,判断与循环,编写的语句块中没发现过超出这 3种东西的,就算调用的函数,在函数 里面还是这3个东西,可以说是极其简单, 但就这3种东西拼凑在一起时, 就能发挥强大的 功能与作用。可谓三个臭

12、皮匠顶个诸葛亮!一般在没有多数的嵌套下还是能很清晰明了的读写代码,可一旦嵌套一多,就开始晕晕眩眩了。函数的话,我的理解比较浅,我只能说它的作用除了被人调来调去之外,没有别的功能了!当然使用函数会是程序别的清晰明了,这点在编写超市商品信息管理系统时也体会到了!当然我感觉这其中还有一点是至关重要的,那就是算法,也就是自己的设计思路。 我应该如何引用这些函数,什么时候引用以及整个程序的一个构局,这些都要考虑到。怎么说呢,终于把课题做完了,当看到自己的劳动成果展现在自己眼前, 心中的喜悦无 以言表。也同时惊叹计算机的伟大和 C语言的神奇,我相信在以后白学习中对 C语言会有更 深一步的学习和了解,并充分

13、运用好 C语言这样一种神奇的语言。以下是源程序:/*头文件*/*#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>/*定 义 结 构*/*/*void menu() int choice;printf("n3 3 3 3 3 3 3 3 3 3 3 3 3 33 3 3 3 3 3 3 3 3 3 3n");printf(")printf("nt=【printf("nt=printf("nt=pri

14、ntf("nt=printf("nt=printf("nt=printf("nt请输入您要选择的菜单");scanf("%d",&choice);/* 选择菜单功能 */ switch(choice) case 1:系 统 菜 单 函 数【超市商品信息管理系统】3 3 3系 统 菜 单新购商品入库商品信息删除商品信息修改商品信息查询商品信息浏览退出管理系统显 示 如 下!n");!n");!n");!n");!n");!n");/*/struct goods

15、int id;char name20;char produce20;int number;float bid;float price;/*/*/*/*/*/*商品编号*/ 商品名称*/ 商品生产地*/ 商品数量*/ 进货彳格*/卖出价格*/;/*/函数void menu();/*系统菜单函数*/void Tianjia();/*商品信息的添加*/void Delete();/*商品信息的删除*/void Xiugai();/*商品信息的修改*/void Chaxun();/*商品信息的查询*/void Liulan();/*浏览商品信息*/void Tuichu();/*退出管理系统*/voi

16、d main();/*主函数*/Tianjia();/*引用添加函数*/break;case 2:Delete();/*引用删除函数*/break;case 3:Xiugai();/*引用修改函数*/break;case 4:Chaxun();/*引用查询函数*/ break;case 5:Liulan();/* 引用浏览函数*/ break;case 6:Tuichu();/*引用退出函数*/break;default:printf("nttttt输入无效,请您重新输入");getch();/* 重新输入*/system("cls");/* 清屏 */

17、menu();/*引用系统菜单函数*/* */int Panduan(int id)FILE *fp;/* 定义文件指针*/struct goods i;fp=fopen("goods.txt","r");/*以只读的方式打开文件*/if(fp=NULL) printf("ttt 系统错误,请您重试 ");exit(0);fread(&i,sizeof(struct goods),1,fp);/*从文件中读取 */while(!feof(fp)/*判断文件数据是否读完,没读完 feof=0,读完feof=1*/ if(i.id

18、=id) fclose(fp); return 1;/* 返回 1 给 Panduan(i.id)*/ break;从文件中读取*/fread(&i,sizeof(struct goods),1,fp);/*fclose(fp);/*关闭文件 */ return 0;商 品 信 息 的 添 加/* */void Tianjia() struct goods i;char choice;FILE *fp;fp=fopen("goods.txt","ab");/*以向二进制文件尾追加数据的方式打开*/if(fp=NULL) printf("

19、ttt系统错误,请您重试 ");exit(0); labID:/*设置标签*/printf("nt请您输入要入库商品的信息n");printf("tttt商品的编号:");scanf("%d”,&i.id);if(Panduan(i.id)=1)/*引用判断函数的值*/printf("tttt此编号已被使用,请您重新输入");goto labID;/*跳转到标签*/printf("tttt商品的名称:");scanf("%s",);printf("

20、;tttt商品的生产地:");scanf("%s",duce);printf("tttt商品的数量:");scanf("%d”,&i.number);printf("tttt商品的进价:");scanf("%f",&i.bid);printf("tttt商品的卖价:");scanf("%f”,&i.price);fwrite(&i,sizeof(struct goods),1,fp);/*将以上信息写入文件中*/fclose

21、(fp);/* 关闭文件 */ printf("tttttt商品信息已入库成功!!n");printf("n 您想继续吗?(y/n)");scanf(" %c",&choice);/* 选择是否继续 */ if(choice='Y'|choice='y')Tianjia();/*引用添加函数*/ elsesystem("cls");/*清屏 */menu();/*引用系统菜单函数*/*商 品 信 息 的 删 除*/*void Delete() struct goods i10

22、00;/*定义结构体数组 */struct goods temp;int dellD;char choice;int index=0;int j=0;FILE *fp;fp=fopen("goods.txt","r");/* 以只读的方式打开文件 */ if(fp=NULL) printf("ttt系统错误,请您重试 ");exit(0); /*将数据存放到结构体数组中*/fread(&temp,sizeof(struct goods),1,fp);/*从文件中读取 */while(!feof(fp)/* 判断文件数据是否读完

23、,没读完 feof=0,读完feof=1*/ iindex=temp; index+;fread(&temp,sizeof(struct goods),1,fp);/*从文件中读取 */fclose(fp);/*关闭文件 */printf("nt请输入要删除的商品的编号:");scanf("%d",&delID);fopen("goods.txt","w");/*以只写的方式打开文件 */if(fp=NULL) printf("ttt系统错误,请您重试 ");exit(0); f

24、or( j=0;j<index;j+)if(ij.id!=delID)fwrite(&ij,sizeof(struct goods),1,fp);/*fclose(fp);/* 关闭文件 */printf("ttttt商品信息已清除!!n");printf("n您想继续吗?(y/n)");scanf(" %c",&choice);/*选择是否继续 */ if(choice='Y'|choice='y') Delete();/* 引用删除函数*/else system("c

25、ls");/*清屏 */menu();/*引用系统菜单函数*/* I写入文件*/商 品 信 息 的 修 改void Xiugai() int index=0;int ID,j;char choice;struct goods i1000;/*定义结构体数组 */structgoods temp;FILE *fp;fp=fopen("goods.txt","r");/*以只读的方式打开文件 */ if(fp=NULL)printf("ttt系统错误,请您重试 ");exit(0);/*将数据存放到结构体数组中*/fread(&

26、amp;temp,sizeof(struct goods),1,fp);/*从文件中读取 */while(!feof(fp)/* 判断文件数据是否读完,没读完 feof=0,读完feof=1*/ iindex=temp;index+;fread(&temp,sizeof(struct goods),1,fp);/*从文件中读取 */ fclose(fp);/*关闭文件 */fp=fopen("goods.txt","w");/*以只读的方式打开文件 */if(fp=NULL)printf("ttt 系统错误,请您重试");ex

27、it(0); printf("nt请输入要修改的信息的商品的编号:");scanf("%d",&ID); for(j=0;j<=index-1;j+)if(ij.id!=ID)fwrite(&ij,sizeof(struct goods),1,fp);/* else/*开始修改信息*/写入文件*/ printf("tt商品名称修改为:");scanf("%s",); printf("tt商品生产地修改为:");scanf("%s",ij.p

28、roduce); printf("tt商品数量修改为:");scanf("%d",&ij.number);printf("tt商品进价修改为:");scanf("%f",&ij.bid); printf("tt商品卖价修改为:");scanf("%f",&ij.price);fwrite(&ij,sizeof(struct goods),1,fp);/*fclose(fp);/* 关闭文件 */printf("tttt商品信息已修改&

29、quot;);printf("n 您想继续吗?(y/n)");scanf(" %c",&choice);/* 选择是否继续 */ if(choice='Y'|choice='y') Xiugai();/*引用修改函数*/ else system("cls");/* 清屏 */ menu();/*引用系统菜单函数*/*V将以上信息写入文件*/*/void Chaxun()FILE *fp;int findID;char choice;struct goods i;fp=fopen("go

30、ods.txt","r");/*以只读的方式打开文件 */if(fp=NULL) printf("ttt系统错误,请你重试 ");exit(0);finID:/* 设置标签*/printf("nt请输入要查询的商品的编号.");scanf("%d”,&findID);fread(&i,sizeof(struct goods),1,fp);/*从文件中读取 */while(!feof(fp)/*判断文件数据是否读完,没读完 feof=0,读完feof=1*/if(i.id=findID)printf(

31、"nnt*商品信息*”);printf("nt 商品编号20dn",i.id);printf("nt");printf("nt商品名称20sn",);printf("nt");printf("nt商品产地20sn",duce);printf("nt");printf("nt进口数量20dn",i.number);printf("nt");printf("nt批发价格20.3fn",i.

32、bid);printf("nt");printf("nt卖出彳格20.3fn",i.price);printf("nt");printf("n您想继续吗?(y/n)");scanf(" %c",&choice);/*选择是否继续 */if(choice='Y'|choice='y')Chaxun();/* 引用查找 */elsesystem("cls");/* 清屏 */menu();/*引用系统菜单函数*/从文件中读取*/fread(

33、&i,sizeof(struct goods),1,fp);/*fclose(fp);/*关闭文件 */printf("ttttt输入的编号不存在,请您重新输入");goto finlD;/*跳转到标签*/*浏 览 商 品 信 息*/*void Liulan() struct goods i;int index=0;char choice;FILE *fp;fp=fopen("goods.txt","r");/*以只读的方式打开文件 */if(fp=NULL) printf("ttt系统错误,请你重试 ")

34、;exit(0); fread(&i,sizeof(struct goods),1,fp);/*从文件中读取 */while(!feof(fp)/*判断文件数据是否读完,没读完 feof=0,读完feof=1*/ index+;printf("nnt*商品信息 d*",index);printf("nt 商品编号20dn",i.id);printf("nt");printf("nt商品名称20sn",);printf("nt");printf("nt商品产地20sn

35、",duce);printf("nt");printf("nt进货数量20dn",i.number);printf("nt");printf("nt批发价格20.3fn",i.bid);printf("nt");printf("nt卖出价格20.3fn",i.price);printf("nt");getch();fread(&i,sizeof(struct goods),1,fp);/*从文件中读取 */fclose(fp);/*关闭文件 */printf("n您想继续吗?(y/n)");scanf(" %c",&cho

温馨提示

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

评论

0/150

提交评论