大家帮个忙啊小弟我是数学专业的,学校要小弟我们做这写课程设计,多谢啦

大家帮个忙啊,我是数学专业的,学校要我们做这写课程设计,谢谢啦
题目1:成绩管理系统
问题描述:
对一个班的多门课程的成绩进行管理,能够实现一个班级学生信息的输入,输出,查找、删除,修改,排序,求平均分和及格率等操作。
(对数据的以上操作不要使用Sql语句完成,要使用数据结构中讲授的排序或查找方法完成。)
题目2:图书馆管理系统的设计
问题描述:
对图书进行管理,系统具有如下功能:
1.图书入库:新购一种书,确定书好后,登记到图书目录中,如果表中已有,则只将库存量增加;图书数据包括图书书号、书名、作者,数量,单价等。
2.排序:以书号按升序排序(可以按其他的字段进行升降排序,排序方法任选)
3.查找:能按照书名、书号进行查找(使用顺序查找或折半查找或其他查找方式)
4.删除:从表中删除指定的图书
借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的借书证号和归还期限,改变现存量。
归还:注销对借阅者的登记,改变该图书的现存量。

------解决方案--------------------
发个代码你自己参考去修改,这样比较容易些,你觉得呢?
C/C++ code

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



typedef struct studentchange//定义结构体,将student中的定长记录改成变长记录
{
    char name[10];
    char num[10];
    char tel[20];
    char age[3];
    char sex[2];
}stud;


struct studentindex 
{
    int namelen;
    int numlen;
    int tellen;
    int agelen;
    int sexlen;
    int toallen; 
}studindex[N];

stud studchange2[N]; 


 
char buffer[1024];
int contentlen; 
int contentlentotal=0; 
void strcopy(char a[],char b[],int n,int m);

int main()
{   
    char content[100];
    int op;
    int i;
    stud stud[]=
    {
        "Li","1001","18810366100","18","f",
        "Fun","1002","18810366101","19","m",
        "Wang1","1003","18810366102","17","f",
        "hei","1004","18810366103","18","f",
        "Gao","1005","18810366104","19","m",
        "Yu","1006","18810366105","17","f",
        "Feng","1007","18810366103","18","f",
        "Dou","1008","18810366104","19","m",
        "Wang2","1009","18810366105","17","f" ,
        "Er","1010","18810366103","18","f",
        "San","1011","18810366104","19","m",
        "Zhao","1012","18810366105","17","f",
        "Qian","1013","18810366103","18","f",
        "Sun","1014","18810366104","19","m",
        "Li2","1015","18810366105","17","f",
        "Zhou","1016","18810366103","18","f",
        "Zheng","1017","18810366104","19","m",
        "Zhu","1018","18810366105","17","f" ,
        "Xiaobai","1019","18810366103","18","f",
        "Meng","1020","18810366105","17","f"
    };

    FILE *pf;
    if((pf=fopen("studchange.dat","ab+"))==NULL) //判断文件是否打开成功,一条记录一条记录追加
        printf("无法打开文件!");
    
    
    for(i=0;i<N;i++)
    {
         
        studindex[i].namelen=strlen(stud[i].name);
        studindex[i].numlen=strlen(stud[i].num);
        studindex[i].tellen=strlen(stud[i].tel);
        studindex[i].agelen=strlen(stud[i].age);
        studindex[i].sexlen=strlen(stud[i].sex);
        studindex[i].toallen=studindex[i].namelen+studindex[i].numlen+studindex[i].tellen+studindex[i].agelen+studindex[i].sexlen;
        strcpy(content,stud[i].name); 
        strcat(content,stud[i].num);
        strcat(content,stud[i].tel);
        strcat(content,stud[i].age);
        strcat(content,stud[i].sex);
        printf("总计%d条记录的信息为:%s\n",i+1,content);
        contentlen=strlen(content);//一条记录的长度
        fwrite(content,contentlen,1,pf);//将所有的记录写入文件中
        contentlentotal+=contentlen;
        contentlen=0;
    }
    fclose(pf);
    printf("\n");
    
    
    void query();
    void display();
    void update();
    display();
    
    while(1)
    {
        
        
        printf("*         Menu  selection                *\n");
        printf("*              1.query                   *\n");
        printf("*              2.display                 *\n");
        printf("*              3.update                  *\n");
        printf("*              4.exit                    *\n");
        printf("* ****************************************\n");
        printf("*  Please  enter  selection:*");
        scanf("%d",&op);
        switch(op)
        {
        case 1:query();
            break;
        case 2:display();
            break;
        case 3:update();
            break;
        case 4:return 0;
        }
        
        getchar();
    }
    return 0;    
}







