PAGE
PAGE 22
苏州科技学院
二○一三 ~二○一四学年第一学期
电子与信息工程系
课程设计报告书
课程名称: 程序设计基础实践
班 级:
学 号:
姓 名:
指导教师:
二○一三年十二月
1.题目
《超市商品信息管理系统》的设计与实现
2.功能
(1)每一条记录包括一个商品的ID、名称、价格、保质日期。
(2)信息录入功能:可以完成信息记录的追加与插入。
(3)信息排序功能:按商品ID、商品价格进行排序。
(4)信息查询功能:完成按商品ID、商品名称查找商品记录,并显示。
(5)读取功能:将保存在文件中的商品记录读取出来。
(6)修改信息功能:按商品的ID进行读取未修改前的数据,输入新信息,保存。
(7)删除功能:按商品ID删除商品信息记录,并保存。
(8)退出:退出主菜单,退出程序。
3. 系统流程图
4.设计内容
整个系统除了主函数外,另外还有13个函数,实现八大功能:录入功能(追加、插入)、显示功能、查询功能、排序功能、删除功能、保存功能、读取功能。
各个函数的详细设计说明分别如下:
4.1主函数 main()
利用无限次循环while (select!='0')和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
4.2菜单选择函数 void DisMainMenu();
这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!
4.3信息录入函数 int InformationInput(GOODS goo[],int cn)
这是一个含参函数,用来执行商品信息的追加、插入。其中GOODS goo[]是结构体数组,cn是本次录入商品记录的总数。
信息录入函数的流程图如下:
信息录入函数的程序如下:
int InformationInput(GOODS goo[],int cn)
{
int number,i,m,n,a1,j,a2=0;
char a3;
printf("\n请输入本次录入的商品品种的总数: ");
scanf("%d",&number);
if(number>MAX_NUM-cn)
{
printf("您输入的人数太多,大于%d人!\n",MAX_NUM-cn);
system("pause");
return(0);
}
printf("\n****1. 信息的追加****\t****2.信息的插入****\n");
scanf("%d",&m);
if(m==1)
{
for(i=cn;i
{
printf("\t商品ID :\t");
scanf("%d",&goo[i].ID);
printf("\t商品名称 :\t");
fflush(stdin);
scanf("%s",goo[i].name);
for(j=0;j
{
if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0)
{
printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续 Y / N ?");
fflush(stdin);
scanf("%c",&a3);
if(a3=='Y'||a3=='y')
break;
else
return(0);
}
else
continue;
}
printf("\t商品单价 :\t");
scanf("%f",&goo[i].price);
printf("\t商品保质日期 :\t");
scanf("%d%d%d",&goo[i].guarant.year,&goo[i].guarant.month,&goo[i].guarant.day);
printf("\n");
}
printf("\n本次输入的信息是 :\n");
DisplayInformation2(goo,cn,cn+number);
printf("\n");
return(numb