超市商品信息管理系统的设计与实现的设计方案
超市商品信息管理系统的设计与实现的设计方案
1.题目
《超市商品信息管理系统》的设计与实现
2.功能
(1)每一条记录包括一种商品的编号,商品名,生产地,数量,进货价格和卖出价格。
(2)添加功能:每回都是录入一条商品信息,但是会有提示问您是否继续接着进行商品信息的录入,如果是,您可以继续添加,不是,则返回主菜单。每回添加的信息会自动以二进制格式写入文件中。
(3)删除功能:每回您可以删除一条您所指定编号的信息。
(4)修改功能:会逐条提示您所要修改的商品信息,修改后的信息会自动以二进制格式写入文件中。
(5)查询功能:输入您所要查询的商品编号,会显示出您所要查询的商品信息。
(6)浏览功能:会显示出商品的信息。
(7)退出功能:每回回到菜单界面,您可以根据菜单提示退出系统。
(9)输入任意键,可以进入系统菜单。
3.要求
(1)利用指针来实现学生成绩的数据结构设计;
(2)系统具有添加,删除,修改,查询,浏览,退出等基本功能;
(3)系统的各个调用函数用函数的形式来实现;
(4)可以将商品信息保存在文件中。
(5)可以将商品信息从文件中读取出来。
4.1主函数 void main()
任意键进入
4.2系统菜单函数 void menu()
其中有一个switch循环,利用这个循环实现各个函数的调用,当您输入的数字不在菜单围时,会要求您重新输入,清屏之后重新返回菜单界面,继续操作。
效果如下:
4.3判断函数int Panduan(int id)
这是一个有返回值的函数,它不是被菜单函数引用,而是被添加函数引用,主要是判断您新添加的信息是否和之前的信息重复,如果重复,会返回值1,如果不重复则是返回0。
4.4添加函数 void Tianjia()
首先以追加数据的形式打开文件,接着利用判断函数判断所添加的信息是否和先前的信息重复,如果重复,则会提示您重新输入,如果不重复,则会逐条显示提示,根据提示,开始添加信息。完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的添加,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。
效果如下:
4.5删除函数void Delete()
首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有可以执行的操作,函数开始把文件中的数据存放到一个结构体数组中,接着提示您要删除的商品编号,利用循环,将不要删除的信息重新写入文件,将删除的信息不重新写入,就是相当于删除了。完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的删除,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。
下过如下:
4.6修改函数 void Xiugai()
首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有可以执行的操作,函数开始把文件中的数据存放到一个结构体数组中,关闭文件。在以只读的方式打开,接着提示您要修改的商品编号,利用循环,将不要修改的信息重新写入文件,而要修改的信息则在提示下修改完后重新写入文件。修改完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的删除,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。
4.7查询函数 void Chaxun()
首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请您重试”,当有信息时,则提示您要查询的商品编号,判断是否有这个商品,如果有,则会显示出该商品信息,完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的查询,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。如果没有,则会提示“输入的编号不存在,请您重新输入”。
4.8浏览函数 void Liulan()
首先以只读的形式打开文件,当文件中没有可以执行的信息时,会显示“系统错误,请
您重试”,当有信息时,则会逐条显示出所有商品的信息,完毕之后,提示您是否继续,如果输入“Y”或“y”,,表示继续,函数则会引用自身,又开始新的浏览,如果输入“N”或“n”,表示不继续,则会清屏,重新回到菜单界面。
效果如下:
N-S流程图如下:
4.9退出函数void Tuichu
选择退出后首先会清屏,接着显示提示“您确定要退出系统吗?如果您想退出请按'y',其它键将返回主菜单”,如果选择“Y”或“y”,则会退出系统,如果按其他任一键,则重新回到菜单界面。
5总结:
学习C语言一学期了,只是第一次做这么大的编程.刚刚接到这个任务时,感觉无从下手,感觉自己无法完成。但是还是抱着试试看的心态去完成了,由于上学期链表掌握的并不是很好,所以在这次的程序设计中并没有使用链表,这也可以算是此程序的一个缺点,抑或是自己的一种遗憾。在做这个程序的过程中,总是遇到一些自己无法解决的问题,有时候自己根本就不知道错在哪里,这也弄得自己心浮气躁的,过了一段时间,静下心来,仔细检查错误,认真打开以前的C语言书本,对照书上的例题,一个个的排除错误,实在有不会就请教班上C语言学的好的同学,他们度比较热心的帮我解决了问题,终于所编起来的C程序可以完整的运行了,虽然其中的过程有些枯燥,但是做好了之后就会有一种成就感,可能这是自己第一次完成的编程大题目,这就像爬山一样,过程是艰辛的,但是当你登上山顶之后,就会有种畅快淋漓的感觉,我想这就是做编程的乐趣吧,这是我第一个做的编程,我将会留下很深的印象,我相信以后我可以做出更好的编程!
程序如下:
#include
#include
#include
#include
struct goods
{
int id;
char name[20];
char produce[20];
int number;
float bid;
float price;
};
void menu();
void add();
void Delete();
void Xiugai();
void Chaxun();
void Liulan();
void Tuichu();
void main();
void menu();
void add();
void Delete();
void Xiugai();
void Chaxun();
void Liulan();
void Tuichu();
void main();
void menu()
{
int choice;
printf("\n*************超市商品信息管理系统*****************\n");
printf("--------------------------------系统菜单显示如下--------------------------------");
printf("\n\t 1. 新商品登记 \n");
printf("\n\t 2. 商品信息删除 \n");
printf("\n\t 3. 商品信息修改 \n");
printf("\n\t 4. 商品信息查询 \n");
printf("\n\t 5. 商品信息浏览 \n");
printf("\n\t 6. 退出管理系统 \n");
printf("\n\t请输入您要选择的菜单:");
scanf("%d",&choice);
switch(choice)
{
case 1:
add();
break;
case 2:
Delete();
break;
case 3:
Xiugai();
break;
case 4:
Chaxun();
break;
case 5:
Liulan();
break;
case 6:
Tuichu();
break;
default:
printf("\n\t\t\t\t\t输入无效,请您重新输入.!");
getch();
}
getch();
menu();
}
int Panduan(int id)
{
FILE *fp;
struct goods i;
fp=fopen("goods.txt","r");
if(fp==NULL)