使用多个c文件,要求能完成以下功能:该系统主要包括管理员用户和普通用户。其中管理员模块功能主要包括账户密码管理模块、毕业生个人信息管理模块、毕业生毕业院校信息管理模块、毕业生目标企业信息管理模块;普通用户模块功能主要包括账号注册登录模块、就业信息录入模块、就业信息删除模块、毕业生个人信息查询模块、毕业生毕业院校信息查询模块、毕业生目标企业信息查询模块。 其中就业信息录入模块可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息。就业信息删除模块可以对用户信息等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除。
时间: 2023-12-06 21:42:44 浏览: 40
这个需求可以分为多个模块进行实现,每个模块对应一个C文件,最终通过Makefile进行编译链接。下面是一个简单的实现示例:
1.管理员用户模块
- account.c:实现账户密码管理模块
- graduate_info.c:实现毕业生个人信息管理模块
- graduate_school_info.c:实现毕业生毕业院校信息管理模块
- target_company_info.c:实现毕业生目标企业信息管理模块
2.普通用户模块
- login.c:实现账号注册登录模块
- employment_info.c:实现就业信息录入模块、就业信息删除模块
- personal_info.c:实现毕业生个人信息查询模块
- school_info.c:实现毕业生毕业院校信息查询模块
- company_info.c:实现毕业生目标企业信息查询模块
每个模块包括对应功能的函数实现和与其他模块的接口函数,以便在主函数中进行调用。同时需要一个头文件,定义函数原型和常量等,被各个模块引用。如:
```
// header.h
#ifndef HEADER_H
#define HEADER_H
#define MAX_ACCOUNT_LENGTH 20
#define MAX_PASSWORD_LENGTH 20
// 管理员用户模块
int change_password(char *account, char *old_password, char *new_password);
int add_graduate_info(char *name, char *gender, int age, char *major, char *phone, char *email);
int modify_graduate_info(char *name, char *new_major, char *new_phone, char *new_email);
int delete_graduate_info(char *name);
int add_school_info(char *name, char *school_name, char *education, int graduation_year);
int modify_school_info(char *name, char *new_school_name, char *new_education, int new_graduation_year);
int delete_school_info(char *name);
int add_company_info(char *name, char *company_name, char *position, int salary);
int modify_company_info(char *name, char *new_company_name, char *new_position, int new_salary);
int delete_company_info(char *name);
// 普通用户模块
int register_account(char *account, char *password);
int login(char *account, char *password);
int add_employment_info(char *name, char *company_name, char *position, int salary);
int delete_employment_info(char *name, char *company_name);
int query_personal_info(char *name);
int query_school_info(char *name);
int query_company_info(char *name);
#endif
```
最后,通过Makefile进行编译链接,生成可执行文件:
```
# Makefile
CC = gcc
CFLAGS = -Wall -Wextra -Werror
all: admin_user normal_user
admin_user: account.o graduate_info.o graduate_school_info.o target_company_info.o main_admin.o
$(CC) $(CFLAGS) -o admin_user account.o graduate_info.o graduate_school_info.o target_company_info.o main_admin.o
normal_user: login.o employment_info.o personal_info.o school_info.o company_info.o main_normal.o
$(CC) $(CFLAGS) -o normal_user login.o employment_info.o personal_info.o school_info.o company_info.o main_normal.o
account.o: account.c header.h
$(CC) $(CFLAGS) -c account.c
graduate_info.o: graduate_info.c header.h
$(CC) $(CFLAGS) -c graduate_info.c
graduate_school_info.o: graduate_school_info.c header.h
$(CC) $(CFLAGS) -c graduate_school_info.c
target_company_info.o: target_company_info.c header.h
$(CC) $(CFLAGS) -c target_company_info.c
main_admin.o: main_admin.c header.h
$(CC) $(CFLAGS) -c main_admin.c
login.o: login.c header.h
$(CC) $(CFLAGS) -c login.c
employment_info.o: employment_info.c header.h
$(CC) $(CFLAGS) -c employment_info.c
personal_info.o: personal_info.c header.h
$(CC) $(CFLAGS) -c personal_info.c
school_info.o: school_info.c header.h
$(CC) $(CFLAGS) -c school_info.c
company_info.o: company_info.c header.h
$(CC) $(CFLAGS) -c company_info.c
main_normal.o: main_normal.c header.h
$(CC) $(CFLAGS) -c main_normal.c
clean:
rm -f *.o admin_user normal_user
```
以上是一个简单的实现示例,实际情况可能更为复杂,需要根据具体情况进行设计实现。