first commit

master
18408200107 7 years ago
commit 7b253f7382

@ -0,0 +1,308 @@
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include<windows.h>
#define L 30 //学号和姓名的最大字符数
#define count 400 //最大学生数
int n=0; //已存在学生数
struct stu_info
{
char name[L]; //姓名
char num[L]; //学号
int age; //年龄
char place[50]; //籍贯
char sex[L]; //性别
char clas[40]; // 班级
char department[30]; //系别
char domain[30]; //专业
char dowhat[10]; //学籍变化
}stu[count];
void add() //录入信息
{
char j;
front1:
system("cls");//清屏
printf("请输入姓名:\n");
scanf("%s",stu[n].name);
printf("请输入学号:\n");
scanf("%s",stu[n].num);
printf("请输入性别:\n");
scanf("%s",stu[n].sex);
printf("请输入年龄:\n");
scanf("%d",&stu[n].age);
printf("请输入班级:\n");
scanf("%s",stu[n].clas);
printf("请输入籍贯:\n");
scanf("%s",stu[n].place);
printf("请输入系别:\n");
scanf("%s",stu[n].department);
printf("请输入专业:\n");
scanf("%s",stu[n].domain);
printf("请输入学籍变化情况:\n");
scanf("%s",stu[n].dowhat);
getchar(); //吸收回车//
n++;
printf("是否继续Y/N?\n");
j=getchar();
getchar(); //吸收回车//
if(j=='y'||j=='Y')
goto front1;//再次输入记录
}
void arrange() //排序
{
int k,i;
struct stu_info t;
printf("学生姓名 学生学号 性别 年龄 班级 籍贯 系别 专业 学籍情况\n");
for(k=1;k<n;k++) //排序
for(i=n-1;i>=k;i--)
if(strcmp(stu[i].num,stu[i-1].num)<0)
{
t=stu[i];
stu[i]=stu[i-1];
stu[i-1]=t;
}
for(i=0;i<=n-1;i++)
printf("%s %s %s %d %s %s %s %s %s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].clas,stu[i].place,stu[i].department,stu[i].domain,stu[i].dowhat);
system("pause");
system("cls");//清屏
}
void change() //修改//
{
int k=0,a,i;
char j;
char s1[L],s2[L];
front5: //标记位置//
system("cls");//清屏
printf("学生姓名 学生学号 性别 年龄 班级 籍贯 系别 专业 学籍情况\n");
for(i=0;i<n;i++)
printf("%s %s %s %d %s %s %s %s %s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].clas,stu[i].place,stu[i].department,stu[i].domain,stu[i].dowhat);
printf("\n请输入要修改记录的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++) //查找信息
if(strcmp(stu[i].num,s1)==0)
{
k=1;
break;
}
if(k==1)
{
front6: //标记位置//
printf("学生姓名 学生学号 性别 年龄 班级 籍贯 系别 专业 学籍情况\n");
printf("%s %s %s %d %s %s %s %s %s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].clas,stu[i].place,stu[i].department,stu[i].domain,stu[i].dowhat);
printf("\t\t-------------------------\n");
printf("\t\t||*********************||\n");
printf("\t\t|| 1、修改姓名 ||\n");
printf("\t\t|| 2、修改年龄 ||\n");
printf("\t\t|| 3、修改性别 ||\n");
printf("\t\t|| 4、修改籍贯 ||\n");
printf("\t\t|| 5、修改系别 ||\n");
printf("\t\t|| 6、修改专业 ||\n");
printf("\t\t|| 7、修改班级 ||\n");
printf("\t\t|| 8、修改学籍变化 ||\n");
printf("\t\t|| 0、退出该菜单 ||\n");
printf("\t\t||*********************||\n");
printf("\t\t-------------------------\n");
scanf("%d",&a);
switch(a)
{
case 1:
printf("该学生已存在的姓名:\n");
printf("%s\n",stu[i].name);
printf("请输入新的名字:\n");
scanf("%s",s2);
strcpy(stu[i].name,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 2:
printf("该学生已存在的年龄:\n");
printf("%d\n",stu[i].age);
printf("请输入新的年龄:\n");
scanf("%d",&stu[i].age);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 3:
printf("该学生已存在的性别:\n");
printf("%s\n",stu[i].sex);
printf("请输入新的性别:\n");
scanf("%s",s2);
strcpy(stu[i].sex,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 4:
printf("该学生已存在的籍贯:\n");
printf("%s\n",stu[i].place);
printf("请输入新的籍贯:\n");
scanf("%s",s2);
strcpy(stu[i].place,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 5:
printf("该学生所在的系别:\n");
printf("%s\n",stu[i].department);
printf("请输入新的系别:\n");
scanf("%s",s2);
strcpy(stu[i].department,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 6:
printf("该学生已选择的专业:\n");
printf("%s\n",stu[i].domain);
printf("请输入新的专业:\n");
scanf("%s",s2);
strcpy(stu[i].domain,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 7:
printf("该学生所在的班级:\n");
printf("%s\n",stu[i].clas);
printf("请输入新的班级:\n");
scanf("%s",s2);
strcpy(stu[i].clas,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 8:
printf("该学生已存在的学籍变化:\n");
printf("%s\n",stu[i].dowhat);
printf("请输入新的学籍变化情况: \n");
scanf("%s",s2);
strcpy(stu[i].dowhat,s2);
printf("修改成功\n");
system("pause"); //等待用户信号//
getchar(); //吸收回车
system("cls");
goto front6;
case 0:
getchar();
system("cls");
break;
default:printf("输入错误请在0~8中选择\n");
}
}
if(k==0)
{
printf("找不到要修改的信息!\n");
system("pause");
getchar();
}
printf("请问是否继续修改学生信息(y/n):\n");
j=getchar();
getchar();
if(j=='y'||j=='Y') goto front5;
}
int main()
{
int i=0,j;
char d;
FILE *fp;
system("color E4");
system("mode con cols=120 lines=40");
fp=fopen("学籍管理.txt","r"); //读取文件中的信息//
while(1)
{
int b=fscanf(fp,"%s %s %s %d %s %s %s %s %s\n",stu[i].name,stu[i].num,stu[i].sex,&stu[i].age,stu[i].clas,stu[i].place,stu[i].department,stu[i].domain,stu[i].dowhat);
if(b==EOF) //判断是否读到文件末尾
break;
i++;
}
fclose(fp);
n=i;
menu:
system("cls");
printf("\n\n\n\n");
printf("\t\t\t||---------------------学生学籍信息管理系统--------------------||\n");
printf("\t\t\t||***************************主菜单****************************||\n");
printf("\t\t\t|| 提醒:使用系统后,输入数据后请记得保存!: ||\n");
printf("\t\t\t|| --------------------------------------------------------- ||\n");
printf("\t\t\t|| 注意:每次进行录入,删除,修改操作后需进行保存显示才更新信息||\n");
printf("\t\t\t|| -------------------------- || ------------------------- ||\n");
printf("\t\t\t|| 1.录入学生信息 || 2.学生信息排序 ||\n");
printf("\t\t\t|| -------------------------- || ------------------------- ||\n");
printf("\t\t\t|| 3.修改学生信息 || 4. 保存学生信息 ||\n");
printf("\t\t\t|| -------------------------- || ------------------------- ||\n");
printf("\t\t\t|| 5.显示当前信息 || 0.退出系统 ||\n");
printf("\t\t\t|| -------------------------- || -------------------------- ||\n");
printf("\t\t\t|| 制作人 通信1801班 丁丹玲! ||\n");
printf("\t\t\t||*************************************************************||\n");
printf("\n\n请输入您需要的服务(0~7)\n");
scanf("%d",&j);
switch(j)
{
case 0:
printf("欢迎使用!\n");
return 0;
case 1: add();
goto menu;
case 2: arrange();
goto menu;
case 3: change();
goto menu;
case 4:
FILE *fq;
fq=fopen("学籍管理.txt","w");
for(i=0;i<n;i++)
{
fprintf(fq,"%s %s %s %d %s %s %s %s %s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].clas,stu[i].place,stu[i].department,stu[i].domain,stu[i].dowhat);
}
fclose(fq);
printf("保存成功\n");
system("pause"); //等待用户信号//
goto menu;
case 5:
FILE *fz;
fz=fopen("学籍管理.txt","r");
d=fgetc(fz);
if(d==EOF)
{
printf("文件中没有信息,请重新录入!\n");
fclose(fz);
system("pause");
getchar(); //吸收回车
goto menu;
}
fclose(fz);
i=0;
printf("学生姓名 学生学号 性别 年龄 班级 籍贯 系别 专业 学籍情况\n");
for(i=0;i<n;i++)
printf("%s %s %s %d %s %s %s %s %s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].clas,stu[i].place,stu[i].department,stu[i].domain,stu[i].dowhat);
system("pause");
getchar(); //吸收回车
goto menu;
default:
printf("输入错误,请重新输入!:\n");
system("pause");
getchar(); //吸收回车
goto menu;
}
}

Binary file not shown.
Loading…
Cancel
Save