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

一、要求:

总的模块要求:

    第一个模块——主函数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("输入要删除得编号\n");
 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("删除成功\n");
 42     }
 43     else printf("未找到对应编号\n");
 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("内存分配失败\n");
 53         system("pause");
 54         return;
 55     }
 56     r.length=0;
 57     printf("创建列表成功\n");
 58     system("pause");
 59 }
 60 void Add()
 61 {
 62     system("cls");
 63     printf("%d\n",r.length);
 64     if(r.length>=N)
 65     {
 66         printf("储存空间不足,请开辟空间\n");
 67         return;
 68     }
 69     printf("请按顺序输入以下内容\n");
 70     printf("编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof[10])、所在院系(char dept[10])\n");
 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("添加成功\n");
 77     system("pause");
 78 }
 79 void Find()
 80 {
 81     system("cls");
 82     printf("输入要查找得编号\n");
 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])\n");
 99         printf("%s     %s     %s    %s    %s\n",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
100     }
101     else printf("未找到对应编号\n");
102     system("pause");
103 }
104 void Alter()
105 {
106     system("cls");
107     printf("输入要修改得编号\n");
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])\n");
124         printf("%s     %s     %s    %s    %s\n",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
125         printf("按序输入要变改的新数据\n");
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("修改成功\n");
128     }
129     else printf("未找到对应编号\n");
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])\n");
136     int i;
137     for(i=0; i<r.length; i++)
138     {
139         //printf("%d %d\n",r.length,i);
140         str1=r.elem[i];
141         printf("%s     %s     %s    %s    %s\n",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\n",str1.num,str1.name,str1.sex,str1.prof,str1.dept);
156 
157     }
158     fclose(fp);
159     printf("文件保存成功,程序运行结束\n");
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 ( "                                                                 \n");
184         printf ( "                                                                 \n");
185         printf ( "                                                                 \n");
186         printf ("--------------------------------------                           \n");
187         printf ("--------------------------------------\n");
188         printf ("--------丨[0]查看所有教师        丨---\n");
189         printf ("--------丨[1]查询教师(按教师编号)丨---\n");
190         printf ("--------丨[2]添加教师信息        丨---\n");
191         printf ("--------丨[3]修改教师信息        丨---\n");
192         printf ("--------丨[4]删除教师信息        丨---\n");
193         printf ("--------丨[5]创建存储数据表      丨---\n");
194         printf ("--------丨[6]结束                丨---\n");
195         printf ("----------输入相应数字----------------\n");
196         printf ("---------------------------------------                           \n");
197         printf ( "                                                                 \n");
198         printf ( "                                                                 \n");
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

猜你喜欢

转载自www.cnblogs.com/kongbursi-2292702937/p/11775125.html