问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求C语言大学模拟管理系统代码

发布网友 发布时间:2022-05-05 03:35

我来回答

5个回答

热心网友 时间:2022-05-10 10:32

输入验证我没写,你要自己添加。

输入那里switch case少一个break,是利用case贯通的效果,不要补充break。

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#include <time.h>
typedef struct node
{
    char id[20];//身份证
    char on[20];//学号
    char name[40];//姓名
    char subject[20];//专业
    struct tm  esTime;//入学时间
    int flag;//0:在职学生;1:普通学生;2:教师
    char title[20];//职称
    char faculty[20];//所在系
    float wages;//工资
    struct node *nexteStu;//在职学生链表指针
    struct node *nextStu;// 学生链表指针
    struct node *nextTea;//教师链表指针
}NODE;

void newNode(NODE **nodeHeads,NODE **nodeTails,int flag);//增加节点
void printfNodes(NODE **nodeHead,int flag);//打印链表

void meError(void *p);//内存申请失败
int main()
{
    int n,flag;
    NODE *nodeHeads[3]={NULL},*nodeTails[3]={NULL};
    while(1)
    {
        printf("选择要录入的人员类型:\n------0、在职学生。\n------1、普通学生。\n------2、教师 。\n------3、结束输入\n");
        scanf("%d",&flag);
        if(flag==0 || flag==1 ||flag==2)
        while(1)
        {
            newNode(nodeHeads,nodeTails,flag);
            printf("1、继续输入;2、返回主菜单;\n");
            scanf("%d",&n);
            if(n==2)
                break;
        }
        if(flag==3)
            break;

    }
    printfNodes(nodeHeads,0);
    printfNodes(nodeHeads,1);
    printfNodes(nodeHeads,2);

    return 0;
}


void printfNodes(NODE **nodeHeads,int flag)//打印链表
{
    NODE *nhSave=NULL;
    if(nodeHeads[flag])
    {

        switch(flag)
        {
            case 0:
                nhSave=nodeHeads[flag];
                printf("输入的在职学生信息:\n");
                while(nhSave->nexteStu)
                {
                    printf("----身份证:%s\n----学号:%s\n----姓名:%s\n----专业:%s\n----入学时间:%04d-%02d-%02d\n----职称:%s\n----所在系:%s\n----工资:%.2f\n",
                           nhSave->nexteStu->id,nhSave->nexteStu->on,nhSave->nexteStu->name,nhSave->nexteStu->subject,
                           nhSave->nexteStu->esTime.tm_year+1900,nhSave->nexteStu->esTime.tm_mon,nhSave->nexteStu->esTime.tm_mday,
                           nhSave->nexteStu->title,nhSave->nexteStu->faculty,nhSave->nexteStu->wages);
                    nhSave=nhSave->nexteStu;
                }

                break;
            case 1:
                nhSave=nodeHeads[flag];
                printf("输入的普通学生信息:\n");
                while(nhSave->nextStu)
                {
                    printf("----身份证:%s\n----学号:%s\n----姓名:%s\n----专业:%s\n----入学时间:%04d-%02d-%02d\n",
                           nhSave->nextStu->id,nhSave->nextStu->on,nhSave->nextStu->name,nhSave->nextStu->subject,
                           nhSave->nextStu->esTime.tm_year+1900,nhSave->nextStu->esTime.tm_mon,nhSave->nextStu->esTime.tm_mday);
                    nhSave=nhSave->nextStu;
                }
                break;
            case 2:
                nhSave=nodeHeads[flag];
                printf("输入的教师信息:\n");
                while(nhSave->nextTea)
                {
                    printf("----身份证:%s\n----姓名:%s\n----职称:%s\n----所在系:%s\n----工资:%.2f\n",
                           nhSave->nextTea->id,nhSave->nextTea->name,
                           nhSave->nextTea->title,nhSave->nextTea->faculty,nhSave->nextTea->wages);
                    nhSave=nhSave->nextTea;
                }
                break;
        }
    }

    printf("\n");
}

