通讯录-如何在此程序中添加上输出全部数据的函数

问题描述

如何在此程序中添加上输出全部数据的函数

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

/*定义学生结构体*/

struct Student

{

 char ID[20];  

 char Name[20];  

 char phone[20];  

 char address[20];  

 char QQ[20];

};

/*声明学生数组及学生数量*/

struct Student students[1000];

int num=1000;

/*通过学号返回数组下标*/

int Student_SearchByIndex(char id[])

{

int i;

for (i=0;i<num;i++)

{

if (strcmp(students[i].ID,id)==0)

{

return i;

}

}

return -1;

}

/*通过姓名返回数组下标*/

int Student_SearchByName(char name[])

{

int i;

for (i=0;i<num;i++)

{

if (strcmp(students[i].Name,name)==0)

{

return i;

}

}

return -1;

}

/*显示单条学生记录*/

void Student_DisplaySingle(int index)

{

printf("%15s%15s%15s%15s%15s
","学号","姓名","电话","住址","QQ");

printf("------------------------------------------------------------------------------
");

printf("%10s%15s%20s%15s%12s
",students[index].ID,students[index].Name,

students[index].phone,students[index].address,students[index].QQ);

}

/*插入学生信息*/

void Student_Insert()

{

while(1)

{

printf("请输入学号:");

scanf("%s",&students[num].ID);

getchar();

printf("请输入姓名:");

scanf("%s",&students[num].Name);

getchar();

printf("请输入电话:");

scanf("%s",&students[num].phone);

getchar();

printf("请输入住址:");

scanf("%s",&students[num].address);

getchar();

printf("请输入QQ:");

scanf("%s",&students[num].QQ);

getchar();

num++;

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*修改学生信息*/

void Student_Modify()

{

while(1)

{

char id[20];

int index;

printf("请输入要修改的学生的学号:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if (index==-1)

{

printf("学生不存在!
");

}

else

{

printf("你要修改的学生信息为:
");

Student_DisplaySingle(index);

printf("-- 请输入新值--
");

printf("请输入学号:");

scanf("%s",&students[index].ID);

getchar();

printf("请输入姓名:");

scanf("%s",&students[index].Name);

getchar();

printf("请输入电话:");

scanf("%f",&students[index].phone);

getchar();

printf("请输入住址:");

scanf("%f",&students[index].address);

getchar();

printf("请输入QQ:");

scanf("%f",&students[index].QQ);

getchar();

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*删除学生信息*/

void Student_Delete()

{

int i;

while(1)

{

char id[20];

int index;

printf("请输入要删除的学生的学号:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if (index==-1)

{

printf("学生不存在!
");

}

else

{

printf("你要删除的学生信息为:
");

Student_DisplaySingle(index);

printf("是否真的要删除?(y/n)");

if (getchar()=='y')

{

for (i=index;i<num-1;i++)

{

students[i]=students[i+1];//把后边的对象都向前移动

}

num--;

}

getchar();

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按姓名查询*/

void Student_Select()
{

while(1)

{

char name[20];

int index;

printf("请输入要查询的学生的姓名:");

scanf("%s",&name);

getchar();

index=Student_SearchByName(name);

if (index==-1)

{

printf("学生不存在!
");

}

else

{

printf("你要查询的学生信息为:
");

Student_DisplaySingle(index);

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*显示学生信息*/

void Student_Display()

{

int index;
int i;

printf("%10s%10s%10s%10s%10s
","学号","姓名","电话","住址","QQ");

printf("--------------------------------------------------------------------------------
");

for (i=0;i<num;i++)

{

printf("%10s%15s%20s%15s%12s
",students[index].ID,students[index].Name,

students[index].phone,students[index].address,students[index].QQ);
}

}

/*将学生信息从文件读出*/

void IO_ReadInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","rb"))==NULL)

{

printf("不能打开文件!
");

return;

}

if (fread(&num,sizeof(int),1,fp)!=1)

{

num=-1;

}

else

{

for(i=0;i<num;i++)

{

fread(&students[i],sizeof(struct Student),1,fp);

}

}

fclose(fp);

}

/*将学生信息写入文件*/

void IO_WriteInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","wb"))==NULL)

{

printf("不能打开文件!
");

return;

}

if (fwrite(&num,sizeof(int),1,fp)!=1)

{

printf("写入文件错误!
");

}

for (i=0;i<num;i++)

{

if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)

{

printf("写入文件错误!
");

}

}

fclose(fp);

}

/*主程序*/

void main()

{

int choice;

IO_ReadInfo();

while(1)

{

     /*主菜单*/
     printf("
*************************************************
");
     printf("
*********   学生通讯录管理系统          *********
");
     printf("
*********    1. 增加学生记录            *********
");
     printf("
*********    2. 修改学生记录            *********
");
     printf("
*********    3. 删除学生记录            *********
");
     printf("
*********    4. 按姓名查询学生记录      *********
");
     printf("
*********    5. 退出                    *********
");
     printf("
*************************************************
");
     printf("请选择(1-5):");
     scanf("%d",&choice);
     getchar();
     switch(choice)
     {
     case 1:
          Student_Insert();
          break;
     case 2:
          Student_Modify();
          break;
     case 3:
          Student_Delete();
          break;
     case 4:
          Student_Select();
         break;
     case 5:
          exit(0);
          break;
     }
     IO_WriteInfo();
 }

}

解决方案

代码太多太乱。你先要模块化你的程序。

解决方案二:

这是C语言的 然后我也不知道怎么模块化

解决方案三:

这是C语言的 然后我也不知道怎么模块化

解决方案四:

这是C语言的 然后我也不知道怎么模块化

解决方案五:

这是C语言的 然后我也不知道怎么模块化

解决方案六:

oracle 添加输出数据集的函数

时间: 2024-09-14 17:25:09

通讯录-如何在此程序中添加上输出全部数据的函数的相关文章

应用程序中添加“Coolbars”的简单方法

从微软新版本的ie中,我们明显感觉到微软正在采用一种新的工具条外观.新风格的工具条长被称为"Coolbar".其图标始终保持扁平状态,除非鼠标指针移到上面.Coolbar首次出现是在Windows 95的通用控件动态库中(comctl32.dll). 随着VC++6.0的发布,VC++程序员将会有更多的途径使用comctl32.dll中的新特点.对于仍然打算使用VC++5.0的程序员来说,本文提供一种简单快捷的方法来向现有的应用程序中添加coolbar. 简单地说,coolbar只是一

c# 附件-如何在c#窗体程序中添加像outlook附件类似的功能

问题描述 如何在c#窗体程序中添加像outlook附件类似的功能 各位大神们,请教一个问题,如何在c#窗体程序中添加像outlook附件类似的功能,上传一份附件,在窗体中显示文件名,双击可以打开相关软件打开文件?求大神给点思路,c#可以做到么? 我是新手,没有币 不能悬赏啊 求大神赐教-- 解决方案 说白了,带附件的邮件用的是mime格式的文件,你也可以用它.有很多mime解析的库,比如http://www.codeproject.com/Articles/11380/A-C-Implement

如何在用qt写的android程序中添加.lib?

问题描述 如何在用qt写的android程序中添加.lib? 如何在用qt写的android程序中添加.lib?同一样的程序运行desktop版的就可以,但运行android版时就说找不到-lzlib-lSDLmain-llibcurl_imp 等等.

buffer-在下面的java程序中添加按照字母顺序排序,如何添加

问题描述 在下面的java程序中添加按照字母顺序排序,如何添加 package test1;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.regex.Matcher;import java.util.regex.Pattern; p

android-我想在安卓程序中添加一个计数器。

问题描述 我想在安卓程序中添加一个计数器. 如题,类似于每点击一次按钮自增一的那样(FLAPPY BIRD 那种).求高手帮忙解决,感激不尽 解决方案 要求不是很明确呀,这个不是在定义一个Button,然后为Button设定一个监听,定义一个变量计数,每点击一次该变量加1就好了呢.

head first c#-Head First C#第二版 在C#程序中添加一个.sdf项目

问题描述 Head First C#第二版 在C#程序中添加一个.sdf项目 ![图片说明](http://img.ask.csdn.net/upload/201508/03/1438578490_69763.jpg 本人C#新人 用<Head First C#>学习时 ,有一页让人在一个C#项目中新建一个.sdf项目 但是我找不到后缀名为.sdf的文件 求指点 本人安装了微软官方的vs2013 和SQL Server 2008 但是这两个怎样使用不是很了解 怎样连接不是很懂 希望懂得大神能详

java-如何在web服务器端的程序中添加一个Servlet

问题描述 如何在web服务器端的程序中添加一个Servlet 如何在web服务器端的程序中添加一个Servlet servlet是用什么语言编写的 如果是java写的需要编译成.class文件吗 其他语言写的也需要编译吗 解决方案 如果是eclipse环境,那么点文件夹,直接添加,里面有模板 servlet一般是java写的类 是java写的,要运行肯定需要编译为.class 脚本语言,比如python,js不需要,编译语言都需要编译.

在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验等操作,不过还没有涉及到数据列表选择的这种方式,而这种在项目应用也是比较广泛的一种输入方式.本篇随笔继续探讨在GridView上直接录入数据,并增加字典选择列表的功能. 1.GridView直接录入数据回顾 在之前整合的数据录入案例里面,我们可以看到可以在列表里面直接录入速度的便捷性,如下所示. 1)直接在G

link中如何实现自定义的数据导航函数?

问题描述 link中如何实现自定义的数据导航函数? link中如何实现自定义的数据导航函数? 解决方案 不知道你说的"数据导航函数"是什么,翻遍google都没找到