📄 text1.c
字号:
//#include "StdAfx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
FILE *fp;
struct record
{
char num[20];
char name[20];
char classes[20];
char sex[10];
char chinese[520];
char maths[520];
char english[520];
}student[500];
int n;//外部变量n为文件中的纪录数
void save();//保存函数 即写入文件
void mainmemu();//主菜单
void amend();//修改文件
void del();//删除菜单
void delall();//删除全部函数
void delone();//个别删除菜单
void search();
void add();
int main(int argc, char* argv[])
{
save();
while (1)
mainmemu();
return 1;
}
void mainmemu()//主菜单
{
int choice;
system ("cls");
printf ("\n\t\t******************学生信息管理系统****************");
printf ("\n\t\t* *");
printf ("\n\t\t* 1.添加学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 2.修改学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 3.删除学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 4.查询学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 5.保存 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 6.退出 *");
printf ("\n\t\t**************************************************");
printf ("\n\n\t请输入数字进入对应菜单:");
getch ();
choice=getch ();
switch(choice)
{
case '1': add();break;
case '2': amend();break;
case '3': del(); break;
case '4': search();break;
case '5': save();break;
case '6': exit(0);break;
default : mainmemu();
}
}
void save ()
{
if ((fp=fopen("student.bin","rb"))==NULL)
{
printf ("\n\t\t学生信息文件不存在");
if ((fp=fopen("student.bin","wb"))==NULL)
{
printf ("\n\t\t建立文件失败");
exit (0);
}
else
{
printf ("\n\t\t学生信息文件已经建立");
printf ("\n\t\t请按任意键进入主菜单:");
getch ();
return ;
}
exit (0);
}
fseek (fp,0,2);//文件位置指针移动到文件末尾
if (ftell (fp)>0)//文件不为空
{
rewind (fp);//文件位置指针移动到文件开始位置
for (n=0;!feof(fp)&&fread(&student[n],sizeof (struct record),1,fp);n++);
printf ("\n\t\t文件导入成功 ");
printf ("\n\t\t请按任意键返回主菜单");
getch ();
return;
}
printf ("\n\t\t文件导入成功");
printf ("\n\t\t学生信息文件中无任何记录");
printf ("\n\t\t请按任意键返回主菜单");
getch ();
return;
}
void amend ()//修改函数 输入学生学号删除 再添加
{
char c;
del ();
printf ("是否添加新信息? (Y/N)");
getch ();
c=getch();
if (c=='y'||c=='Y')
add();
else
return ;
}
void del() //删除菜单
{
int z;
system("cls");
printf("\n\t\t******************删除菜单******************");
printf("\n\t\t*****************1.删除全部*****************");
printf("\n\t\t*****************2.删除个别*****************");
printf("\n\t\t********************************************");
getch ();
z=getch ();
switch(z)
{
case '1': delall(); break;
case '2':delone();break;
default : mainmemu();
}
}
void delall()//删除所有
{
char q;
printf("\n\t\t确认删除所有记录?(y/n)");
getch();
q=getch();
if(q=='y'||q=='Y')
{
fclose (fp);
if((fp=fopen("student.bin","wb"))==NULL)
{
printf ("\n\t\t不能打开文件,删除失败");
save();
}
n=0;
printf ("\n\t\t记录已删除,按任意键返回主菜单");
getch ();
return ;
}
else
return ;
}
void delone()//个别删除
{
char mingzi[20];
int u;
printf ("请输入要删除学生姓名:");
scanf ("%S",mingzi);
for (u=0;u<n;u++)
{
if(strcmp(mingzi,student[u].name)) del();
}
}
void search()
{
char mingzi[20];
int u;
printf ("请输入要查询学生姓名:");
scanf ("%S",mingzi);
for (u=0;u<n;u++)
{
if(strcmp(mingzi,student[u].name))
{
printf ("\n学号:%s",student[n].num);
printf ("\n姓名:%s",student[n].name);
printf ("\n班级:%s",student[n].classes);
printf ("\n性别:%s",student[n].sex);
printf ("\n语文成绩:%s",student[n].chinese);
printf ("\n数学成绩:%s",student[n].maths);
printf ("\n英语成绩:%s",student[n].english);
}
}
return;
}
void add()//添加函数
{
system("CLS");
printf ("\n\t\t\t**********请输入学生信息********");
printf ("\n请输入学号:");
scanf ("%s",student[n].num);
printf ("\n请输入姓名:");
scanf ("%s",student[n].name);
printf ("\n请输入班级:");
scanf ("%s",student[n].classes);
printf ("\n请输入性别:");
scanf ("%s",student[n].sex);
printf ("\n请输入语文成绩:");
scanf ("%s",student[n].chinese);
printf ("\n请输入数学成绩:");
scanf ("%s",student[n].maths);
printf ("\n请输入英语成绩:");
scanf ("%s",student[n].english);
n++;
printf("\n\t\t是否继续添加?(Y/N):");
if (getch()=='y'||getch()=='Y')
add();
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -