大学学院人事管理系统(c语言版本)

这篇博客介绍了作者在大一下学期用C语言完成的一个实验课作业——人事管理系统。系统具备人员录入、文件载入、删除、查找、修改、排序和统计等功能,并引入了文件系统,通过open和save函数进行数据持久化。博主强调在设计类似程序时,文件系统应从一开始就考虑,以避免后期增加的困难。文章最后提供了登录函数的源码。
摘要由CSDN通过智能技术生成

大一下学期的c语言的实验课作业
可以实现一些简单的功能
包括人员的录入和文件的载入对人员的删,查,改,排序,统计等等。
较之前的有改变的是加入的文件系统。
使用了open函数和save函数比之前版本有了较大改善。
对于文件系统的加入
博主提醒写与此相关的程序时如果有文件系统的话一定要提前写入考虑
最后加是很难,所以从一开始就考虑的文件系统的问题。
(这个登录函数感觉在控制台使用的话还是比较好使的,有需要的话可以直接拿走)

废话不多说直接上源码---->

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100

typedef struct peopleRecord
{
   
    char No[10];       //编号
    char name[10];     //姓名
    char sex[10];       //性别
    int age;           //年龄
    char job[10];      //职务
    char post[20];     //职称
    char politic[10];    //政治面貌
    char edu_level[10];  //最高学历
    char period[10];    //任职时间
    char start_time[10];  //来院时间
} PR; //定义学院人事记录表
PR pr[N];

void save();
int open();
void Show();
void Sort();
void Seek();
void Add();
void Show2();
void Sort2();
void Delete();
void modify();
void save2();
void count();
void RandomCode (char Rcode[]);
int LandedApp (char *password[], char Rcode[]);
void Login();

int i, tmp=0, flag = 1, menu;
void main()
{
   
    int k;
    system("color A");
    printf("\t&*********************************&\n");
    printf("\t    欢迎使用XXX大学人事管理系统    \n") ;
    printf("\t&*********************************&\n\n\n");
    Login();//调用登录函数
    while (flag)
    {
   
        do
        {
   
            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("8、退出菜单栏\n");
            printf("############################################菜单栏######################################\n");
            printf("请输入选项:");
            scanf("%d", &menu);
        }
        while (menu>8 || menu<1);

        judge(menu);

    }
    getchar();
    getchar();
    getchar();
}
void judge(int jdg)
{
   
    int n,j,x;

    char prNum[20];
    switch (jdg)
    {
   
    case 1:
        Add();
        break;
    case 2:
        Delete();
        break;
    case 3:
        printf("选择排序类型\n");
        printf("1、按年龄排序\n");
        printf("2、按来院时间排序\n");
        int t;
        scanf("%d",&t);
        switch(t)
        {
   
        case 1:
            Show2();
            break;
        case 2:
            Show();
            break;
        }
        break;
    case 4:
        modify();
        break;
    case 5:
        Seek();
        break;
    case 6:
        Show();
        break;
    case 7:
        count();
        break;
    case 8:
        flag = 0;
        break;
    }

}

/*随机码(验证码)产生函数*/
void RandomCode (char Rcode[])
{
   
    int i;
    srand (time(0));
    for (i = 0; i < 3; ++i)
        Rcode[i] = rand()%10 + '0';
    Rcode[i] = '\0';
}



/*内置登陆匹配函数,判断信息是否匹配,若匹配返回1,否则返回0*/
int LandedApp (char *password[], char Rcode[])
{
   
    char name[10]  = {
   0};
    char pword[10] = {
   0};
    char rcode[4]  = {
   0};
    printf ("               用户名 : ");
    gets (name);
    printf ("               密码   : ");
    gets (pword);
    printf ("               验证码 : ");
    gets (rcode);
    if (strcmp (name, password[0]) != 0 || strcmp (pword, password
学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。 系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。 (2) 按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。 (3) 按学院查询,输入学院名称,输出该学院的全部学生的信息。 (4) 按班级查询,输入班级名称,输出该班级的全部学生的信息。 6. 按不同条件对学生成绩进行统计工作。 (1) 按总分对学生信息进行排序(由高到低),输出排序后的信息,并将排序后的学生信息存放到一个新的二进制文件中。 (2) 按平均分统计各个分数段的学生人数(不及格,60-69,70-79,80-89,90-100)。 (3) 分别找出3门课程成绩最高的学生,并输出他们的信息。 (4) 分别统计出3门课程的不及格率,并输出。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值