#include <stdio.h>
#include <string.h>
#include<stdlib.h>
struct student
{
int num;
char name[20];
int age;
char sex[4];
char note[30];
};
int n=0;
struct student stu[100];
struct student *p;
bool Check(char ps[6]) //密码验证
{
FILE *fp;
char ch;
char a[7]={""};
int i=0;
if((fp=fopen("c:\\1.txt","r"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
ch=fgetc(fp);
while(ch!=EOF&&i<6)
{
a[i]=ch;
ch=fgetc(fp);
i++;
}
a[6]='\0';
if(!strcmp(ps,a))
{
return true;
}
else
{
printf("密码错误\n");
return false;
}
fclose(fp);
}
void Save(struct student *arr,int n)//学生基本信息保存
{
FILE *fp;
fp=fopen("c:\\student.txt","w+");
if(fp==NULL)
{
printf("文件不存在!\n");
exit(0);
}
fwrite(stu,sizeof(struct student)*n,n,fp);
fclose(fp);
}
void Get()//录入函数
{
int y;
if(n==0)
p=stu;
do
{
printf("--------------------\n");
printf("请输入学生的学号:");
scanf("%d",&p->num);
printf("请输入学生的姓名:");
scanf("%s",p->name);
printf("请输入学生的年龄:");
scanf("%d",&p->age);
printf("请输入学生的性别:");
scanf("%s",p->sex);
printf("请输入备注:");
scanf("%s",p->note);
n++;
p++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:");
scanf("%d",&y);
}
while(y==1);
printf("提示:输入完毕!你一共输入%d个\n",n);
}
void Display()//浏览函数
{
int i;
if(n!=0)
{
printf("学生总数:%d\n", n);
printf("学号\t姓名\t年龄\t性别\t备注\n");
printf("-----------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
}
else printf("提示:无学生数据,请输入数据!");
}
void fileread()//??????????????
{
int i;
FILE*fp;
if((fp=fopen("c:\\student.txt","r"))==NULL)
{
printf("文件不存在!\n");
exit(0);
}
for(i=0;i<n;i++)
{
fread(stu,sizeof(struct student)*n,n,fp);
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
}
fclose(fp);
}
void Search()//查询函数
{
int c;
int w,x,i,j=0;
char name[20],sex[20];
if(n!=0)
{
do
{
printf("\n");
printf("|--------------------|\n");
printf("| 按学号查询 请按 1 |\n");
printf("| 按姓名查询 请按 2 |\n");
printf("| 按性别查询 请按 3 |\n");
printf("| 按年龄查询 请按 4 |\n");
printf("| 取消 请按 0 |\n");
printf("|--------------------|\n");
printf("请输入您的选择:");
scanf("%d", &c);
switch(c)
{
case 0:break;
case 1:
printf("请输入学生的学号;");
scanf("%d", &w);
printf("\n");
for(i=0;i<n;i++)
if(stu[i].num==w)
{
printf("\n学号\t姓名\t年龄\t性别\t备注\n");
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
j=1;
}
if(j==0)
printf("提示:没有该学生记录,请核对!");
break;
case 2:
printf("请输入学生的姓名:");
scanf("%s", name);
printf("\n");
for(i=0;i<n;i++)
if(strcmp(name,stu[i].name)==0)
{
printf("\n学号\t姓名\t年龄\t性别\t备注\n");
j=1;
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
}
if(j==0)
printf("提示:没有该学生记录,请核对!");
break;
case 3:
printf("请输入学生的性别:");
scanf("%s", sex);
printf("\n");
for(i=0;i<n;i++)
if(strcmp(sex,stu[i].sex)==0)
{
printf("\n学号\t姓名\t年龄\t性别\t备注\n");
j=1;
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
}
if(j==0)
printf("提示:没有该学生记录,请核对!");
break;
case 4:
printf("请输入学生的年龄:");
scanf("%d",&x);
printf("\n");
for(i=0;i<n;i++)
if(stu[i].age==x)
{
printf("\n学号\t姓名\t年龄\t性别\t备注\n");
j=1;
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
}
if(j==0)
printf("提示:没有该学生记录,请核对!");
break;
default:
printf("\n提示:无效选项!");
break;
}
}
while(c!= 0);
}
else printf("提示:无学生数据,请输入数据!");
return;
}
void Modify()//修改函数
{
long int num;
int i,j,c;
if(n!=0)
{
printf("请输入您要修改的学生的学号:");
scanf("%d", &num);
printf("\n");
for(i=0;i<n;i++)
if(stu[i].num==num)
j=i;
do
{
printf("请选择您要修改的学生的信息内容:\n");
printf("|----------------------|\n");
printf("| 姓名 请按 1 |\n");
printf("| 年龄 请按 2 |\n");
printf("| 性别 请按 3 |\n");
printf("| 学号 请按 4 |\n");
printf("| 备注 请按 5 |\n");
printf("| 取消 请按 0 |\n");
printf("|----------------------|\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case 0:break;
case 1:printf("请输入新姓名:");
scanf("%s",stu[j].name);
break;
case 2:printf("请输入新年龄:");
scanf("%d",&stu[j].age);
break;
case 3:printf("请输入新性别:");
scanf("%s",stu[j].sex);
break;
case 4:printf("请输入新学号:");
scanf("%d",&stu[j].num);
break;
case 5:printf("请输入新备注:");
scanf("%s",stu[j].note);
break;
default:
printf("\n无效选项!");
break;
}
}
while(c!= 0);
}
else
printf("提示:无学生数据,请输入数据!");
}
void Delete()//删除函数
{
long int num;
int i,j,e;
if(n!=0)
{
printf("学号\t姓名\t年龄\t性别\t备注\n");
printf("-----------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%d\t%s\t%d\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].note);
printf("请输入您要删除的学生的学号:");
scanf("%d", &num);
printf("\n");
for(i=0;i<n;i++)
if(num==stu[i].num)
j=i;
if(j!=(n-1))
{
for(e=i-1;e<n;e++,j++)
{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].sex,stu[j+1].sex);
stu[j].age=stu[j+1].age;
strcpy(stu[j].note,stu[j+1].note);
n--;p--;
}
}
else
{n--;p--;}
printf("提示:删除完毕!");
}
else
printf("提示:无学生数据,请输入数据!");
}
void main()
{
char ps[6];
bool flag=false;
printf("请输入密码:\n");
scanf("%s",ps);
flag=Check(ps);
if(flag)
{
int z;
printf("+---------------------------+\n");
printf("| 欢迎使用学生信息管理系统 |\n");
printf("+---------------------------+\n");
printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");
do
{
printf("\n\t|------------------------------|\n");
printf("\t| 主菜单 |\n");
printf("\t|------------------------------|\n");
printf("\t| [1]----录入学生信息 |\n");
printf("\t| [2]----浏览学生信息 |\n");
printf("\t| [3]----查询学生信息 |\n");
printf("\t| [4]----删除学生信息 |\n");
printf("\t| [5]----修改学生信息 |\n");
printf("\t| [0]----退出系统并保存 |\n");
printf("\t|------------------------------|\n");
printf("请输入您的选择:");
scanf("%d", &z);
switch(z)
{
case 0 :Save(stu,n);break;
case 1 :Get();break;
case 2 :Display();break;
case 3 :Search();break;
case 4 :Delete();break;
case 5 :Modify();break;
default:printf("\n无效选项!");
}
}
while(z!= 0);
}
}
Yucool01
- 粉丝: 34
- 资源: 4600
最新资源
- 基于Java与Kotlin的OCR图片文字识别与剪裁功能设计源码
- 基于Java和Shell的招投标系统设计源码
- 泊松融合实例2025源代码
- 基于Tauri+Vue3的桌面即时通讯应用HuLa设计源码
- 基于Vue框架的uniapp加盟商信息录入小程序设计源码
- 双馈电机并网超局部无模型预测控制
- COMSOL多孔介质流固耦合作用下注浆数值模拟 Comsol5.6模拟
- 基于Linux+Nginx+Golang+PHP+React+MySQL+Redis的抖音小说小程序设计源码
- FPGA纯verilog手写数字多道脉冲幅度分析器(DMCA),提供源码工程压缩包和技术服务支持
- 12bit 100M,两级PipeSAR ADC设计,6bit,+8bit,两bit冗余,DEC电路,基于TSPC的超低功耗动态逻辑电路,附赠说明文档,模拟IC,pipeline sar adc设计
- 基于知识图谱技术的苹果病虫害智能系统设计源码
- 基于stackexchange.redis的redis客户端封装设计源码
- 基于C语言的简易通讯录设计源码
- 基于Python的简易股票与外汇价格生成器设计源码
- 基于PHP的MVC和RESTful架构的超轻量级MiniFramework设计源码
- 基于Vue框架的宠物领养小程序与流浪动物救助系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
前往页