超市商品信息管理系统课程设计报告书C语言.docx

上传人:b****1 文档编号:13882814 上传时间:2023-06-18 格式:DOCX 页数:110 大小:48.29KB
下载 相关 举报
超市商品信息管理系统课程设计报告书C语言.docx_第1页
第1页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第2页
第2页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第3页
第3页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第4页
第4页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第5页
第5页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第6页
第6页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第7页
第7页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第8页
第8页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第9页
第9页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第10页
第10页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第11页
第11页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第12页
第12页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第13页
第13页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第14页
第14页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第15页
第15页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第16页
第16页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第17页
第17页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第18页
第18页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第19页
第19页 / 共110页
超市商品信息管理系统课程设计报告书C语言.docx_第20页
第20页 / 共110页
亲,该文档总共110页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超市商品信息管理系统课程设计报告书C语言.docx

《超市商品信息管理系统课程设计报告书C语言.docx》由会员分享,可在线阅读,更多相关《超市商品信息管理系统课程设计报告书C语言.docx(110页珍藏版)》请在冰点文库上搜索。

超市商品信息管理系统课程设计报告书C语言.docx

超市商品信息管理系统课程设计报告书C语言

苏州科技学院

二○一一~二○一二学年第二学期

电子与信息工程系

课程设计报告书

 

课程名称:

程序设计基础实践

班级:

软件1111

学号:

1120126116

姓名:

王永建

指导教师:

严迪新

二○一二年二月

报告:

课程设计报告示例

1.题目

《超市商品信息管理系统》的设计与实现

2.功能

(1)每一条记录包括一种商品的编号,商品名,生产地,数量,进货价格和卖出价格。

(2)添加功能:

每回都是录入一条商品信息,但是会有提示问您是否继续接着进行商品信息的录入,如果是,您可以继续添加,不是,则返回主菜单。

每回添加的信息会自动以二进制格式写入文件中。

(3)删除功能:

每回您可以删除一条您所指定编号的信息。

(4)修改功能:

会逐条提示您所要修改的商品信息,修改后的信息会自动以二进制格式写入文件中。

(5)查询功能:

输入您所要查询的商品编号,会显示出您所要查询的商品信息。

(6)浏览功能:

会显示出商品的信息。

(7)退出功能:

每回回到菜单界面,您可以根据菜单提示退出系统。

(9)输入任意键,可以进入系统菜单。

3.要求

(1)利用指针来实现学生成绩的数据结构设计;

(2)系统具有添加,删除,修改,查询,浏览,退出等基本功能;

(3)系统的各个调用函数用函数的形式来实现;

(4)可以将商品信息保存在文件中。

(5)可以将商品信息从文件中读取出来。

4.1主函数voidmain()

任意键进入

4.2系统菜单函数voidmenu()

其中有一个switch循环,利用这个循环实现各个函数的调用,当您输入的数字不在菜单范围内时,会要求您重新输入,清屏之后重新返回菜单界面,继续操作。

效果如下:

4.3判断函数intPanduan(intid)

这是一个有返回值的函数,它不是被菜单函数引用,而是被添加函数引用,主要是判断您新添加的信息是否和之前的信息重复,如果重复,会返回值1,如果不重复则是返回0。

4.4添加函数voidTianjia()

首先以追加数据的形式打开文件,接着利用判断函数判断所添加的信息是否和先前的信息重复,如果重复,则会提示您重新输入,如果不重复,则会逐条显示提示,根据提示,开始添加信息。

完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的添加,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。

效果如下:

4.5删除函数voidDelete()

首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有可以执行的操作,函数开始把文件中的数据存放到一个结构体数组中,接着提示您要删除的商品编号,利用循环,将不要删除的信息重新写入文件,将删除的信息不重新写入,就是相当于删除了。

完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的删除,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。

下过如下:

4.6修改函数voidXiugai()

首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有可以执行的操作,函数开始把文件中的数据存放到一个结构体数组中,关闭文件。

在以只读的方式打开,接着提示您要修改的商品编号,利用循环,将不要修改的信息重新写入文件,而要修改的信息则在提示下修改完后重新写入文件。

修改完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的删除,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。

4.7查询函数voidChaxun()

首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有信息时,则提示您要查询的商品编号,判断是否有这个商品,如果有,则会显示出该商品信息,完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的查询,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。

如果没有,则会提示“输入的编号不存在,请您重新输入”。

 

4.8浏览函数voidLiulan()

首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有信息时,则会逐条显示出所有商品的信息,完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的浏览,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。

效果如下:

N-S流程图如下:

fp=fopen("goods.txt","r")

