zoukankan      html  css  js  c++  java
  • 教务处管理系统(线性链表)

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

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

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

  • 相关阅读:
    NIO与普通IO文件读写性能对比
    JAVA学习.java.sql.date 与java.util.date以及gettime()方法的分析
    软件工程之软件设计
    ubuntu下管理android手机
    AFNetworking2.0 NSHipster翻译
    【Jsoup爬取网页内容】
    IOS 表视图UITableView 束NSBundle
    如何将位图格式图片文件(.bmp)生成geotiff格式图片?
    opencv3 使用glob遍历并修改文件名
    Ubuntu clion下载及激活
  • 原文地址:https://www.cnblogs.com/xiohao/p/3046385.html
Copyright © 2011-2022 走看看