• 顺序表完成教师职称管理系统


    一、要求:

    总的模块要求:

        第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。
        第二个模块——Menu()的功能是:显示提示选单。
        第三个模块——Quit()的功能是:退出选单。
        第四个模块——Create()的功能是:创建新的数据记录。
        第五个模块——Add()的功能是:增加新的数据记录,并返回选单。
        第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。
        第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。
        第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。
        第九个模块——List()的功能是:显示所有记录。

    一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。用“文件”存储数据。

    6.教师职称管理系统的设计与实现

    (1)教师信息包括:编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof[10])、所在院系(char dept[10])

    (2)除了总的模块要求外,还需统计各职称人数及各院系各职称人数。

    二、c语言代码:

      1 #include<stdio.h>
      2 #include<string.h>
      3 #include<windows.h>
      4 #define maxn 10
      5 #define N 100005
      6 typedef struct
      7 {
      8     char num[maxn],name[maxn],sex[maxn];
      9     char prof[maxn],dept[maxn];
     10 } teacher;
     11 typedef struct
     12 {
     13     teacher *elem;
     14     int length;
     15 }Sqlist;
     16 teacher str1;
     17 Sqlist r;
     18 void Delete() //按编号删除,因为编号能保证唯一
     19 {
     20     system("cls");
     21     printf("输入要删除得编号
    ");
     22     char id[maxn];
     23     scanf("%s",id);
     24     int flag=0,i,j;
     25     for(i=0; i<r.length; i++)
     26     {
     27         str1=r.elem[i];
     28         if(strcmp(str1.num,id)==0)
     29         {
     30             flag=1;
     31             for(j=i; j<r.length-1; ++j)
     32             {
     33                 r.elem[j]=r.elem[j+1];
     34             }
     35             r.length--;
     36             break;
     37         }
     38     }
     39     if(flag)
     40     {
     41         printf("删除成功
    ");
     42     }
     43     else printf("未找到对应编号
    ");
     44     system("pause");
     45 }
     46 void Create()
     47 {
     48     system("cls");
     49     r.elem=(teacher *)malloc(sizeof(teacher)*N);
     50     if(!r.elem)
     51     {
     52         printf("内存分配失败
    ");
     53         system("pause");
     54         return;
     55     }
     56     r.length=0;
     57     printf("创建列表成功
    ");
     58     system("pause");
     59 }
     60 void Add()
     61 {
     62     system("cls");
     63     printf("%d
    ",r.length);
     64     if(r.length>=N)
     65     {
     66         printf("储存空间不足,请开辟空间
    ");
     67         return;
     68     }
     69     printf("请按顺序输入以下内容
    ");
     70     printf("编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof[10])、所在院系(char dept[10])
    ");
     71     str1=r.elem[r.length];
     72 
     73     scanf("%s%s%s%s%s",r.elem[r.length].num,r.elem[r.length].name,r.elem[r.length].sex,r.elem[r.length].prof,r.elem[r.length].dept);
     74     r.length++;
     75     //printf("%s%s%s%s%s",r.elem[r.length-1].num,r.elem[r.length-1].name);
     76     printf("添加成功
    ");
     77     system("pause");
     78 }
     79 void Find()
     80 {
     81     system("cls");
     82     printf("输入要查找得编号
    ");
     83     char id[maxn];
     84     scanf("%s",id);
     85     int flag=0,pos,i;
     86     for(i=0; i<r.length; i++)
     87     {
     88         str1=r.elem[i];
     89         if(strcmp(str1.num,id)==0)
     90         {
     91             pos=i;
     92             flag=1;
     93             break;
     94         }
     95     }
     96     if(flag)
     97     {
     98         printf("编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof[10])、所在院系(char dept[10])
    ");
     99         printf("%s     %s     %s    %s    %s
    ",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
    100     }
    101     else printf("未找到对应编号
    ");
    102     system("pause");
    103 }
    104 void Alter()
    105 {
    106     system("cls");
    107     printf("输入要修改得编号
    ");
    108     char id[maxn];
    109     scanf("%s",id);
    110     int flag=0,pos,i;
    111     for(i=0; i<r.length; i++)
    112     {
    113         str1=r.elem[i];
    114         if(strcmp(str1.num,id)==0)
    115         {
    116             pos=i;
    117             flag=1;
    118             break;
    119         }
    120     }
    121     if(flag)
    122     {
    123         printf("编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof[10])、所在院系(char dept[10])
    ");
    124         printf("%s     %s     %s    %s    %s
    ",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
    125         printf("按序输入要变改的新数据
    ");
    126         scanf("%s%s%s%s%s",r.elem[pos].num,r.elem[pos].name,r.elem[pos].sex,r.elem[pos].prof,r.elem[pos].dept);
    127         printf("修改成功
    ");
    128     }
    129     else printf("未找到对应编号
    ");
    130     system("pause");
    131 }
    132 void List()
    133 {
    134     system("cls");
    135     printf("编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof[10])、所在院系(char dept[10])
    ");
    136     int i;
    137     for(i=0; i<r.length; i++)
    138     {
    139         //printf("%d %d
    ",r.length,i);
    140         str1=r.elem[i];
    141         printf("%s     %s     %s    %s    %s
    ",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
    142 
    143     }
    144     system("pause");
    145 }
    146 void Quit()
    147 {
    148     system("cls");
    149     FILE *fp=NULL;
    150     fp=fopen("teacher.txt","w");
    151     int i;
    152     for(i=0; i<r.length; i++)
    153     {
    154         str1=r.elem[i];
    155         fprintf(fp,"%s %s %s %s %s
    ",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
    156 
    157     }
    158     fclose(fp);
    159     printf("文件保存成功,程序运行结束
    ");
    160     system("pause");
    161 }
    162 void init()
    163 {
    164     FILE *fp=NULL;
    165     fp=fopen("teacher.txt","r");
    166     char ch;
    167     while(1)
    168     {
    169         if(feof(fp)) break;
    170         //str1=r.elem[r.length];
    171         fscanf(fp,"%s%s%s%s%s",r.elem[r.length].num,r.elem[r.length].name,r.elem[r.length].sex,r.elem[r.length].prof,r.elem[r.length].dept);
    172         r.length++;
    173     }
    174     r.length--;
    175     fclose(fp);
    176 }
    177 void Menu()
    178 {
    179     int x;
    180     while(1)
    181     {
    182         system("cls");
    183         printf ( "                                                                 
    ");
    184         printf ( "                                                                 
    ");
    185         printf ( "                                                                 
    ");
    186         printf ("--------------------------------------                           
    ");
    187         printf ("--------------------------------------
    ");
    188         printf ("--------丨[0]查看所有教师        丨---
    ");
    189         printf ("--------丨[1]查询教师(按教师编号)丨---
    ");
    190         printf ("--------丨[2]添加教师信息        丨---
    ");
    191         printf ("--------丨[3]修改教师信息        丨---
    ");
    192         printf ("--------丨[4]删除教师信息        丨---
    ");
    193         printf ("--------丨[5]创建存储数据表      丨---
    ");
    194         printf ("--------丨[6]结束                丨---
    ");
    195         printf ("----------输入相应数字----------------
    ");
    196         printf ("---------------------------------------                           
    ");
    197         printf ( "                                                                 
    ");
    198         printf ( "                                                                 
    ");
    199         scanf("%d",&x);
    200         if(x==0)
    201         {
    202             List();
    203         }
    204         else if(x==1)
    205         {
    206             Find();
    207         }
    208         else if(x==2)
    209         {
    210             Add();
    211             //List();
    212         }
    213         else if(x==3)
    214         {
    215             Alter();
    216         }
    217         else if(x==4)
    218         {
    219             Delete();
    220         }
    221         else if(x==5)
    222         {
    223             Create();
    224             init();
    225         }
    226         else if(x==6)
    227         {
    228             Quit();
    229             return;
    230         }
    231     }
    232     return;
    233 }
    234 int main()
    235 {
    236     Menu();
    237     return 0;
    238 }
    View Code
  • 相关阅读:
    计蒜客练习题:互质数个数
    求欧拉函数
    欧拉函数和积性函数
    计蒜客练习题:素数距离
    计蒜客练习题:蒜头君的猜想(哥德巴赫猜想)
    素数打表——找出1~100以内的素数
    质数筛选——素数筛选法
    计蒜客练习题:取石子游戏
    计蒜客练习题:两仪剑法
    整除和取余
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/11775125.html
Copyright © 2020-2023  润新知