void newNode(NODE **nodeHeads,NODE **nodeTails,int flag)//增加节点
{
    NODE *nHead=nodeHeads[flag],*nTail=nodeTails[flag],*nodeNew=NULL;

    nodeNew=(NODE *)malloc(sizeof(NODE));
    nodeNew->flag=flag;
    nodeNew->nextStu=NULL;
    nodeNew->nexteStu=NULL;
    nodeNew->nextTea=NULL;
    switch(flag)
    {
        case 0:
            printf("在职学生信息录入:\n");
            break;
        case 1:
            printf("普通学生信息录入:\n");
            break;
        case 2:
            printf("教师信息录入:\n");
            break;
    }


    printf("请输入身份证:");
    scanf("%s",nodeNew->id);
    printf("请输入姓名:");
    scanf("%s",nodeNew->name);

    switch(flag)
    {
        case 0:
            printf("请输入职称:");
            scanf("%s",nodeNew->title);
            printf("请输入所在系:");
            scanf("%s",nodeNew->faculty);
            printf("请输入工资:");
            scanf("%f",&nodeNew->wages);
        case 1:
            printf("请输入学号:");
            scanf("%s",nodeNew->on);
            printf("请输入专业:");
            scanf("%s",nodeNew->subject);
            printf("请输入入学时间(YY-MM-DD):");
            scanf("%4d-%02d-%02d",&nodeNew->esTime.tm_year,&nodeNew->esTime.tm_mon,&nodeNew->esTime.tm_mday);
            nodeNew->esTime.tm_year-=1900;
            break;
        case 2:
            printf("请输入职称:");
            scanf("%s",nodeNew->title);
            printf("请输入所在系:");
            scanf("%s",nodeNew->faculty);
            printf("请输入工资:");
            scanf("%f",&nodeNew->wages);
            break;
    }

    if(nHead==NULL)
    {
        nHead=(NODE *)malloc(sizeof(NODE));
        meError(nHead);
        nHead->flag=-1;
        nHead->nextStu=NULL;
        nHead->nexteStu=NULL;
        nHead->nextTea=NULL;
    }
    if((flag==0 && nHead->nexteStu==NULL) || (flag==1 && nHead->nextStu==NULL) ||(flag==2 && nHead->nextTea==NULL))
        switch(flag)
        {
            case 0:nHead->nexteStu=nodeNew;break;
            case 1:nHead->nextStu=nodeNew;break;
            case 2:nHead->nextTea=nodeNew;break;
        }
    else if((flag==0 && nHead->nexteStu!=NULL) || (flag==1 && nHead->nextStu!=NULL) ||(flag==2 && nHead->nextTea!=NULL))
        switch(flag)
        {
            case 0:nTail->nexteStu=nodeNew;break;
            case 1:nTail->nextStu=nodeNew;break;
            case 2:nTail->nextTea=nodeNew;break;
        }
    nTail=nodeNew;

    nodeHeads[flag]=nHead;
    nodeTails[flag]=nTail;
}
void meError(void *p)//内存申请失败
{
    if(p==NULL)
    {
        printf("\n异常:内存申请失败!回车结束程序!\n");
        while(getch()!='\r');
        exit(0);
    }
}

热心网友 时间:2022-05-10 11:50

你的这个要求实在是太高了。不会有人满足你的要求的。因为该问题早就已经不仅仅是一个简单的 C 语言编程问题了。它涉及到编程过程中的很多理论知识。例如:数据结构和算法的设计、整个程序的总体设计风格、以及即使在集成编程环境下面录入完全部的程序源代码,但是程序必须要经过一系列的不断调试(例如:在可疑的语句处设置断点、单步跟踪等)、编译、链接,直到运行出最终的正确结果。

故你的这个要求只能够依靠自己的刻苦努力编写、以及不断调试、运行程序来完成了。

热心网友 时间:2022-05-10 13:24

还要mfc人机界面啊

热心网友 时间:2022-05-10 15:16

求求啦还有没有人啊

热心网友 时间:2022-05-10 17:24

又不难,自己不会写?追答私信

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 暴雪平台怎么下载 魔兽世界用战网无法更新,我把战网客户端卸载了,打算重新下载魔兽世界,怎么打开魔兽世界下载器还会出现 大学c语言,简单题,这个程序代码什么意思 有玩暴雪游戏的吗,这个暴雪战网客户端怎么就是安装不 冬季男人想补肾用太空按摩球按摩哪几个穴位? 土豆熬酸菜的陕北做法英文带翻译 哪个穴位是壮阳益精 EXCEL如何筛选相同项目的列? 中国最著名十位变性人i window10怎么设置宽带拨号 中国首例变性人,喜欢穿女装和女孩玩,现在怎么样了? 中国第一个变性人叫什么名字 中国第一个变性人是谁 中国变性第一人是谁?哪里人?哪年做的变性手术? 中国首位变性人,从小穿裙子进女厕所,丈夫到死都不知他是男人,是谁呢? 怎么筛选excel表格中一列里相同的 高干子弟变性后,被富商疯狂追求,如今怎样了? 我国首位变性人张克沙,从小认为自己是女孩,现状如何? 首位变性人张克沙从小穿裙,她的老公知道她曾经是男人吗? 中国第二个变性人是谁 三星s7不保存wifi密码是怎么了 三星note 3无法保存WiFi 密码是怎么回事? 求C语言程序代码? 三星n9008s不保存wifi密码 每次都要重新输入密码 三星N9008手机WiFi密码总保存不住, 求C语言程序代码,谢谢 手机是三星s5为什么WiFi连了保存不了密码,下次用又要重输密码。别的手机都可以保存 谁有关于C语言的简单的程序代码,欢迎留言。 galaxy a6为什么不能保存WiFi密码,每次登陆要重输 三星n7100不自动保存WIFI密码了 三星手机wiFi不能备份密码 三星手机wifi不自动保存密码,每次都要重新输入密码。设置已改成自动,但每次还是要重输,求助~ 三星手机怎样保存无线网密码 三星GT-B9062手机为什么不能保存wifi密码,每次都要手动输入,之前手机可以自动连接的,不 三星S5重启后wifi密码不保存 三星手机万能钥匙保存不住 河东狮吼的剧情简介 河东狮吼是什么意思?有何典故? 《新河东狮吼》主要剧情讲的是什么? 河东狮吼内容简介