| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1407 人关注过本帖
标题:这周五交
只看楼主 加入收藏
告白
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-12-24
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:2 
这周五交
需要一个保存的代码


#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#include<conio.h>
#define NULL 0

struct student
{
long num;
char name[20];
int banji;
char tel[11];
char Email[20];
int sushe;
struct student *next;
};

struct student *stu;
int n;

void menu(void)
{  /*主菜单函数*/
system("cls");
puts("**********************************************************************");
puts("*                    学生通讯录管理系统-----蒋贤维版                 *");
puts("**********************************************************************");
puts("*                                                                    *");
puts("*                        1=录入学生通讯录信息                        *");
puts("*                        2=列出所有学生通讯录                        *");
puts("*                        3=按姓名查询信息                            *");
puts("*                        4=按学号查询信息                            *");
puts("*                        5=删除学生信息                              *");
puts("*                        6=按学号将通讯录排序                        *");
puts("*                        7=修改学生信息                              *");
puts("*                        8=保存信息                                  *");
puts("*                        0=退出                                      *");
puts("*                                                                    *");
puts("*                                                                    *");
puts("*                                                                    *");
puts("**********************************************************************");
}


struct student *shuru(void)     //输入函数
{
system("cls");   
struct student *s1,*s2;
n=1;
int num;
puts("请输入学生个数:");
scanf("%d",&num);
s1=s2=(struct student *)malloc(sizeof(struct student));
puts("*************************************************");
puts("请输入学号:");
scanf("%ld",&s1->num);
puts("请输入学生姓名:");
scanf("%s",s1->name);
puts("请输入班级:");
scanf("%d",&s1->banji);
puts("请输入电话号码:");
scanf("%s",s1->tel);
puts("请输入电子邮件:");
scanf("%s",s1->Email);
puts("请输入学生宿舍号:");
scanf("%d",&s1->sushe);
stu=s1;
while(n<num)
{
s2->next=s1;
s2=s1;
s1=(struct student *)malloc(sizeof(struct student));
puts("*************************************************");
puts("请输入学号:");
scanf("%ld",&s1->num);
puts("请输入学生姓名:");
scanf("%s",s1->name);
puts("请输入班级:");
scanf("%d",&s1->banji);
puts("请输入电话号码:");
scanf("%s",s1->tel);
puts("请输入电子邮件:");
scanf("%s",s1->Email);
puts("请输入学生宿舍号:");
scanf("%d",&s1->sushe);
n=n+1;
}
puts("*************************************************");
s2->next=s1;
s2=s1;
s2->next=NULL;
return(stu);
//system("cls");
}

void shuchu(struct student *s){    /*输出单个学生信息*/
printf("*  %-8ld",s->num);
printf("%-15s",s->name);
printf("%-8d",s->banji);
printf("%-15s",s->tel);
printf("%-15s",s->Email);
printf("%-5d  *\n",s->sushe);
}

void findall()      /*输出所有学生信息*/
{   
    system("cls");
    struct student *s;
    printf("\n现在有%d个学生信息,分别是:\n",n);
    puts("________________________________________________________________________");
    puts("*  学号    姓名           班级    电话           电子邮件       宿舍   *");
    s=stu;
    while(s!=NULL)
    {
        shuchu(s);
        s=s->next;
    }

    puts("________________________________________________________________________");
    puts("返回主菜单请按【9】");
    if(getche()=='9') menu();
}


void findname()   /*按姓名查找函数*/
{
    system("cls");
    struct student *s;
    char name[20];
    printf("\n请输入你要查询的学生姓名:\n");
    scanf("%s",name);
    s=stu;
    while(strcmp(s->name,name)!=0)
    {
        s=s->next;
    }
    if(s==NULL)
    {
        puts("查无此学生姓名!");
        goto end;
    }
    else
    {
        puts("该学生的信息为:");
        puts("*  学号    姓名           班级    电话           电子邮件       宿舍   *");
        shuchu(s);
    }
end:;
    puts("返回主菜单请按【9】");
    if(getche()=='9') menu();
}


void findnum()       /*按学号查找函数*/
{
    system("cls");
    struct student *s;
    puts("请输入你要查询的学生学号:");
    long i;
    scanf("%ld",&i);
    s=stu;
   
    while(s->num!=i)
    {
        s=s->next;
    }
    if(s==NULL)
    {
        puts("查无此学生学号!");goto end;
    }
    else
    {
        puts("该学生的信息为:");
        puts("*  学号    姓名           班级    电话           电子邮件       宿舍   *");
        shuchu(s);
    }
end:;
    puts("返回主菜单请按【9】");
    if(getche()=='9') menu();
}



