是一个工程,我把整个工程都传上去了的,显示不出来吗?我一个一个粘贴过来!这个工程有四个文件:Main.c
List.c
Edit.c
Alist.h
/*
Main.c
*/
#include<stdio.h>
#include"Alist.h"
#include <string.h>
//字符串函数库 (strcmp())
#include <stdlib.h>
//标准工具函数库(exit(), system())
struct Sort stu[100];
//定义一个容量为100的结构体数组!
int main()
//主函数
{
void Sysinfo();
//申明版权信息的函数
void Menuofmain(struct Sort stu[]);//申明显示主菜单 接收用户选择并响应的函数
void Quit();
//申明退出系统的函数
Sysinfo();
//显示版权信息
Menuofmain(stu);
//显示主菜单 接收用户选择并响应
return 0;
}
void Sysinfo()
//显示版权信息的函数
{
printf("\n\n\n\n\t\t\t欢迎使用本宿舍管理系统\n");
printf("\t\t\t本系统为宿舍管理系统\n");
printf("\t\t\t\t盗版必究\n");
printf("\n\n\n\t\t\t\t\t制作人: ***\n");
printf("按任意键进入主菜单");
getchar();
}
void Menuofmain(struct Sort stu[])//显示主菜单 接收用户选择并响应的函数
{
char choose;
extern void Append(struct Sort stu[]); //申明四个外部函数
extern void Menuofsort(struct Sort stu[]);
extern void Menuofsear(struct Sort stu[]);
void Quit();
do{
system("cls");
printf("\n\n\n\t\t\t\t主菜单");
printf ("\n\n\n");
printf("\t\t1.建立数据文件\t\t\t2.排序\n");
printf("\n\n\n\t\t3.查询学生信息\t\t\t0.退出系统\n");
printf("\n\n\n\t请选择[0-3]:");
fflush(stdin);
scanf("%c",&choose);
getchar();
switch(choose)
{
case '1': Append(stu); break;
//录入
case '2': Menuofsort(stu); break;
//排序
case '3': Menuofsear(stu); break;
//查询
case '0': Quit(); break;
//退出系统
}
}while(choose!=0);
}
void Quit()
//退出系统 的函数
{
exit(0);
}
/*
Edit.c
*/
#include<stdio.h>
#include"Alist.h"
#include <string.h>
//字符串函数库 (strcmp())
#include <stdlib.h>
//标准工具函数库(exit(), system())
extern int length;
extern struct Sort stu[100];
//引用外部数组
void Menuofsort(struct Sort stu[])
//查询信息的函数
{
char choos;
do{
system("cls");
extern void Menuofmain(struct Sort stu[]);
extern void Listall(struct Sort stu[]);
void Sortname(struct Sort stu[]);
void Sortnum(struct Sort stu[]);
void Sortroom(struct Sort stu[]);
int Numofsear(struct Sort stu[],char stunum[]);
printf("1:按姓名排序!\n");
printf("2:按学号排序!\n");
printf("3:按房号排序!\n");
printf("0:返回主菜单!\n");
printf("请选择(0~3)");
scanf("%d",&choos);
getchar();
if(choos==1)
{
Sortname(stu);
}
if(choos==2)
{
Sortnum(stu);
}
if(choos==3)
{
Sortroom(stu);
}
if(choos==0)
{
Menuofmain(stu);
}
Listall(stu);
}while(choos!=0);
}
void Sortname(struct Sort stu[])
{
struct Sort t;
int i,j;
for(j=0;j<(length-1);j++)//进行length-1次循环
{
for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
{
if(strcmp(stu[i].name,stu[i+1].name)>0)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
}
}
}
}
void Sortnum(struct Sort stu[])
{
struct Sort t;
int i,j;
for(j=0;j<(length-1);j++)//进行length-1次循环
{
for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
{
if(strcmp(stu[i].stuNo,stu[i+1].stuNo)>0)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
}
}
}
}
void Sortroom(struct Sort stu[])
{
struct Sort t;
int i,j;
for(j=0;j<(length-1);j++)//进行length-1次循环
{
for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
{
if(stu[i].room>stu[i+1].room)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
}
}
}
}
void Menuofsear(struct Sort stu[])
//查询信息的函数
{
char choos;
do{
system("cls");
extern void Menuofmain(struct Sort stu[]);
void Searname(struct Sort stu[]);
void Searnum(struct Sort stu[]);
void Searroom(struct Sort stu[]);
int Numofsear(struct Sort stu[],char stunum[]);
printf("1:按姓名查询!\n");
printf("2:按学号查询!\n");
printf("3:按房号查询!\n");
printf("0:返回主菜单!\n");
printf("请选择(0~3)");
scanf("%d",&choos);
getchar();
if(choos==1)
{
Searname(stu);
}
if(choos==2)
{
Searnum(stu);
}
if(choos==3)
{
Searroom(stu);
}
if(choos==0)
{
Menuofmain(stu);
}
}while(choos!=0);
}
void Searname(struct Sort stu[])//按姓名查询信息的函数
{
extern void Printhead();
extern void Listone(struct Sort list);
int Numofsear(struct Sort stu[],char stunum[]);
char c[25];
int e;
fflush(stdin);
printf("\n请输入要查询的姓名:");
scanf("%s",c);
getchar();
e=Numofsear(stu,c);//查询学号是否存在 若存在返回正值否则返回负值
if(e>=0)
{
Printhead();
Listone(stu[e]);
}
else
{
printf("没有找到相关记录!\n");
}
printf("按任意键继续!\n");
getchar();
}
void Searnum(struct Sort stu[])//按学号查询信息的函数
{
extern void Printhead();
extern void Listone(struct Sort list);
int Numofsear(struct Sort stu[],char stunum[]);
char c[20];
int e;
printf("\n请输入要查询的学号:");
scanf("%s",c);
getchar();
e=Numofsear(stu,c);//查询学号是否存在 若存在返回正值否则返回负值
if(e>=0)
{
Printhead();
Listone(stu[e]);
}
else
{
printf("没有找到相关记录!\n");
}
printf("按任意键继续!\n");
getchar();
}
void Searroom(struct Sort stu[])
//按房间查询的函数
{
system("cls");
extern int length;
extern void Printhead();
extern void Listone(struct Sort list);
int room,i,count=0;
printf("\n输入要查询的房间:");
scanf("%d",&room);
getchar();
Printhead();
for(i=0;i<length;i++)
//输出该年级的所有信息
{
if(room==stu[i].room)
{
Listone(stu[i]);
count++;
//统计该年级的学生数
}
}
if(count>0)
{
printf("共找到%d条记录!\n",count);
}
else
{
printf("没有找到相关记录!\n");
}
printf("按任意键继续!\n");
getchar();
}
int Nameofsear(struct Sort stu[],char stunum[])
//判断查询的姓名是否存在的函数
{
extern int length;
int i,d=-1;
for(i=0;i<length;i++)
{
if(strcmp(stunum, stu[i].name) == 0)
d=i;
}
return(d);
}
int Numofsear(struct Sort stu[],char stunum[])
//判断查询的学号是否存在的函数
{
extern int length;
int i,d=-1;
for(i=0;i<length;i++)
{
if(strcmp(stunum, stu[i].stuNo) == 0)
d=i;
}
return(d);
}
/*
List.c
*/
#include<stdio.h>
#include"Alist.h"
#include <string.h>
//字符串函数库 (strcmp())
#include <stdlib.h>
//标准工具函数库(exit(), system())
int length=0;
void Append(struct Sort stu[])
//录入学生信息的函数
{
char con;
do{
system("cls");
//清屏
//fflush(stdin);
//getchar();
fflush(stdin);
printf("\n");
printf("\n请输入姓名:");
scanf("%s", stu[length].name);
getchar();
printf("\n请输入学号(8位)");
scanf("%s", stu[length].stuNo);
getchar();
printf("\n请输入房号:");
scanf("%d",&stu[length].room);
getchar();
length++;
printf("是否继续添加?(Y/N):");
scanf("%c",&con);
//con = getchar();
getchar();
}while(con=='y'||con=='Y');
printf("按回车键返回");
}
void Listall(struct Sort stu[])//输出所有学生信息的函数
{
system("cls");
void Printhead();
//申明输出表头函数
void Listone(struct Sort list);
//申明输出一条学生信息函数
int i;
Printhead();
//输出表头
for(i=0;i<length;i++)
{
Listone(stu[i]);
//输出一条学生信息函数
}
printf("按回车键返回\n");
fflush(stdin);
getchar();
}
void Listone(struct Sort list)//输出一个学生信息的函数
{
printf("%s\t\t%s\t\t%d\n", list.name,list.stuNo,
list.room);
}
void Printhead()//输出表头的函数
{
printf("姓名\t\t学号\t\t房间\n");
}
/* Alist.h */
struct Sort
{
char name[25];
char stuNo[25];
int room;
};