📄 main.txt
字号:
#include <stdio.h>
#include <string.h>
#define N 100/*宏定义*/
struct student/*定义结构体*/
{
char num[10];
char name[10];
char age[4];
char sex[6];
char birthday[30];
char address[30];
char telnum[12];
char e_mail[30];
}stu[N],temp;
void input();/*函数的申明*/
void output();
void insert();
void delete();
void search();
void search_number();
void search_name();
void array();
void array_number();
void array_name();
int total;/*学生人数*/
void main()
{
int i,choice;
do
{
printf(" Welcome to use student management system!\n");
printf("=*=*=*=*=*=*=*=*=*=*=*=Menu=*=*=*=*=*=*=*=*=*=*=*\n");
printf("| 1.Input student information |\n");
printf("| 2.Output student information |\n");
printf("| 3.Array a student information |\n");
printf("| 4.Insert a student information |\n");
printf("| 5.Search a student information |\n");
printf("| 6.Deleteete a student information |\n");
printf("| 0.Exit |\n");
printf("=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n");
printf("\nPlease enter your choice:");
scanf("%d",&choice);
switch(choice)/*通过条件语句进行选择*/
{
case 1:input();break;/*调用input函数*/
case 2:output();break;/*调用output函数*/
case 3:
do{
array();/*转入array函数*/
printf(" Please enter your choice:");
scanf("%d",&choice);
switch(choice) /*通过条件语句进行选择*/
{
case 1: array_number();break;/*调用array_number函数*/
case 2: array_name();break;/*调用array_name函数*/
}
}while(choice!=3);break;
case 4:insert();break;/*调用insert函数*/
case 5:
do{
search();/*转入search函数*/
printf(" Please enter your choice:");
scanf("%d",&choice);
switch(choice) /*通过条件语句进行选择*/
{
case 1: search_number();break;/*调用search_number函数*/
case 2: search_name();break;/*调用search_name函数*/
}
}while(choice!=3);break;
case 6:delete();break;
case 0:
{
printf("Thanks for useing,byebye!\n");
exit(0);
}
default:/*缺省值*/
{
printf("Input error,please enter it again:\n");
return;/*返回*/
}
}
}while(1);
}
void input()/*被调用函数*/
{
FILE *fp;/*定义指向FILE的文件型指针*/
int i=0;
char choiceinput='y';
if((fp=fopen("student.txt","w"))==NULL)/*检查打开操作是否有错*/
{
printf("Cannot open filen!\n");
return;
}
while(choiceinput=='y'||choiceinput=='Y')/*识别大小写*/
{
i++;
total++;
printf("\nPlease enter student's information\n");/*按顺序输入学生信息*/
printf("Student-number:"); scanf("%s",stu[i].num);
printf("Name:"); scanf("%s",stu[i].name);
printf("Age:"); scanf("%s",stu[i].age);
printf("Sex:"); scanf("%s",stu[i].sex);
printf("Birthday:"); scanf("%s",stu[i].birthday);
printf("Address:"); scanf("%s",stu[i].address);
printf("Telephone-number:"); scanf("%s",stu[i].telnum);
printf("E-mail:"); scanf("%s",stu[i].e_mail);
printf("Continue enter?(y/n)\n"); scanf("%s",&choiceinput);
fwrite(&stu[i],sizeof(struct student),1,fp);
}
if(choiceinput=='n'||choiceinput=='N')
{
fclose(fp); /*关闭文件*/
printf("Input complete,Press any key to return\n");
getch();
return;
}
}
void output()/*被调用函数*/
{
FILE *fp;
int i;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("Cannot open filen!\nPlease input data!\n");
return;
}
printf("output result:\n");/*显示学生信息*/
printf("Student-number Name Age Sex Birthday Address Telephone-number E-mail\n");
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
{printf("\n%14s%5s%4s%4s%9s%8s%16s%6s",stu[i].num,stu[i].name,stu[i].age,
stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail);
}
printf("\n");
printf("Complete,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
void insert()/*被调用函数*/
{ int i,j,k,n;
FILE *fp; printf("How many students do you want to insert?--------"); scanf("%d",&n); if((fp=fopen("student.txt","a"))==NULL) {
printf("cannot open file");
exit(0);
}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;)
i++;
k=i;
fclose(fp);
printf("\nPlease enter student's information\n");/*按顺序输入学生信息*/
for(i=k;i<k+n;i++)
{ printf("Student-number:"); scanf(" %s",stu[i].num);
printf("Name:"); scanf(" %s",stu[i].name);
printf("Age:"); scanf(" %s",stu[i].age);
printf("Sex:"); scanf(" %s",stu[i].sex);
printf("Birthday:"); scanf(" %s",stu[i].birthday);
printf("Address:"); scanf(" %s",stu[i].address);
printf("Telephone-number:"); scanf(" %s",stu[i].telnum);
printf("E-mail:"); scanf(" %s",stu[i].e_mail);
}
fp=fopen("student.txt","a");
for(i=0;i<k+n;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
{
printf("file writer error");
return;
}
fclose(fp);
}
void delete()/*被调用函数*/
{
int i;
char deletename[8];
FILE *fp;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("Cannot open filen!\nPlease input data!\n");
getch();
return;
}
printf("Please enter person's name you want to delete:\n");
scanf("%s",deletename);
for(i=0;i<N;i++)/*删除学生信息的操作*/
{
if(strcmp(stu[i].name,deletename)==0)
{
total--;
for(;i<N;i++)
stu[i]=stu[i+1];
}
}
i=0;
fwrite(&stu[i],sizeof(struct student),total,fp);
fclose(fp); /*关闭文件*/
}
void search()/*被调用函数*/
{
printf("********* Searchmenu ***********\n");
printf("* 1.Input the search number: *\n");
printf("* 2.Input the search name: *\n");
printf("* 3.Exit *\n");
printf("***********************************\n");
}
void search_number()
{
FILE *fp;
int i=0;
char choicenumber[10];
if((fp=fopen("student.txt","r"))==NULL) /*检查打开操作是否有错*/
{
printf("Enable to open file,Press any key to return\n");
getch();
return;
}
printf("Please enter person's number you want to search\n");
scanf("%s",choicenumber);
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
{
if(strcmp(stu[i].num,choicenumber)==0)
{
printf("The person's information you want to search is as following:\n");/*输出所查询学生的全部信息*/
printf("Student-number Name Age Sex Birthday Address Telephone-number E-mail\n");
printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail);
printf("\nSearch complete,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
}
printf("Person isn't aviable,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
void search_name()/*被调用函数*/
{
FILE *fp;
int i=0;
char choicename[8];
if((fp=fopen("student.txt","r"))==NULL) /*检查打开操作是否有错*/
{
printf("Enable to open file,Press any key to return\n");
getch();
return;
}
printf("Please enter person's name you want to search\n");
scanf("%s",choicename);
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
{
if(strcmp(stu[i].name,choicename)==0)
{
printf("The person's information you want to search is as following:\n");/*输出所查询学生的全部信息*/
printf("Student-number Name Age Sex Birthday Address Telephone-number E-mail\n");
printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail);
printf("\nSearch complete,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
}
printf("Person isn't aviable,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
void array()/*被调用函数*/
{
printf("************ Arraymenu **************\n");
printf("* 1.Array by number: *\n");
printf("* 2.Array by name: *\n");
printf("* 3.Exit *\n");
printf("***********************************\n");
}
void array_name()/*被调用函数*/
{int i,j,k,n;
FILE *fp;
if((fp=fopen("student.txt","r"))==NULL) /*打开文件如果不存在则新建文件*/
{
printf("Enable to open file,Press any key to return\n");
getch();
return;
}
for(n=0;fread(&stu[n],sizeof(struct student),1,fp)!=0;n++);
for (j=0;j<n;j++)/*排序*/
for (k=j+1;k<n;k++)
if (strcmp(stu[j].name,stu[k].name)<0)
{ temp=stu[j];stu[j]=stu[k];stu[k]=temp; }
for(i=0;i<n;i++)
printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); /*输出排序后学生的全部信息*/
printf("\n\nArray complete,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
void array_number()/*被调用函数*/
{int i,j,k,n;
FILE *fp;
if((fp=fopen("student.txt","r"))==NULL) /*打开文件如果不存在则新建文件*/
{
printf("Enable to open file,Press any key to return\n");
getch();
return;
}
for(n=0;fread(&stu[n],sizeof(struct student),1,fp)!=0;n++);
for (j=0;j<n;j++)/*排序*/
for (k=j+1;k<n;k++)
if (strcmp(stu[j].num,stu[k].num)<0)
{ temp=stu[j];stu[j]=stu[k];stu[k]=temp; }
for(i=0;i<n;i++)
printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); /*输出排序后学生的全部信息*/
printf("\n\nArray complete,Press any key to return\n");
getch();
fclose(fp); /*关闭文件*/
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -