#include<>#include<>#defineNsizeof(structSTH)#defineGESHI "%-10ld%-10s%-5s%-4d/%-2d/%-4d%-12s%-12s%s\n"#definePRINTF "学号 姓名 性别 生 日 系别 班级 家庭住址\n"structSTH*readfile();/*声明*/intinsert(structSTH**);intn=0;structdt{ intyear; /*全局变量*/ intmonth; intday;};structSTH{ longnum; /*学号不能以0开头*/ charname[9]; charsex[5]; structdtbirth; charxi[20]; charban[20]; charadd[30]; structSTH*next;}*head;/*输入模块*/input_message(){ charch; intflag=1; do { if(insert(&head)!=0) n++; /*计数*/ else printf("\n有相同的的学号!"); printf("\n是否继续?(y/n)"); getchar(); scanf("%c",&ch); if(ch=='y'||ch=='Y') { printf("\n继续!"); getch(); flag=1;/*标志程序不结束*/ } else flag=0; }while(flag==1); save_message(); printf("按任意键继续..."); getch();}/*insert()模块*/ /*被输入和插入模块所调用*/intinsert(structSTH**h){ structSTH*p,*p0; p=(structSTH*)malloc(N); printf("\n请输入学号:"); scanf("%ld",&p->num); printf("\n请输入姓名:"); scanf("%s",p->name); printf("\n请输入性别:"); getchar(); /*取走上一个留下来得‘\n’*/ scanf("%s",p->sex); printf("\n请输入生日(年月日,用回车隔开):\n"); scanf("%d%d%d",&p->,&p->,&p->); printf("\n请输入系别:"); scanf("%s",p->xi); printf("\n请输入班级:"); scanf("%s",p->ban); printf("\n请输入家庭住址:"); scanf("%s",p->add); p->next=NULL; if(*h==NULL) { *h=p; return1; } p0=*h; if(p0->num>p->num) { p->next=p0; *h=p; return1; } while(p0->next!=NULL&&p0->next->num<p->num) p0=p0->next; if(p0->next==NULL) { p0->next=p; return1; } elseif(p0->next->num==p->num) { free(p); /*有相同数据输入失败*/ return0; } else { p->next=p0->next; p0->next=p; return1; }}/*读文件模块*/ /*读文件模块中创建了一个新的链表,其返回值为新链表的头指针*/structSTH*readfile(){ FILE*fp; structSTH*p,*p0
学生成绩管理系统c语言代码 来自淘豆网www.taodocs.com转载请标明出处.