赞
踩
- #include<stdio.h>
- #include<string.h>//使我可以调用strcmp进行自定义
- #include<stdlib.h>//使我可以调用字符颜色库
-
- typedef struct student//tupedef将结构体类型标识符进行自定义
- {
- char sno[20];//学号
- char name[50];//姓名
- char sex[10];//性别
- int age;//年龄
- char nation[10];//民族
- char origin[30];//籍贯
- char contact[20];//联系方式
- } SD;
- SD datas[5000];//定义了可存储500位学生的数组
- int sl=0;//记录存储了多少位学生的信息
- //
- void printxinxi()//打印信息
- {
- if(sl==0)
- printf("当前无学生信息\n") ;
- printf("学号 姓名 性别 年龄 民族 籍贯 联系方式\n") ;
- int i=0;
- for(i=0;i<sl;i++)
- {
- printf("%s %s %s %d %s %s %s\n",datas[i].sno,datas[i].name,datas[i].sex,
- datas[i].age,datas[i].nation,datas[i].origin,datas[i].contact);
- }
- }
-
- /
- void menu()//菜单
- {
- printf("\n");
- printf(" ****************【菜单】*********************\n");
- printf(" *** 《1》:增加一条学生信息 ***\n");
- printf(" *** 《2》:修改一条学生信息 ***\n");
- printf(" *** 《3》:查找一条学生信息 ***\n");
- printf(" *** 《4》:删除一条学生信息 ***\n");
- printf(" *** 《5》:从文件导入学生信息 ***\n");
- printf(" *** 《6》:将学生信息导入文件 ***\n");
- printf(" *** 《7》:打印所有学生信息 ***\n");
- printf(" *** 《8》:退出 ***\n");
- printf(" *********************************************\n");
- printf(" >>>请输入1-8中你要进行的操作:");
- }
- //
- void save()//保存内容到文件内
- {
- FILE *fp=NULL;//定义一个文件指针
- char wenjianmin[100];
- printf("请输入文件地址:");
- scanf("%s",wenjianmin);
- fp=fopen("Xueshengxinxi.txt","wb+");//为读/写新建一个二进制文件
- if(fp==NULL)
- {
- printf("打开失败\n");
- return;
- }
- int i=0;
- for(i=0;i<sl;i++)
- {
- fprintf(fp,"%s %s %s %d %s %s %s\n",datas[i].sno,datas[i].name,datas[i].sex,
- datas[i].age,datas[i].nation,datas[i].origin,datas[i].contact);//写入文件
- fflush(stdin);//清除文件缓冲区
- }
- fclose(fp);//关闭文件
- printf("保存成功!\n");
- }
- /
- void read()//读取文件内容
- {
- FILE *fp=NULL;
- char wenjianmin[100];
- printf("请输入文件地址:");
- scanf("%s",wenjianmin);
- fp=fopen("Xueshengxinxi.txt","r");//以只读方式读取文件
- if(fp==NULL)
- {
- printf("打开失败\n");
- //return;
- }
- sl=0;
- while(!feof(fp))//feof()检查文件是否结束,结束返回非0值,未结束返回0值;
- {
- fscanf(fp,"%s %s %s %d %s %s %s\n",datas[sl].sno,datas[sl].name,datas[sl].sex,
- &datas[sl].age,datas[sl].nation,datas[sl].origin,datas[sl].contact); //从文件读取数据
- sl++;
- }
- printf("读取成功!\n");
- }
- //
- void add()//增加信息
- {
- SD data;//新定义一个结构体变量
- printf("请按照顺序输入学生的学号:");
- scanf("%s",data.sno);
- printf("请输入学生的姓名:") ;
- scanf("%s",data.name);
- printf("请输入学生的性别:");
- scanf("%s",data.sex);
- printf("请输入学生的年龄:");
- scanf("%d",&data.age);
- printf("请输入学生的民族:");
- scanf("%s",data.nation);
- printf("请输入学生的籍贯:");
- scanf("%s",data.origin);
- printf("请输入学生的联系方式:");
- scanf("%s",data.contact);
- datas[sl]=data;
- sl++;
- printf("添加成功!\n");
- }
-
- void dele()//删除
- {
- printf("请输入要删除的学生学号:");
- char sno[20];
- scanf("%s",sno);
- int flg,i;
- flg=0;
- for(i=0;i<sl;i++)
- if(strcmp(datas[i].sno,sno)==0)
- {
- int j;
- flg=1;
- for(j=i;j<sl-1;j++)
- datas[j]=datas[j+1];
- }
- if(flg==0)
- {
- printf("系统内没有该位学生的信息\n") ;
- }
- sl--;
- printf("删除成功!\n");
- }
- //
- void modify()//修改
- {
- printf("请输入你需要修改的学生的学生号");
- char sno[20];
- scanf("%s",sno);
- int flg,i;
- flg=0;
- for(i=0;i<sl;i++)
- if(strcmp(datas[i].sno,sno)==0)
- {
- flg=1;
- printf("请输入需要修改的学生的姓名:") ;
- scanf("%s",datas[i].name);
- printf("请输入需要修改的学生的性别:");
- scanf("%s",datas[i].sex);
- printf("请输入需要需改的学生的年龄:");
- scanf("%d",&datas[i].age);
- printf("请输入需要修改的学生的民族:");
- scanf("%s",datas[i].nation);
- printf("请输入需要修改的学生的籍贯:");
- scanf("%s",datas[i].origin);
- printf("请输入需要修改的学生的联系方式:");
- scanf("%s",datas[i].contact);
- }
- if(flg==0)
- {
- printf("系统内没有该位学生的信息\n") ;
- }
- printf("修改成功!\n");
- }
- ///
- void seek()//寻找
- {
- printf("请输入要查找的学生学号:");
- char sno[20];
- scanf("%s",sno);
- int flg,i;
- flg=0;
- for(i=0;i<sl;i++)
- if(strcmp(datas[i].sno,sno)==0)
- {
- flg=1;
- printf("%s %s %s %d %s %s %s\n",datas[i].sno,datas[i].name,datas[i].sex,
- datas[i].age,datas[i].nation,datas[i].origin,datas[i].contact);
- }
- if(flg==0)
- {
- printf("系统内没有该位学生的信息!\n") ;
- }
- }
-
- ///
- int main()//主函数
- {
- system("color 1F");//改变输出颜色
- int cmd;
- do
- {
- menu();
- scanf("%d",&cmd);
- switch(cmd)
- {
- case 1:
- printf("添加一条学生信息\n");
- add();
- break;
- case 2:
- printf("修改一条学生信息\n");
- modify() ;
- break;
- case 3:
- printf("查找一条学生信息\n");
- seek();
- break;
- case 4:
- printf("删除一条学生信息\n");
- dele();
- break;
- case 5:
- printf("从文件导入学生信息\n");
- read();
- break;
- case 6:
- printf("将学生信息导入文件\n");
- save();
- break;
- case 7:
- printf("打印所有学生信息\n");
- printxinxi();
- break;
- case 8:printf("已退出学生信息管理系统!\n ");
- break;
- default:
- printf("没有该项操作,请输入正确的操作!\n") ;
- printf("\n");
- break;
- }
- }
- while(cmd!=8);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。