目录
实验目的及其要求:
引用头文件、全局变量定义以及函数声明;
结构体定义
主函数
菜单函数
输入信息函数
1、录入信息:通讯录使用前的信息录用函数;
2、排序功能:按照年龄从小到大进行排序;
3、查询信息:根据输入的姓名查找并输出其相关全部信息;
4、插入信息:插入某人的信息,插入后仍然保持通讯录排好的顺序;
5、删除信息:输入某人的姓名,可以从通讯录中删除该人;
6、修改信息:可以修改某人的特定信息,如电话;
7、查看信息:查看学生管理系统信息;
BUG及技巧:
创建一个最多包含50人的通讯录(包含姓名、性别、年龄、电话),实现以下功能:
实验目的及其要求:
- 录入信息:能够实现通讯数据的录入;
- 排序功能:能够按照年龄从小到大进行排序;
- 查询信息:根据输入的姓名查找并输出其相关全部信息;
- 插入信息:插入某人的信息,插入后仍然保持通讯录排好的顺序;
- 删除信息:输入某人的姓名,可以从通讯录中删除该人;
- 修改信息:可以修改某人的特定信息,如电话;
- 查看信息:查看整个通讯录的信息。
- 掌握结构体变量的概念与应用;
- 熟悉结构体在内存中的存储方式;
- 掌握结构体变量作为函数参数与返回值的程序设计方法;
- 熟悉结构体数组的运用。
引用头文件、全局变量定义以及函数声明;
#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、利用结构体变量作为函数的参数和返回值;菜单设计来源于 KIN布,如有侵权,联系删除。
2、scanf函数缓冲区,利用getchar()或者scanf()内写上’\n'去吸收‘\n'; (鸣谢xiaowu..投食的知识点)
3、利用if语句、开关变量来判断是否功能实现,避免进入死循环;
4、结构体变量定义长度,避免输出时出现乱码;
5、利用strcmp函数比较输入的信息和结构体数组信息,以此判断是否进入相应功能;
推荐阅读
- c/c++|通过预编译头文件来提高C++ Builder的编译速度
- 开发工具|总体上说,是c++ builder胜于VC++,DELPHI是最好
- Android|Android 知识点 030 —— Handler,Thread,HandlerThread
- Are|成功解决C++编译器报错[Error]in C++98 ‘arr‘ must be initialized by constructor, not by‘{...}‘
- Linux|深入Linux内核架构——锁与进程间通信
- c/c++进阶之路
- C/C++语法深度学习|C++继承和多态核心重点知识刨析,一文必拿下
- C/C++/C++11|C++中关键字volatile和mutable用法
- C/C++|c++学习笔记(六、模板和类型转换)