void display()      //打印文件中通讯录信息,并把读出来得记录放到结果体对象studchange2中。
{
    int i;
    FILE *pf2;
    if((pf2=fopen("studchange.dat","r+b"))==NULL)//判断文件是否打开成功,一条记录一条记录追加
        printf("无法打开文件!");
    
    
    char name[10];
    char num[10];
    char tel[20];
    char age[10];
    char sex[10];
    
    //将的信息输出到一个字符串中即可。
    int bufferlen=0;
    fread(buffer,contentlentotal,1,pf2);//将文件中的记录信息读到缓冲区中。
    printf("所有内容的长度是:%d\n",contentlentotal);
    printf("所有的记录信息是:%s\n",buffer);
    
    
    printf("****************            通讯录       ******************\n");
    printf("姓名       学号      电话       年龄        性别\n");
    for(i=0;i<N;i++) 
    {
        strcopy(name,buffer,bufferlen,studindex[i].namelen);
        memcpy(studchange2[i].name,name,studindex[i].namelen); 
        bufferlen+=studindex[i].namelen;
        
        
        strcopy( num,buffer,bufferlen,studindex[i].numlen); 
    
        memcpy(studchange2[i].num,num,studindex[i].numlen); 
        bufferlen+=studindex[i].numlen;
        
        
        strcopy(tel,buffer,bufferlen,studindex[i].tellen);
        memcpy(studchange2[i].tel,tel,studindex[i].tellen); 
        bufferlen+=studindex[i].tellen;
        
        
        
        
        strcopy(age,buffer,bufferlen,studindex[i].agelen);
        memcpy(studchange2[i].age,age,studindex[i].agelen); 
        bufferlen+=studindex[i].agelen;
        
        strcopy( sex,buffer,bufferlen,studindex[i].sexlen);
        memcpy(studchange2[i].sex,sex,studindex[i].sexlen); 
    
        bufferlen+=studindex[i].sexlen;

        printf("%s,%s,%s,%s,%s\n",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);
        printf("\n");    
    }
}


void query()
{ 
    int i;
    //void see1(struct student *p);
    //    struct student *p;
    int method;
    char name_test[10];
    char num_test[10];
    char tel_test[20];
    char age_test[10];
    char sex_test[10];
    while(1)
    {
        
        printf("*               Menu  selection                          *\n");
        printf("*                请选择查询方式                          *\n");
        printf("*                 1.按姓名查询                           *\n");
        printf("*                 2.按学号查询                           *\n");
        printf("*                 3.按电话查询                           *\n");
        printf("*                 4.按年龄查询                           *\n");
        printf("*                 5.按性别查询                           *\n");
        printf("*                 6.返回主菜单                           *\n");
        printf("*  *********************************************************\n");
        
        scanf("%d",&method);
        switch(method)
        {
        case 1:
            printf("请输入要查询的name:\n");
            scanf("%s",&name_test);
            //printf("看看比较结果是:%d\n",strcmp(studchange2[0].name,name));
            
            for(i=0;i<N;i++)
            {    //首先将信息提取出
                //if(memcmp(studchange2[i].name,name,strlen(name)==0))
            //    {
                    printf("name:%s\n",studchange2[i].name);
                printf("num:%s\n",studchange2[i].num);
                printf("tel:%s\n",studchange2[i].tel);
                printf("age:%s\n",studchange2[i].age);
                printf("sex:%s\n",studchange2[i].sex);
                printf("\n");
            //    }
            }
            
            break;
            
        case 2:
            printf("*  请输入要查询的学号:\n");
            scanf("%s",&num_test);
            for(i=0;i<N;i++)
            {
                if(!strcmp(studchange2[i].num,num_test))
                {
                    printf("name:%s\n",studchange2[i].name);
                    printf("num:%s\n",studchange2[i].num);
                    printf("name:%s\n",studchange2[i].tel);
                    printf("age:%s\n",studchange2[i].age);
                    printf("sex:%s\n",studchange2[i].sex);
                    printf("\n");
                }
            }
            break;
            
        case 3:
            printf("*  请输入要查询的电话\n");
            scanf("%s",&tel_test);
            for(i=0;i<N;i++)
            {
                if(!strcmp(studchange2[i].tel,tel_test))
                {
                    printf("name:%s\n",studchange2[i].name);
                    printf("num:%s\n",studchange2[i].num);
                    printf("name:%s\n",studchange2[i].tel);
                    printf("age:%s\n",studchange2[i].age);
                    printf("sex:%s\n",studchange2[i].sex);
                    printf("\n");
                }
            }
            break;
        case 4:
            printf("*  请输入要查询的年龄\n");
            scanf("%s",&age_test);
            for(i=0;i<N;i++)
            {
                //首先将信息提取出来
                
                
                
                if(!strcmp(studchange2[i].age,age_test))
                {
                    printf("name:%s\n",studchange2[i].name);
                    printf("num:%s\n",studchange2[i].num);
                    printf("name:%s\n",studchange2[i].tel);
                    printf("age:%s\n",studchange2[i].age);
                    printf("sex:%s\n",studchange2[i].sex);
                    printf("\n");
                }
            }
            
            break;
            
        case 5:
            printf("*  请输入要查询的性别\n");
            scanf("%s",&sex_test);
            
            printf("姓名       学号      电话       年龄        性别\n");
            for(i=0;i<N;i++)
            {
                if(!strcmp(studchange2[i].sex,sex_test))
                {
                    printf("%s,%s,%s,%s,%s",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);
                    printf("\n");
                }
            }    
            break;
        default:return;
            
            
            
        }
        
        
    }
    
    }
    
    
    //将字符数组第m个到第n个字符copy到另外一个字符数组中
    void strcopy(char a[],char b[],int n,int m)
    {
        memcpy(a,&b[n],m);
        a[m]='\0';
    }
    
    
    
    void update()
    {}