?? 學生信息.c
字號:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define Maxsize 40
typedef struct
{
char stuno[10];
char name[10];
char sex[8];
int age;
int score;
} elemType;
struct List
{
elemType *elem;
int length;
int listsize;
};
void initlist(struct List *L,int maxsize)
{
if(maxsize<=0)
{
printf("Maxsize非法!\n");
exit (1);
}
else
{
L->listsize=maxsize;
L->length=0;
L->elem=malloc(maxsize*sizeof(elemType));
}
if(!L->elem)
{
printf("內存分配失敗!\n");
exit (1);
}
else
{
printf("內存分配成功!\n");
}
printf("\n");
}
void initiallist(struct List *L,elemType elem)
{
void straverselist(struct List *L);
strcpy(L->elem[L->length].stuno,elem.stuno);
strcpy(L->elem[L->length].name,elem.name);
strcpy(L->elem[L->length].sex,elem.sex);
L->elem[L->length].age=elem.age;
L->elem[L->length].score=elem.score;
L->length++;
if(L->length!=0)
printf("初始化成功!\n");
straverselist(L);
}
void setnull(struct List *L)
{
L->length=0;
if(L->length==0)
{
printf("表已被成功置空!\n");
printf("\n");
}
else
{
printf("表置空失敗!\n");
printf("\n");
}
}
void insertlist(struct List *L,elemType elem)
{
if(L->length>=Maxsize)
{
printf("表已經滿了!\n");
printf("\n");
exit (1);
}
else
{
strcpy(L->elem[L->length].stuno,elem.stuno);
strcpy(L->elem[L->length].name,elem.name);
strcpy(L->elem[L->length].sex,elem.sex);
L->elem[L->length].age=elem.age;
L->elem[L->length].score=elem.score;
L->length++;
printf("學號:%-10s ",L->elem[L->length-1].stuno);
printf("姓名:%-5s ",L->elem[L->length-1].name);
printf("性別:%-2s ",L->elem[L->length-1].sex);
printf("年齡:%-2d ",L->elem[L->length-1].age);
printf("成績:%-2d ",L->elem[L->length-1].score);
printf("\n該生的資料被成功插入!\n");
}
printf("\n");
}
void findlist(struct List *L,char stn[10])
{
int i;
for(i=0;i<L->length;i++)
{
if(strcmp(L->elem[i].stuno,stn)==0)
{
printf("您要查找的學號%s學生資料是:\n",stn);
printf("學號:%-10s ",L->elem[i].stuno);
printf("姓名:%-5s ",L->elem[i].name);
printf("性別:%-2s ",L->elem[i].sex);
printf("年齡:%-2d ",L->elem[i].age);
printf("成績:%-2d ",L->elem[i].score);
printf(" \n");
}
printf(" \n");
}
if(i>L->length)
{
printf("沒有該生的資料!\n");
printf("\n");
exit (0);
}
}
void clearlist(struct List *L,char stn[10])
{
int i,j;
for(i=0;i<L->length;i++)
{
if(strcmp(L->elem[i].stuno,stn)==0)
{
break;
}
}
if(i==L->length)
{
printf("您要刪除的學生不存在!\n");
printf("\n");
exit (0);
}
else
{
printf("學號:%-10s ",L->elem[i].stuno);
printf("姓名:%-5s ",L->elem[i].name);
printf("性別:%-2s ",L->elem[i].sex);
printf("年齡:%-2d ",L->elem[i].age);
printf("成績:%-2d ",L->elem[i].score);
printf("\n該生的資料被成功刪除!\n");
printf("\n");
}
for(j=i+1;j<L->length;j++)
{
strcpy(L->elem[j-1].stuno,L->elem[j].stuno);
strcpy(L->elem[j-1].name,L->elem[j].name);
strcpy(L->elem[j-1].sex,L->elem[j].sex);
L->elem[j-1].age=L->elem[j].age;
L->elem[j-1].score=L->elem[j].score;
}
L->length--;
}
void straverselist(struct List *L)
{
int i;
if(L->length<=0)
{
printf("表是空的!\n");
printf("\n");
}
else
{
printf("遍歷結果是:\n");
for(i=0;i<L->length;i++)
{
printf("學號:%-10s ",L->elem[i].stuno);
printf("姓名:%-5s ",L->elem[i].name);
printf("性別:%-2s ",L->elem[i].sex);
printf("年齡:%-2d ",L->elem[i].age);
printf("成績:%-2d ",L->elem[i].score);
printf(" \n");
}
printf("\n");
}
}
void main()
{
elemType a1={"072121531","張遠浩","男",20,90};
elemType a2={"072121532","聶麗燕","女",20,90};
elemType a3={"072121533","李紹輝","男",20,80};
struct List L;
char stn[10]={"072121532"};
char c;
initlist(&L,10);
initiallist(&L,a1);
straverselist(&L);
insertlist(&L,a2);
findlist(&L,stn);
straverselist(&L);
clearlist(&L,stn);
straverselist(&L);
setnull(&L);
straverselist(&L);
insertlist(&L,a3);
straverselist(&L);
printf("鍵入任意鍵退出!\n");
c=getch();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -