c语言课设(图书、学生、车辆管理系统)

最近感觉大家好多在忙c语言课设,我来贡献一下

有用的话谢谢大家的点赞收藏喔

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int bs = 0;			//ÊéµÄ×ÜÊý 
struct Book
{
	int ISBN;			//ISBN񅧏 
	char name[100];		//Êé¼®Ãû³Æ 
	char author[100];	//×÷Õß 
	char pub[100];		//³ö°æÉç 
	float price;		//¼Û¸ñ 
	int stock;			//¿â´æ 
	bool out;           //ÊÇ·ñ½è³ö 	 1Ôڹݡ£0½è³ö 
	struct Book * next;
};

void Init(Book *& books)							//³õʼ»¯Á´±í 
{
	books = (Book *)malloc(sizeof(Book));
	books -> next = NULL;
	Book * s,* r = books;
	FILE *flie;
	flie=fopen("prebook.txt","r");
	while (!feof(flie))
	{
		s = (Book *)malloc(sizeof(Book));
		fscanf(flie,"%d\n",&s -> ISBN);
		fscanf(flie,"%s\n",s -> name);
		fscanf(flie,"%s\n",s -> author);
		fscanf(flie,"%s\n", s -> pub);
		fscanf(flie,"%f\n",&s -> price); 
		fscanf(flie,"%d\n",&s -> stock);
		fscanf(flie,"%d\n",&s -> out);
		r -> next = s;
		r = s;
		r -> next = NULL;
		bs++;
	} 
	flie=fopen("prelendingbook.txt","r");
	while (!feof(flie))
	{
		s = (Book *)malloc(sizeof(Book));
		fscanf(flie,"%d\n",&s -> ISBN);
		fscanf(flie,"%s\n",s -> name);
		fscanf(flie,"%s\n",s -> author);
		fscanf(flie,"%s\n", s -> pub);
		fscanf(flie,"%f\n",&s -> price); 
		fscanf(flie,"%d\n",&s -> stock);
		fscanf(flie,"%d\n",&s -> out);
		r -> next = s;
		r = s;
		r -> next = NULL;
		bs++;
	} 
}

void add(Book * &books)							// Ôö¼ÓͼÊé 
{
	Book * s,* r = books;
	while (true)
	{
		s = (Book *)malloc(sizeof(Book));
		printf("		ÇëÊäÈëÄãÐèҪ¼ÈëµÄͼÊéÐÅÏ¢£º\n");
		printf("		ISBN񅧏:");
		scanf("%d",&s -> ISBN);
		printf("		Êé¼®Ãû³Æ£º"); 
		scanf("%s",s -> name);
		printf("		×÷Õߣº");
		scanf("%s",s -> author);
		printf("		³ö°æÉ磺");
		scanf("%s", s -> pub);
		printf("		ÊÛ¼Û£º");
		scanf("%f",&s -> price); 
		printf("		Êé¼®ÊýÁ¿£º");
		scanf("%d",&s -> stock);
		s -> out = 0 ;
		r -> next = s;
		r = s;
		r -> next = NULL;
		bs++;
		
		printf("		Ìí¼Ó³É¹¦¡£ÊÇ·ñ»¹Òª´æÈëͼÊ飺£¨Y/N£©");
		char ch;
		scanf("%s",&ch);
		if (ch == 'Y' || ch == 'y')
		{
			continue;
		}
		else
		{	
			break;
		}
	} 
}

void LookAll(Book * & books)				//ä¯ÀÀËùÓеÄͼÊé 
{
	Book * p = books -> next;
	if (p == NULL) 
	{
		printf("		ͼÊé¹ÝÉÐδÊÕ¼Ê飡\n");
		return;
	}
	while (p != NULL)
	{ 
		printf("		ISBN±àºÅ£º%d\n",p -> ISBN);
		printf("		Êé¼®Ãû³Æ£º%s\n",p -> name);
		printf("		×÷Õߣº%s\n",p -> author);
		printf("		³ö°æÉ磺%s\n",p -> pub);
		printf("		ÊÛ¼Û£º%.2f\n",p -> price);
		printf("		Êé¼®ÊýÁ¿£º%d\n",p -> stock);
		if(p->out==0)printf("		¸ÃÊé¼®Òѽè³ö¡£");
		else  printf("		¸ÃÊé¼®Ôڹݡ£");
		p = p -> next;
	}
}

