最近感觉大家好多在忙c语言课设,我来贡献一下
有用的话谢谢大家的点赞收藏喔
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int bs = 0;
struct Book
{
int ISBN;
char name[100];
char author[100];
char pub[100];
float price;
int stock;
bool out;
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");
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];
}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)
{
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();
read_staff(my_staff);
menu(my_staff,my_car,my_use);
write_staff(my_staff);
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");
}