一、前言

此药店管理系统运用了循环、指针、结构体、链表、函数、文件等知识,包含了c语言绝大多数内容。

二、基本思路

药店管理系统由登录界面、管理端、用户端构成。

登录界面用户必须先进行注册,并确认注册身份。注册的账号、密码、身份信息保存在id文件中。之后进行登录。如果用户输入的信息与id文件中的信息一致,才会登录成功。

管理端有药品录入、显示、查找和修改功能,用户端有药品显示,查找,购买功能。

药品的录入、查找运用了链表的建立、增删、遍历,显示运用了单链表的冒泡排序。药品的信息储存在medicine的文件中,需要的时候读到链表中。

三、分布实现

登录界面

    • 功能实现

运用printf将注册登录页面打印出来。用户选择后调到对应函数中。注册先选择注册的身份,随后输入账号密码,不一致则重新输入,一致则注册成功并返回登录界面。

登录密码错误上限三次,登录成功后进入正式页面。

(2)代码实现

注册与登录界面

注册函数

保存到文件中

登录函数

(3)输出界面

首界面

注册界面

登录界面

管理端

    • 药品录入

功能实现

首先以单链表的形式读入所录入药品名称与价格,然后以追加方式打开medicine文件将链表内信息存入。

代码实现

药品录入

文件保存

输出界面

(2)药品显示

功能实现

将medicine文件中的药品信息读到链表中进行操作。用户可以选择默认的输出顺序,也可以选择则按照价格的高低顺序来输出。

默认顺序即按照录入顺序进行输出,输出时会加上序号。

按照价格高低输出用到单链表的排序。我选择冒泡排序。首先根据药品标记的序号得出要排序的药品数目n。然后以while循环n次,在while循环中,首先初始化指针指向第一个药品信息,然后遍历链表,如果发现此结点的药品价格比下一个结点的药品价格高,则交换药品信息。随后输出修改后的链表即可。

代码实现

从文件堕入链表

排序部分

输出部分

输出界面

(3)药品查找

功能实现

查找界面在输入药品名称后,会在文件中寻找对应药品,如果找到则会输出并继续寻找,直到遍历结束。非法输入则显示药品不存在。

代码实现

在文件中查找药品信息

输出界面

(4)药品修改

功能实现

将文件中的信息存到链表中。用户可以选择修改或删除。用户输入要修改的药品后,遍历链表找到对应信息,然后对链表进行基本的修改和删除。随后再保存回文件中。

代码实现

修改信息

删除信息

输出界面

修改信息

删除信息

用户端

(1)药品购买

功能实现

用户在选择购买药品时,会显示出从低到高的所有药品信息和序号。用户选择购买的药品编码和数目后会打印出对应账单。

代码实现

选购阶段

账单打印

输出界面

四、特点

1.运用#include中的system(“cls”)清屏操作,让界面整洁。

2.非法输入会显示错误、药品不存在等。

3.密码隐式输出,且次数上限。

4.对于药品名称重复,再查找和修改时,都会显示出来。

五、完整代码