个人简历系统
个人简历系统的要求是设计个人基本信息系统,对个人信息能够进行录入、修改等操作,要求有菜单界面和退出功能,系统以菜单方式进行工作。个人信息应包括:姓名、性别、籍贯等信息,该系统
应该具有以下功能:
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;
};
#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;
}
下面是一个简单的个人简历系统的示例代码,使用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 =