用C语言写出个人简历系统

          个人简历系统

个人简历系统的要求是设计个人基本信息系统,对个人信息能够进行录入、修改等操作,要求有菜单界面和退出功能,系统以菜单方式进行工作。个人信息应包括:姓名、性别、籍贯等信息,该系统
应该具有以下功能:
1)个人简历信息录入功能-输入;
2) 增加个人简历信息;
3) 个人简历信息浏览-输出;
4) 按身份证号查询信息;
5) 个人简历信息删除;
6)个人简历信息修改;
7)数据保存
8)数据读取
输入要求:
应用程序运行后,在屏幕上显示一个菜单。用户根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键设计盘输入相应的信息。
输出要求:
要求应用程序应用后,要在屏幕上显示一个菜单,用户输入数据要给出清晰明确的提示信息,包括输入的数据内容、格式及结
束方式等。

参考代码如下,有帮助的话采纳一下哦!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_PERSONS 100 // 最多存储的个人信息数量
#define MAX_NAME_LEN 20 // 姓名的最大长度
#define MAX_ADDR_LEN 50 // 籍贯的最大长度
#define MAX_ID_LEN 20   // 身份证号的最大长度

struct Person {
    char name[MAX_NAME_LEN];
    char gender;
    char addr[MAX_ADDR_LEN];
    char id[MAX_ID_LEN];
};

struct Person persons[MAX_PERSONS]; // 存储所有的个人信息
int numPersons = 0;                 // 已存储的个人信息数量

// 显示菜单
void showMenu() {
    printf("\n");
    printf("==== 个人简历系统 ====\n");
    printf("1. 个人简历信息录入\n");
    printf("2. 个人简历信息浏览\n");
    printf("3. 按身份证号查询信息\n");
    printf("4. 个人简历信息删除\n");
    printf("5. 个人简历信息修改\n");
    printf("6. 数据保存\n");
    printf("7. 数据读取\n");
    printf("0. 退出\n");
    printf("=======================\n");
    printf("请选择操作:");
}

// 读取字符串
void readString(char* buffer, int maxLength) {
    fgets(buffer, maxLength, stdin);
    buffer[strlen(buffer) - 1] = '\0'; // 去掉换行符
}

// 添加个人信息
void addPerson() {
    struct Person person;
    printf("\n请输入个人信息:\n");
    printf("姓名(最多%d个字符):", MAX_NAME_LEN - 1);
    readString(person.name, MAX_NAME_LEN);
    printf("性别(M(男)/W(女):");
    scanf("%c", &person.gender);
    getchar(); // 读取换行符
    printf("籍贯(最多%d个字符):", MAX_ADDR_LEN - 1);
    readString(person.addr, MAX_ADDR_LEN);
    printf("身份证号(最多%d个字符):", MAX_ID_LEN - 1);
    readString(person.id, MAX_ID_LEN);
    persons[numPersons++] = person;
    printf("添加成功!\n");
}

// 显示个人信息
void showPerson(const struct Person* person) {
    printf("姓名:%s,性别:%c,籍贯:%s,身份证号:%s\n",
           person->name, person->gender, person->addr, person->id);
}

// 浏览个人信息
void browsePersons() {
    printf("\n已存储的个人信息如下:\n");
    for (int i = 0; i < numPersons; i++) {
        showPerson(&persons[i]);
    }
}

// 按身份证号查询个人信息
void findPersonById() {
    char id[MAX_ID_LEN];
    printf("\n请输入身份证号:");
    readString(id, MAX_ID_LEN);
    for (int i = 0; i < numPersons; i++){
        if (strcmp(id, persons[i].id) == 0) {
            printf("查询结果如下:\n");
            showPerson(&persons[i]);
            return;
       }
    }
    printf("未找到身份证号为%s的个人信息。\n", id);
}


// 删除个人信息
void deletePerson() {
    char id[MAX_ID_LEN];
    printf("\n请输入要删除的个人信息的身份证号:");
    readString(id, MAX_ID_LEN);
    for (int i = 0; i < numPersons; i++) {
        if (strcmp(id, persons[i].id) == 0) {
            for (int j = i + 1; j < numPersons; j++) {
                persons[j - 1] = persons[j];
            }
            numPersons--;
            printf("删除成功!\n");
            return ;
        }    
    }
    printf("未找到身份证号为%s的个人信息。\n", id);
}

