一.题目分析(学生信息管理系统)
做一个学生信息管理系统,首先定义一个结构体。结构体成员分别有:学号,姓名,年龄,性别等。然后分别实现帮助、查询学生信息、增加学生信息、显示当前学生信息等若干功能。整个程序中使用n这个全局变量来控制学生信息管理系统中的人数。在menu()方法中,用一个循环来一直输出这个学生管理系统的界面,直到输入8才结束
二.关键算法构造
N-S盒图:
流程图:
在这里插入图片描述
三.程序实现
源代码:
#include<stdio.h> /I/O函数/
#include<stdlib.h> /其它说明/
#include<string.h> /字符串函数/
#define LEN 15 /* 学号和姓名最大字符数,实际请更改*/
#define N 50 /* 最大学生人数,实际请更改*/
struct student{ //定义一个学生结构体
char code[20]; // 学号
char name[20]; // 姓名
int age; //年龄
char sex[20]; //性别
float score[3]; //3门课程成绩
};
struct student students[N]; //定义一个学生数组
int n=0;// n代表当前记录的学生人数
int m;
void help()//帮助
{
while(true)
{
printf("\n0.欢迎使用系统帮助!\n");
printf("\n1.初次进入系统后,请先选择增加学生信息;\n");
printf("\n2.按照菜单提示键入数字代号;\n");
printf("\n3.增加学生信息后,切记保存;\n");
printf("\n4.谢谢您的使用!\n");
printf("\n 退出帮助请按0\n");
int a;
scanf("%d",&a);
switch(a)
{
case 0:
return;//退出当前函数
default:
printf(“输出错误”);
}
}
}
void refresh()//刷新
{
system(“cls”);//清屏
}
void seek() //查找
{
int i,item,flag;
char s1[20];
printf("------------------\n");
printf("-----1.按学号查询-----\n");
printf("-----2.按姓名查询-----\n");
printf("-----3.退出本菜单-----\n");
printf("------------------\n");
while(1)
{
printf(“请选择子菜单编号:”);
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf(“请输入要查询的学生的学号:\n”);
scanf("%s",&s1);//存放输入的字符串
getchar();
for(i=0;i<n;i++)
if(strcmp(students[i].code,s1)0)//验证俩个字符串是否相等 { flag=1;//判断是否找到该学生 printf(“学生学号 学生姓名 年龄 性别 C语言成绩 高等数学 大学英语成绩\n”); printf("--------------------------------------------------------------------\n"); printf("%6s %7s %7d %6s %9.1f %10.1f %10.1f\n",students[i].code,students[i].name,students[i].age, students[i].sex,students[i].score[0],students[i].score[1],students[i].score[2]); } if(flag
printf(“该学号不存在!\n”);
break;
case 2:
printf(“请输入要查询的学生的姓名:\n”);
scanf("%s",&s1);
for(i=0;i<n;i++)
if(strcmp(studen