second commit

master
13873884359 6 years ago
parent 7403666f75
commit 57dce50e09

@ -46,11 +46,11 @@ switch(num)
case 1:refresh();break;
case 2:seek();break;
case 3:modify();break;
/*case 3:modify();break;
case 4:add();break;
case 5:dele();break;
case 6:show();break;
case 7:save();break;
case 7:save();break;*/
case 8:exit(0);
default:printf("请在1-8之间选择\n");
}

@ -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…
Cancel
Save