C/C++|【结课小作业】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("namegenderagetelephone\n"); for(i=0; i

BUG及技巧: 【C/C++|【结课小作业】C语言(通讯录以及学生管理系统,适合初学者阅读(无指针))】1、利用结构体变量作为函数的参数和返回值;
2、scanf函数缓冲区,利用getchar()或者scanf()内写上’\n'去吸收‘\n'; (鸣谢xiaowu..投食的知识点)
3、利用if语句、开关变量来判断是否功能实现,避免进入死循环;
4、结构体变量定义长度,避免输出时出现乱码;
5、利用strcmp函数比较输入的信息和结构体数组信息,以此判断是否进入相应功能;
菜单设计来源于 KIN布,如有侵权,联系删除。

    推荐阅读