c语言源程序求职系统 #include <stdio.h> #include <stdlib.h> #include <string.h> #define szSTR 64 #define fileDB "c:\\contact.txt" struct CONTACT { char name[szSTR];/*姓名*/ char unit[szSTR];/*求职岗位*/ char tele[szSTR];/*电话*/ char mail[szSTR];/*mail*/ }; typedef struct CONTACT CON; 根据提供的信息,我们可以总结出以下相关的C语言编程知识点: ### C语言基础 1. **预处理指令**:在代码中,我们看到多个`#include`和`#define`语句,这些是C语言中的预处理指令。 - `#include <stdio.h>`:引入标准输入输出库。 - `#include <stdlib.h>`:引入标准库,包含一些基本的内存操作函数。 - `#include <string.h>`:引入字符串操作库。 2. **宏定义**: - `#define szSTR 64`:定义了一个常量`sZSTR`用于表示字符串的最大长度。 - `#define fileDB "c:\\contact.txt"`:定义了存储求职信息的文本文件路径。 3. **结构体与类型定义**: - `struct CONTACT`: 定义了一个名为`CONTACT`的结构体,其中包含了求职者的基本信息: - `char name[szSTR]`: 姓名。 - `char unit[szSTR]`: 求职岗位。 - `char tele[szSTR]`: 联系电话。 - `char mail[szSTR]`: 邮箱地址。 - `typedef struct CONTACT CON`: 使用`typedef`关键字为`struct CONTACT`定义一个别名`CON`。 4. **枚举定义**: - `#define BNAME 1`: 定义了姓名标志位。 - `#define BUNIT 2`: 定义了单位标志位。 - `#define BTELE 4`: 定义了电话标志位。 - `#define BMAIL 8`: 定义了邮箱标志位。 - `#define BFULL 0xFF`: 定义了全部信息标志位。 5. **数组与指针**:在函数实现中,可以看到对结构体数组的操作,以及指针的应用。 ### 函数设计 1. **数据输入函数**:`input(CON *s, int mask)` - 该函数接收一个`CON`类型的指针和一个整型标志位参数,根据标志位的不同,提示用户输入不同的信息,并将输入的信息保存到结构体变量中。 2. **数据显示函数**:`show(int id, CON *s)` - 该函数显示求职者的相关信息,可以指定是否显示ID。 3. **注册函数**:`regist(void)` - 该函数负责向文件中写入新的求职者信息。首先通过调用`input`函数获取用户的输入信息,然后打开文件并使用`fwrite`函数将信息写入文件中。 4. **浏览函数**:`browse(char *key, fpos_t *p, CON *s)` - 该函数读取文件中的所有求职者信息,并根据给定的关键词进行过滤,同时还可以记录文件位置信息,以便后续操作。 5. **查询函数**:`query(CON *s)` - 该函数用于查找特定的求职者信息,首先提示用户输入关键词,然后调用`browse`函数进行搜索。 6. **删除函数**:`clear(void)` - 该函数允许用户删除已存在的求职者信息,首先通过`query`函数找到待删除的记录,然后在文件中覆盖该记录为空。 7. **修改函数**:`modify(void)` - 该函数允许用户修改已存在的求职者信息,首先通过`query`函数找到待修改的记录,然后提供修改选项。 ### 文件操作 1. **文件打开与关闭**:使用`fopen`函数打开文件,使用`fclose`函数关闭文件。 2. **文件读写**:使用`fwrite`和`fread`函数进行二进制文件的读写操作。 3. **文件定位**:使用`fsetpos`和`fgetpos`函数来设置或获取文件的位置指针。 ### 总结 这个求职系统的C语言源程序展示了如何使用结构体、枚举、文件操作等基本概念来实现一个简单的数据管理系统。通过这个程序,可以加深对C语言的理解,并掌握如何使用C语言进行文件读写和数据管理的基本方法。此外,通过实际编码练习,可以更好地理解C语言中的一些高级特性,如指针、结构体等的使用方法。
#include <stdlib.h>
#include <string.h>
#define szSTR 64
#define fileDB "c:\\contact.txt"
struct CONTACT {
char name[szSTR];/*姓名*/
char unit[szSTR];/*求职岗位*/
char tele[szSTR];/*电话*/
char mail[szSTR];/*mail*/
};
typedef struct CONTACT CON;
#define BNAME 1
#define BUNIT 2
#define BTELE 4
#define BMAIL 8
#define BFULL 0xFF
int OPER[5] = {BFULL, BNAME, BUNIT, BTELE, BMAIL};
void input(CON * s, int mask)
{
if(mask & BNAME) { printf("请输入姓名:"); scanf("%s", s->name); }
if(mask & BUNIT) { printf("请输入求职岗位:"); scanf("%s", s->unit); }
if(mask & BTELE) { printf("请输入联系电话:"); scanf("%s", s->tele); }
if(mask & BMAIL) { printf("请输入电子邮件:"); scanf("%s", s->mail); }
}/*end input*/
void show (int id, CON * s)
{
if(!s) return ;
if(id)
printf("%d\t%s\t%s\t%s\t%s\n",
id, s->name , s->unit , s->tele , s->mail );
else
printf("【姓名】%s【求职岗位】%s【电话】%s【电邮】%s\n",
s->name , s->unit , s->tele , s->mail );
/*end if*/
}/*end show*/
void regist(void)
{
CON s; FILE * f = 0;
input(&s, BFULL);
f = fopen(fileDB, "ab");
fwrite(&s,sizeof(s),1,f);
fclose(f);
printf("资料已保存!\n");
}/*end regist*/
int browse(char * key, fpos_t * p, CON * s)
{
FILE * f =0; int i = 0, r = 0; CON t;
char * a = 0, * b = 0; fpos_t q;
if(!s) return 0;
f = fopen(fileDB, "rb");
if(!f) {
剩余5页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 白色简洁风格的户外旅行服务整站网站源码下载.zip
- 白色简洁风格的互联网推广企业网站源码下载.zip
- 白色简洁风格的户外自助游企业网站源码下载.zip
- 白色简洁风格的灰白相册网站模板下载.zip
- 白色简洁风格的花园草坪护理整站网站源码下载.zip
- 白色简洁风格的婚礼活动展示信息源码下载.zip
- 白色简洁风格的婚介服务动态源码下载.zip
- 白色简洁风格的婚礼电子请柬整站网站模板.zip
- 白色简洁风格的家居建材网站模板下载.zip
- 白色简洁风格的计划实现倒计时页源码下载.zip
- 白色简洁风格的技能展示企业网站模板.zip
- 白色简洁风格的家居装饰设计企业网站源码下载.zip
- 白色简洁风格的家居装修企业网站模板.zip
- 白色简洁风格的家具装饰品商城整站网站源码下载.zip
- 白色简洁风格的建筑工地企业网站模板.zip
- 白色简洁风格的建筑施工建设整站网站源码下载.zip