教务处管理系统(线性链表)

此程序是使用用线性链表写的,即用数组结构体写的!!!

多的废话不说!!!看程序!!!!

#include<stdio.h>
#include<string.h>
#include<iostream>
#define MaxSize 100
using namespace std;

/*学生信息结构体定义*/
typedef struct{
 int stuno;
 char name[10];
 int score;
 int age;
}Student;

typedef struct{
 Student data[MaxSize];
 int length;
}SqList;


/*输入学生数据*/
SqList Create_List(SqList L)
{
  int i=0;
 SqList s;
 s=L;
 printf("请输入您要输入的学生的个数:\n");
 cin>>s.length;
 for(i=0;i<s.length;i++)
 {
 
 printf("请输入第%d学生学号:\n",i+1);
 scanf("%d",&s.data[i].stuno);
 printf("请输入第%d学生姓名:\n",i+1);
 scanf("%s",&s.data[i].name);
 printf("请输入第%d学生成绩:\n",i+1);
 scanf("%d",&s.data[i].score);
 printf("请输入第%d学生年龄:\n",i+1);
 scanf("%d",&s.data[i].age);
 }
 printf("已经存储的学生信息如下:\n");
 printf("------------------------------------\n");
 for(i=0;i<s.length;i++)
 {  printf("学号  姓名  分数   年龄\n");
  printf("%d    %s     %d     %d \n",s.data[i].stuno,s.data[i].name,s.data[i].score,s.data[i].age);
 }
 printf("------------------------------------\n");
 printf("恭喜您,用户数据已经初始化了\n");
 return s;
}
 


/*菜单选项功能实现函数*/
void menu()
 
{
 printf("\n");
 printf("\n");
 printf("-----------------------------------------------------\n");
 printf("\t|\t0. 退出    程序     |\n");
 printf("\t|\t1. 创建学生信息     |\n");
 printf("\t|\t2. 添加学生信息     |\n");
 printf("\t|\t3. 查找学生信息     |\n");
 printf("\t|\t4. 删除学生信息     |\n");
 printf("\t|\t5. 所有学生信息     |\n");
 printf("-----------------------------------------------------\n");
 printf("\t\t请输入(0--5)的数字:");
}
 


SqList Insert_List(SqList L)//添加学生信息
{
 int i,num;
 SqList s;
 s=L;
 if(s.length==MaxSize)
 {
  printf("表已满,不能插入。\n");
  return L;
 }
 printf("请输入您要插入的同学的学号:\n");
 cin>>num;
 for(i=0;i<s.length;i++)
 if(L.data[i].stuno==num)
 {
  printf("学号已存在。\n");
  return L;
 }
 
  printf("请输入您要插入的同学的各项信息:\n");
  printf("学号  姓名  分数   年龄\n");
  scanf("%d%s%d%d",&s.data[L.length].stuno,&s.data[L.length].name,&s.data[L.length].score,&s.data[L.length].age);
  s.length++;
  printf("添加成功。\n");
 return s;
}
 

/*删除学生数据*/
SqList Delete_List(SqList L)
{
 int i=0,n=0;
     SqList s;
     s=L;
 printf("请输入要删除的学号:");
 scanf("%d",&n);
    while(i<=s.length-1)
 {
  if(n==s.data[i].stuno)
  {
   break;
  }
  i++;
 }
 if(s.data[i].stuno==n)
 {
  for(;i<=s.length-1;i++)
    s.data[i]=s.data[i+1];
   s.length--;
   printf("删除成功.\n");
 }
 else
 {
  printf("该生不存在.\n");
 }
 return s;
}


int Locate_List(SqList L)//查询学生的信息
{
 int no,i=0;
 SqList s;
 s=L;
 printf("请输入学生学号:\n");
 scanf("%d",&no);
 while(i<=L.length-1)
 { 
  if(no==L.data[i].stuno)
  {
   break;
  }
  i++;
 }
 if(no==L.data[i].stuno)
  {
  printf("学号  姓名  分数   年龄\n");
    printf("%d    %s     %d     %d \n",s.data[i].stuno,s.data[i].name,s.data[i].score,s.data[i].age);
   
   return 1;
  }
 else
  {
   printf("此学生不存在。\n");
   return 0;
  }
}


void Printall_List(SqList L)//所有学生信息
{
 int i;
 SqList s;
 s=L;
   for(i=0;i<L.length;i++)
   {
     printf("学号  姓名  分数   年龄\n");
   printf("%d    %s     %d     %d \n",s.data[i].stuno,s.data[i].name,s.data[i].score,s.data[i].age);

   }
}

/*主函数*/
int main()
{
 int n;
 SqList L;
 L.length=0;
 menu();
 scanf("\t%d",&n);
 while(n)
 {
  switch(n)
  {
  case 0: printf("\n"); //退出程序
       return 0;
  case 1: L=Create_List(L);//创建学生信息
   break;
  case 2:L=Insert_List(L);//添加学生信息
     break;
  case 3:Locate_List(L);//查找学生的信息
    break;
  case 4:L=Delete_List(L);//删除学生信息
     break;
  case 5:Printall_List(L);//输出所有同学的信息
     break;
  default:printf("请重新输入.\n");
  }
  menu();
  scanf("\t%d",&n);
 }
 printf("感谢您的使用,欢迎您下次继续使用\n");
 return 0;
}

原文地址:https://www.cnblogs.com/xiohao/p/3046385.html