fp==NULL

是否

系统错误,!

feof(fp)

请您重试index++

输出信息

是否继续

是否

清屏

引用Liulan()

引用menu()

4.9退出函数voidTuichu

选择退出后首先会清屏,接着显示提示“您确定要退出系统吗?

如果您想退出请按'y',其它键将返回主菜单”,如果选择“Y”或“y”,则会退出系统,如果按其他任一键,则重新回到菜单界面。

5总结:

学习C语言一学期了,只是第一次做这么大的编程.刚刚接到这个任务时,感觉无从下手,感觉自己无法完成。

但是还是抱着试试看的心态去完成了,由于上学期链表掌握的并不是很好,所以在这次的程序设计中并没有使用链表,这也可以算是此程序的一个缺点,抑或是自己的一种遗憾。

在做这个程序的过程中,总是遇到一些自己无法解决的问题,有时候自己根本就不知道错在哪里,这也弄得自己心浮气躁的,过了一段时间,静下心来,仔细检查错误,认真打开以前的C语言书本,对照书上的例题,一个个的排除错误,实在有不会就请教班上C语言学的好的同学,他们度比较热心的帮我解决了问题,终于所编起来的C程序可以完整的运行了,虽然其中的过程有些枯燥,但是做好了之后就会有一种成就感,可能这是自己第一次完成的编程大题目,这就像爬山一样,过程是艰辛的,但是当你登上山顶之后,就会有种畅快淋漓的感觉,我想这就是做编程的乐趣吧,这是我第一个做的编程,我将会留下很深的印象,我相信以后我可以做出更好的编程!

程序如下:

#include

#include

#include

#include

structgoods

{

intid;

charname[20];

charproduce[20];

intnumber;

floatbid;

floatprice;

};

voidmenu();

voidadd();

voidDelete();

voidXiugai();

voidChaxun();

voidLiulan();

voidTuichu();

voidmain();

voidmenu();

voidadd();

voidDelete();

voidXiugai();

voidChaxun();

voidLiulan();

voidTuichu();

voidmain();

 

voidmenu()