void find(Book *& books)					//²éÕÒͼÊé 
{
	Book * p = books -> next;
	bool flag = true;
	char fd[20];
	printf("		Êé¼®Ãû³Æ£º"); 
	scanf("%s",fd); 
	while (p != NULL)
	{
		if (strcmp(fd,p -> name) == 0)
		{
			flag = false;
			printf("		ISBN±àºÅ£º%d\n",p -> ISBN);
			printf("		Êé¼®Ãû³Æ£º%s\n",p -> name);
			printf("		×÷Õߣº%s\n",p -> author);
			printf("		³ö°æÉ磺%s\n",p -> pub);
			printf("		ÊÛ¼Û£º%.2f\n",p -> price);
			printf("		Êé¼®ÊýÁ¿£º%d\n",p -> stock);
		}
		p = p -> next;
	}
	if (flag) 
		printf("		ͼÊé¹ÝÔÝδÊÕ¼´ËÊé\n");
}
void Delect(Book *& books)						//ɾ³ýͼÊé 
{
	Book * p =  books -> next,*r;
	char del[20];
	bool flag = true;
	printf("		ÇëÊäÈëÄãÐèҪɾ³ýµÄͼÊéÃû³Æ£º");
	scanf("%s",del);
	
	while(p != NULL)
	{
		if (strcmp(del,p -> name) == 0)
		{
			bs --;
			flag = false;
			break;
		}
		else
		p = p -> next;
	}
	if (!flag) 
	{
		
		r = books;
		for (;r -> next != p;)
		{
			r = r -> next;
		}
		r -> next = p -> next;
		printf("		ͼÊéɾ³ý³É¹¦£¡\n");
		FILE * fp;
		fp = fopen("deletebooksdata.txt","w+");
		fprintf(fp,"	Êé¼®Ãû³Æ£º%s",del);
		fclose(fp);     
	}
	if(flag) printf("		ɾ³ý³ö´í£¡Í¼Êé¹ÝÖÐûÓиòØÊ飡\n");
}

void Updata(Book * &books)							//¸üÐÂͼÊéÐÅÏ¢ 
{
	int flag = true;
	Book * p = books -> next;
	printf("		ÇëÊäÈëÄãÐèÒª½è³ö/¹é»¹µÄͼÊéÐÅÏ¢£º");
	
	char gx[20];
	scanf("%s",gx);
	while (p != NULL)
	{
		if (strcmp(gx,p -> name) == 0)
		{
			printf("		½è³öÇé¿ö¸üÐÂΪ(0/1)£º"); 
			scanf("%d",&p -> out);
			flag = false;
			printf("		Ð޸ijɹ¦£¡");
			return;
		}
		else
		p = p -> next;
	}
	if(!flag) printf("		ͼÊéÐÅÏ¢¸üгö´í£¡\nͼÊé¹ÝÔÝÎÞ´ËÊ飬ÇëÑ¡ÔñÌí¼ÓͼÊ鹦ÄÜ\n");
}
void save(Book * &books)
{
	Book * p = books -> next;
	FILE * fp;
	fp = fopen("booksdata.txt","w+");
	while (p != NULL)
	{
		fprintf(fp,"ISBN±àºÅ£º%d",p -> ISBN);
		fprintf(fp,"	Êé¼®Ãû³Æ£º%s",p -> name);
		fprintf(fp,"	×÷Õߣº%s",p -> author);
		fprintf(fp,"	³ö°æÉ磺%s",p -> pub);
		fprintf(fp,"	ÊÛ¼Û£º%.2f",p -> price);
		fprintf(fp,"	Êé¼®ÊýÁ¿£º%d\n",p -> stock);
		p = p -> next;
	}
	fclose(fp);  
	p = books -> next;
	FILE * fpp;
	fpp = fopen("lendingbooks.txt","w+");
	while (p != NULL)
	{
		if(p->out==1)
		{
			fprintf(fp,"ISBN±àºÅ£º%d",p -> ISBN);
			fprintf(fp,"	Êé¼®Ãû³Æ£º%s",p -> name);
			fprintf(fp,"	×÷Õߣº%s",p -> author);
			fprintf(fp,"	³ö°æÉ磺%s",p -> pub);
			fprintf(fp,"	ÊÛ¼Û£º%.2f",p -> price);
			fprintf(fp,"	Êé¼®ÊýÁ¿£º%d\n",p -> stock);
			p = p -> next;
		}
	}
	fclose(fp);                                                         
}


