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

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

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

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)

相关主题
相关文档
最新文档