【结课小作业】C语言:通讯录以及学生管理系统,适合初学者阅读(无指针)

目录

实验目的及其要求:

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

结构体定义 

主函数 

菜单函数

输入信息函数

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

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

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

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

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

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

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

BUG及技巧:


创建一个最多包含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 name\n");
    gets(stu.name);
    printf("input gender 1 or 0\n");
    scanf("%d",&stu.gender);
    printf("input age\n");
    scanf("%d",&stu.age);    
    getchar();
    printf("input telephone\n");
    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("排序成功!!!!\n\n");
}

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

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

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

void insert(struct student stu[])//4、增:插入某人的信息,插入后仍然保持通讯录排好的顺序
{
    int i;
    printf("putchar message\n");
    getchar();
    stu[n]=input();
    printf("插入成功!!!!\n\n");
    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 name\n");
    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 name\n");
    gets(name1); 
    for(i=0;i

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

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

BUG及技巧:

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

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

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

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

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

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

你可能感兴趣的:(C/C++,c语言,后端,开发语言)