学生成绩管理系统源代码样本_第1页
学生成绩管理系统源代码样本_第2页
学生成绩管理系统源代码样本_第3页
学生成绩管理系统源代码样本_第4页
学生成绩管理系统源代码样本_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<windows.h>structstudent//结构体定义{ intnum;charname[10]; charbirthday[10]; intCyuyan;intshujujiegou; structstudent*next;}; structstudent*creat_by_input(); structstudent*get_last_student(structstudent*head); structstudent*Print_menu_main()//主菜单{ printf("*********************************************************************\n"); printf("|1.........输入学生信息|\n");printf("|2.........输出学生信息|\n");printf("|3.........查找学生信息|\n");printf("|4.........修改学生信息|\n");printf("|5.........插入学生信息|\n");printf("|6.........删除学生信息|\n");printf("|7.........排序学生信息|\n");printf("|0.........退出系统|\n");printf("|_____________|\n");} structstudent*print_table_head() { printf("+----------+----------+----------+----------+-------------+\n"); printf("|学号|姓名|出生日期|c成绩|数据结构成绩|\n"); printf("+----------+----------+----------+----------+-------------+\n"); } structstudent*print_table_row(structstudent*p) { printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shujujiegou); } voidprint_table_bottom() { printf("+----------+----------+----------+----------+-------------+\n"); } structstudent*Creat_stu_record()//建立链表 { structstudent*plaststu=NULL,*pnewstu; charcontinue_input='N';structstudent*head=NULL; while(1) { if(head==NULL) { head=creat_by_input(); print_table_head(); print_table_row(head); print_table_bottom(); } else { pnewstu=creat_by_input(); print_table_head(); print_table_row(pnewstu); print_table_bottom(); plaststu=get_last_student(head); plaststu->next=pnewstu;} printf("是否继续输入学生信息?(Y继续,N返回菜单)\n"); getchar(); continue_input=getchar(); if(continue_input=='n'||continue_input=='N') { system("cls"); Print_menu_main(); break; } } returnhead;} structstudent*creat_by_input() { structstudent*pnewstu=(structstudent*)malloc(sizeof(structstudent)); printf("请输入学生信息\n"); printf("学号:");scanf("%d",&pnewstu->num); printf("姓名:");scanf("%s",pnewstu->name); printf("出生年月:");scanf("%s",pnewstu->birthday); printf("请输入学生成绩\n"); printf("C语言:");scanf("%d",&(pnewstu->Cyuyan)); printf("数据结构:");scanf("%d",&(pnewstu->shujujiegou));pnewstu->next=NULL; returnpnewstu; } structstudent*get_last_student(structstudent*p){ if(p->next==NULL) returnp; else returnget_last_student(p->next);}voidPrint_Stu_Doc(structstudent*head){ structstudent*p; charr; print_table_head(); if(head==NULL) { printf("\nNoRecords\n"); } for(p=head;p;p=p->next) { printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shujujiegou); printf("+----------+----------+----------+----------+-------------+\n");} printf("(按Enter键返回主菜单)\n"); getchar(); r=getchar(); if(r!='1') { system("cls"); Print_menu_main(); } else { system("cls"); Print_menu_main(); } }structstudent*search_by_name(structstudent*head)//按姓名查找{ charname[10]; structstudent*p=head; charcontinue_input; /*intisfound=0;*/ printf("请输入要查找的姓名:"); scanf("%s",name); printf("查找%s\n",name); print_table_head(); while(p!=NULL) { if(strcmp(p->name,name)==0) { print_table_row(p); p=p->next; /* isfound=1;*/ break; } p=p->next; } print_table_bottom(); printf("是否继续查找?(Y继续;N返回主菜单)\n"); getchar(); continue_input=getchar(); if(continue_input=='n'||continue_input=='N') { system("cls"); Print_menu_main(); } else search_by_name(head);}structstudent*search_by_id(structstudent*head)//按学号查找{ intid; structstudent*p=head; charcontinue_input; /*intisfound=0;*/ printf("请输入要查找的学号:"); scanf("%d",&id); printf("查找%d\n",id); print_table_head(); while(p!=NULL) { if(p->num==id) { print_table_row(p); p=p->next; /*isfound=1;*/ break; } p=p->next; } print_table_bottom(); printf("是否继续查找?(Y继续;N返回主菜单)\n"); getchar(); continue_input=getchar(); if(continue_input=='n'||continue_input=='N') { system("cls"); Print_menu_main(); } else search_by_id(head); returnhead;}structstudent*modify_record_by_id(structstudent*head)//按学号修改{ structstudent*p=head; intid; charcontinue_input; printf("请输入要修改的学生的学号:\n"); scanf("%d",&id); while(p!=NULL) { if(p->num==id) break; p=p->next; } if(p==NULL) printf("抱歉,没有学号为%d的学生\n",id); else { printf("请输入学生信息:\n"); printf("学号:");scanf("%d",&(p->num)); printf("姓名:");scanf("%s",&(p->name)); printf("出生年月:");scanf("%s",&(p->birthday)); printf("请输入学生成绩:\n"); printf("C语言:");scanf("%d",&(p->Cyuyan)); printf("数据结构:");scanf("%d",&(p->shujujiegou)); print_table_head();print_table_row(p);print_table_bottom();} printf("继续修改学生信息吗?Y继续;N返回主菜单\n"); getchar(); continue_input=getchar(); if(continue_input=='y'||continue_input=='Y') creat_by_input(); else { system("cls"); Print_menu_main(); } returnhead;}structstudent*modify_record_by_name(structstudent*head)//按姓名修改{ structstudent*p=head; charname[10]; charcontinue_input; printf("请输入要修改的学生的姓名:\n"); scanf("%s",name); while(p!=NULL) { if(strcmp(p->name,name)==0) break; p=p->next; } if(p==NULL) printf("抱歉,没有姓名为%s的学生\n",name); else { printf("请输入学生信息:\n"); printf("学号:");scanf("%d",&(p->num)); printf("姓名:");scanf("%s",&(p->name)); printf("出生年月:");scanf("%s",&(p->birthday)); printf("请输入学生成绩:\n"); printf("C语言:");scanf("%d",&(p->Cyuyan)); printf("数据结构:");scanf("%d",&(p->shujujiegou)); print_table_head();print_table_row(p);print_table_bottom();} printf("继续修改学生信息吗?Y继续;N返回主菜单\n"); getchar(); continue_input=getchar(); if(continue_input=='y'||continue_input=='Y') creat_by_input(); else { system("cls"); Print_menu_main(); } returnhead;}structstudent*insert_record(structstudent*head)//插入{ structstudent*ptr1; structstudent*ptr,*stud; structstudent*ptr2=head;charcontinue_input='N'; intid; printf("请输入一个学号,在此之前插入学生信息:"); scanf("%d",&id);stud=creat_by_input(); ptr=stud; if(head==NULL) { head=ptr;head->next=NULL; } elseif(head->num==id) { ptr->next=head; head=ptr; } else { while(ptr2!=NULL) { ptr1=ptr2; ptr2=ptr1->next; if(ptr2->num==id) { ptr1->next=ptr; ptr->next=ptr2; break; } } } print_table_head(); print_table_row(ptr); print_table_bottom(); printf("是否继续插入学生信息?(Y继续N返回主菜单)\n"); getchar(); continue_input=getchar(); if(continue_input=='y'||continue_input=='Y') returninsert_record(head); else { system("cls"); Print_menu_main(); returnhead; } }structstudent*Delete_record_by_id(structstudent*head)//按学号删除{ structstudent*p=head,*ppre=NULL; intid; charcontinue_input; printf("请输入要删除的学号:"); scanf("%d",&id); while(p!=NULL) { if(p->num==id) break; p=p->next; } if(p==NULL) printf("抱歉,没有该学号的学生信息!\n"); else { printf("确定要删除学号为%d的学生的信息吗?(Y确定;N返回主菜单)\n",p->num); getchar(); continue_input=getchar(); if(continue_input=='y'||continue_input=='Y') { ppre=head; if(ppre==p) { head=p->next; printf("\n"); free(p); } else { while(ppre!=NULL) { if(ppre->next==p) { ppre->next=p->next; free(p); break; } ppre=ppre->next; } } printf("删除成功!"); } //Print_menu_main();} printf("继续删除学生信息吗?(Y继续;N返回主菜单)"); getchar(); continue_input=getchar(); if(continue_input=='y'||continue_input=='Y') Delete_record_by_id(head);else { system("cls"); Print_menu_main(); returnhead; } return0;}structstudent*Delete_record_by_name(structstudent*head)//按姓名删除{ structstudent*p=head,*ppre=NULL; charname[10]; charcontinue_input; printf("请输入要删除的姓名:"); scanf("%s",name); while(p!=NULL) { if(strcmp(p->name,name)==0)break; p=p->next; } if(p==NULL) { printf("抱歉,没有该姓名的学生信息!\n"); gotoend; } else printf("确定要删除姓名为%s的学生的信息吗?(Y确定;N返回主菜单)",p->name); printf("\n"); getchar(); continue_input=getchar(); if(continue_input=='y'||continue_input=='Y') { ppre=head; if(ppre==p) { head=p->next; free(p); } else { while(ppre!=NULL) { if(ppre->next==p) { ppre->next=p->next; free(p); break; } ppre=ppre->next; } } printf("删除成功!"); } //elsePrint_menu_main();end: printf("继续删除学生信息吗?(Y继续;N返回主菜单)"); printf("\n"); getchar(); continue_input=getchar(); if(continue_input=='Y'||continue_input=='y') Delete_record_by_name(head); else { system("cls"); Print_menu_main();returnhead; } return0;}structstudent*Sorting_record_by_id(structstudent*head)//按学号排序{ inti=0,j,k,r; structstudent*pt1,*pt2,*pt,m; if(head==NULL) { printf("现在无同学记录\n"); printf("(按Enter键返回主菜单)\n"); getchar(); r=getchar(); if(r!='1') { system("cls"); Print_menu_main(); } else { system("cls"); Print_menu_main(); } } else { pt1=head; pt2=head->next; for(pt=head;pt;pt=pt->next) i++; for(j=1;j<i;j++) { pt1=head; pt2=head->next; for(k=1;k<i-j+1;k++) { if(pt1->num>pt2->num) { m=*pt1; *pt1=*pt2; *pt2=m; pt2->next=pt1->next; pt1->next=pt2; } pt1=pt2; pt2=pt1->next; } } } print_table_head(); for(pt=head;pt;pt=pt->next) { printf("|%10d|%10s|%10s|%10d|%10d|\n",pt->num,pt->name,pt->birthday,pt->Cyuyan,pt->shujujiegou); printf("+----------+----------+----------+----------+----------+\n");} returnhead; }intmain(){ structstudent*head=NULL; structstudent*p; intchoice;intselect;charm;charr; system("colore"); printf("\n"); printf("\n"); printf("欢迎使用学生成绩管理系统!\n"); printf("\n"); printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); printf("\n"); printf("...............................................................................\n");printf("请按照提示信息完成操作\n"); Print_menu_main(); printf("\n"); printf(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"); printf("\n"); printf("****************************************\n"); while(choice!=0) { printf("请选择所要执行的操作:\n");start: if(scanf("%d",&choice)) { if(choice>7||choice<0) { printf("请输入0到7的数字,选择所要执行的操作:\n"); gotostart; } else gotonext; } if(scanf("%c",&m)) { printf("请输入0到7的数字,选择所要执行的操作:\n"); gotostart; } next: switch(choice) { case1:system("cls");head=Creat_stu_record(); break; case2:system("cls");Print_Stu_Doc(head); break; case3:system("cls"); printf("请选择查找方式:1按姓名查找;2按学号查找;3返回主菜单"); printf("\n"); scanf("%d",&select); switch(select) { case1:search_by_name(head);break; case2:searc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论