学生通讯管理系统
    没得说,C语言的基础来来去去都是这些内容,结构数组,冒泡排序,这个是我们北大青鸟C语言内测的题目,以下的程序在DEV-C++下编译通过,若要在VC下编译,请把主函数开关的int main改为main

#include<stdlib.h>
#include<stdio.h>
#include<string.h>

int counts=0; //全局变量,统计学生人数

struct student
{
int id; //学号
char name[20]; //姓名
char bj[20]; //所在班级
float qq; //QQ号
float tel; //联系电话
}s[50]; //定义一个50个元素的数组结构

void add() //增加函数
{
char ch;
int i,t;
system("cls"); //系统清屏
printf("\n\t\t\t\t 添加学员\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t\t请输入你要增加的条数:");
scanf("%d",&t);
for(i=0;i<t;i++)
{

printf("\t\t\t请输入学号: ");
scanf("%d",&s[i].id);
printf("\t\t\t请输入姓名: ");
fflush(stdin);
gets(s[i].name);
printf("\t\t\t请输入所在班级: ");
fflush(stdin);
gets(s[i].bj);
printf("\t\t\t请输入QQ号: ");
fflush(stdin);
scanf("%f",&(s[i].qq));
printf("\t\t\t请输入联系电话: ");
fflush(stdin);
scanf("%f",&(s[i].tel));
printf("\n");
counts++; //学生人数加1

}
printf("输入完成,");
system("pause");
}

void display() //查看函数
{
int i;
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t学号\t姓名\t班级\tQQ号\t电话\n");
for(i = 0;i<counts;i++)
{
printf("\t\t %-d\t %-s\t %-s\t %-.0f\t %-.0f\t \n",s[i].id,s[i].name,s[i].bj,s[i].qq,s[i].tel);
}
printf("\n");
}

void sort() //排序函数
{
int i,j;
struct student temp;
for(i=0;i<counts;i++)
{
for(j=0;j<counts-i-1;j++)
{
if(s[j].id > s[j+1].id)
{
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}

void change() //修改函数
{
int n,i,flag=0; //flag标志位,1表示有此学生,0表示没有
char ch;
system("cls"); //系统清屏
printf("\n\t\t\t\t 修改记录\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入你要修改的学号:");
fflush(stdin);
scanf("%d",&n);
for(i=0;i<counts;i++)
{
if(s[i].id == n)
{
flag=1;
break;
}
else
{
flag=0;
}
}
if(flag)
{
printf("已找到这条记录!显示如下:\n");
printf("\t\t学号\t姓名\t班级\tQQ号\t电话\n");
printf("\t\t %-d\t %-s\t %-s\t %-.0f\t %-.0f\t \n",s[i].id,s[i].name,s[i].bj,s[i].qq,s[i].tel);
printf("\n\t\t你真的要修改吗?<y or n>");
fflush(stdin);
ch=getchar();
while(ch=='y' || ch=='Y')
{
ch=' ';
printf("\t\t学号: ");
scanf("%d",&s[i].id);
printf("\t\t姓名: ");
fflush(stdin);
gets(s[i].name);
printf("\t\t所在班级: ");
fflush(stdin);
gets(s[i].bj);
printf("\t\tQQ号: ");
fflush(stdin);
scanf("%f",&(s[i].qq));
printf("\t\t联系电话: ");
fflush(stdin);
scanf("%f",&(s[i].tel));
printf("\n");
printf("修改完成,请返回主菜单用查询功能查看结果\n");
system("pause");
}
}
else
{
printf("没找着记录,");
system("pause");
}
}
void del() //删除函数
{
system("cls"); //系统清屏
printf("\n\t\t\t\t 删除学员\n");
printf("\n--------------------------------------------------------------------------------\n");
int i,j,no,flag=0; //flag标志位,0表示没有此学员,1表示有此学员
printf("请输入要删除学生的学号:");
fflush(stdin);
scanf("%d",&no);
for(i=0;i<counts;i++){
if(s[i].id == no){
flag = 1;
break;
}
}
if(flag)
{
for(j=i;j<counts-1;j++)
{
s[j] = s[j+1];
}
counts--; //学员人数减1
printf("删除完成,请返回主菜单用查看功能查看结果.\n");
}
else
{
printf("没有该学员的信息\n");
}
system("pause");
}

void query() //查询函数
{
int x,i,flag;
char n[20];
system("cls"); //系统清屏
sort(); //调用排序函数,先排序好结构数组
printf("\n\t\t\t\t 查询功能\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t\t1>浏览全部\n");
printf("\t\t\t2>按姓名查询\n");
printf("\t\t\t");
scanf("%d",&x);
if (x==1)
display();
else
{
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入姓名:");
fflush(stdin);
gets(n);
for(i=0;i<counts;i++)
{
if (strcmp(n,s[i].name)==0) //比较输入的班级名是否是某个学生的班级
{
flag=1;
break;
}
else
flag=0;
}
if(flag)
{
printf("\t\t学号\t姓名\t班级\tQQ号\t电话\n");
printf("\t\t %-d\t %-s\t %-s\t %-.0f\t %-.0f\t \n",s[i].id,s[i].name,s[i].bj,s[i].qq,s[i].tel);
}
else
printf("没有找到此学员!!!\n");

}
system("pause");
}

void count() //统计函数
{
int i,flag;
char name[20];
sort(); //调用排序函数,先排序好结构数组
system("cls"); //系统清屏
printf("\n\t\t\t\t 统计学员\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入你的班级名:\n");
fflush(stdin);
gets(name);
for(i=0;i<counts;i++)
{
if(strcmp(s[i].bj,name)==0)
{
flag=1;
break;
}
else
{
flag=0;
}
}
if(flag)
{
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t学号\t姓名\t班级\tQQ号\t电话\n");
for(i = 0;i<counts;i++)
{
if (strcmp(s[i].bj,name) != 0) //学员班级与输入的班级不同时则跳过
continue;
printf("\t\t %-d\t %-s\t %-s\t %-.0f\t %-.0f\t \n",s[i].id,s[i].name,s[i].bj,s[i].qq,s[i].tel);
}
printf("\n");
}
else
printf("没有此班级!!!\n");
system("pause");
}

int main()
{
int select;
do
{
system("cls"); //系统清屏
printf("\n\t\t\t 学员通讯录管理系统\n");
printf("--------------------------------------------------------------------------------\n");
printf("\t\t\t 请选择相应的功能\n\n");
printf("\t\t\t 1>增加学员记录\n");
printf("\t\t\t 2>修改学员记录\n");
printf("\t\t\t 3>删除学员记录\n");
printf("\t\t\t 4>查询学员记录\n");
printf("\t\t\t 5>统计学员记录\n");
printf("\t\t\t 0>退出系统\n");
printf("\t\t\t ");
scanf("%d",&select);
switch (select)
{
case 1: add(); break; //增加函数
case 2: change(); break; //修改函数
case 3: del(); break; //删除函数
case 4: query(); break; //查询函数
case 5: count(); break; //统计函数
case 0: exit(0); //退出系统
}
}while(1);
}

返回开头      返回上一页

版权所有©牛腩
2007-03-09 ver2.0
QQ:164423073   UC:1170098384
niunan.snid@gmail.com