{

intchoice;

printf("\n*************超市商品信息管理系统*****************\n");

printf("--------------------------------系统菜单显示如下--------------------------------");

printf("\n\t1.新商品登记\n");

printf("\n\t2.商品信息删除\n");

printf("\n\t3.商品信息修改\n");

printf("\n\t4.商品信息查询\n");

printf("\n\t5.商品信息浏览\n");

printf("\n\t6.退出管理系统\n");

printf("\n\t请输入您要选择的菜单:

");

scanf("%d",&choice);

switch(choice)

{

case1:

add();

break;

case2:

Delete();

break;

case3:

Xiugai();

break;

case4:

Chaxun();

break;

case5:

Liulan();

break;

case6:

Tuichu();

break;

default:

printf("\n\t\t\t\t\t输入无效,请您重新输入.!

");

getch();

}

getch();

menu();

}

intPanduan(intid)

{

FILE*fp;

structgoodsi;

fp=fopen("goods.txt","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

fread(&i,sizeof(structgoods),1,fp);

while(!

feof(fp))

{

if(i.id==id)

{

fclose(fp);

return1;

break;

}

fread(&i,sizeof(structgoods),1,fp);

}

fclose(fp);

return0;

}

voidadd()

{structgoodsi;

charchoice;

FILE*fp;

fp=fopen("goods.txt","ab");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

labID:

printf("\n\t请您输入要入库商品的信息...\n");

printf("\t\t\t\t商品的编号:

");

scanf("%d",&i.id);

if(Panduan(i.id)==1)

{

printf("\t\t\t\t此编号已被使用,请您重新输入......");

gotolabID;

}

printf("\t\t\t\t商品的名称:

");

scanf("%s",i.name);

printf("\t\t\t\t商品的生产地:

");

scanf("%s",i.produce);

printf("\t\t\t\t商品的数量:

");

scanf("%d",&i.number);

printf("\t\t\t\t商品的进价:

");

scanf("%f",&i.bid);

printf("\t\t\t\t商品的卖价:

");

scanf("%f",&i.price);

fwrite(&i,sizeof(structgoods),1,fp);

fclose(fp);

printf("\t\t\t\t\t\t商品信息已入库成功!

!

!

\n");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

add();

}

else

{

menu();

}

}

voidDelete()

{structgoodsi[1000];

structgoodstemp;

intdelID;

charchoice;

intindex=0;

intj=0;

FILE*fp;

fp=fopen("goods.txt","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

fread(&temp,sizeof(structgoods),1,fp);

while(!

feof(fp))

{

i[index]=temp;

index++;

fread(&temp,sizeof(structgoods),1,fp);

}

fclose(fp);

printf("\n\t请输入要删除的商品的编号:

");

scanf("%d",&delID);

fopen("goods.txt","w");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

for(j=0;j

{

if(i[j].id!

=delID)

{

fwrite(&i[j],sizeof(structgoods),1,fp);

}

}

fclose(fp);

printf("\t\t\t\t\t商品信息已清除!

!

!

\n");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Delete();

}

else

{

menu();

}

}

voidXiugai()

{intindex=0;

intID,j;

charchoice;

structgoodsi[1000];

structgoodstemp;

FILE*fp;

fp=fopen("goods.txt","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

fread(&temp,sizeof(structgoods),1,fp);

while(!

feof(fp))

{

i[index]=temp;

index++;

fread(&temp,sizeof(structgoods),1,fp);

}

fclose(fp);

fp=fopen("goods.txt","w");

if(fp==NULL)

{

printf("\\t\t\t系统错误,请您重试........");

exit(0);

}

printf("\n\t请输入要修改的信息的商品的编号:

");

scanf("%d",&ID);

for(j=0;j<=index-1;j++)

{

if(i[j].id!

=ID)

{

fwrite(&i[j],sizeof(structgoods),1,fp);

}

else

{

printf("\t\t商品名称修改为:

");

scanf("%s",i[j].name);

printf("\t\t商品生产地修改为:

");

scanf("%s",i[j].produce);

printf("\t\t商品数量修改为:

");

scanf("%d",&i[j].number);

printf("\t\t商品进价修改为:

");

scanf("%f",&i[j].bid);

printf("\t\t商品卖价修改为:

");

scanf("%f",&i[j].price);

fwrite(&i[j],sizeof(structgoods),1,fp);

}

}

fclose(fp);

printf("\t\t\t\t商品信息已修改......");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Xiugai();

}

else

{

menu();

}

}

voidChaxun()

{

FILE*fp;

intfindID;

charchoice;

structgoodsi;

fp=fopen("goods.txt","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请你重试........");

exit(0);

}

printf("\n\t请输入要查询的商品的编号..");

scanf("%d",&findID);

fread(&i,sizeof(structgoods),1,fp);

while(!

feof(fp))

{

if(i.id==findID)

{

printf("\n\n\t***************商品信息******************");

printf("\n\t商品编号...%20d\n",i.id);

printf("\n\t-----------------------------------------");

printf("\n\t商品名称...%20s\n",i.name);

printf("\n\t-----------------------------------------");

printf("\n\t商品产地...%20s\n",i.produce);

printf("\n\t-----------------------------------------");

printf("\n\t进口数量...%20d\n",i.number);

printf("\n\t-----------------------------------------");

printf("\n\t批发价格...%20.3f\n",i.bid);

printf("\n\t-----------------------------------------");

printf("\n\t卖出价格...%20.3f\n",i.price);

printf("\n\t-----------------------------------------");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Chaxun();

}

else

{

menu();

}

}

fread(&i,sizeof(structgoods),1,fp);

}

{printf("\t\t\t\t\t输入错误,请重试");

menu();}

fclose(fp);

}

voidLiulan()

{structgoodsi;

intindex=0;

charchoice;

FILE*fp;

fp=fopen("goods.txt","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请你重试........");

exit(0);

}

fread(&i,sizeof(structgoods),1,fp);

while(!

feof(fp))

{

index++;

printf("\n\n\t****************商品信息%d*****************",index);

printf("\n\t商品编号...%20d\n",i.id);

printf("\n\t-----------------------------------------");

printf("\n\t商品名称...%20s\n",i.name);

printf("\n\t-----------------------------------------");

printf("\n\t商品产地...%20s\n",i.produce);

printf("\n\t-----------------------------------------");

printf("\n\t进货数量...%20d\n",i.number);

printf("\n\t-----------------------------------------");

printf("\n\t批发价格...%20.3f\n",i.bid);

printf("\n\t-----------------------------------------");

printf("\n\t卖出价格...%20.3f\n",i.price);

printf("\n\t-----------------------------------------");

getch();

fread(&i,sizeof(structgoods),1,fp);

}

fclose(fp);

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Liulan();

}

else

{

menu();

}

}

voidTuichu()

{charchoice;

printf("\n\n\n\n\n\n\n\t\t\t您确定要退出系统吗?

\n\n\n\t\t\t如果您想退出请按'y',其它键将返回主菜单.....");

scanf("%c",&choice);

if(choice=='Y'||c

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2