struct student *shanchu(struct student*stu)    /*删除函数*/
{
    system("cls");
    long num;
    char s;
    struct student *s1,*s2;
    if(stu==NULL)
    {
        puts("没有任何学生信息。");
        goto end;
    }
    puts("请输入你要删除的学生学号:");
    scanf("%ld",&num);
    s1=stu;
    puts("警告:你确定要删除这个学生的信息吗(Y/N)?");
    scanf("%s",&s);
    if((s=='Y')||(s=='y'))
    {
        while((num!=s1->num)&&(s1->next!=NULL))
        {
            s2=s1;s1=s1->next;
        }

        if(num==s1->num)
        {
            puts("该学生的信息为:");
            puts("*  学号    姓名           班级    电话           电子邮件       宿舍   *");
            shuchu(s1);
            if(s1==stu)
                stu=s1->next;
            else
                s2->next=s1->next;
            puts("注意哟,该学生的信息已经删除了!剩下的学生通讯录信息如下:");
            n=n-1;
        }
    }
    findall();
    return(stu);
end:;
    puts("返回主菜单请按【9】");
    if(getche()=='9') menu();
}


void paixu(){               /*排序函数*/
    struct student *p, *p1,*p2;
    int i,j;
    int temp;
    char b[20];
    if(stu==NULL)
    {
        printf("\n学生信息不存在\n");
        goto end;
    }
    for(i=0;i<n-1;i++)
    {
        p1=stu;
        for(j=0;j<n-1;j++)
        {
            p2=p1->next;
            if(p1->num>p2->num)
            {
                temp=p1->num;p1->num=p2->num;
                p2->num=temp;
                strcpy(b,p1->name);
                strcpy(p1->name,p2->name);
                strcpy(p2->name,b);
                temp=p1->banji;
                p1->banji=p2->banji;
                p2->banji=temp;
                strcpy(b,p1->tel);
                strcpy(p1->tel,p2->tel);
                strcpy(p2->tel,b);
                strcpy(b,p1->Email);
                strcpy(p1->Email,p2->Email);
                strcpy(p2->Email,b);
                temp=p1->sushe;
                p1->sushe=p2->sushe;
                p2->sushe=temp;
            }
            p1=p1->next;   
        }
    }
    p=stu;
    puts("已按学生学号顺序排序完毕!重新排序如下:");
    puts("****************************************************************************");
    puts("*  学号    姓名           班级    电话           电子邮件       宿舍   *");

    while(p!=NULL)
    {
        printf("*  %-8ld",p->num);
        printf("%-15s",p->name);
        printf("%-8d",p->banji);
        printf("%-15s",p->tel);
        printf("%-15s",p->Email);
        printf("%-5d  *\n",p->sushe);
        p=p->next;
    }
end:;
    puts("返回主菜单请按【9】");
    if(getche()=='9')
        menu();
}


void main()      /*主函数*/
{
    char a;
    menu();
    puts("\n请按1开始录入学生信息,");
    a=getche();

    while(a){
        puts("");
        switch(a)
        {
        case'0':goto end;break;
        case '1':
            puts("\n请录入学生通讯录信息:");
            stu=shuru();
            system("cls");
            menu();
            puts("\n学生信息录入完毕,请输入你的选择(0~8):\n") ; break;
        case '2':findall(); puts("\n请输入你的选择(0~8):") ;  break;
        case '3':findname(); puts("\n请输入你的选择(0~8):") ; break;
        case '4':findnum(); puts("\n请输入你的选择(0~8):") ; break;
        case '5':stu=shanchu(stu); puts("\n请输入你的选择(0~8):") ; break;
        case '6':paixu(); puts("\n请输入你的选择(0~8):") ; break;
        default: puts("输错了!按数字1键可重录学生信息!") ; break;
        }
        a=getche();
    }
end:;
    puts("谢谢您的使用!");
}
搜索更多相关主题的帖子: include 管理系统 通讯录 system Email 
2017-05-09 21:44
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:10 
用到的文件结构FILE及其他一些函数都在stdio.h和stdlib.h里了,详细使用方法参见百度
程序代码:
int Save(){/*返回0表示成功,非零表示保存失败*/
    FILE*fp=fopen("d\:\\Dev1.txt","w");/*这个文件地址如果此前不存在会被创建,如果已经存在,使用“w"打开会把原来文件的内容擦除重写
                       你可以根据实际需要自己选择别的地址,也可以把地址选择交给用户*/
    if(fp==NULL)
    {
        printf("create file failed\n");
        return -1;
    }

    {
    fprintf(fp,"%s","Test\n");/*需要保存哪些信息,用什么结构、什么分隔符之类的请楼主自行把握*/
    }

    fclose(fp);
    return 0;
}




φ(゜▽゜*)♪
2017-05-10 12:09
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
赤裸裸的求作业
2017-05-10 18:10
快速回复:这周五交
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024772 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved