用顺序表实现一个简单的学生信息管理系统,包括如下功能:
(1) 创建学生信息
(2) 输出学生输出
(3) 插入学生信息
(4) 删除学生信息(指定学号或者序号)
(5) 按照给定的学号查找学生信息
(6)修改学生信息
开发语言:C语言
开发工具:Dev c++
开发者:呵呵up
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
typedef struct stu
{
char no[10];
char name[5];
float score;
}STU;
typedef struct stuList
{
STU data[MAX];
int length;
}List;
void info_input(List *p)//创建学生信息
{
int i,n;
printf("请输入总人数:");
scanf("%d",&n);
getchar();
for(i=0;i<n;i++){
printf("请输入第%d个学生信息:\n",i+1);
printf("学号:");
scanf("%s",p->data[i].no);
printf("姓名:");
scanf("%s",p->data[i].name);
printf("成绩:");
scanf("%f",&p->data[i].score);
p->length++;
}
}
void info_output(List *p)//输出学生信息
{
int i;
printf("%10s%10s%10s\n","学号","班级","姓名");
for(i=0;i<p->length;i++){
printf("%10s",p->data[i].no);
printf("%10s",p->data[i].name);
printf("%10.0f\n",p->data[i].score);
}
}
void info_insert(List *p) //插入学生信息
{
int i;
int pos;
printf("请输入想要插入的位置;");
scanf("%d",&pos);
for(i=p->length-1;i>=pos-1;i--){
p->data[i+1]=p->data[i];
}
printf("请输入新学生的信息:\n");
printf("学号:");
scanf("%s",p->data[pos-1].no);
printf("姓名:");
scanf("%s",p->data[pos-1].name);
printf("成绩:");
scanf("%f",&p->data[pos-1].score);
p->length++;
}
void info_delete(List *p)
{
int i,pos;
printf("请输入想要删除的位置:");
scanf("%d",&pos);
for(i=pos;i<p->length;i++){
p->data[i-1]=p->data[i];
}
p->length--;
}
void info_modify(List *p) //修改学生信息
{
int i,flag;
STU e;
printf("请输入你要修改的学生信息学号:");
scanf("%s",e.no);
for(i=0;i<p->length;i++){
flag=strcmp(p->data[i].no,e.no);
if(flag==0){
printf("请输入修改后的学生信息:\n");
printf("学号:");
scanf("%s",p->data[i].no);
printf("姓名:");
scanf("%s",p->data[i].name);
printf("成绩:");
scanf("%f",&p->data[i].score);
}
}
}
void info_seek(List *p) //根据学号查找学生信息
{
int i,flag;
STU e;
printf("请输入你要查找的学生学号:");
scanf("%s",e.no);
for(i=0;i<p->length;i++){
flag=strcmp(p->data[i].no,e.no);
if(flag==0){
printf("该学生的信息为:\n");
printf("%10s%10s%10s\n","学号","姓名","成绩");
printf("%10s",p->data[i].no);
printf("%10s",p->data[i].name);
printf("%10.0f\n",p->data[i].score);
}
}
}
int main()
{
List stu;
stu.length=0;
info_input(&stu);
printf("-------------------------------\n");
info_output(&stu);
printf("-------------------------------\n");
info_modify(&stu);
printf("-------------------------------\n");
info_output(&stu);
printf("-------------------------------\n");
info_seek(&stu);
printf("-------------------------------\n");
info_output(&stu);
printf("-------------------------------\n");
info_delete(&stu);
printf("-------------------------------\n");
info_output(&stu);
printf("-------------------------------\n");
info_insert(&stu);
printf("-------------------------------\n");
info_output(&stu);
return 0;
}
运行结果如下图: