栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言:通讯录以及学生管理系统(录入信息、排序功能、查询信息、插入信息、删除信息、修改信息、查看信息)适合初学者阅读(无指针)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言:通讯录以及学生管理系统(录入信息、排序功能、查询信息、插入信息、删除信息、修改信息、查看信息)适合初学者阅读(无指针)

创建一个最多包含50人的通讯录(包含姓名、性别、年龄、电话),实现以下功能:

  1. 录入信息:能够实现通讯数据的录入;
  2. 排序功能:能够按照年龄从小到大进行排序;
  3. 查询信息:根据输入的姓名查找并输出其相关全部信息;
  4. 插入信息:插入某人的信息,插入后仍然保持通讯录排好的顺序;
  5. 删除信息:输入某人的姓名,可以从通讯录中删除该人;
  6. 修改信息:可以修改某人的特定信息,如电话;
  7. 查看信息:查看整个通讯录的信息。

实验目的及其要求:

  1. 掌握结构体变量的概念与应用;
  2. 熟悉结构体在内存中的存储方式;
  3. 掌握结构体变量作为函数参数与返回值的程序设计方法;
  4. 熟悉结构体数组的运用。

引用头文件、全局变量定义以及函数声明;

#include 
#include 
int n=50;
void menu();
struct student input();
void enter(struct student stu[]);
void sort(struct student stu[]);
void search(struct student stu[]);
void insert(struct student stu[]);
void delete1(struct student stu[]);
void revise(struct student stu[]);
void display(struct student stu[]);

结构体定义 

struct student
{
    char name[100];
    int gender;
    int age;
    char telephone[100];
}stu[100];

主函数 

int main()
{
    while(1)
    {
        int ch;
        menu();
        printf("Please Input your choice:");
        scanf("%d",&ch);
        switch(ch)
        {
            case 1:enter(stu);break;
            case 2:sort(stu);break;
            case 3:search(stu);break;
            case 4:insert(stu);break;
            case 5:delete1(stu);break;
            case 6:revise(stu);break;
            case 7:display(stu);break;
            case 0:return 0; 
        }
    }
}

菜单函数

void menu() //菜单函数
{
    printf(" ______________________________________________________________________n");
    printf("|**********************┍ -----------------------┑ *********************|n");
    printf("|**********************   欢迎使用通信管理系统    *********************|n");
    printf("|**********************┕------------------------┙ *********************|n");
    printf("|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx菜单xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|n");
    printf("|======================================================================|n");
    printf("|.......      1.录入信息         ......         2.排序功能      .......|n");
    printf("|.......      3.查询信息         ......         4.插入信息      .......|n");
    printf("|.......      5.删除信息         ......         6.修改信息      .......|n");
    printf("|.......      7.查看信息         ......         0.退出系统      .......|n");
    printf("|______________________________________________________________________|n");
}

输入信息函数

struct student input()//输入信息函数
{
    struct student stu;
    printf("input namen");
    gets(stu.name);
    printf("input gender 1 or 0n");
    scanf("%d",&stu.gender);
    printf("input agen");
    scanf("%d",&stu.age);    
    getchar();
    printf("input telephonen");
    gets(stu.telephone);
    return stu;
}

1、录入信息:通讯录使用前的信息录用函数;

void enter(struct student stu[])//1、录入:通讯录使用前的信息录用函数
{
    int i;
    getchar();
    for(i=0;i 

2、排序功能:按照年龄从小到大进行排序;

void sort(struct student stu[])//2、排:按照年龄从小到大进行排序
{
    int i,j;
    struct student t={0};
    for(i=0;istu[j].age)
            {
                t=stu[i];
                stu[i]=stu[j];
                stu[j]=t;
            }
        }
    }
    printf("排序成功!!!!nn");
}

3、查询信息:根据输入的姓名查找并输出其相关全部信息;

void search(struct student stu[])//3、查:根据输入的姓名查找并输出其相关全部信息
{
    int i,k,flag=0;
    char name1[100];
    getchar();
    printf("input search's namen");
    gets(name1);
    for(i=0;i 

4、插入信息:插入某人的信息,插入后仍然保持通讯录排好的顺序;

void insert(struct student stu[])//4、增:插入某人的信息,插入后仍然保持通讯录排好的顺序
{
    int i;
    printf("putchar messagen");
    getchar();
    stu[n]=input();
    printf("插入成功!!!!nn");
    n+=1;
    sort(stu);
}

5、删除信息:输入某人的姓名,可以从通讯录中删除该人;

void delete1(struct student stu[]) //5、删:输入某人的姓名,可以从通讯录中删除该人
{
    int i,k,j,flag=0;
    char name1[100];
    getchar();
    printf("input delete1's namen");
    gets(name1);
    for(i=0;i 

6、修改信息:可以修改某人的特定信息,如电话。;

void revise(struct student stu[])//6、改:可以修改某人的特定信息,如电话。
{
    int i,x,k,flag=0;
    char name1[100];
    getchar();
    printf("input revise's namen");
    gets(name1); 
    for(i=0;i 

7、查看信息:查看学生管理系统信息;

oid display(struct student stu[])//7、看:查看学生管理系统信息
{
    int i;
    printf("name    gender    age    telephonen");
    for(i=0;i 

BUG及技巧:

1、利用结构体变量作为函数的参数和返回值;

2、scanf函数缓冲区,利用getchar()或者scanf()内写上’n'去吸收‘n';(鸣谢xiaowu..投食的知识点)

3、利用if语句、开关变量来判断是否功能实现,避免进入死循环;

4、结构体变量定义长度,避免输出时出现乱码;

5、利用strcmp函数比较输入的信息和结构体数组信息,以此判断是否进入相应功能;

菜单设计来源于 KIN布,如有侵权,联系删除。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号