操作系统作业1

类似于写一个学生信息管理系统,里面有一些问题还没有解决,以后有时间再改一下,不过程序能把老师的要求全部跑出来,对于清内存方面还是有一些问题,这里就没贴了

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student{
    int sno;
    char name[10];
    int sage;
    int sclass;
    struct student *next;
};  
struct student *create_h(){
    struct student *head;
    head=(struct student*)malloc(sizeof(struct student));
    if(head==NULL){
        printf("分配头节点失败");
        return NULL;
    }
    head->next=NULL;
    return head;
}
void search(struct student *head){//查找函数 
    int num;
    printf("输入你想查找的学生学号:");
    scanf("%d",&num);
    struct student *p;
    p=head->next;
    while(p!=NULL&&p->sno!=num){
        p=p->next;
    }
    if(p==NULL){
        printf("没找到这样的学生\n");
    }
    if(p->sno==num){

        printf("学号:%d 姓名:%s 年龄:%d 班级号:%d\n",p->sno,p->name,p->sage,p->sclass);  
    }
}

void add(struct student *head){//添加函数 
    struct student *p=head,*s;
    s=(struct student*)malloc(sizeof(struct student));
    printf("输入你想添加学生的信息:学号,姓名,年龄,班级号\n");
    scanf("%d %s %d %d",&s->sno,s->name,&s->sage,&s->sclass);
    while(p->next!=NULL&&s->sno>=p->next->sno){
        p=p->next;
    }
    if(p->next==NULL){
        p->next=s;
        s->next=NULL;
    }
    else{
        p->next=s;
        s->next=p->next;
    }
    printf("学号:%d\n姓名:%s\n年龄:%d\n班级:%d\n",s->sno,s->name,s->sage,s->sclass);

}

void H_printf(struct student *head){//打印数据 
    struct student *p=head->next;
    while(p!=NULL){
        printf("%d %s %d %d\n",p->sno,p->name,p->sage,p->sclass);
        p=p->next;
    }
}

void modify(struct student *head){//改变数据 
    struct student *p;
    int num,age,cl;
    char na[10];
    printf("输入你想修改学生的学号:");
    scanf("%d",&num);
    while(p!=NULL&&p->sno!=num){
        p=p->next;
    } 
    if(p==NULL){
        printf("没找到你想修改的学生信息\n");
    }
    if(p->sno==num){
        printf("输入你想修改学生的信息:\n");
        scanf("%d %s %d %d",&p->sno,p->name,&p->sage,&p->sclass);
        printf("修改后学生信息:\n学号:%d\n姓名:%s\n年龄:%d\n班级号:%d\n",p->sno,p->name,p->sage,p->sclass);
        printf("修改成功\n");
    }
}

void delete1(struct student *head){
    struct student *p=head,*s=head;
    int num,flag=1;
    printf("输入你想删除的学生学号:\n");
    scanf("%d",&num);
    while(p!=NULL&&p->sno!=num){
        p=p->next;
        if(flag==0){
            s=s->next;
        }
        flag=0;
    }
    if(p==NULL){
        printf("没找到你想删除的学生\n");
    }
    if(p->sno==num){
        s->next=p->next;
        free(p);
        printf("删除成功!!!");
    }
}
int main(){
    struct student *head,*p,*ptail;
    head=create_h();
    int n;
    int num;

    while(1){
        printf("选择你想进行的操作:\n1.查找\n2.打印\n3.添加\n4.修改\n5.删除\n");
        scanf("%d",&n);
        switch(n){
        case 1:
            search(head);
            break;
        case 2:
            H_printf(head);
            break;
        case 3:
            add(head);
            break;
        case 4:
            modify(head);
            break;  
        case 5:
            delete1(head);
            break;

        default:
            break;  
        }
    }
    return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A.手工操作 B.单道批处理 C.多道批处理 D.多用户分时系统 2. 与计算机硬件关系最密切的软件是( )。 A.编译程序 B.数据库管理系统 C.游戏程序 D.OS 3. 现代OS具有并发性和共享性,是( )的引入导致的。 A.单道程序 B. 磁盘 C. 对象 D.多道程序 4. 早期的OS主要追求的是( )。 A.系统的效率 B.用户的方便性 C.可移植 D.可扩充性 5.( )不是多道程序系统 A.单用户单任务 B.多道批处理系统 C.单用户多任务 D.多用户分时系统 6.( )是多道操作系统不可缺少的硬件支持。 A.打印机 B.中断机构 C.软盘 D.鼠标 7. 特权指令可以在( )执行。 A.目 态 B.浏览器中 C.任意的时间 D.进程调度中 8. 没有了( )计算机系统就启动不起来。 A.编译器 B.DBMS C.OS D.浏览器 9. 通道能够完成( )之间的数据传输。 A.CPU与外设 B.内存与外设 C.CPU与主存 D.外设与外设 10. 操作系统的主要功能有( )。 A. 进程管理、存储器管理、设备管理、处理机管理 B. 虚拟存储管理、处理机管理、进程调度、文件系统 C. 处理机管理、存储器管理、设备管理、文件系统 D. 进程管理、中断管理、设备管理、文件系统 11. 单处理机计算机系统中,( )是并行操作的。 A.处理机的操作与通道的操作是并行的 B.程序与程序 C.主程序与子程序 D.用户程序与操作系统程序 12. 处理机的所有指令可以在( )执行。 A.目态 B.浏览器中 C.任意的时间 D.系统态 13.( )功能不是操作系统直接完成的功

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值