通讯录工程的构建(三)

对通讯录的操作都已经实现了,但前提是已经有一个通讯录了。那么第一次进入的时候我们需要建立一个通讯录,让前面的主程序读取。于是就有了这个“安装程序”,第一次运行通讯录前,让用户运行这个程序,将 数据,file_name,len 存入相应文件。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct stu

{

int num;

char name[20],tel[13],email[30];

char sort;

char yn;

struct stu *next;

};

main()

{

FILE *in,*f_name,*ll;

char fname[50],ch;

struct stu stud[15],ss[15];

int i,len=0;

loop:printf("\nplease enter the number of contacts :");

scanf("%d",&len);

if(len>15)

{

printf("\n*  The number should be less than 15\n");

goto loop;

}

puts("\n\n*   Tips: when you enter ‘sort‘ information, ‘a‘ means official, ‘b‘ means personal, ‘c‘ means commercial   *\n");

printf("\n\n     *******************   Enter information   *******************\n\n");

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

{

printf("\t\tname:  ");

scanf("%s",stud[i].name);

printf("\t\ttel :  ");

scanf("%s",stud[i].tel);

printf("\t\tsort:  ");

getchar();

stud[i].sort=getchar();

getchar();

printf("\n\t\temail: ");

scanf("%s",stud[i].email);

puts("\n");

}

if((in=fopen("D:\\telbook.dat","wb"))==NULL)

{

puts("cannot open the file");

exit (0);

}

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

fwrite(&stud[i],sizeof(struct stu),1,in);

fclose(in);

if((f_name=fopen("D:\\file_name.dat","wb"))==NULL)

{

puts("cannot open the file");

exit (0);

}

rewind(f_name);

fputs("D:\\telbook.dat",f_name);                                                         // note filename

fclose(f_name);

if((in=fopen("D:\\len.dat","wb"))==NULL)

{

puts("cannot open the file");

exit(0);

}

rewind(in);

fputc(len,in);

fclose(in);

//check

puts("\n\nCheck");

if((in=fopen("D:\\telbook.dat","rb"))==NULL)

{

puts("cannot open the file");

exit (0);

}

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

fread(&ss[i],sizeof(struct stu),1,in);

fclose(in);

if((f_name=fopen("D:\\file_name.dat","rb"))==NULL)

{

puts("cannot open the file");

exit (0);

}

fgets(fname,49,f_name);                                                         // note filename

fclose(f_name);

printf("\n\nfile name : %s\n\n\n",fname);

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

{

printf("\t\tname: %s\n",ss[i].name);

printf("\t\ttel : %s\n",ss[i].tel);

printf("\t\tsort: %c",ss[i].sort);

printf("\n\t\temail: %s",ss[i].email);

puts("\n");

}

if((ll=fopen("D:\\len.dat","rb"))==NULL)

{

puts("cannot open the file len");

exit(0);

}

rewind(ll);

ch=fgetc(ll);

fclose(ll);

printf("\n\nsaved len : %d\n",ch);

//check end

}

时间: 2024-12-27 18:19:20

通讯录工程的构建(三)的相关文章

MAVEN工程的构建与命令使用

Maven 可以用来管理工程,构建工具对于java开发人员来说是必须掌握的知识,本文介绍了利用eclipse构建工程,以及利用maven命令进行编译.打包. 1.构建maven环境 以本机为例,下载apache-maven-3.0.5-bin.zip,解压到E盘根目录下,修改maven解压目录下conf/settings.xml文件,修改属性本地仓库路径,此处设置为E:/jar/maven-jar. 添加环境变量,Path变量值添加:D:\apache-maven-3.0.5\bin; 在cmd

【推荐系统篇】--推荐系统之之特征工程部分---构建训练集流程

一.前述 根据前文中架构,本文我们讨论线下部分构建训练集部分.因为我们离线部分模型的选择是逻辑回归,所以我们数据必须有x和y. 二.具体流程 1.从数据库中分离出我们需要的数据. 用户行为表(日志) 用户历史下载表 商品词表(商品的基本特征) 2.构建训练集中的关联特征 流程: 2.构建训练集中的基本特征 总结:注意特征名离散化因为如果特征不离散化会造成数据之间有关系. 三.具体构建过程 1.hive建表 真实的生产场景涉及到大概五十张表的字段,这里全部简化流程,直接给出最终的三张表: 应用词表

前端工程的构建工具对比 Gulp vs Grunt

1. Grunt -> Gulp 早些年提到构建工具,难免会让人联想到历史比较悠久的Make,Ant,以及后来为了更方便的构建结构类似的Java项目而出现的Maven.Node催生了一批自动化工具,像Bower,Yeoman,Grunt等.而如今前端提到构建工具会自然想起Grunt.Java世界里的Maven提供了强大的包依赖管理和构建生命周期管理. 在JavaScript的世界里,Grunt.js是基于Node.js的自动化任务运行器.2013年02月18日,Grunt v0.4.0 发布.F

通讯录的实现(三)文件版本

我们再做通讯录这个小项目的时候,前边已经实现过静态版本和动态版本了,今天我来实现一下文件版本的,文件版本会将你以前录入的信息保存起来,这样方便以后的查询和操作. 文件版本实现起来并不难,只需在动态版本上稍作修改即可.下面是我的源码: "Contact.h" #ifndef __CONTACT_H__ #define __CONTACT_H__ #include <stdio.h> #include <string.h> #include<stdlib.h&

eclipse中新建Java工程的三个JRE选项区别

转载:http://blog.csdn.net/wdjhzw/article/details/42086615 本文的主角就是这个十分令人纠结地方,至少令我这个初学者十分纠结… 先来看看官方的解释(链接) Use default JRE: When selected, the New Java Project Wizard creates a new Java project which uses the workspace default JRE. The default JRE can be

maven的三种工程pom、jar、war

阅读数:739 maven中的三种工程: 1.pom工程:用在父级工程或聚合工程中.用来做jar包的版本控制. 2.war工程:将会打包成war,发布在服务器上的工程.如网站或服务. 3.jar工程:将会打包成jar用作jar包使用. 以淘淘商城为例: 一. pom工程 1. taotao-parent: taotao-parent是整个项目的父工程,它是一个pom工程.用来做整个项目的版本控制,也就是项目中所有要使用到的jar包的版本都集中由父工程管理.这样你在写其他工程pom文件中maven

Gradle 教程说明 用户指南 第7章 构建Java工程----快速入门

官网地址:http://www.gradle.org/docs/2.1/userguide/tutorial_java_projects.html A basic Java project  一个基础的java工程 使用java插件在build.gradle: apply plugin: 'java' Building the project 构建工程 这里使用gradle/samples/java/quickstart  示例工程.shell进该目录. > gradle build 命令所 运

Java开发技巧:如何利用Ant手动构建工程

利用Java语言构建工程,在这过程中主要是编译.打包.运行.部署等操作.将工程中的一个src文件夹用来放置工程的源代码,其中只有一个类的源代码. 在HelloWorld中新建HelloWorld.java代码如下: public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } 在没有使用Ant之前,先采用手工的方式来构建这个HelloWor

Spring Initializr 构建Spring Boot/Cloud工程

在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也可以通过<Spring Boot快速入门>一文中提到的SPRING INITIALIZR页面工具来创建,相信每位读者都有自己最喜欢和最为熟练的创建方式. 本文我们将介绍嵌入的Intellij中的Spring Initializr工具,它同Web提供的创建功能一样,可以帮助我们快速的构建出一个基础的