⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chengxu.txt

📁 图书馆书目信息
💻 TXT
字号:

#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <string.h> 
#define MAX_NUM 45 

struct studenter { 
int ID; 
char Name[10]; 
int Age; 
char Sex[2]; 
int Birthday; 
char Adress[15]; 
char TelNum[12]; 
char Email[10]; 
}; 

typedef struct studenter STUDENT; 

void input(STUDENT stu[],int Max,int cn); 
int findStudentID(STUDENT stu[],int findID,int Max); 
void DisplayInfor(STUDENT stu[],int Max); 
void DispMainMenu(); 
void DispQueryMenu(); 
char choice(); 
int InforInput(STUDENT stu[],int cn); 
void QueryInfor(STUDENT stu[],int Max); 
void EditInfor(STUDENT stu[],int Max); 

void DispMainMenu() 
{ 
printf("**************学生信息管理系统1.0**************\n"); 
printf("\t1--学生信息录入 \t2--学生信息修改\n"); 
printf("\t3--学生信息查询 \t4--学生信息删除\n"); 
printf("\t5--学生信息排序 \t0--退出\n"); 
printf("************************************************\n"); 
printf("请选择(0--5):"); 
} 

void DispQueryMenu() 
{ 
printf("*****************请选择查询方式*****************\n"); 
printf("\t1--按学号查询; \t2--按姓名查询\n"); 
printf("************************************************\n"); 
printf("请选择(1--2):"); 
} 

char choice() 
{ 
char select; 
select=getche(); 
getch(); 
return (select); 
} 

void DisplayInfor(STUDENT stu[],int Max) 
{ 
int i; 
printf("\n 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail\n"); 
for(i=0;i<Max;i++) 
printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
printf("\n"); 
} 

void input(STUDENT stu[],int Max,int cn) 
{ 
int i; 
for(i=cn;i<Max+cn;i++) 
{ 
printf("\n请输入第%d个学生的学号 (8个字符以内):",i+1); 
scanf("%d",&stu[i].ID); 
printf("\n\t\t姓名(10个字符以内):"); 
scanf("%s",stu[i].Name); 
printf("\n\t\t\t 年龄:"); 
scanf("%d",&stu[i].Age); 
printf("\n\t\t\t性别(m或w):"); 
scanf("%s",&stu[i].Sex); 
printf("\n\t\t 出生年月(8位):"); 
scanf("%d",&stu[i].Birthday); 
printf("\n\t\t\t 地址:"); 
scanf("%s",&stu[i].Adress); 
printf("\n\t\t\t 电话:"); 
scanf("%s",&stu[i].TelNum); 
printf("\n\t\t\t E-mail:"); 
scanf("%s",&stu[i].Email); 

} 
printf("\n您的输入信息是:\n"); 
DisplayInfor(stu,Max+cn); 
} 

int findStudentID(STUDENT stu[],int findID,int Max) 
{ 
int i; 
for(i=0;i<Max;i++) 
{ 
if(stu[i].ID==findID) 
break; 
} 
if(i<Max) 
return i; 
else 
return -1; 
} 
int findStudentNAME(STUDENT stu[],char findNAME[10],int Max) 
{ 
int i; 
for(i=0;i<Max;i++) 
{ 
if(!strcmp(stu[i].Name,findNAME)) 
break; 
} 
if(i<Max) 
return i; 
else 
return -1; 
} 
int InforInput(STUDENT stu[],int cn) 
{ 
int number; 

printf("\n请输入本次录入的学生人数: "); 
scanf("%d",&number); 
if(number>MAX_NUM) 
{ 
printf("您输入的人数太多,大于%d人!\n",MAX_NUM); 
return (0); 
} 
input(stu,number,cn) ; 
return (number+cn); 
} 

void QueryInfor(STUDENT stu[],int Max) 
{ 
char select; 
int i; 
int findID; 
char findNAME[10]; 
DispQueryMenu(); 
select=choice(); 
switch (select) 
{ 
case '1': 
printf("\n按学号查询\n请输入学生的学号: "); 
scanf("%d",&findID); 
if ((i=findStudentID(stu,findID,Max))!=-1) 
{ 
printf("查找结果如下:\n"); 
printf(" 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail"); 
printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
} 
else 
printf("您输入的学号不存在!\n"); 
break; 
case '2': 
printf("\n按姓名查询\n请输入学生的姓名: "); 
scanf("%s",&findNAME); 
if ((i=findStudentNAME(stu,findNAME,Max))!=-1) 
{ 
printf("查找结果如下:\n"); 
printf(" 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail"); 
printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
} 
else 
printf("您输入的姓名不存在!\n"); 
break; 
default : 
printf("选择错误!\n"); 
} 
} 


