完全原创,自编程,快来抄作业吧!!!
顺便点个赞
#include"stdio.h"
#include"string.h"
#include"windows.h"
#define N 1000//学生
int zj();
int gx();
int sc();
int cx();
int xs();
int xhcx(int b);
int xmcx();
int fjhcx(int b);
int fs1();
int fs2();
int fs3();
int tj();
int px();
int p = 0;//序号
int r = 0;
struct xt
{
int sc;
int xl;
int lh;
int fjh;
int cwh;
long xh;
char xm[15];
char xb[10];
char xib[20];
int bj;
} a[N],max[3];
zj()
{
int d;
p++;
printf("\t\t\t\t\t请输入楼号");
scanf_s("%d", &a[p].lh);
printf("\t\t\t\t\t请输入房间号");
scanf_s("%d", &a[p].fjh);
printf("\t\t\t\t\t请输入床位号");
scanf_s("%d", &a[p].cwh);
printf("\t\t\t\t\t请输入学号");
scanf_s("%ld", &a[p].xh);
int g,h=0;
for (g = 0; g < N; g++)
{
if (a[g].xh == a[p].xh)
h++;
}
if (h != 1)
{
printf("\t\t\t\t\t该学号已有数据!\n");
printf("\t\t\t\t\t是否继续:\n");
printf("\t\t\t\t\t 继续输入1\n");
printf("\t\t\t\t\t 结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &d);
if (d == 1) { zj(); }
return;
}
printf("\t\t\t\t\t请输入姓名");
scanf_s("%s", &a[p].xm, sizeof(a[p].xm));
printf("\t\t\t\t\t请输入性别");
scanf_s("%s", &a[p].xb, sizeof(a[p].xb));
printf("\t\t\t\t\t请输入系别");
scanf_s("%s", &a[p].xib, sizeof(a[p].xib));
printf("\t\t\t\t\t请输入班级");
scanf_s("%d", &a[p].bj);
a[p].sc = 1;
printf("\t\t\t\t\t是否继续:\n");
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &d);
if (d == 1) { zj(); }
}
gx()
{
int c = 0, d = 0, e = 0;
printf("\t\t\t\t\t请输入更改的学号");
scanf_s("%d", &c);
d = xhcx(c);
if (d == 0)
{
printf("\t\t\t\t\t已删除!\n\t\t\t\t\t是否继续:\n\t\t\t\t\t 继续输入1\n\t\t\t\t\t 结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) gx();
return;
}
if (d == N)
{
printf("\t\t\t\t\t查无此人!\n");
printf("\t\t\t\t\t是否继续:\n");
printf("\t\t\t\t\t 继续输入1\n\t\t\t\t\t 结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) gx();
return;
}
printf("\t\t\t\t\t请更改楼号");
scanf_s("%d", &a[c].lh);
printf("\t\t\t\t\t请更改房间号");
scanf_s("%d", &a[c].fjh);
printf("\t\t\t\t\t请更改床位号");
scanf_s("%d", &a[c].cwh);
//printf("\t\t\t\t\t请更改学号");
//scanf_s("%ld", &a[c].xh);
printf("\t\t\t\t\t请更改姓名");
scanf_s("%s", &a[c].xm, sizeof(a[c].xm));
printf("\t\t\t\t\t请更改性别");
scanf_s("%s", &a[c].xb, sizeof(a[c].xb));
printf("\t\t\t\t\t请更改系别");
scanf_s("%s", &a[c].xib, sizeof(a[c].xib));
printf("\t\t\t\t\t请更改班级");
scanf_s("%d", &a[c].bj);
printf("\t\t\t\t\t更改后\n");
xhcx(a[c].xh);
printf("\t\t\t\t\t是否继续:\n");
printf("\t\t\t\t\t 继续输入1\n\t\t\t\t\t 结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) gx();
}
sc()
{
int c, d, e;
printf("\t\t\t\t\t请输入需要删除学生的学号:");
scanf_s("%d", &c);
d = xhcx(c);
if (d == 0)
{
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) sc();
return;
}
if (d == N)
{
printf("\t\t\t\t\t查无此人!\n");
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) sc();
return;
return;
}
a[d].sc = 2;
p--;
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) sc();
return;
}
cx()
{
int e;
printf("\t\t\t\t\t1.学号查询\n");
printf("\t\t\t\t\t2.姓名查询\n");
printf("\t\t\t\t\t3.房间号查询\n");
printf("\t\t\t\t\t4.退出\n");
while (TRUE)
{
printf("\t\t\t\t\t请选择查询方式:");
printf("\t\t\t\t\t ");
scanf_s("%d", &e);
switch (e)
{
case 1:fs1(); break;
case 2:fs2(); break;
case 3:fs3(); break;
case 4:return;
default:printf("\t\t\t\t\t请选输入1-4\n");
}
}
}
xs()
{
int d, e;
printf("\t\t\t\t\t数据:楼号\t房间号\t床位号\t学号\t姓名\t性别\t系别\t班级\n");
for (d = 1; d < N; d++)
{
if (a[d].sc == 1)
{
printf("\t\t\t\t\t %d \t%d\t%d\t%ld\t%s\t%s\t%s\t%d\n", a[d].lh, a[d].fjh, a[d].cwh, a[d].xh, a[d].xm, a[d].xb, a[d].xib, a[d].bj);
}
}
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) xs();
return;
}
xhcx(int b)
{
int d;
for (d = 0; d < N; d++)
{
if (a[d].xh == b)
{
if (a[d].sc == 2)
{
printf("\t\t\t\t\t已删除!\n");
return 0;
}
printf("\t\t\t\t\t数据:楼号%d\t房间号%d\t床位号%d\t学号%ld\t姓名%s\t性别%s\t系别%s\t班级%d\n", a[d].lh, a[d].fjh, a[d].cwh, a[d].xh, a[d].xm, a[d].xb, a[d].xib, a[d].bj);
return d;
}
}
return d;
}
xmcx()
{
int i,k;
char b[15];
printf("\t\t\t\t\t请输入姓名:");
scanf_s("%s", &b, sizeof(b));
for (i = 0; i < N; i++)
{
if (strcmp(a[i].xm,b) == 0)
{
k = a[i].xh;
xhcx(k);
return 0;
}
}
return i;
}
fjhcx(int b)
{
int d, e;
for (d = 0; d < N; d++)
{
if (a[d].fjh == b)
{
if (a[d].sc == 2)
{
printf("\t\t\t\t\t已删除!");
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) sc();
return;
}
printf("\t\t\t\t\t数据:楼号%d\t房间号%d\t床位号%d\t学号%ld\t姓名%s\t性别%s\t系别%s\t班级%d\n", a[d].lh, a[d].fjh, a[d].cwh, a[d].xh, a[d].xm, a[d].xb, a[d].xib, a[d].bj);
break;
}
}
return d;
}
fs1()
{
int a, f, g, e;
printf("\t\t\t\t\t请输入学号:");
scanf_s("%d", &a);
f = xhcx(a);
if (f == 0)
{
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &g);
if (g == 1) fs1();
return;
}
if (f == N)
{
printf("\t\t\t\t\t查无此人!\n");
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) fs1();
}
return;
}
fs2()
{
int f;
int g;
f=xmcx();
if (f == 0)
{
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &g);
if (g == 1) fs2();
return;
}
if (f == N)
{
printf("\t\t\t\t\t查无此人!\n");
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &g);
if (g == 1) fs2();
return;
}
return;
}
fs3()
{
int c, f, g;
printf("\t\t\t\t\t请输入房间号:");
scanf_s("%d", &c);
f = fjhcx(c);
if (f == 0)
{
printf("\n\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &g);
if (g == 1) fs3();
return;
}
if (f == N)
{
printf("\t\t\t\t\t查无此人!\n");
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &g);
if (g == 1) fs3();
return;
}
return;
}
tj()
{
int louhao[1000] = {0};
int js[1000] = {0};
int i, j = 0, bj = 0, e, l = 1;
printf("\t\t\t\t\t请输入查询班级:");
scanf_s("%d",&bj);
while (l != 0)
{
l = xx(bj, louhao, js,l);
}
for (int m = 0; m < N; m++)
{
if(louhao[m]!=0)
{
printf("%d", m);
printf("\t\t\t\t\t楼号:%d人数:%d\n",louhao[m], js[m]/8);
}
}
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) tj();
}
xx(int bj,int *louhao[1000],int *js[1000],int i)
{
int j=0;
for (; i < N; i++)
{
if (a[i].bj == bj)
{
while (a[i].lh != louhao[j])
{
j++;
if (j == 999)
{
louhao[r] = a[i].lh;
js[r]++;
r++;
return i;
}
}
js[j]++;
}
}
return 0;
}
px()
{
int i=0, j=0;
for (i = 0; i < N; i++)
{
for (j = 0; j < N-i; j++)
{
max[1] = a[j];
max[2] = a[j + 1];
if (max[2].fjh == 0)continue;
if (max[1].fjh>max[2].fjh )
{
max[0] = a[j];
a[j] = a[j+1];
a[j + 1] = max[0];
}
}
}
int d,e;
printf("\t\t\t\t\t数据:楼号\t房间号\t床位号\t学号\t姓名\t性别\t系别\t班级\n");
for (d = 1; d < N; d++)
{
if (a[d].sc == 1)
{
printf("\t\t\t\t\t %d \t%d\t%d\t%ld\t%s\t%s\t%s\t%d\n", a[d].lh, a[d].fjh, a[d].cwh, a[d].xh, a[d].xm, a[d].xb, a[d].xib, a[d].bj);
}
}
printf("\t\t\t\t\t继续输入1\n");
printf("\t\t\t\t\t结束输入2\n");
printf("\t\t\t\t\t");
scanf_s("%d", &e);
if (e == 1) sc();
return;
}
int main()
{
int b;
while (TRUE)
{
printf("\n\n\n\n\t\t\t\t**********************************\n\n\n");
printf("\t\t\t\t\t学生宿舍管理系统 \n\n\n");
printf("\t\t\t\t\t 1.增加数据\n\n");
printf("\t\t\t\t\t 2.更新数据\n\n");
printf("\t\t\t\t\t 3.删除数据\n\n");
printf("\t\t\t\t\t 4.查询数据\n\n");
printf("\t\t\t\t\t 5.显示列表数据\n\n");
printf("\t\t\t\t\t 6.统计输出\n\n");
printf("\t\t\t\t\t 7.排序\n\n");
printf("\t\t\t\t\t 8.退出\n\n");
printf("\t\t\t\t\t 请选择:");
scanf_s("%d", &b);
switch (b)
{
case 1:zj(); break;
case 2:gx(); break;
case 3:sc(); break;
case 4:cx(); break;
case 5:xs(); break;
case 6:tj(); break;
case 7:px(); break;
case 8:return;
default:printf("\t\t\t\t\t 请输入1-6内的数字!\n");
}
system("cls");
}
return;
}