parent
7403666f75
commit
57dce50e09
@ -0,0 +1,66 @@
|
||||
#include"主函数.c"
|
||||
void refresh()/*将文件中学生的信息导入*/
|
||||
{
|
||||
FILE *fp;
|
||||
int i=0;/*计算导入学生的个数*/
|
||||
if((fp=fopen("student.txt","r"))==NULL)
|
||||
{
|
||||
printf("cannot open the file");
|
||||
system("pause");
|
||||
exit(0);/*如未能打开直接退出程序*/
|
||||
}
|
||||
while(fscanf(fp,"%s %s %d %s %s %s %s %s",stu[i].id,stu[i].name,&stu[i].age,stu[i].sex,stu[i].birth,stu[i].add,stu[i].tel,stu[i].email)!=EOF)
|
||||
i++;
|
||||
n=i;
|
||||
if(fclose(fp))/*检测是否将文件关闭*/
|
||||
{
|
||||
printf("cannot close the file");
|
||||
exit(0);
|
||||
}
|
||||
printf("刷新完成\n");
|
||||
}
|
||||
void seek()/*查找函数*/
|
||||
{
|
||||
int i,num,flag;
|
||||
char ch[LEN+1];/*用于存放查询学生的姓名或名字*/
|
||||
printf("**************\n");
|
||||
printf("1:按学号查询\n");
|
||||
printf("2:按姓名查询\n");
|
||||
printf("3:退出本次查询\n");
|
||||
printf("**************\n");
|
||||
while(1)
|
||||
{
|
||||
printf("请输入编号:");
|
||||
scanf("%d",&num);
|
||||
flag=0;
|
||||
switch(num)
|
||||
{
|
||||
case 1: printf("请输入要查询的学生的学号:");
|
||||
scanf("%s",ch);
|
||||
for(i=0;i<n;i++)
|
||||
if(strcmp(stu[i].id,ch)==0)
|
||||
{
|
||||
flag=1;
|
||||
printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mail\n");
|
||||
printf("-------------------------------------------------------------------------------\n");
|
||||
printf("%6s %6s %5d %5s %9s %8s %10s %14s\n",stu[i].id,stu[i].name,stu[i].age,stu[i].sex,stu[i].birth,stu[i].add,stu[i].tel,stu[i].email);
|
||||
}
|
||||
if(flag==0)
|
||||
printf("学号不存在\n");break;
|
||||
case 2: printf("请输入要查询学生的姓名:");
|
||||
scanf("%s",ch);
|
||||
for(i=0;i<n;i++)
|
||||
if(strcmp(stu[i].name,ch)==0)
|
||||
{
|
||||
flag=1;
|
||||
printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mail\n");
|
||||
printf("-------------------------------------------------------------------------------\n");
|
||||
printf("%6s %6s %5d %5s %9s %8s %10s %14s\n",stu[i].id,stu[i].name,stu[i].age,stu[i].sex,stu[i].birth,stu[i].add,stu[i].tel,stu[i].email);
|
||||
}
|
||||
if(flag==0)
|
||||
printf("姓名不存在\n");break;
|
||||
case 3: return;
|
||||
default:printf("只能在1-3中选择\n");
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
@ -1,146 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#define LEN 20 /* 学号和姓名最大字符数 */
|
||||
#define N 1000 /* 最大学生人数*/
|
||||
struct record /*结构体*/
|
||||
{
|
||||
char id[LEN+1]; /* 学号 */
|
||||
char name[LEN+1]; /* 姓名 */
|
||||
int age; /* 年龄 */
|
||||
char sex[3]; /* 性别 */
|
||||
char birth[LEN+1]; /* 出生年月 */
|
||||
char add[30]; /* 家庭地址 */
|
||||
char tel[LEN+1]; /* 电话号码 */
|
||||
char email[30]; /* 电子邮件地址 */
|
||||
}stu[N];
|
||||
int n,m; /* 定义全局变量 n为当前学生数 m表示每次增加的学生数 */
|
||||
void refresh();/* 导入信息函数 */
|
||||
void seek();/* 查找信息函数 */
|
||||
void modify();/* 修改信息函数 */
|
||||
void add();/* 增加信息函数 */
|
||||
void dele();/* 删除信息函数 */
|
||||
void show();/* 显示信息函数 */
|
||||
void save();/* 保存信息函数 */
|
||||
int main()
|
||||
{
|
||||
while(1)
|
||||
void sort()/*按学号排序*/
|
||||
{
|
||||
int i,j,*p,*q,s;
|
||||
char temp[10];
|
||||
for(i=0;i<n-1;i++)
|
||||
{
|
||||
for(j=n-1;j>i;j--)
|
||||
if(strcmp(stu[j-1].code,stu[j].code)>0)
|
||||
{
|
||||
strcpy(temp,stu[j-1].code);
|
||||
strcpy(stu[j-1].code,stu[j].code);
|
||||
strcpy(stu[j].code,temp);
|
||||
strcpy(temp,stu[j-1].name);
|
||||
strcpy(stu[j-1].name,stu[j].name);
|
||||
strcpy(stu[j].name,temp);
|
||||
strcpy(temp,stu[j-1].sex);
|
||||
strcpy(stu[j-1].sex,stu[j].sex);
|
||||
strcpy(stu[j].sex,temp);
|
||||
strcpy(temp,stu[j-1].time);
|
||||
strcpy(stu[j-1].time,stu[j].time);
|
||||
strcpy(stu[j].time,temp);
|
||||
strcpy(temp,stu[j-1].add);
|
||||
strcpy(stu[j-1].add,stu[j].add);
|
||||
strcpy(stu[j].add,temp);
|
||||
strcpy(temp,stu[j-1].tel);
|
||||
strcpy(stu[j-1].tel,stu[j].tel);
|
||||
strcpy(stu[j].tel,temp);
|
||||
strcpy(temp,stu[j-1].mail);
|
||||
strcpy(stu[j-1].mail,stu[j].mail);
|
||||
strcpy(stu[j].mail,temp);
|
||||
p=&stu[j-1].age;
|
||||
q=&stu[j].age;
|
||||
s=*q;
|
||||
*q=*p;
|
||||
*p=s;
|
||||
}
|
||||
}
|
||||
}
|
||||
void add() /*插入函数,增加学生*/
|
||||
{
|
||||
int i=n,j,flag;
|
||||
printf("请输入待增加的学生数:\n");
|
||||
scanf("%d",&m);
|
||||
do
|
||||
{
|
||||
flag=1;
|
||||
while(flag)
|
||||
{
|
||||
flag=0;
|
||||
printf("请输入第 %d 个学生的学号:\n",i+1);
|
||||
scanf("%s",stu[i].code);
|
||||
for(j=0;j<i;j++)
|
||||
if(strcmp(stu[i].code,stu[j].code)==0)
|
||||
{
|
||||
printf("已有该学号,请检查后重新录入!\n");
|
||||
flag=1;
|
||||
break; /*如有重复立即退出该层循环,提高判断速度*/
|
||||
}
|
||||
}
|
||||
printf("请输入第 %d 个学生的姓名:\n",i+1);
|
||||
scanf("%s",stu[i].name);
|
||||
printf("请输入第 %d 个学生的年龄:\n",i+1);
|
||||
scanf("%d",&stu[i].age);
|
||||
printf("请输入第 %d 个学生的性别:\n",i+1);
|
||||
scanf("%s",stu[i].sex);
|
||||
printf("请输入第 %d 个学生的出生年月:(格式:年.月)\n",i+1);
|
||||
scanf("%s",stu[i].time);
|
||||
printf("请输入第 %d 个学生的地址:\n",i+1);
|
||||
scanf("%s",stu[i].add);
|
||||
printf("请输入第 %d 个学生的电话:\n",i+1);
|
||||
scanf("%s",stu[i].tel);
|
||||
printf("请输入第 %d 个学生的E-mail:\n",i+1);
|
||||
scanf("%s",stu[i].mail);
|
||||
if(flag==0)
|
||||
{
|
||||
i=i;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
while(i<n+m);
|
||||
n+=m;
|
||||
printf("录入完毕!\n\n");
|
||||
sort();
|
||||
}
|
||||
{
|
||||
int num;
|
||||
printf("\t\t\t\t 注意事项 \n");
|
||||
printf("\t\t 一:第一次运行请先刷新系统!!!! \n");
|
||||
printf("\t\t 二:增加学生信息后务必保存信息!!!! \n\n");
|
||||
printf("\t\t\t 系统功能菜单 \n");
|
||||
printf("\t\t\t 1.刷新学生信息 \n");
|
||||
printf("\t\t\t 2.查询学生信息 \n");
|
||||
printf("\t\t\t 3.修改学生信息 \n");
|
||||
printf("\t\t\t 4.增加学生信息 \n");
|
||||
printf("\t\t\t 5.按学号删除信息 \n");
|
||||
printf("\t\t\t 6.显示当前信息 \n");
|
||||
printf("\t\t\t 7.保存当前学生信息 \n");
|
||||
printf("\t\t\t 8.退出系统 \n");
|
||||
printf("请选择菜单编号:");
|
||||
scanf("%d",&num);
|
||||
switch(num)
|
||||
{
|
||||
|
||||
case 1:refresh();break;
|
||||
case 2:seek();break;
|
||||
case 3:modify();break;
|
||||
case 4:add();break;
|
||||
case 5:dele();break;
|
||||
case 6:show();break;
|
||||
case 7:save();break;
|
||||
case 8:exit(0);
|
||||
default:printf("请在1-8之间选择\n");
|
||||
}
|
||||
system("pause");
|
||||
system("cls");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in new issue