void EditInfor(STUDENT stu[],int Max) 
{ 
int i; 
int findID; 
printf("\n请输入学生的学号: "); 
scanf("%d",&findID); 
if ((i=findStudentID(stu,findID,Max))!=-1) 
{ 
printf("姓 名: %s\n",stu[i].Name); 
printf("原信息:%8d %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
printf("\n 请输入新的学号 (8个字符以内):",i+1); 
scanf("%d",&stu[i].ID); 
printf("\n\t\t姓名(10个字符以内):"); 
scanf("%s",stu[i].Name); 
printf("\n\t\t\t 年龄:"); 
scanf("%d",&stu[i].Age); 
printf("\n\t\t\t性别(m或w):"); 
scanf("%s",&stu[i].Sex); 
printf("\n\t\t 出生年月(8位):"); 
scanf("%d",&stu[i].Birthday); 
printf("\n\t\t\t 地址:"); 
scanf("%s",&stu[i].Adress); 
printf("\n\t\t\t 电话:"); 
scanf("%s",&stu[i].TelNum); 
printf("\n\t\t\t E-mail:"); 
scanf("%s",&stu[i].Email); 
} 
else 
printf("您输入的学号不存在!\n"); 
} 
DEL(STUDENT stu[],int Max,int i) 
{ 
for(;i<Max;i++) 
{ 
stu[i-1].ID=stu[i].ID; 
strcpy(stu[i-1].Name,stu[i].Name); 
stu[i-1].Age=stu[i].Age; 
strcpy(stu[i-1].Sex,stu[i].Sex); 
stu[i-1].Birthday=stu[i].Birthday; 
strcpy(stu[i-1].Adress,stu[i].Adress); 
strcpy(stu[i-1].TelNum,stu[i].TelNum); 
strcpy(stu[i-1].Email,stu[i].Email); 
} 
return(--Max); 
} 
DelInfor(STUDENT stu[],int Max) 
{ 

int findID,i; 
char findNAME[10],select; 
printf("*****************请选择删除方式*****************\n"); 
printf("\t1--按学号删除; \t2--按姓名删除\n"); 
printf("************************************************\n"); 
printf("请选择(1--2):"); 
select=choice(); 
switch (select) 
{ 
case '1': 
printf("\n按学号删除\n请输入学生的学号: "); 
scanf("%d",&findID); 
if ((i=findStudentID(stu,findID,Max))!=-1) 
DEL(stu,Max,i); 
else 
printf("您输入的学号不存在!\n"); 
break; 
case '2': 
printf("\n按姓名删除\n请输入学生的姓名: "); 
scanf("%s",&findNAME); 
if ((i=findStudentNAME(stu,findNAME,Max))!=-1) 
DEL(stu,Max,i); 
else 
printf("您输入的姓名不存在!\n"); 
break; 
default : 
printf("选择错误!\n"); 

} 
} 

SortInforMenu(STUDENT stu[],int Max) 
{ 
char select; 
printf("*****************请选择排序方式*****************\n"); 
printf("\t1--按学号排序; \t2--按姓名排序\n"); 
printf("************************************************\n"); 
printf("请选择(1--2):"); 
select=choice(); 
if (select=='1'||select=='2') 
SortInfor(stu,Max,select); 
else 
printf("选择错误!\n"); 

} 



SortInfor(STUDENT stu[],int Max,char i) 
{ 
STUDENT student; 
int j=0,k,l=0; 
if(i=='1') 
{ 
for(k=0;j<Max;j++) 
for(;k<Max-j-1;k++) 
{ 
if(stu[k].ID>stu[k+1].ID) 
{ 
student.ID=stu[k+1].ID; 
strcpy(student.Name,stu[k+1].Name); 
student.Age=stu[k+1].Age; 
strcpy(student.Sex,stu[k+1].Sex); 
student.Birthday=stu[k+1].Birthday; 
strcpy(student.Adress,stu[k+1].Adress); 
strcpy(student.TelNum,stu[k+1].TelNum); 
strcpy(student.Email,stu[k+1].Email); 
stu[k+1].ID=stu[k].ID; 
strcpy(stu[k+1].Name,stu[k].Name); 
stu[k+1].Age=stu[k].Age; 
strcpy(stu[k+1].Sex,stu[k].Sex); 
stu[k+1].Birthday=stu[k].Birthday; 
strcpy(stu[k+1].Adress,stu[k].Adress); 
strcpy(stu[k+1].TelNum,stu[k].TelNum); 
strcpy(stu[k+1].Email,stu[k].Email); 
stu[k].ID=student.ID; 
strcpy(stu[k].Name,student.Name); 
stu[k].Age=student.Age; 
strcpy(stu[k].Sex,student.Sex); 
stu[k].Birthday=student.Birthday; 
strcpy(stu[k].Adress,student.Adress); 
strcpy(stu[k].TelNum,student.TelNum); 
strcpy(stu[k].Email,student.Email); 
} 
printf("\n 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail\n"); 
for(i=0;i<Max;i++) 
printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
printf("\n"); 
} 
} 
else if(i=='2') 
{ 
for(k=0;j<Max;j++) 
for(;k<Max-j-1;k++) 
{ 
if(strcmp(stu[k].Name,stu[k+1].Name)>0) 
{ 
student.ID=stu[k+1].ID; 
strcpy(student.Name,stu[k+1].Name); 
student.Age=stu[k+1].Age; 
strcpy(student.Sex,stu[k+1].Sex); 
student.Birthday=stu[k+1].Birthday; 
strcpy(student.Adress,stu[k+1].Adress); 
strcpy(student.TelNum,stu[k+1].TelNum); 
strcpy(student.Email,stu[k+1].Email); 
stu[k+1].ID=stu[k].ID; 
strcpy(stu[k+1].Name,stu[k].Name); 
stu[k+1].Age=stu[k].Age; 
strcpy(stu[k+1].Sex,stu[k].Sex); 
stu[k+1].Birthday=stu[k].Birthday; 
strcpy(stu[k+1].Adress,stu[k].Adress); 
strcpy(stu[k+1].TelNum,stu[k].TelNum); 
strcpy(stu[k+1].Email,stu[k].Email); 
stu[k].ID=student.ID; 
strcpy(stu[k].Name,student.Name); 
stu[k].Age=student.Age; 
strcpy(stu[k].Sex,student.Sex); 
stu[k].Birthday=student.Birthday; 
strcpy(stu[k].Adress,student.Adress); 
strcpy(stu[k].TelNum,student.TelNum); 
strcpy(stu[k].Email,student.Email); 
} 
} 

printf("\n 姓名 学号 年龄 性别 出生年月\t 地址\t 电话\t E-mail\n"); 
for(;l<Max;l++) 
printf("%10s %8d %2d %2s %8d %15s %12s %10s",stu[l].Name,stu[l].ID,stu[l].Age,stu[l].Sex,stu[l].Birthday,stu[l].Adress,stu[l].TelNum,stu[l].Email); 
printf("\n"); 
} 
} 

Save(STUDENT stu[],int Max) 
{ 
int i=0 ; 
FILE *fp; 
if((fp=fopen("stu.txt","w+"))==NULL) 
{ 
printf("ERROR!"); 
exit(0); 
} 
for(;i<Max;i++) 
{ 
fprintf(fp,"%d ",stu[i].ID); 
fprintf(fp,"%s ",stu[i].Name); 
fprintf(fp,"%d ",stu[i].Age); 
fprintf(fp,"%s ",stu[i].Sex); 
fprintf(fp,"%d ",stu[i].Birthday); 
fprintf(fp,"%s ",stu[i].Adress); 
fprintf(fp,"%s ",stu[i].TelNum); 
fprintf(fp,"%s ",stu[i].Email); 
} 
fclose(fp); 
printf("OK!"); 
} 




int main(int argc, char *argv[]) 
{ 
char select; 
STUDENT stu[MAX_NUM]; 
int current_number=0; 
select=0; 
while(select!='0') 
{ 
system("cls"); 

DispMainMenu(); 
select=choice(); 

switch(select) 
{ 
case '0': 
printf("\n您选择的是退出测试!\n"); 
_beep(300,400); 
continue; 
case '1': 
printf("\n您选择的是信息录入!\n"); 
current_number=InforInput(stu,current_number); 
break; 
case '2': 
printf("\n您选择的是信息修改!\n"); 
EditInfor(stu,current_number); 
break; 
case '3': 
printf("\n您选择的是信息查询!\n"); 
QueryInfor(stu,current_number); 
break; 
case '4': 
printf("\n您选择的是删除信息!\n"); 
DelInfor(stu,current_number); 
break; 
case '5': 
printf("\n您选择的是排序信息!\n"); 
SortInforMenu(stu,current_number); 
break; 
default: 
printf("\n选择错误!请重新选择!\n"); 
} 
system("PAUSE"); 
} 
return (0); 
Save(stu,current_number); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -