您的位置:首页 > 编程语言 > C语言/C++

c语言课设(图书、学生、车辆管理系统)——从零编程,我的代码之路(7)

2019-07-04 21:03 447 查看

最近感觉大家好多在忙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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: