C语言 项目 CRM系统(客户信息管理系统)
Posted DQ_CODING
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 项目 CRM系统(客户信息管理系统)相关的知识,希望对你有一定的参考价值。
项目目标
项目需求说明
系统界面
1)添加客户界面
通过编号来区分客户
2)删除客户界面
对用户输入的编号进行核查,存在与否,合法与否
3)显示客户列表界面
4)修改客户信息的界面
项目设计
Customer结构体的设计
CRM系统结构框架图
案例代码
#include <stdio.h>
#include <string.h>
struct Customer {
int id;
int age;
char name[10];
char gender;
char phone[10];
char email[10];
};
char key ;
char loop;
int customerNum;
//客户结构体数组
struct Customer customers[20];
//得到一个客户的信息
void getInfo(struct Customer *customer) {
/*sprintf(info, "\\n%d\\t%s\\t%c\\t%d\\t%s\\t%s", (*customer).id, (*customer).name,
(*customer).gender, (*customer).age, (*customer).phone,(*customer).email);*/
printf("\\n%d\\t%s\\t%c\\t%d\\t%s\\t%s", (*customer).id, (*customer).name,
(*customer).gender, (*customer).age, (*customer).phone,(*customer).email);
}
//提供各种操作
//1. 添加
void add(){
//编号自动增长
customers[customerNum].id = customerNum + 1;
printf("\\n---------------------添加客户---------------------");
printf("\\n姓名:");
scanf("%s", customers[customerNum].name);
getchar();
printf("\\n性别:");
scanf("%c", &(customers[customerNum].gender));
getchar();
printf("\\n年龄:");
scanf("%d", &(customers[customerNum].age));
getchar();
printf("\\n电话:");
scanf("%s", customers[customerNum].phone);
getchar();
printf("\\n邮箱:");
scanf("%s",customers[customerNum].email);
getchar();
printf("\\n---------------------添加完成---------------------");
customerNum++;
}
//根据输入的id去找对应的下标,如果找不到返回-1
int findIndex(int id){
int index = -1;
int i;
for (i = 0; i < customerNum ; i++) {
if (customers[i].id == id) {
index = i;
break;
}
}
return index;
}
//2. 删除客户
int del(int id){
//找到id对应的元素下标
int index = findIndex(id);
int i;
if (index == -1) {
return 0;//说明这个客户不存在..
}else {
//找到,就从index+1开始整体前移
for (i = index + 1; i < customerNum; i++) {
customers[i - 1] = customers[i];
}
--customerNum;
return 1;
}
}
//显示部分
//1. 显示所有
void showList(){
int i = 0;
printf("\\n---------------------------客户列表---------------------------");
printf("\\n编号\\t姓名\\t性别\\t年龄\\t电话\\t邮箱");
for (i = 0; i < customerNum; i++) {
getInfo(&customers[i]);
}
}
//2. 完成删除 界面
//---------------------删除客户---------------------
//请选择待删除客户编号(-1退出):1
//确认是否删除(Y/N):y
//---------------------删除完成---------------------
void delView(){
int id;
char choice = ' ';
printf("\\n---------------------删除客户---------------------");
printf("\\n请选择待删除客户编号(-1退出):");
scanf("%d", &id);
getchar();
if (id == -1) {
printf("\\n---------------------删除没有完成---------------------");
return;
}
printf("确认是否删除(Y/N):");
scanf("%c", &choice);
getchar();
if (choice == 'Y') {
if(del(id)){
printf("\\n---------------------删除完成---------------------");
}else{
printf("\\n---------------------删除没有完成,无此id---------------------");
}
}
}
//3. 主菜单
void mainMenu() {
do {
printf("\\n-----------------客户信息管理软件-----------------");
printf("\\n 1 添 加 客 户");
printf("\\n 2 修 改 客 户");
printf("\\n 3 删 除 客 户");
printf("\\n 4 客 户 列 表");
printf("\\n 5 退 出");
printf("\\n请选择(1-5):");
scanf("%c", &key);
getchar();
switch (key) {
case '1':
add();
break;
case '2':
break;
case '3':
delView();
break;
case '4':
showList();
break;
case '5':
loop = 0;
break;
default:
printf("\\n输入错误,请重新输入");
break;
}
} while (loop);
printf("\\n你已经成功的退出了系统....");
getchar();
}
void main() {
为了测试方便
customers[0].id = 1;
customers[0].age = 10;
strcpy(customers[0].email , "xx@sohu.com");
customers[0].gender = 'f';
strcpy(customers[0].name , "zs");
strcpy(customers[0].phone , "110");
mainMenu();
return ;
}
自己完成的代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//项目-CRM系统(客户信息管理系统)-DQ版本1
const int size=100;//结构体数组大小
//客户结构体
struct Customer{
int id;//编号
char name[10];//姓名
char sex[2];//性别
int age;//年龄
char phone[20];//电话
char email[30];//邮箱
}cs[size];
//全局变量
//记住:结构体数组的下标从0开始,而客户编号从1开始
int loop=1;//判断菜单是否循环
char num='0';//用户选择的功能数字
int d=0;//用户选择要删除的客户编号
char c='c';//用户选择确认是否要删除的操作
int count=0;//现在存有的客户数量
char m='c';//用户选择是否要退出系统的操作
//添加客户
void add()
{
printf("-----------添加客户-----------\\n");
//使用结构体数组去存储信息cs[count]
printf("姓名:");
scanf("%s",cs[count].name);
getchar();
printf("性别:");
scanf("%s",cs[count].sex);
getchar();
printf("年龄:");
scanf("%d",&cs[count].age);
getchar();
printf("电话:");
scanf("%s",cs[count].phone);
getchar();
printf("邮箱:");
scanf("%s",cs[count].email);
getchar();
cs[count].id=count+1;//客户编号从1开始
count++;
printf("-----------添加完成-----------\\n");
}
//返回对应编号所对应的数组下标
int findindex(int id)
{
int i;
for(i=0;i<count;i++)
{
if(id==cs[i].id)
{
return i;//已找到id,对应的下标为i
}
}
return -1;//没有找到id
}
//显示要修改的客户界面
void showUpdate(int index)
{
printf("姓名(%s):",cs[index].name);
scanf("%s",cs[index].name);
getchar();
printf("性别(%s):",cs[index].sex);
scanf("%s",cs[index].sex);
getchar();
printf("年龄(%d):",cs[index].age);
scanf("%d",&cs[index].age);
getchar();
printf("电话(%s):",cs[index].phone);
scanf("%s",cs[index].phone);
getchar();
printf("邮箱(%s):",cs[index].email);
scanf("%s",cs[index].email);
getchar();
}
//修改客户
void update()
{
int id=0;
printf("-----------修改客户-----------\\n");
printf("请输入要修改的客户的编号:");
scanf("%d",&id);
getchar();
int index=findindex(id);
if(index!=-1)//找到下标
{
showUpdate(index);
printf("-----------修改完成-----------\\n");
}else
{
printf("没有此编号的客户!\\n");
}
}
//在删除之后重新排列结构体数组
void rearr(int d)
{
int i;
if(d<count)
{
for(i=d;i<count;i++)
{
cs[i]=cs[i+1];//如:把cs[1]的内容复制给cs[0]
//修改编号
cs[i].id-=1;//移动过来的数组的编号-1
}
}
count--;//客户数量-1
}
//删除客户
void del(struct Customer*cs)
{
printf("-----------删除客户-----------\\n");
printf("请选择要删除的客户编号:");
scanf("%d",&d);
getchar();//enter
if(d>count)
{
printf("该编号的客户不存在!\\n");
}else
{
printf("确认是否删除(y/n):");
scanf("%c",&c);
if(c=='y')
{
rearr(d-1);//重新排列结构体
}else if(c=='n')
{
printf("取消删除!\\n");
}else
{
printf("输入内容错误!\\n");
}
getchar();
}
printf("-----------删除完成-----------\\n");
}
//客户列表
void show(struct Customer*cs)
{
printf("-----------客户列表-----------\\n");
printf("编号\\t姓名\\t性别\\t年龄\\t电话\\t邮箱\\n");
int i;
for(i=0;i<count;i++)
{
printf("%d\\t%s\\t%s\\t%d\\t%s\\t%s\\n",(*cs).id,(*cs).name,(*cs).sex,(*cs).age,(*cs).phone,(*cs).email);
cs++;
}
printf("----------客户列表完成--------\\n");
}
//显示查找的客户信息
void showSeek(int index)
{
printf("编号\\t姓名\\t性别\\t年龄\\t电话\\t邮箱\\n");
printf("%d\\t%s\\t%s\\t%d\\t%s\\t%s\\n",cs[index].id,cs[index].name,cs[index].sex,cs[index].age,cs[index].phone,cs[index].email);
}
//查找客户
void seek()
{
int id=0;
printf("-----------查找客户-----------\\n");
printf("请输入要查找的客户的编号:");
scanf("%d",&id);
getchar();
int index=findindex(id);
if(index!=-1)//找到下标
{
showSeek(index);
printf("-----------查找完成-----------\\n");
}else
{
printf("没有此编号的客户!\\n");
}
}
//退出
void esc关于python开发CRM系统