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


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

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

    #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;
    }

  • 相关阅读:
    从Oracle提供两种cube产品说开
    Sql Server DWBI的几个学习资料
    Unload Oracle data into text file
    初学Java的几个tips
    我常用的Oracle知识点汇总
    benefits by using svn
    如何在windows上使用putty来显示远端linux的桌面
    building commercial website using Microsoft tech stack
    Understand Thread and Lock
    Update google calendar by sunbird
  • 原文地址:https://www.cnblogs.com/xiohao/p/3046385.html
Copyright © 2020-2023  润新知