C语言程序设计(课程设计)
《服装销售管理系统》
在大一学习完学校要求的C语言程序设计的课程设计之后,在学期末有着一个课程设计,就是在练习之前课上的理论知识之后,将上课学习到的这些付诸实践,完成一个数据信息管理系统。由于之前粗略使用C写过图书管理系统,所以这次选择了服装管理系统,用来接触一些较新的东西。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#define KEY 0x86
typedef struct Adm* List1;
typedef struct Clo* List2;
typedef struct Vip* List3;
struct Adm//管理员信息包括 名字 密码
{
char nam[20],password[20];
struct Adm* next;
};
struct Clo//服装信息包括 品牌 名字 编号 尺寸 颜色 价格 总数
{
char brand[20],nam[20],size[20],color[20];
float price;
int amount,num;
struct Clo* next;
};
struct Vip//会员信息包括 姓名 电话 积分
{
char nam[20],phone[20];
float score;
int num; //会员号自动分配
struct Vip* next;
};
void enter0(); //登陆界面
void Vis_window(); //游客界面
void Adm_enter(); //管理员录入
void Adm_change(); //管理员修改
void Adm_load(); //管理员登录 1
void Adm_manage(); //管理员管理界面 2
void Clo_manage(); //服装管理界面 3
void Clo_add(); //服装添加
void Clo_find(); //服装信息查询
void Clo_finding(); //当前条件下深度查询
void Clo_change(); //服装信息改变
int Clo_stat(); //服装种类数目统计
void Vip_manage(); //会员管理界面 4
void Vip_enter(); //会员信息录入
int Vip_stat(); //会员数统计
void Vip_find(); //会员信息查询
void Vip_finding(); //当前条件下深查
void Sale_system(); //销售系统管理界面 5
void Sale_list(); //所有服装显示
void Sale_window(); //销售窗口
int Sale_stat(); //销售服装种类数
void Use_history(); //使用记录
void Data_sort(); //本次销售排序
void Pro_bar()///进度条程序
{
system("cls");
char arr[50] = {'\0'};
const char *p = "|/-\\";
memset(arr,0,sizeof(arr));
int n = 50,i = 0;
while(i<=n)
{
arr[i]= '=';
printf("\t\t\t\t[%-50s][%d%%][%c]\r",arr,i*2,p[i%4]);
fflush(stdout);
i++;
usleep(20000);
}
printf("\n");
}
void Mas_int()///关于
{
MessageBox(NULL, TEXT("名称:服装销售系统\n学校:****大学\n作者:****"), TEXT("关于"), MB_OK);
}
void enter()///进入界面
{
Pro_bar();
system("cls");
int x0;
char name[20];
printf("\t\t\t\t ***************程序主界面*****************\n");
printf("\n");
printf("\t\t\t\t ******************************************\n");
printf("\n");
printf("\t\t\t\t ******** 1.管理员界面@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******** 2.游客界面@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******** 3.退出该程序@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******************************** 0.关于 **\n");
printf("\n");
printf("\t\t\t\t ******************************************\n");
printf("\t\t\t\t ") ;
scanf("%d",&x0);
switch (x0)
{
case 0:
Mas_int();
enter();
break;
case 1:
enter0();
break;
case 2:
Vis_window();
break;
case 3:
Pro_bar();
system("cls");
exit(0);
break;
default :
printf("\t\t\t\t 未被定义,按任意键返回当前\n") ;
getch();
system("cls");
enter();
}
}
void Vis_window()///游客进入窗口
{
system("cls");
int x0;
char name[20];
printf("\t\t\t\t ****************游客界面******************\n");
printf("\n");
printf("\t\t\t\t ******************************************\n");
printf("\n");
printf("\t\t\t\t ********* 1.服装查找@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ********* 2.服装购买@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ********* 3.返回上层@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******************************************\n");
printf("\t\t\t\t ") ;
scanf("%d",&x0);
switch (x0)
{
case 1:
Clo_find(x0);
break;
case 2:
Sale_window();
break;
case 3:
enter();
break;
default :
printf("\t\t\t\t 未被定义,按任意键返回上层\n") ;
getch();
system("cls");
enter();
}
}
void enter0()///第一界面 登录界面
{
system("cls");
int x0;
char name[20];
printf("\t\t\t\t **************管理员主界面****************\n");
printf("\n");
printf("\t\t\t\t ******************************************\n");
printf("\n");
printf("\t\t\t\t ******** 1.添加管理员@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******** 2.管理员修改@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******** 3.管理员登录@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******** 4.返回上一层@_@ ***********\n");
printf("\n");
printf("\t\t\t\t ******************************************\n");
printf("\t\t\t\t ") ;
scanf("%d",&x0);
switch (x0)
{
case 1:
Adm_enter();
break;
case 2:
Adm_change();
break;
case 3:
Adm_load();
break;
case 4:
enter();
break;
default :
printf("\t\t\t\t 未被定义,按任意键返回上层\n") ;
getch();
system("cls");
enter0();
}
}
void Adm_enter()///管理员录入
{
system("cls");
FILE *fp;
int i,j=0,m;
char nam[20],nam0[20],psword[20],psword0[20];
fp = fopen("Adm_list.txt","r");
if(fp == NULL)
{
j=1;
fp = fopen("Adm_list.txt","a");
}
fclose(fp);
printf("\t\t\t\t 输入管理员名:");
scanf("%s",nam);
if(j==0);
{
fp = fopen("Adm_list.txt","r");
while(!feof(fp))
{
fscanf(fp," %s %s\n",nam0,psword0);
{
if (!strcmp(nam0,nam))
{
printf("\t\t\t\t 已存在该管理员,无需重复录入!\n");
printf("\t\t\t\t 任意键返回上层!");
getch();
fclose(fp);
enter0();
}
}
}
}
fp = fopen("Adm_list.txt","a");
printf("\t\t\t\t 输入密码:");
for(i=0; ;i++)
{
m=0;
psword0[i]=getch();
if(psword0[i]=='\r')
{
psword0[i]='\0';
break;
}
if(psword0[i]=='\b')
{
m=1;
psword0[i]='\0';
psword0[i-1]='\0';
i = i-2;
printf("\b \b");
}
if(m==0) printf("*");
}
printf("\n\t\t\t\t 请再次输入密码:");
for(i=0; ;i++)
{
m=0;
psword[i]=getch();
if(psword[i]=='\r')
{
psword[i]='\0';
break;
}
if(psword[i]=='\b')
{
m=1;
psword[i]='\0';
psword[i-1]='\0';
i = i-2;
printf("\b \b");
}
if(m==0) printf("*");
}
if(!strcmp(psword0,psword))
{
for (i=0;i<strlen(psword);i++)
{
psword0[i] = psword[i]^KEY;
}
fprintf(fp," %s %s\n",nam,psword0);
printf("\n\t\t\t\t 录入成功,任意键返回上层!");
}
else
{
printf("\n\t\t\t\t 录入失败,密码不一致,任意键返回上层:");
}
getch();
fclose(fp);
enter0();
}
void Adm_load()///管理员登录
{
system("cls");
FILE *fp;
char nam[20],nam0[20],psword[20],psword0[20];
int flag = 0,i,j;
fp = fopen("Adm_list.txt","r");
if (fp == NULL)
{
printf("\t\t\t\t 尚未创建管理员,任意键创建并录入.");
Adm_enter();
}
printf("\t\t\t\t 输入登录管理员名称:");
scanf("%s",nam0);
while(!feof(fp))
{
fscanf(fp, " %s %s\n",nam,psword);
if (!strcmp(nam,nam0))
{
flag = 1;
printf("\t\t\t\t 输入密码:");
for(i=0; ;i++)
{
j=0;
psword0[i]=getch();
if(psword0[i]=='\r')
{
psword0[i]='\0';
break;
}
i