// 修改个人信息
void updatePerson() {
    char id[MAX_ID_LEN];
    printf("\n请输入要修改的个人信息的身份证号:");
    readString(id, MAX_ID_LEN);
    for (int i = 0; i < numPersons; i++) {
    if (strcmp(id, persons[i].id) == 0) {
    printf("原信息如下:\n");
    showPerson(&persons[i]);
    printf("请输入新信息:\n");
    printf("姓名(最多%d个字符):", MAX_NAME_LEN - 1);
    readString(persons[i].name, MAX_NAME_LEN);
    printf("性别(M/F):");
    scanf("%c", &persons[i].gender);
    getchar(); // 读取换行符
    printf("籍贯(最多%d个字符):", MAX_ADDR_LEN - 1);
    readString(persons[i].addr, MAX_ADDR_LEN);
    printf("身份证号(最多%d个字符):", MAX_ID_LEN - 1);
    readString(persons[i].id, MAX_ID_LEN);
    printf("修改成功!\n");
    return;
    }
    }
    printf("未找到身份证号为%s的个人信息。\n", id);
}

// 保存数据到文件
void saveDataToFile() {
    FILE* fp = fopen("persons.txt", "wb");
    if (fp == NULL) {
    printf("无法打开文件!\n");
    return;
    }
    fwrite(&numPersons, sizeof(numPersons), 1, fp);
    fwrite(persons, sizeof(struct Person), numPersons, fp);
    fclose(fp);
    printf("数据已保存到文件。\n");
}

// 从文件读取数据
void loadDataFromFile() {
    FILE* fp = fopen("persons.txt", "rb");
    if (fp == NULL) {
        printf("无法打开文件!\n");
        return;
    }
    fread(&numPersons, sizeof(numPersons), 1, fp);
    fread(persons, sizeof(struct Person), numPersons, fp);
    fclose(fp);
    printf("数据已从文件中读取。\n");
    browsePersons();
}


int main() {
    int choice = -1;
    while (choice != 0) {
        showMenu();
        scanf("%d", &choice);
        getchar(); // 读取换行符
        switch (choice) {
            case 1:
            addPerson();
            break;
            case 2:
                browsePersons();
                break;
            case 3:
                findPersonById();
                break;
            case 4:
                deletePerson();
                break;
            case 5:
                updatePerson();
                break;
            case 6:
                saveDataToFile();
                break;
            case 7:
                loadDataFromFile();
                break;
            case 0:
                printf("谢谢使用,再见!\n");
                break;
            default:
                printf("无效的选择,请重新输入。\n");
                break;
        }
    }
    return 0;
};

img

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_NAME_LENGTH 20
#define MAX_ADDRESS_LENGTH 50
#define MAX_ID_LENGTH 18
#define MAX_RESUME_NUM 100

struct Resume {
    char name[MAX_NAME_LENGTH];
    char gender;
    int age;
    char address[MAX_ADDRESS_LENGTH];
    char id[MAX_ID_LENGTH];
};

int resume_num = 0;
struct Resume resumes[MAX_RESUME_NUM];

void show_menu() {
    printf("\n=========================\n");
    printf("1. 录入个人简历信息\n");
    printf("2. 增加个人简历信息\n");
    printf("3. 个人简历信息浏览\n");
    printf("4. 按身份证号查询信息\n");
    printf("5. 个人简历信息删除\n");
    printf("6. 个人简历信息修改\n");
    printf("7. 数据保存\n");
    printf("8. 数据读取\n");
    printf("0. 退出\n");
    printf("=========================\n");
}

void input_resume(struct Resume *resume) {
    printf("请输入姓名(最多%d个字符):", MAX_NAME_LENGTH-1);
    scanf("%s", resume->name);
    printf("请输入性别(M/F):");
    scanf("%*c%c", &resume->gender);
    printf("请输入年龄:");
    scanf("%d", &resume->age);
    printf("请输入籍贯(最多%d个字符):", MAX_ADDRESS_LENGTH-1);
    scanf("%s", resume->address);
    printf("请输入身份证号码(18位数字):");
    scanf("%s", resume->id);
    printf("个人简历信息录入成功!\n");
}

void add_resume() {
    if (resume_num >= MAX_RESUME_NUM) {
        printf("已达到最大简历数量,无法继续增加!\n");
        return;
    }
    input_resume(&resumes[resume_num]);
    resume_num++;
}

void view_resume(struct Resume *resume) {
    printf("姓名:%s\n", resume->name);
    printf("性别:%c\n", resume->gender);
    printf("年龄:%d\n", resume->age);
    printf("籍贯:%s\n", resume->address);
    printf("身份证号码:%s\n", resume->id);
}

