C语言的学生管理系统
- 学生的信息包括
- 姓名
- 性别
- 年龄
- 籍贯
- 学号
- 班级
- 院系
- 使用结构体数组存储学生的信息
- 实现学生信息的录入
- 实现学生信息的查询
- 实现学生信息的导出
- 其他功能请自行拓展,emmm
录入信息
主要代码
// 录入函数
void entering()
{
int i;
for (i = 0; i < N; ++i)
{
printf("\n\n---------录入学生 %d 的信息---------\n\n", i + 1);
inputStr(S[i].name, "姓名");
inputStr(S[i].gender, "性别");
inputNum(&(S[i].age), "年龄");
inputStr(S[i].place, "籍贯");
inputStr(S[i].number, "学号");
inputStr(S[i].clazz, "班级");
inputStr(S[i].department, "院系");
}
}
信息查询
主要代码
// 查询函数
void query()
{
int i;
char number[10];
printf("\n\n输入需要查询的学号:");
scanf("%s", number);
for (i = 0; i < N; ++i)
{
if (strcmp(number, S[i].number) == 0)
{
printf("\n--------学生信息--------\n");
outputStr(S[i].name, "姓名");
outputStr(S[i].gender, "性别");
outputNum((S[i].age), "年龄");
outputStr(S[i].place, "籍贯");
outputStr(S[i].number, "学号");
outputStr(S[i].clazz, "班级");
outputStr(S[i].department, "院系");
printf("\n------------------------\n");
break;
}
}
if (i == N)
{
printf("\n未查找到该学生的信息\n");
}
printf("按任意键继续...");
getchar();
getchar();
}
导出信息
主要代码
// 导出函数
void export()
{
FILE *f;
int i;
f = fopen("export.txt", "w");
printf("\n-------------------------\n导出中,请等待...\n");
for (i = 0; i < N; ++i)
{
fprintf(f, "\n--------学生信息 %d--------\n", i + 1);
exportStr(f, S[i].name, "姓名");
exportStr(f, S[i].gender, "性别");
exportNum(f, (S[i].age), "年龄");
exportStr(f, S[i].place, "籍贯");
exportStr(f, S[i].number, "学号");
exportStr(f, S[i].clazz, "班级");
exportStr(f, S[i].department, "院系");
fprintf(f, "\n---------------------------\n");
}
fclose(f);
printf("\n学生信息已导出为“export.txt”\n-------------------------\n按任意键继续...");
getchar();
}
全部代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
char name[10];
char gender[10];
int age;
char place[10];
char number[10];
char clazz[10];
char department[10];
}stu, * s;
#define N 3
// 学生数组
struct student S[N];
// 输入字符串
void inputStr(char * c, char * tips);
// 输入数字
void inputNum(int * n, char * tips);
// 录入函数
void entering();
// 查询函数
void query();
// 导出函数
void export();
// 输出字符串
void outputStr(char * c, char * tips);
// 输出数字
void outputNum(int n, char * tips);
// 写出字符串信息
void exportStr(FILE * f, char * c, char * tips);
// 输出数字信息
void exportNum(FILE * f, int n, char * tips);
int main()
{
int op; // 操作方式
int loop = 1; // 是否循环
while (loop)
{
system("cls");
printf("\n============= 学生管理系统 =============\n");
printf("\n0:退出系统 \t1:录入信息 \t2:查询信息 \t3:导出信息\n");
printf("\n请输入你的选择:");
scanf("%d", &op);
getchar();
switch(op)
{
case 0: // 退出
loop = 0;
break;
case 1: // 录入信息
entering();
break;
case 2: // 查询
query();
break;
case 3: // 导出
export();
break;
default: break;
}
printf("\n感谢使用本系统,系统已退出\n");
}
}
// 输入字符串
void inputStr(char * c, char * tips)
{
printf("请输入%s:", tips);
gets(c);
}
// 输入数字
void inputNum(int * n, char * tips)
{
printf("请输入%s:", tips);
scanf("%d", n);
getchar();
}
// 录入函数
void entering()
{
int i;
for (i = 0; i < N; ++i)
{
printf("\n\n---------录入学生 %d 的信息---------\n\n", i + 1);
inputStr(S[i].name, "姓名");
inputStr(S[i].gender, "性别");
inputNum(&(S[i].age), "年龄");
inputStr(S[i].place, "籍贯");
inputStr(S[i].number, "学号");
inputStr(S[i].clazz, "班级");
inputStr(S[i].department, "院系");
}
}
// 输出字符串信息
void outputStr(char * c, char * tips)
{
printf("%s: %s\n", tips, c);
}
// 输出数字信息
void outputNum(int n, char * tips)
{
printf("%s: %d\n", tips, n);
}
// 写出字符串信息
void exportStr(FILE * f, char * c, char * tips)
{
fprintf(f, "%s: %s\n", tips, c);
}
// 输出数字信息
void exportNum(FILE * f, int n, char * tips)
{
fprintf(f, "%s: %d\n", tips, n);
}
// 查询函数
void query()
{
int i;
char number[10];
printf("\n\n输入需要查询的学号:");
scanf("%s", number);
for (i = 0; i < N; ++i)
{
if (strcmp(number, S[i].number) == 0)
{
printf("\n--------学生信息--------\n");
outputStr(S[i].name, "姓名");
outputStr(S[i].gender, "性别");
outputNum((S[i].age), "年龄");
outputStr(S[i].place, "籍贯");
outputStr(S[i].number, "学号");
outputStr(S[i].clazz, "班级");
outputStr(S[i].department, "院系");
printf("\n------------------------\n");
break;
}
}
if (i == N)
{
printf("\n未查找到该学生的信息\n");
}
printf("按任意键继续...");
getchar();
getchar();
}
// 导出函数
void export()
{
FILE *f;
int i;
f = fopen("export.txt", "w");
printf("\n-------------------------\n导出中,请等待...\n");
for (i = 0; i < N; ++i)
{
fprintf(f, "\n--------学生信息 %d--------\n", i + 1);
exportStr(f, S[i].name, "姓名");
exportStr(f, S[i].gender, "性别");
exportNum(f, (S[i].age), "年龄");
exportStr(f, S[i].place, "籍贯");
exportStr(f, S[i].number, "学号");
exportStr(f, S[i].clazz, "班级");
exportStr(f, S[i].department, "院系");
fprintf(f, "\n---------------------------\n");
}
fclose(f);
printf("\n学生信息已导出为“export.txt”\n-------------------------\n按任意键继续...");
getchar();
}
效果截图
录入
查询
导出