int main()
{
	system("color 3E"); 
	Book * books;
	Init(books);
	int m;
	while(true)
	{
		Sleep(1500);
		system("cls"); 
		printf("\n");
		printf("		©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©´\n"); //¨D¨D
		printf("		©¦		»¶Ó­À´µ½Í¼Êé¹ÜÀíϵͳ		©¦			©¦\n");
		printf("		©¦	d=====(£þ¨Œ£þ*)b	<(£þ¦á£þ)¨J[GO!]©¦   ¹Ý²ØͼÊéÊýÁ¿£º%d	©¦\n",bs);
		printf("		©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È\n");
		printf("		©¦			£¨1£©Í¼ÊéÐÅϢ¼Èë				©¦\n"); //©à
		printf("		©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È\n");
		printf("		©¦			£¨2£©Í¼ÊéÐÅϢɾ³ý				©¦\n");
		printf("		©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È\n");
		printf("		©¦			£¨3£©Í¼ÊéÐÅÏ¢ä¯ÀÀ				©¦\n");
		printf("		©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È\n");
		printf("		©¦			£¨4£©Í¼ÊéÐÅÏ¢²éѯ				©¦\n");
		printf("		©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È\n");
		printf("		©¦			£¨5£©Í¼Êé¹é»¹½è³ö				©¦\n");
		printf("		©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È\n");
		printf("		©¦			£¨6£©Í˳öͼÊé¹ÜÀíϵͳ				©¦\n");
		printf("		©¸©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©½\n");
		printf("				ÇëÑ¡Ôñ¹¦ÄÜ£º");
		scanf("%d",&m);
		if (m == 1) add(books);
		else if (m == 2) Delect(books);
		else if (m == 3) LookAll(books);
		else if (m == 4) find(books);
		else if (m == 5) Updata(books);
		else break;
		save(books);
	}
	return 0;
}
# include <stdio.h>
# include <windows.h>
# include <malloc.h>
# include <string.h>
# include <stdlib.h>
# define  OK      1
# define  ERROR   0
typedef struct
{
	char num[12];          //员工编号
    char name[12];         //姓名
    char phone[12];        //电话
}StaffInform;  //类型
    //员工信息结构体完成
typedef struct  node
{
    StaffInform  data;      //数据域
    struct node *next;   
}Staff_List;
    //员工信息表结构体
typedef struct
{
    char brand[11];        //品牌
    char age[6];           //车龄
    char color[11];        //颜色
    char number[11];       //车牌号
    char place[11];        //归属地
}CarInform;
     //车辆基本信息结构体完成
typedef struct spot
{
    CarInform  data;      //数据域
    struct spot *next;    
}Car_List;
     //车辆信息表结构体
typedef struct
{
	char bianhao[11];   //编号
	char num[11];       //员工编号
	char number[11];    //车牌号
	//char totime[11];  //出发时间
	//char gettime[11]; //返回时间
}UseIform;
     //车辆使用结构体完成
typedef struct spot1
{
    UseIform data;
    struct spot1 *next;
}Use_List;
     //车辆使用表结构体//
//******************************************************//
void huanhang()
{
	printf("\n|----------------------------------------------------------------------|\n\n");
}
/******员工信息表的建立*******/
Staff_List * create_staff()
{
	Staff_List *p;
	p=(Staff_List *)malloc(sizeof(Staff_List));
	p->next=NULL;
	return p;
}
/******车辆信息表的建立*******/
Car_List * create_car()
{
	Car_List *p;
	p=(Car_List *)malloc(sizeof(Car_List));
	p->next=NULL;
	return p;
}
/******使用登记信息表的建立*******/
Use_List * create_use()
{
	Use_List *p;
	p=(Use_List *)malloc(sizeof(Use_List));
	p->next=NULL;
	return p;
}
/******读取员工信息表*******/
void read_staff(Staff_List *&head)
{
	FILE *flie;
	Staff_List *newnode,*r,*rre;
	r=head;
	if((flie=fopen("staff.txt","r"))==NULL)
	{
		flie=fopen("staff.txt","a");
	}
	while(!feof(flie))
	{
		newnode=(Staff_List *)malloc(sizeof(Staff_List));
		fscanf(flie,"%s\n",newnode->data.num);
		fscanf(flie,"%s\n",newnode->data.name);
		fscanf(flie,"%s\n",newnode->data.phone);
		printf("%s",newnode->data.name);
		newnode->next=r->next;
		r->next=newnode;
		rre=r;
		r=r->next;
	}
	rre->next=NULL;
	fclose(flie);
}
/******读取车辆信息表*******/
void read_car(Car_List *&head)
{
	FILE *flie;
	Car_List *newnode,*r,*rre;
	r=head;
	if((flie=fopen("car.txt","r"))==NULL)
	{
		flie=fopen("car.txt","a+");
	}
	while(!feof(flie))
	{
		newnode=(Car_List *)malloc(sizeof(Car_List));
		fscanf(flie,"%s\n",newnode->data.number);
		fscanf(flie,"%s\n",newnode->data.color);
		fscanf(flie,"%s\n",newnode->data.age);
		fscanf(flie,"%s\n",newnode->data.brand);
		fscanf(flie,"%s\n",newnode->data.place);
		newnode->next=r->next;
		r->next=newnode;
		rre=r;
		r=r->next;
	}
	rre->next=NULL;
	fclose(flie);
}
/******读取使用登记信息表*******/
void read_use(Use_List *&head)
{
	FILE *flie;
	Use_List *newnode,*r,*rre;
	r=head;
	if((flie=fopen("use.txt","r"))==NULL)
	{
		flie=fopen("use.txt","a+");
	}
	while(!feof(flie))
	{
		newnode=(Use_List *)malloc(sizeof(Use_List));
		fscanf(flie,"%s\n",newnode->data.bianhao);
		fscanf(flie,"%s\n",newnode->data.number);
		fscanf(flie,"%s\n",newnode->data.num);
		newnode->next=r->next;
		r->next=newnode;
		rre=r;
		r=r->next;
	}
	rre->next=NULL;
	fclose(flie);
}
/******写入员工信息表*******/
void write_staff(Staff_List *&head)
{
	FILE *file;
	Staff_List *p;
	p=head->next;
	if((file=fopen("staff.txt","w"))==NULL)
	{
		printf("文件不存在!\n");
		exit(0);	
	}
	while(p!=NULL)
	{
		fprintf(file,"%s\n",p->data.num);
		fprintf(file,"%s\n",p->data.name);
		fprintf(file,"%s\n",p->data.phone);
		p=p->next;
	}
	fclose(file);
}
/******写入车辆信息表*******/
void write_car(Car_List *&head)
{
	FILE *file;
	Car_List *p;
	p=head->next;
	
	if((file=fopen("car.txt","w"))==NULL)
	{
		printf("文件不存在!\n");
		exit(0);	
	}
	while(p!=NULL)
	{
		fprintf(file,"%s\n",p->data.number);
		fprintf(file,"%s\n",p->data.color);
		fprintf(file,"%s\n",p->data.age);
		fprintf(file,"%s\n",p->data.brand);
		fprintf(file,"%s\n",p->data.place);
		p=p->next;
	}
	fclose(file);
}
/******写入使用登记信息表*******/
void write_use(Use_List *&head)
{
	Use_List *p;
	p=head->next;
	FILE *file;
	if((file=fopen("use.txt","w"))==NULL)
	{
		printf("文件不存在!\n");
		exit(0);	
	}
	while(p!=NULL)
	{
		fprintf(file,"%s\n",p->data.bianhao);
		fprintf(file,"%s\n",p->data.number);
		fprintf(file,"%s\n",p->data.num);
		p=p->next;
	}
	fclose(file);
}
/*****************************************/
/**********员工信息表的操作***************/
/*****************************************/



