Advertisement

C语言:简单实现学生管理系统

阅读量:

细节要求:能够进行学生信息的录入;查询;显示功能。(增删查改的实现)

支持执行的功能包括:1. 读取文件操作;2. 建立学生数据库记录;3. 呈现学生信息列表;4. 检索学生的详细信息;5. 终止运行流程。

代码参考:

#include <stdio.h>
#include <stdlib.h>

struct student
{
int no;
char name[20];
char sex;
int age;
};

完成显示菜单;
获取学生信息;
输出学生数据。

int main(int argc, char* argv[])
{
char ch;
char szPath[100] = "";
char szName[20] = "";
unsigned char find = 0;
FILE *fp = 0;
struct student stu = {};
unsigned int n;

display_menu();
scanf("%c",&ch);
while(ch != 0)
{
switch(ch)
{
case'1':
printf("加载文件..:\n请输入要加载的文件:");
scanf("%s",szPath);
fp = fopen(szPath,"ab+");
if(fp!=NULL)
{
printf("文件加载成功!\n");
system("pause");
}
break;
case '2':
printf("录入学生信息..\n");
if(!fp)
{
printf("请先加载文件后再使用!\n");
system("pause");
break;
}
stu_input(&stu);
fwrite(&stu,sizeof(struct student),1,fp);
break;
case'3':
printf("显示学生信息..\n");
if(!fp)
{
printf("请先加载文件后再使用!\n");
system("pause");
break;
}
rewind(fp);
n = fread(&stu,sizeof(struct student),1,fp);
while(n>0)
{
stu_output(stu);
n = fread(&stu,sizeof(struct student),1,fp);
}
break;
case'4':
printf("查找学生信息..\n");
if(!fp)
{
printf("请先加载文件后再使用!\n");
system("pause");
break;
}
rewind(fp);
printf("输入要查找的学生姓名:");
scanf("%s",szName);
n = fread(&stu,sizeof(struct student),1,fp);
while(n>0)
{
if(strcmp(stu.name,szName)==0)
{
find++;
stu_output(stu);
}
n = fread(&stu,sizeof(struct student),1,fp);
}
if(find == 0)
{
printf("不存在学生【%s】\n",szName);
system("pause");
}
else
{
printf("找到%d条信息、n",find);
system("pause");
find=0;
}
break;
default:
exit(0);
}
flushall();
display_menu();
scanf("%c",&ch);
}
return 0;
}

void display_menu()
{
char str[100];
FILE *fp;
char *szChar;

被用于打开配置文件 config.cfg 的读取操作。
szChar 被赋值为从 str 中读取长度为 100 的字符。
当 szChar 不等于 NULL 时执行循环。
执行以下操作:
打印 %s 字符串到标准输出流中。
szChar 被赋值为从 str 中再次读取长度为 100 的字符。

}
fclose(fp);

}

int stu_input(struct student *pstu)
{
printf("学号:");
scanf("%d",&pstu->no);
printf("姓名:");
scanf("%s",pstu->name);
getchar();
printf("性别(F,M):");
scanf("%c",&pstu->sex);
printf("年龄:");
scanf("%d",&pstu->age);
return 0;
}
int stu_output(struct student stu)
{
printf("%06d,%10s,%2s,%2d\n",
stu.no,
stu.name,
stu.sex=='F'?"女":"男",
stu.age);
return 0;

}

全部评论 (0)

还没有任何评论哟~