master
Luminous 6 years ago
parent f0aa16463e
commit c8a2bae48d

@ -0,0 +1,649 @@
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <STDLIB.H>
#include <stdlib.h>
int N=0;
struct stu
{
long int xuehao; /*学号*/
char name[10]; /*姓名*/
char sex[4]; /*性别*/
int age; /*年龄*/
char birth[10]; /*出生年月*/
char address[10]; /*地址*/
char phone[15]; /*电话号码*/
char mail[20]; /*mail*/
}s[40];
void READ()
{
FILE *fp;
fp=fopen("xsxxk.txt","r");
while( fscanf(fp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",&s[N].xuehao,s[N].name,s[N].sex,&s[N].age,s[N].birth,s[N].address,s[N].phone,s[N].mail)!=EOF) N++;
fclose(fp);
}
void WRITE()
{
int i;
FILE *fp;
fp=fopen("newstudk.txt","w");
for(i=0;i<N;i++)
fprintf(fp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[i].xuehao,s[i].name,s[i].sex,s[i].age,s[i].birth,s[i].address,s[i].phone,s[i].mail);
fclose(fp);
}
void Display() /*显示模块*/
{
system ("color 9F");
int i=0;
FILE *fp; /*定义文件结构类指针*/
fp=fopen("xsxxk.txt","r");
system("cls"); /*清屏*/
printf(" 学号 | 姓名 | 性别 | 年龄 | 出生年月 | 地址 | 电话号码 | mail\n");
printf(" | | | | | | | \n ");
while(fscanf(fp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",&s[i].xuehao,s[i].name,s[i].sex,&s[i].age,s[i].birth,s[i].address,s[i].phone,s[i].mail)!=EOF)
{
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",s[i].xuehao,s[i].name,s[i].sex,s[i].age,s[i].birth,s[i].address,s[i].phone,s[i].mail);
i++;
}
fclose(fp);
}
void Add() /*追加模块*/
{
system ("color CF");
int n,i,a=1,j;
FILE *fp;
while(a==1)
{
system("cls"); /*清屏*/
printf(" ****************************\n");
printf(" * *\n");
printf(" * *\n");
printf(" * 请输入添加个数n: *\n");
printf(" * *\n");
printf(" * *\n");
printf(" ****************************\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("学号:");scanf("%ld",&s[N].xuehao);
printf("名字:");scanf("%s",s[N].name);
printf("性别:");scanf("%s",s[N].sex);
printf("年龄:");scanf("%d",&s[N].age);
printf("出生日期:");scanf("%s",s[N].birth);
printf("地址:");scanf("%s",s[N].address);
printf("电话号码:");scanf("%s",s[N].phone);
printf("mail");scanf("%s",s[N].mail);
if(n>1)
{
printf("\n\n 前一组值已输入完毕,请接着输入下一组值!\n");
}
fp=fopen("xsxxk.txt","w");
for(j=0;j<=N;j++)
{
fprintf(fp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[j].xuehao,s[j].name,s[j].sex,s[j].age,s[j].birth,s[j].address,s[j].phone,s[j].mail);
}
fclose(fp);
N++;
}
system("cls"); /*清屏*/
printf(" |==========================|\n");
printf(" | |\n");
printf(" | 是否继续增加? |\n");
printf(" | |\n");
printf(" | 1.是 2.否 |\n");
printf(" | |\n");
printf(" |==========================|\n");
printf(" 请选择1-2");
scanf("%d",&a);
if(a==2)
break;
}
}
void xiugai() /*修改模块*/
{
system ("color 5F");
int lgl=1;
int x,i=0,k;
long int xuehao;
char name[10];
struct stu *p;
FILE *tp;
int lgl1=1;
while(lgl1==1)
{
system("cls"); /*清屏*/
printf(" |==========================================|\n");
printf(" | 请选择修改的人 |\n");
printf(" |==========================================|\n");
printf(" | 1.学号 2.姓名 |\n");
printf(" |==========================================|\n");
printf(" | 3.取消 |\n");
printf(" |==========================================|\n");
printf(" 请选择:");
scanf("%d",&x);
switch(x)
{case 1:
printf("请输入要修改的学生学号:");
scanf("%ld",&xuehao);
for(p=s;p<s+N;p++)
{if(p->xuehao==xuehao)
{
i=1;
int j; //菜单选择项//
while(lgl==1)
{
system("cls"); /*清屏*/
printf("\n\n");
printf(" |=======================================|\n");
printf(" | 请选择要修改的项目: |\n");
printf(" |=======================================|\n");
printf(" | 1.性别 2.年龄 |\n");
printf(" |=======================================|\n");
printf(" | 3.出生日期 4.地址 |\n");
printf(" |=======================================|\n");
printf(" | 5.电话号码 6.mail |\n");
printf(" |=======================================|\n");
printf(" | 7.取消 |\n");
printf(" |=======================================|\n");
printf("请选择想要修改的项目1-7");
scanf("%d",&j);
switch(j)
{ case 1: printf("新性别:"); scanf("%s",p->sex); break;
case 2: printf("新年龄:"); scanf("%d",&p->age); break;
case 3: printf("新出生日期:"); scanf("%s",p->birth); break;
case 4: printf("新地址:"); scanf("%s",p->address); break;
case 5: printf("新电话号码:"); scanf("%s",p->phone); break;
case 6: printf("新mail"); scanf("%s",p->mail); break;
case 7: break;
}
printf("修改后数据如下:\n");
printf("% 6ld% 8s% 6s% 6d% 10s% 10s% 15s% 20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
tp=fopen("xsxxk.txt","w");
for(k=0;k<N;k++)
fprintf(tp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[k].xuehao,s[k].name,s[k].sex,s[k].age,s[k].birth,s[k].address,s[k].phone,s[k].mail);
fclose(tp);
printf("修改已成功!是否继续修改此项目的其他数据:(Y/N)");
char a; scanf("%s",&a);
if(a=='y'||a=='Y') lgl=1;
if(a=='n'||a=='N') lgl=0;
}
printf("是否返回修改其他数据:(Y/N)");
char b;
scanf("%s",&b);
if(b=='y'||b=='Y') lgl1=1;lgl=1;
if(b=='n'||b=='N') lgl1=0;
}}
if(i==0)
{
printf("\n\n对不起!您查询的数据不存在!\n是否返回菜单继续选择修改:(Y/N)");
char c;
scanf("%s",&c);
if(c=='y'||c=='Y') lgl1=1;
if(c=='n'||c=='N') lgl1=0;}
break;
case 2:
printf("请输入要修改的学生姓名:");
scanf("%s",name);
for(p=s;p<s+N;p++)
{
if(strcmp(p->name,name)==0)
{i=1;
int j; //菜单选择项
while(lgl==1)
{system("cls"); /*清屏*/
printf("\n\n");
printf(" |============================|\n");
printf(" |============================|\n");
printf(" | 请选择要修改的项目: |\n");
printf(" |============================|\n");
printf(" | 1.性别 2.年龄 |\n");
printf(" |============================|\n");
printf(" | 3.出生日期 4.地址 |\n");
printf(" |============================|\n");
printf(" | 5.电话号码 6.mail |\n");
printf(" |============================|\n");
printf(" | 7.取消 |\n");
printf(" |============================\n");
printf(" |===========================|\n");
printf("请选择想要修改的项目1-7");
scanf("%d",&j);
switch(j)
{ case 1: printf("新性别:"); scanf("%s",p->sex); break;
case 2: printf("新年龄:"); scanf("%d",&p->age); break;
case 3: printf("新出生日期:"); scanf("%s",p->birth); break;
case 4: printf("新地址:"); scanf("%s",p->address); break;
case 5: printf("新电话号码:"); scanf("%s",p->phone); break;
case 6: printf("新mail"); scanf("%s",p->mail); break;
case 7: break;
}
printf("修改后如下:\n");
printf("% 6ld% 8s% 6s% 6d% 10s% 10s% 15s% 20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
tp=fopen("xsxxk.txt","w");
for(k=0;k<N;k++)
fprintf(tp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[k].xuehao,s[k].name,s[k].sex,s[k].age,s[k].birth,s[k].address,s[k].phone,s[k].mail);
fclose(tp);
printf("修改已成功!是否继续修改此项目的其他数据:(Y/N)");
char d; scanf("%s",&d);
if(d=='y'||d=='Y') lgl=1;
if(d=='n'||d=='N') lgl=0;}
printf("是否返回修改其他数据:(Y/N)");
char e; scanf("%s",&e);
if(e=='y'||e=='Y') lgl1=1; lgl=1;
if(e=='n'||e=='N') lgl1=0;
}}
if(i==0)
{printf("\n\t对不起!您查询的数据不存在!\n是否返回菜单继续选择修改:(Y/N)");
char m; scanf("%s",&m);
if(m=='y'||m=='Y') lgl1=1;
if(m=='n'||m=='N') lgl1=0;}
break;
case 3:
system("cls");
lgl1=0; break;
}}
}
void shanchu() /*删除模块*/
{
system ("color 5F");
int i,j=1,k=0,m=1, scxuehao;
char scxm[8];
struct stu *p;
FILE *tp;
p=s;
system("cls"); /*清屏*/
while(m){
printf(" |===========================|\n");
printf(" | 删除方式 |\n");
printf(" | | |\n");
printf(" | 1:学号 | 2:姓名 |\n");
printf(" | | |\n");
printf(" |===========================|\n");
printf("请选择删除的类型1-2");
scanf("%d",&i);
switch(i)
{case 1:
printf("请输入删除的学生学号:");
scanf("%16d",&scxuehao);
for (k=0;k<N;k++)
{if(scxuehao==p[k].xuehao)
{j=0;
for(;k<N;k++)
p[k]=p[k+1];
N--;
printf("删除成功!");}}
if (j==1)
{printf("没有找到要删除的信息是否继续删除【Y/N】"); char sf; scanf("%s",&sf);if(sf=='Y'||sf=='y') m=1;if(sf=='N'||sf=='n') m=0;}
if (j==0)
{printf("是否继续删除【Y/N】");char sf; scanf("%s",&sf); if(sf=='Y'||sf=='y') m=1;if(sf=='N'||sf=='n') m=0;}
break;
case 2:
printf("请输入删除的姓名:");
scanf("%s",scxm);
for (k=0;k<N;k++)
{if(strcmp(scxm,s[k].name)==0)
{j=0;
for(;k<N;k++)
p[k]=p[k+1];
N--;
printf("删除成功!\n");}}
if (j==1)
{printf("没有找到要删除的信息是否继续删除【Y/N】"); char sf; scanf("%s",&sf); if(sf=='Y'||sf=='y') m=1;if(sf=='N'||sf=='n') m=0;}
if (j==0)
{printf("是否继续删除【Y/N】");char sf; scanf("%s",&sf); if(sf=='Y'||sf=='y') m=1;if(sf=='N'||sf=='n') m=0;}
}}
tp=fopen("xsxxk.txt","w");
for(i=0;i<N;i++)
fprintf(tp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[i].xuehao,s[i].name,s[i].sex,s[i].age,s[i].birth,s[i].address,s[i].phone,s[i].mail);
fclose(tp);
}
void Found() /*查询模块*/
{
system("color CF");
int j=0;
long int xuehao; /*学号*/
char name[10]; /*姓名*/
char sex[4]; /*性别*/
int age; /*年龄*/
char birth[10]; /*出生年月*/
char address[10]; /*地址*/
struct stu *p;
int x;
int lgl=1;
while(lgl==1)
{
int xs=0; //控制查询到的信息显示//
system("cls"); /*清屏*/
printf("\n\n\n");
printf(" |=============================|\n");
printf(" |=============================|\n");
printf(" | 请选择要查询的项目: |\n");
printf(" |=============================|\n");
printf(" | 1.学号 2.姓名 |\n");
printf(" |=============================|\n");
printf(" | 3.性别 4.年龄 |\n");
printf(" |=============================|\n");
printf(" | 5.出生日期 6.地址 |\n");
printf(" |=============================|\n");
printf(" | 7.取消 |\n");
printf(" |=============================|\n");
printf(" |=============================|\n");
printf("请选择想要查询的项目1-7");
scanf("%d",&x);
switch(x)
{
case 1:
printf("请输入查询学号:");
scanf("%ld",&xuehao);
for(p=s;p<s+N;p++)
{if (p->xuehao==xuehao)
{j=1;
if(xs==0)
{printf("查询到的信息如下:\n");
xs++;
printf(" 学号 姓名 性别 年龄 出生年月 地址 电话号码 mail\n");}
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
}
}
if(j==0)
{
printf("\n\n查无此人!\n是否继续查询:(Y/N)");
char a;
scanf("%s",&a);
if(a=='y'||a=='Y') lgl=1;
if(a=='n'||a=='N') lgl=0;
}
if(j==1)
{
j=0; printf("是否继续查询:(Y/N)");
char b;
scanf("%s",&b);
if(b=='y'||b=='Y') lgl=1;
if(b=='n'||b=='N') lgl=0;
}
break;
case 2:
printf("请输入学生姓名:");
scanf("%s",&name);
for(p=s;p<s+N;p++)
{
if (strcmp(p->name,name)==0)
{j=1;
if(xs==0)
{printf("查询到的信息如下:\n");
xs++;
printf(" 学号 姓名 性别 年龄 出生年月 地址 电话号码 mail\n");}
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
}}
if(j==0)
{
printf("\n\n查无此人!\n是否继续查询:(Y/N)");
char c;
scanf("%s",&c);
if(c=='y'||c=='Y') lgl=1;
if(c=='n'||c=='N') lgl=0;
}
if(j==1)
{
j=0;
printf("是否继续查询:(Y/N)");
char d;
scanf("%s",&d);
if(d=='y'||d=='Y') lgl=1;
if(d=='n'||d=='N') lgl=0;
}
break;
case 3:
printf("请输入学生性别:");
scanf("%s",sex);
for(p=s;p<s+N;p++)
{
if (strcmp(p->sex,sex)==0)
{j=1;
if(xs==0)
{
printf("查询到的信息如下:\n");
xs++;
printf(" 学号 姓名 性别 年龄 出生年月 地址 电话号码 mail\n");}
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
}}
if(j==0)
{
printf("\n\n查无此人!\n是否继续查询:(Y/N)");
char e;
scanf("%s",&e);
if(e=='y'||e=='Y') lgl=1;
if(e=='n'||e=='N') lgl=0;
}
if(j==1)
{
j=0;
printf("是否继续查询:(Y/N)");
char l;
scanf("%s",&l);
if(l=='y'||l=='Y') lgl=1;
if(l=='n'||l=='N') lgl=0;
}
break;
case 4:
printf("请输入学生年龄:");
scanf("%d",&age);
for(p=s;p<s+N;p++)
{
if (p->age==age)
{j=1;
if(xs==0)
{
printf("查询到的信息如下:\n");
xs++;
printf(" 学号 姓名 性别 年龄 出生年月 地址 电话号码 mail\n");}
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
}}
if(j==0)
{
printf("\n\n查无此人!\n是否继续查询:(Y/N)");
char u;
scanf("%s",&u);
if(u=='y'||u=='Y') lgl=1;
if(u=='n'||u=='N') lgl=0;
}
if(j==1)
{
j=0;
printf("是否继续查询:(Y/N)");
char q;
scanf("%s",&q);
if(q=='y'||q=='Y') lgl=1;
if(q=='n'||q=='N') lgl=0;
}
break;
case 5:
printf("请输入学生出生日期:");
scanf("%s",birth);
for(p=s;p<s+N;p++)
{
if (strcmp(p->birth,birth)==0)
{j=1;
if(xs==0)
{
printf("查询到的信息如下:\n");
xs++;
printf(" 学号 姓名 性别 年龄 出生年月 地址 电话号码 mail\n");}
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
}
}
if(j==0)
{
printf("\n\n查无此人!\n是否继续查询:(Y/N)");
char a;
scanf("%s",&a);
if(a=='y'||a=='Y') lgl=1;
if(a=='n'||a=='N') lgl=0;
}
if(j==1)
{
j=0;
printf("是否继续查询:(Y/N)");
char b;
scanf("%s",&b);
if(b=='y'||b=='Y') lgl=1;
if(b=='n'||b=='N') lgl=0;
}
break;
case 6:
printf("请输入学生地址:");
scanf("%s",address);
for(p=s;p<s+N;p++)
{
if (strcmp(p->address,address)==0)
{j=1;
system("cls");
if(xs==0)
{
printf("查询到的信息如下:\n");
xs++;
printf(" 学号 姓名 性别 年龄 出生年月 地址 电话号码 mail\n");}
printf("% -10ld% -9s% -5s% -6d% -11s% -11s% -15s% -20s\n",p->xuehao,p->name,p->sex,p->age,p->birth,p->address,p->phone,p->mail);
}}
if(j==0)
{
printf("\n\n查无此人!\n是否继续查询:(Y/N)");
char a;
scanf("%s",&a);
if(a=='y'||a=='Y') lgl=1;
if(a=='n'||a=='N') lgl=0;
}
if(j==1)
{
j=0;
printf("是否继续查询:(Y/N)");
char b;
scanf("%s",&b);
if(b=='y'||b=='Y') lgl=1;
if(b=='n'||b=='N') lgl=0;
}
break;
case 7: lgl=0;
break;
}}
}
void paixu() /*排序模块*/
{
system("color 30");
int i,j;
FILE *tp;
struct stu temp;
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(s[i].xuehao>s[j].xuehao)
{
temp=s[j];
s[j]=s[i];
s[i]=temp;
}
}
}
tp=fopen("xsxxk.txt","w");
for(i=0;i<N;i++)
fprintf(tp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[i].xuehao,s[i].name,s[i].sex,s[i].age,s[i].birth,s[i].address,s[i].phone,s[i].mail);
fclose(tp);
}
void Exit()
{
system ("color 3F");
system("cls");
printf(" ========================================|\n");
printf(" | |\n");
printf(" | 学生信息管理系统 |\n");
printf(" | |\n");
printf(" | 制作人:周韬 周远航 |\n");
printf(" | |\n");
printf(" | 期待您的再次使用 ! |\n");
printf(" | |\n");
printf(" | 湖南工业大学通信1803 |\n");
printf(" | |\n");
printf(" |=======================================|\n");
}
void help()
{
system("color 57");
system("cls");
printf("| 您好! |\n");
printf("|=========================================================================|\n");
printf("| |\n");
printf("| 欢迎进入学生信息管理系统! |\n");
printf("| |\n");
printf("| 请按照提示输入数字选择你要进行的操作! |\n");
printf("| |\n");
printf("| 改变学生信息会自动保存! |\n");
printf("| |\n");
printf("| 感谢您的使用! |\n");
printf("| |\n");
printf("|=========================================================================|\n");
}
int main()
{
system("color 9F");
int k;
READ();
k=1;
while(k)
{
system("cls"); /*清屏*/
printf("\n\n");
printf(" |==========================================|\n");
printf(" | |\n");
printf(" | 欢迎使用学生信息管理系统 |\n");
printf(" | |\n");
printf(" |==========================================|\n");
printf(" | |\n");
printf(" | 湖南工业大学 |\n");
printf(" | |\n");
printf(" | 请选择你要进行的操作 |\n");
printf(" | |\n");
printf(" |==========================================|\n");
printf(" | |\n");
printf(" | 1:帮助 2:添加信息 |\n");
printf(" | |\n");
printf(" | 3:修改信息 4:删除信息 |\n");
printf(" | |\n");
printf(" | 5:查询信息 6:显示所有信息 |\n");
printf(" | |\n");
printf(" | 7.排序 8.退出 |\n");
printf(" | |\n");
printf(" | 2019.1.05 |\n");
printf(" |==========================================|\n");
printf("\n\n 请输入您的选择: ");
scanf("%d",&k);
switch(k)
{
case 1:help();break;
case 6:Display(); break;
case 2:Add(); Display(); break;
case 3:xiugai(); Display(); break;
case 4:shanchu(); Display(); break;
case 5:Found();break;
case 7:paixu(); Display(); break;
case 8:Exit(); k=0; break;
return 0;
}
printf("\n\n按任意键继续!\n");
getch();
}
WRITE();
}

Binary file not shown.
Loading…
Cancel
Save