/******输入员工信息*******/
void print_staff(Staff_List *&head)
{
	int choose;
	Staff_List *newnode;
	while(1)
	{
		newnode=(Staff_List *)malloc(sizeof(Staff_List));
		printf("请输入员工编号:");
		fflush(stdin);
		scanf("%s",newnode->data.num);
		printf("请输入姓名:");
		fflush(stdin);
		scanf("%s",newnode->data.name);
		printf("请输入联系方式:");
		fflush(stdin);
		scanf("%s",newnode->data.phone);
		newnode->next=head->next;
		head->next=newnode;
		printf("输入成功!\n");
		printf("请输入“1”以继续输入,否则将结束输入:");
		fflush(stdin);
		scanf("%d",&choose);
		if(choose!=1)
		{
			return;
		}
	}
}
/******修改员工信息*******/
void xiugai_staff(Staff_List *&head)
{
	int flag=0;
	char num[11];
	Staff_List *p;
	p=head->next;
	printf("请输入员工编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.num,num))
		{
			flag=1;
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("请输入员工编号:");
	fflush(stdin);
	scanf("%s",p->data.num);
	printf("请输入姓名:");
	fflush(stdin);
	scanf("%s",p->data.name);
	printf("请输入联系方式:");
	fflush(stdin);
	scanf("%s",p->data.phone);
	printf("修改成功!\n");
}
/******打印员工信息*******/
void prt_staff(Staff_List *&head)
{
	Staff_List *p;
	p=head->next;
	while(p!=NULL)
	{
		printf("员工编号:%5s\t姓名:%7s\t联系方式:%s\n",p->data.num,p->data.name,p->data.phone);
		p=p->next;
	}
}
/******插入员工信息*******/
void insert_staff(Staff_List *&head)
{
	int flag=0,choose;
	char num[11];
	Staff_List *p,*pre;
	p=head;
	printf("请输入员工编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.num,num))
		{
			flag=1;
			break;
		}
		pre=p;
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("员工编号:%5s\t姓名:%7s\t联系方式:%s\n",p->data.num,p->data.name,p->data.phone);
	printf("请输入“1”来确认删除,否则将结束:");
	fflush(stdin);
	scanf("%d",&choose);
	if(choose==1)
	{
		pre->next=p->next;
		p->next=NULL;
		free(p);
	}
	printf("删除成功\n");
}
/******删除员工信息*******/
void locate_staff(Staff_List *&head)
{
	int flag=0;
	char num[11];
	Staff_List *p;
	p=head->next;
	printf("请输入员工编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.num,num))
		{
			flag=1;
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("员工编号:%5s\t姓名:%7s\t联系方式:%s\n",p->data.num,p->data.name,p->data.phone);
}
/******员工信息表菜单*******/
void menu_staff(Staff_List *&head)
{
	int choose;
	while(1)
	{
		Sleep(3000);
		system("cls");
		huanhang();
		printf("欢迎使用本程序!\n");
		printf("1.输入信息\n");
		printf("2.修改信息\n");
		printf("3.打印信息\n");
		printf("4.删除信息\n");
		printf("5.查找信息\n");
		printf("6.返回\n");
		printf("请输入你的选择:");
		fflush(stdin);
		scanf("%d",&choose);
		huanhang();
		switch(choose)
		{
		case 1:huanhang();print_staff(head);huanhang();break;
		case 2:huanhang();xiugai_staff(head);huanhang();break;
		case 3:huanhang();prt_staff(head);huanhang();break;
		case 4:huanhang();insert_staff(head);huanhang();break;
		case 5:huanhang();locate_staff(head);huanhang();break;
		case 6:return;
		default:printf("error!");
		}
	}
}
/*****************************************/
/***********车辆信息表********************/
/*****************************************/

/******录入车辆信息*******/
void print_car(Car_List *&head)
{
	int choose;
	Car_List *newnode;
	while(1)
	{
		newnode=(Car_List *)malloc(sizeof(Car_List));
		printf("请输入车牌号:");
		fflush(stdin);
		scanf("%s",newnode->data.number);
		printf("请输入车辆颜色:");
		fflush(stdin);
		scanf("%s",newnode->data.color);
		printf("请输入车龄:");
		fflush(stdin);
		scanf("%s",newnode->data.age);
		printf("请输入品牌:");
		fflush(stdin);
		scanf("%s",newnode->data.brand);
		printf("请输入归属地:");
		fflush(stdin);
		scanf("%s",newnode->data.place);
		newnode->next=head->next;
		head->next=newnode;
		printf("输入成功!\n");
		printf("请输入“1”以继续输入,否则将结束输入:");
		fflush(stdin);
		scanf("%d",&choose);
		if(choose!=1)
		{
			return;
		}
	}
}
/******修改车辆信息*******/
void xiugai_car(Car_List *&head)
{
	int flag=0;
	char num[11];
	Car_List *p;
	p=head->next;
	printf("请输入车牌号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.number,num))
		{
			flag=1;
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("请输入车牌号:");
	fflush(stdin);
	scanf("%s",p->data.number);
	printf("请输入车辆颜色:");
	fflush(stdin);
	scanf("%s",p->data.color);
	printf("请输入车龄:");
	fflush(stdin);
	scanf("%s",p->data.age);
	printf("请输入品牌:");
	fflush(stdin);
	scanf("%s",p->data.brand);
	printf("请输入归属地:");
	fflush(stdin);
	scanf("%s",p->data.place);
	printf("修改成功!\n");
}
/******打印车辆信息*******/
void prt_car(Car_List *&head)
{
	Car_List *p;
	p=head->next;
	while(p!=NULL)
	{
		printf("车牌号:%s\t颜色:%s\t车龄:%s\t品牌:%s\t:归属地%s\n",p->data.number,p->data.color,p->data.age,p->data.brand,p->data.place);
		p=p->next;
	}
}
/******插入车辆信息*******/
void insert_car(Car_List *&head)
{
	int flag=0,choose;
	char num[11];
	Car_List *p,*pre;
	p=head;
	printf("请输入车牌号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.number,num))
		{
			flag=1;
			break;
		}
		pre=p;
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("车牌号:%s\t颜色:%s\t车龄:%s\t品牌:%s\t:归属地%s\n",p->data.number,p->data.color,p->data.age,p->data.brand,p->data.place);
	printf("请输入“1”来确认删除,否则将结束:");
	fflush(stdin);
	scanf("%d",&choose);
	if(choose==1)
	{
		pre->next=p->next;
		p->next=NULL;
		free(p);
	}
	printf("删除成功\n");
}
/******删除车辆信息*******/
void locate_car(Car_List *&head)
{
	int flag=0;
	char num[11];
	Car_List *p;
	p=head->next;
	printf("请输入编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.number,num))
		{
			flag=1;
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("车牌号:%s\t颜色:%s\t车龄:%s\t品牌:%s\t:归属地%s\n",p->data.number,p->data.color,p->data.age,p->data.brand,p->data.place);
}
/******车辆信息表菜单*******/
void menu_car(Car_List *&head)
{
	int choose;
	while(1)
	{
		Sleep(3000);
		system("cls");
		huanhang();
		printf("欢迎使用本程序!\n");
		printf("1.输入信息\n");
		printf("2.修改信息\n");
		printf("3.打印信息\n");
		printf("4.删除信息\n");
		printf("5.查找信息\n");
		printf("6.返回\n");
		printf("请输入你的选择:");
		fflush(stdin);
		scanf("%d",&choose);
		huanhang();
		switch(choose)
		{
		case 1:huanhang();print_car(head);huanhang();break;
		case 2:huanhang();xiugai_car(head);huanhang();break;
		case 3:huanhang();prt_car(head);huanhang();break;
		case 4:huanhang();insert_car(head);huanhang();break;
		case 5:huanhang();locate_car(head);huanhang();break;
		case 6:return;
		default:printf("error!");
		}
	}
}
/*****************************************/
/************使用登记信息表*************/
/*****************************************/

/******录入使用信息*******/
void printf_use(Use_List *&head)
{
	int choose;
	Use_List *newnode;
	while(1)
	{
		newnode=(Use_List *)malloc(sizeof(Use_List));
		printf("请输入编号:");
		fflush(stdin);
		scanf("%s",newnode->data.bianhao);
		printf("请输入车牌号:");
		fflush(stdin);
		scanf("%s",newnode->data.number);
		printf("请输入员工编号:");
		fflush(stdin);
		scanf("%s",newnode->data.num);
		newnode->next=head->next;
		head->next=newnode;
		printf("输入成功!\n");
		printf("请输入“1”以继续输入,否则将结束输入:");
		fflush(stdin);
		scanf("%d",&choose);
		if(choose!=1)
		{
			return;
		}
	}
}
/******修改使用信息*******/
void xiugai_use(Use_List *&head)
{
	int flag=0;
	char num[11];
	Use_List *p;
	p=head->next;
	printf("请输入编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.bianhao,num))
		{
			flag=1;
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("请输入编号:");
	fflush(stdin);
	scanf("%s",p->data.bianhao);
	printf("请输入车牌号:");
	fflush(stdin);
	scanf("%s",p->data.number);
	printf("请输入员工编号:");
	fflush(stdin);
	scanf("%s",p->data.num);
	printf("修改成功!\n");
}
/******打印使用信息*******/
void prt_use(Staff_List *&head1,Car_List *&head2,Use_List *&head3)
{
	int flag=0,message=0;
	Staff_List *a;
	Car_List *b;
	Use_List *p;
	a=head1->next;
	b=head2->next;
	p=head3->next;
	while(p!=NULL)
	{
		a=head1->next;
		b=head2->next;
		flag=0;
		message=0;
		printf("编号:%s\t",p->data.bianhao);
		while(a!=NULL)
		{
			if(!strcmp(a->data.num,p->data.num))
			{
				flag=1;
				printf("员工编号:%5s\t姓名:%7s\t联系方式:%s\t",a->data.num,a->data.name,a->data.phone);
				break;
			}
			a=a->next;
		}
		while(b!=NULL)
		{
			if(!strcmp(b->data.number,p->data.number))
			{
				message=1;
				printf("车牌号:%s\t颜色:%s\t车龄:%s\t品牌:%s\t:归属地%s\t",b->data.number,b->data.color,b->data.age,b->data.brand,b->data.place);
				break;
			}
			b=b->next;
		}
		if(flag==0)
		{
			printf("员工编号:%s(尚无对应)\t",p->data.num);
		}
		if(message==0)
		{
			printf("车牌号:%s(尚无对应)\t",p->data.number);
		}
		printf("\n");
		p=p->next;
	}
}
/******插入使用信息*******/
void insert_use(Use_List *&head)
{
	int flag=0,choose;
	char num[11];
	Use_List *p,*pre;
	p=head;
	printf("请输入编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.bianhao,num))
		{
			flag=1;
			break;
		}
		pre=p;
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("编号:%s\t员工编号:%s\t车牌号:%s\n",p->data.bianhao,p->data.num,p->data.number);
	printf("请输入“1”来确认删除,否则将结束:");
	fflush(stdin);
	scanf("%d",&choose);
	if(choose==1)
	{
		pre->next=p->next;
		p->next=NULL;
		free(p);
	}
	printf("删除成功\n");
}
/******删除使用信息*******/
void locate_use(Use_List *&head)
{
	int flag=0;
	char num[11];
	Use_List *p;
	p=head->next;
	printf("请输入编号:");
	fflush(stdin);
	scanf("%s",num);
	while(p!=NULL)
	{
		if(!strcmp(p->data.number,num))
		{
			flag=1;
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("can not find!\n");
		return;
	}
	printf("it has been found:\n");
	printf("编号:%s\t员工编号:%s\t车牌号:%s\n",p->data.bianhao,p->data.num,p->data.number);
}
/******使用信息表菜单*******/
void menu_use(Staff_List *&head1,Car_List *&head2,Use_List *&head3)
{
	int choose;
	while(1)
	{
		Sleep(3000);
		system("cls");
		huanhang();
		printf("欢迎使用本程序!\n");
		printf("1.输入信息\n");
		printf("2.修改信息\n");
		printf("3.打印信息\n");
		printf("4.删除信息\n");
		printf("5.查找信息\n");
		printf("6.返回\n");
		printf("请输入你的选择:");
		fflush(stdin);
		scanf("%d",&choose);
		huanhang();
		switch(choose)
		{
		case 1:huanhang();printf_use(head3);huanhang();break;
		case 2:huanhang();xiugai_use(head3);huanhang();break;
		case 3:huanhang();prt_use(head1,head2,head3);huanhang();break;
		case 4:huanhang();insert_use(head3);huanhang();break;
		case 5:huanhang();locate_use(head3);huanhang();break;
		case 6:return;
		default:printf("error!");
		}
	}
}
/*********主菜单**********/
void menu(Staff_List *&head1,Car_List *&head2,Use_List *&head3)
{
	int choose;
	while(1)
	{
		//Sleep(3000);
		//system("cls");
		huanhang();
		printf("欢迎使用本程序!\n");
		printf("1.员工信息管理\n");
		printf("2.汽车信息管理\n");
		printf("3.登记信息管理\n");
		printf("4.退出程序\n");
		printf("请输入你的选择:");
		fflush(stdin);
		scanf("%d",&choose);
		huanhang();
		switch(choose)
		{
		case 1:huanhang();menu_staff(head1);huanhang();break;
		case 2:huanhang();menu_car(head2);huanhang();break;
		case 3:huanhang();menu_use(head1,head2,head3);huanhang();break;
		case 4:return;
		default:printf("error!");
		}
	}
}

/*********主函数**********/
int main()
{
	Staff_List *my_staff;
	Car_List *my_car;
	Use_List *my_use;
	my_staff=create_staff();
//	my_car=create_car();
//	my_use=create_use();
	read_staff(my_staff);
//	read_car(my_car);
//	read_use(my_use);
	menu(my_staff,my_car,my_use);
	write_staff(my_staff);
//	write_car(my_car);
//	write_use(my_use);
	return 0;
}

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define maxn 1000
typedef struct student {
	char name[20];//姓名
	char id[10];//学号
	char sex[10];//性别
	int class_num;//班级
	double chinese;//分数
	double math;//分数
	double english;//分数
	double score;//平均分数
	double all;
	int pos;
} Stu;
Stu s[maxn];
int n=0;
int Menu();//菜单
void Add();//添加
void Dele();//删除
void Display();//打印
void Search();// 查找学生信息
void Sort();//排序
void Change();//修改学生信息
void Count();//统计人数
void Display1();
int main() {
	while(1) {
		int ch=Menu();//打印菜单,返回选择的数字
		switch(ch) {
			case 1:
				Add();
				break;
			case 2:
				Dele();
				break;
			case 3:
				Search();
				break;
			case 4:
				Display();
				break;
			case 5:
				Change();
				break;
			case 6:
				Sort();
				Display1();
				break;
			default:
				break;
		}
		if(ch==10)break;
	}
}
int Menu() {
	printf("-------欢迎使用学生成绩管理系统--------\n");
	printf("-------1--录入学生成绩-----------------\n");
	printf("-------2--删除学生成绩-----------------\n");
	printf("-------3--查询学生成绩-----------------\n");
	printf("-------4--打印学生成绩-----------------\n");
	printf("-------5--修改学生成绩-----------------\n");
	printf("-------6--分数降序排序-----------------\n");
	printf("-------10---退出-----------------------\n");
	int select;
	scanf("%d",&select);//输入选择
	return select;
}
void Add() {
	printf("请分别输入所要添加学生的姓名,性别,学号,班级,语文分数,数学分数,英语分数\n") ;
	scanf("%s %s %s %d %lf %lf %lf",s[n].name,s[n].sex,s[n].id,&s[n].class_num,&s[n].chinese,&s[n].math,&s[n].english);
	s[n].score=(s[n].chinese+s[n].math+s[n].english)/3;
	s[n].all=s[n].chinese+s[n].math+s[n].english;
	n++;
	printf("添加成功\n");
	Sort();
}
void Dele() {
	if(n==0) {
		printf("请添加学生\n");
		return;
	}
	char name[20],id[20];
	int pos=-1;
	printf("请输入要删除学生的姓名与学号\n");
	scanf("%s%s",name,id);
	for(int i=0; i<n; i++) {
		if(strcmp(name,s[i].name)==0&&strcmp(id,s[i].id)==0) { //比较姓名 与学号
			pos=i;//记录位置
			break;
		}
	}
	if(pos==-1) {	//无此学生
		printf("你删除的学生不存在\n");
		return;
	} else {
		for(int i=pos+1; i<n; i++) {
			s[i-1]=s[i];
		}
		n--;
		printf("删除成功\n");
	}
	Sort();
}
void Display1() {
	if(n==0) {
		printf("请添加学生\n");
		return;
	}
	printf("姓名\t 学号\t 语文\t 数学\t 英语\t 平均分\t 总分\t\n");
	for(int i=0; i<n; i++) {
		printf("%s\t %s\t %g\t %g\t %g\t %g\t %g\t\n",s[i].name,s[i].id,s[i].chinese,s[i].math,s[i].english,s[i].score,s[i].all);
	}
}
void Display() {
	if(n==0) {
		printf("请添加学生\n");
		return;
	}
	printf("姓名\t 学号\t 语文\t 数学\t 英语\t 平均分\t 总分\t\n");
	for(int i=0; i<n; i++) {
		printf("%s\t %s\t %g\t %g\t %g\t %g\t %g\t\n",s[i].name,s[i].id,s[i].chinese,s[i].math,s[i].english,s[i].score,s[i].all);
	}

	double _max=0;
	int maxindex=-1;
	double book=0;
	int _num=0;
	for(int i=0; i<n; i++) {
		printf("%d\n",maxindex);
		book+=s[i].chinese;
		if(_max-s[i].chinese) {
			_max=s[i].chinese;
			maxindex=i;
		}
	}
	printf("语文成绩最高的是:%s\n",s[maxindex].name);
	printf("语文成绩均分为:%g\n",book/n);
	for(int i=0; i<n; i++) {
		if(s[i].chinese>=(book/n)) {
			_num++;
		}
	}
	printf("超过平均分人数:%d\n",_num);
	_max=0;
	maxindex=-1;
	book=0;
	_num=0;
	for(int i=0; i<n; i++) {
		book+=s[i].math;
		if(_max<s[i].math) {
			_max=s[i].math;
			maxindex=i;
		}
	}
	printf("数学成绩最高的是:%s\n",s[maxindex].name);
	printf("数学成绩均分为:%g\n",book/n);
	for(int i=0; i<n; i++) {
		if(s[i].math>=(book/n)) {
			_num++;
		}
	}
	printf("超过平均分人数:%d\n",_num);
	_max=0;
	maxindex=-1;
	book=0;
	_num=0;
	for(int i=0; i<n; i++) {
		book+=s[i].english;
		if(_max<s[i].english) {
			_max=s[i].english;
			maxindex=i;
		}
	}
	printf("英语成绩最高的是:%s\n",s[maxindex].name);
	printf("英语成绩均分为:%g\n",book/n);
	for(int i=0; i<n; i++) {
		if(s[i].english>=(book/n)) {
			_num++;
		}
	}
	printf("超过平均分人数:%d\n",_num);
}
void Search() {
	if(n==0) {
		printf("请添加学生\n");
		return;
	}
	char name[20],id[20];
	printf("请输入你所要查询的学生姓名与学号\n");
	scanf("%s%s",name,id);
	for(int i=0; i<n; i++) {
		if(strcmp(name,s[i].name)==0&&strcmp(id,s[i].id)==0) {
			printf("姓名:%s\t 性别%s\t 学号:%s\t 班级:%d \t 平均分数:%g\t 排名:%d\t\n",s[i].name,s[i].sex,s[i].id,s[i].class_num,s[i].score,s[i].pos);
			return;
		}
	}
	printf("你搜索的学生不存在\n");
}
void Sort() {
	if(n==0) {
		printf("请添加学生\n");
		return;
	}
	for(int i=0; i<n-1; i++) {
		int pos=i;
		for(int j=i+1; j<n; j++) {
			if(s[j].score>s[pos].score)
				pos=j;
		}
		Stu tmp;
		tmp=s[pos];
		s[pos]=s[i];
		s[i]=tmp;
	}
	for(int i=0; i<n; i++) {
		s[i].pos=i+1;
	}
}
void Change() {
	if(n==0) {
		printf("请添加学生\n");
		return;
	}
	char tmp[20],name[20],id[20];
	double d;
	int select;
	printf("请输入你所要修改信息的学生姓名与学号\n");
	scanf("%s%s",name,id);
	for(int i=0; i<n; i++) {
		if(strcmp(name,s[i].name)==0&&strcmp(id,s[i].id)==0) {
			printf("姓名:%s\t 性别:%s\t  学号:%s\t 班级:%d\t 平均分数:%g\t 排名:%d\t\n",s[i].name,s[i].sex,s[i].id,s[i].class_num,s[i].score,s[i].pos);
			printf("请输入你要修改的信息选择:1:姓名  2:性别 3:学号 4:班级 5:语文成绩 6:英语成绩 7:数学成绩\n");
			scanf("%d",&select);
			printf("请输入修改后的信息\n") ;
			if(select<=3) {
				scanf("%s",tmp);
				if(select==1)strcpy(s[i].name,tmp);
				else if(select==2)strcpy(s[i].sex,tmp);
				else strcpy(s[i].id,tmp);
			} else {
				scanf("%lf",&d);
				if(select==4) s[i].class_num=(int)d;
				else if(select==5)s[i].chinese=d;
				else if(select==6)s[i].english=d;
				else if(select==7)s[i].math=d;

				s[i].score=(s[i].chinese+s[i].math+s[i].english)/3;
				s[i].all=s[i].chinese+s[i].math+s[i].english;
			}
			printf("修改成功\n");
			Sort();
			return;
		}
	}
	printf("你搜索的学生不存在\n");
}

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值