void browse_resume() {
    if (resume_num == 0) {
        printf("没有任何简历信息!\n");
        return;
    }
    printf("共有%d份简历信息:\n", resume_num);
    for (int i = 0; i < resume_num; i++) {
        printf("第%d份简历信息:\n", i+1);
        view_resume(&resumes[i]);
    }
}

int search_resume(char *id) {
    for (int i = 0; i < resume_num; i++) {
        if (strcmp(resumes[i].id, id) == 0) {
            return i;
        }
    }

以下是一个简单的个人简历系统,有帮助的话采纳一下哦

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 定义一个结构体表示个人信息
typedef struct {
    char name[20];
    int age;
    char gender[10];
    char phone[20];
    char email[50];
    char address[100];
    char education[100];
    char work_experience[200];
} Resume;

// 定义一个函数,用于输入个人信息
void input_resume(Resume *resume) {
    printf("请输入姓名:");
    scanf("%s", resume->name);
    printf("请输入年龄:");
    scanf("%d", &resume->age);
    printf("请输入性别:");
    scanf("%s", resume->gender);
    printf("请输入电话:");
    scanf("%s", resume->phone);
    printf("请输入邮箱:");
    scanf("%s", resume->email);
    printf("请输入地址:");
    scanf("%s", resume->address);
    printf("请输入教育经历:");
    scanf("%s", resume->education);
    printf("请输入工作经历:");
    scanf("%s", resume->work_experience);
}

// 定义一个函数,用于输出个人信息
void output_resume(Resume *resume) {
    printf("姓名:%s\n", resume->name);
    printf("年龄:%d\n", resume->age);
    printf("性别:%s\n", resume->gender);
    printf("电话:%s\n", resume->phone);
    printf("邮箱:%s\n", resume->email);
    printf("地址:%s\n", resume->address);
    printf("教育经历:%s\n", resume->education);
    printf("工作经历:%s\n", resume->work_experience);
}

int main() {
    Resume my_resume;
    printf("欢迎使用个人简历系统!\n");
    input_resume(&my_resume); // 输入个人信息
    printf("您的个人简历如下:\n");
    output_resume(&my_resume); // 输出个人信息
    return 0;
}

在这个程序中,我们首先定义了一个Resume结构体,用于表示个人信息。然后定义了两个函数,input_resume()用于输入个人信息,output_resume()用于输出个人信息。在main()函数中,我们创建了一个my_resume变量来存储个人信息,首先欢迎用户使用个人简历系统,然后调用input_resume()函数输入个人信息,最后调用output_resume()函数输出个人信息。

该回答引用ChatGPT

如有不懂或者疑问的地方可以回复我

1、定义一个Person类,包含姓名、性别、籍贯等信息属性,以及相应的getter和setter方法。
2、创建一个Resume类,包含增加个人简历信息、浏览个人简历信息、按身份证号查询信息、删除个人简历信息、修改个人简历信息、数据保存和数据读取等方法。
3、在Main函数中,使用一个while循环来显示菜单并读取用户输入的选项,根据用户输入的选项调用相应的方法来实现各项功能。
4、在数据保存和数据读取方法中,可以使用文件读写操作来实现数据的永久存储和读取。


% 参数设置
n_drivers = 100;  % 网约车数量
fixed_cost = 2000;  % 固定成本
variable_cost = 2;  % 变动成本
price_max = 30;  % 最高价格
price_min = 5;  % 最低价格
price_step = 0.1;  % 价格调整步长
demand = @(price) 500 - 20 * price;  % 需求函数

% 计算每个价格对应的收益和利润
revenue = zeros(1, length(price_min:price_step:price_max));
profit = zeros(1, length(price_min:price_step:price_max));
for i = 1:length(price_min:price_step:price_max)
    price = price_min + (i - 1) * price_step;
    d = demand(price);
    r = price * d;
    c = fixed_cost + variable_cost * n_drivers;
    revenue(i) = r;
    profit(i) = r - c;
end

% 找到最大利润和对应的价格
[max_profit, index] = max(profit);
price_optimal = price_min + (index - 1) * price_step;
fprintf('最优价格为 %f 元/公里,最大利润为 %f 元\n', price_optimal, max_profit);

% 绘制利润和收益曲线
figure;
plot(price_min:price_step:price_max, revenue, 'b-', 'LineWidth', 2);
hold on;
plot(price_min:price_step:price_max, profit, 'r-', 'LineWidth', 2);
plot(price_optimal, max_profit, 'ro', 'MarkerSize', 10);
xlabel('价格 (元/公里)');
ylabel('收益/利润 (元)');
legend('收益', '利润', '最优价格');
title('网约车平台定价仿真');

借鉴下

include

include

typedef struct {

union {

const char * company;

const char * school;

const char * project;

};

union {

const char * location;

const char * url;

};

union {

const char * title;

const char * program;

};

time_t started;

time_t left;

const char * description[];

} thing_t;

typedef thing_t job_t;

typedef thing_t school_t;

typedef thing_t project_t;

define CURRENT 0 /* I wasn't alive at the Unix epoch, so that'll work */

/* Contact Information */

const char * name = "Kevin R. Lange";

const char * email = "klange@toaruos.org";

const char * address = "1045 Mission St, Apt 440\n"

"San Francisco, CA 94103";

/* Education */

school_t uiuc = {

.school = "University of Illinois at Urbana-Champaign",

.location = "Urbana, IL",

.program = "BS Computer Science",

.started = 1251158400,

.left = 1336608000,

.description = {

"Minor in International Studies in Engineering, Japan",

"Focused on systems software courses",

NULL

}

};

school_t hit = {

.school = "Hiroshima Institute of Technology",

.location = "Hiroshima, Japan",

.program = "Study Abroad",

.started = 1274745600,

.left = 1278288000,

.description = {

"Cultural exchange program",

"Intensive language course",

NULL

}

};

school_t * schools[] = {

&uiuc,

&hit,

NULL

};

/* Projects */

project_t compiz = {

.project = "Compiz Window Manager",

.url = "http://compiz.org",

.title = "Developer",

.started = 1201392000,

.left = 1264291200,

.description = {

"Minor plugin contributor",

"Various research projects",

NULL

}

};

project_t toaruos = {

.project = "ToAruOS",

.url = "https://github.com/klange/toaruos",

.title = "Lead",

.started = 1295049600,

.left = CURRENT,

.description = {

"Hobby x86 Unix-like kernel and userspace",

"Advanced in-house GUI with compositing window manager",

NULL

}

};

project_t * projects[] = {

&toaruos,

&compiz,

NULL

};

/* Employment History */

job_t yelp = {

.company = "Yelp, Inc.",

.location = "San Francisco, CA",

.title = "Software Engineer, i18n",

.started = 1339977600,

.left = CURRENT,

.description = {

"Developed several internal tools and libraries",

"Provided critical input and design work for Yelp's launch in Japan",

NULL

}

};

job_t apple_internship = {

.company = "Apple Inc.",

.location = "Cupertino, CA",

.title = "Software Engineering Intern",

.started = 1306886400,

.left = 1314662400,

.description = {

"Built software framework for testing and verification of desktop retina display modes",

"Assisted other interns with Unix fundamentals",

NULL

}

};

job_t * jobs[] = {

&yelp,

&apple_internship,

NULL

};

void print_thing(thing_t * thing) {

char started[100];

char left[100];

struct tm * ti;

printf("%s at %s - %s\n", thing->title, thing->company, thing->location);

ti = localtime(&thing->started);

strftime(started, sizeof(started), "%B %d, %Y", ti);

if (thing->left == CURRENT) {

printf("%s to now\n", started);

} else {

ti = localtime(&thing->left);

strftime(left, sizeof(left), "%B %d, %Y", ti);

printf("%s to %s\n", started, left);

}

const char ** desc;

for (desc = thing->description; *desc; desc++) {

printf("- %s\n", *desc);

}

puts("");

}

int main(int argc, char ** argv) {

school_t ** s;

job_t ** j;

project_t ** p;

printf("%s\n%s\n%s\n\n", name, email, address);

puts("Education\n");

for (s = schools; *s; s++) {

print_thing(*s);

}

puts("Employment\n");

for (j = jobs; *j; j++) {

print_thing(*j);

}

puts("Projects\n");

for (p = projects; *p; p++) {

print_thing(*p);

}

return 0;

}

以下答案基于ChatGPT与GISer Liu编写:

下面是一个简单的个人简历系统的示例代码,使用C语言编写,基于命令行界面。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LENGTH 100
#define MAX_ENTRIES 100

typedef struct {
    char name[MAX_LENGTH];
    char gender[MAX_LENGTH];
    char hometown[MAX_LENGTH];
    char id[MAX_LENGTH];
} ResumeEntry;

int entry_count = 0;
ResumeEntry entries[MAX_ENTRIES];

void print_menu() {
    printf("Personal Resume System\n");
    printf("1. Add a new entry\n");
    printf("2. Display all entries\n");
    printf("3. Search by ID\n");
    printf("4. Delete an entry\n");
    printf("5. Modify an entry\n");
    printf("6. Save data\n");
    printf("7. Load data\n");
    printf("8. Quit\n");
    printf("Please enter your choice: ");
}

void add_entry() {
    printf("Enter name: ");
    scanf("%s", entries[entry_count].name);
    printf("Enter gender: ");
    scanf("%s", entries[entry_count].gender);
    printf("Enter hometown: ");
    scanf("%s", entries[entry_count].hometown);
    printf("Enter ID: ");
    scanf("%s", entries[entry_count].id);
    printf("Entry added successfully.\n");
    entry_count++;
}

void display_entries() {
    if (entry_count == 0) {
        printf("No entries to display.\n");
        return;
    }
    printf("Name\tGender\tHometown\tID\n");
    for (int i = 0; i < entry_count; i++) {
        printf("%s\t%s\t%s\t%s\n", entries[i].name, entries[i].gender, entries[i].hometown, entries[i].id);
    }
}

void search_entry() {
    char search_id[MAX_LENGTH];
    printf("Enter ID to search: ");
    scanf("%s", search_id);
    for (int i = 0; i < entry_count; i++) {
        if (strcmp(search_id, entries[i].id) == 0) {
            printf("Name\tGender\tHometown\tID\n");
            printf("%s\t%s\t%s\t%s\n", entries[i].name, entries[i].gender, entries[i].hometown, entries[i].id);
            return;
        }
    }
    printf("Entry with ID %s not found.\n", search_id);
}

void delete_entry() {
    char delete_id[MAX_LENGTH];
    printf("Enter ID to delete: ");
    scanf("%s", delete_id);
    for (int i = 0; i < entry_count; i++) {
        if (strcmp(delete_id, entries[i].id) == 0) {
            for (int j = i; j < entry_count - 1; j++) {
                entries[j] = entries[j+1];
            }
            printf("Entry with ID %s deleted.\n", delete_id);
            entry_count--;
            return;
        }
    }
    printf("Entry with ID %s not found.\n", delete_id);
}

void modify_entry() {
    char modify_id[MAX_LENGTH];
    printf("Enter ID to modify: ");
    scanf("%s", modify_id);
    for (int i = 0; i < entry_count; i++) {
        if (strcmp(modify_id, entries[i].id) == 0) {
            printf("Enter new name: ");
            scanf("%s", entries[i].name);
            printf("Enter new gender: ");
            scanf("%s", entries[i].


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 定义个人信息结构体
struct Person {
    char name[20];
    char gender[10];
    char hometown[20];
    char id[20];
};

// 显示菜单选项
void displayMenu() {
    printf("============== 个人简历系统 ==============\n");
    printf("1. 录入个人简历信息\n");
    printf("2. 浏览个人简历信息\n");
    printf("3. 按身份证号查询个人简历信息\n");
    printf("4. 删除个人简历信息\n");
    printf("5. 修改个人简历信息\n");
    printf("6. 数据保存\n");
    printf("7. 数据读取\n");
    printf("0. 退出\n");
    printf("==========================================\n");
    printf("请选择操作:");
}

// 录入个人简历信息
void addPerson(struct Person persons[], int *count) {
    printf("请输入姓名:");
    scanf("%s", persons[*count].name);
    printf("请输入性别:");
    scanf("%s", persons[*count].gender);
    printf("请输入籍贯:");
    scanf("%s", persons[*count].hometown);
    printf("请输入身份证号:");
    scanf("%s", persons[*count].id);
    printf("录入成功!\n");
    (*count)++;
}

// 浏览个人简历信息
void showPersons(struct Person persons[], int count) {
    if (count == 0) {
        printf("没有任何信息!\n");
    } else {
        printf("姓名\t性别\t籍贯\t身份证号\n");
        for (int i = 0; i < count; i++) {
            printf("%s\t%s\t%s\t%s\n", persons[i].name, persons[i].gender, persons[i].hometown, persons[i].id);
        }
    }
}

// 按身份证号查询个人简历信息
void searchPerson(struct Person persons[], int count) {
    char id[20];
    printf("请输入身份证号:");
    scanf("%s", id);
    for (int i = 0; i < count; i++) {
        if (strcmp(persons[i].id, id) == 0) {
            printf("姓名\t性别\t籍贯\t身份证号\n");
            printf("%s\t%s\t%s\t%s\n", persons[i].name, persons[i].gender, persons[i].hometown, persons[i].id);
            return;
        }
    }
    printf("没有找到该身份证号对应的信息!\n");
}

// 删除个人简历信息
void deletePerson(struct Person persons[], int *count) {
    char id[20];
    printf("请输入要删除的身份证号:");
    scanf("%s", id);
    for (int i = 0; i < *count; i++) {
        if (strcmp(persons[i].id, id) == 0) {
            for (int j =