您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计实践报告
C语言程序设计报告题目:学生成绩管理系统学生姓名:张大伟指导老师:刘伟荣学院:信息科学与工程学院专业班级:电气信息类1008班完成时间:2011年6月25日C语言程序设计报告一、课题名称:学生信息管理系统学生信息管理系统是基于系统主菜单的操作来实现学生数据的录入、修改、查询和统计等系统的基本功能。达到对学生信息的存储、统计、管理的目的。需要处理的数据如:班级、学号、姓名等。实现的功能模块如:数据的录入、数据的修改、数据的插入、数据的查询和数据的统计等。在时间过程中熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握函数嵌套调用、文件的读写、链表的应用等。二、系统概述三、数据结构设计四、各函数的设计五、使用程序说明1、欢迎界面2学生信息管理系统菜单主界面3、学生信息录入功能4、学生课程录入功能5、修改学生信息与成绩功能6、删除学生信息与成绩功能7、查询学生成绩排名功能五、总结与体会六、附录:#includestdio.h#includestring.h#defineSTUDENT3000typedefstructlecture{//定义课程信息的数据类型intnumber;charl_name[50];doublepoint;doubleexam_score;doubledaily_score;doublescore;}Lecture;typedefstructstudent{//定义学生信息的数据类型intnum;charclass[50];charname[50];charsex[5];intage;Lecturelecture[50];doubletotal_score;structstudent*before;structstudent*next;}Student;Studentstu[2*STUDENT];Studentstudenthead;intSTU=0;FILE*fp_student;voidreadfile()//从文件中读入保存的学生信息{Studentb;Student*pb=&studenthead;studenthead.next=NULL;while(fread(&b,sizeof(Student),1,fp_student)==1){stu[STU]=b;pb-next=&stu[STU];pb-next-before=pb;pb=pb-next;pb-next=NULL;STU++;}}voidwritefile()//将学校信息及选手信息保存在文件中{Student*pb=&studenthead;rewind(fp_student);while(pb-next!=NULL){fwrite(pb-next,sizeof(Student),1,fp_student);pb=pb-next;}}voidwelcome()//欢迎界面{system(cls);printf(\n\n\n\n\n\n\n);printf(\t\t\t);printf(学生成绩管理系统);printf(\n\n\n\n);printf(\t\t\t设计者张大伟\n\n);printf(\t\t\t指导老师刘伟荣\n\n);printf(\t\t中南大学电气信息类1008班\n\n);printf(\t\t\t2011年6月25日\n);printf(\n\n\n\n\n);system(pause);system(cls);}voiddisplay()//系统主操作界面{system(cls);printf(\n\n\n\n);printf(\n*******************************************************************************\n);printf(\t\t\t);printf(教务信息管理系统);printf(\n\n\n);printf(\t\t\t1.录入学生信息\n\n);printf(\t\t\t2.录入课程信息\n\n);printf(\t\t\t3.修改学生信息\n\n);printf(\t\t\t4.修改课程信息\n\n);printf(\t\t\t5.查询学生信息\n\n);printf(\t\t\t6.删除学生信息\n\n);printf(\t\t\t7.查询成绩排名\n\n);printf(\t\t\t0.退出管理系统\n\n);printf(\n*******************************************************************************\n);}voidvalue_score()//计算加权成绩函数{Student*a;doubles=0,n=0;inti;for(a=studenthead.next;a!=NULL;a=a-next){Lecture*b;for(b=a-lecture;b-number!=0;b++){b-score=0.7*b-exam_score+0.3*b-daily_score;s+=b-score*b-point;n+=b-point;}if(n==0)a-total_score=0;elsea-total_score=s/n;}}voidinput_student()//输入学生信息函数{inti;Studenta;Student*pa;Lecture*b;charch;while(1){system(cls);pa=&studenthead;while(pa-next!=NULL)pa=pa-next;memset(a.name,'\0',sizeof(a.name));memset(a.class,'\0',sizeof(a.class));memset(a.sex,'\0',sizeof(a.sex));printf(\n\n);printf(\t\t学生成绩管理系统-录入学生信息\n\n\n);printf(\n\t\t请输入学生学号:\n);printf(\t\t);scanf(%d,&a.num);printf(\n\t\t请输入学生班级:\n);printf(\t\t);scanf(%s,a.class);printf(\n\t\t请输入学生姓名:\n);printf(\t\t);scanf(%s,a.name);printf(\n\t\t请输入学生性别:\n);printf(\t\t);scanf(%s,a.sex);printf(\n\t\t请输入学生年龄:\n);printf(\t\t);scanf(%d,&a.age);stu[STU]=a;pa-next=&stu[STU];pa-next-before=pa;pa=pa-next;pa-next=NULL;b=stu[STU].lecture;for(i=0;i50;i++){b[i].number=0;memset(b[i].l_name,'\0',sizeof(b[i].l_name));b[i].point=0;b[i].exam_score=0;b[i].daily_score=0;}STU++;printf(\n\n\t\t);printf(是否继续输入其他学生的信息(Y/N));while(1){ch=getch();if(strchr(YyNn,ch)!=NULL)break;}if(ch=='n'||ch=='N')break;}}voidinput_lecture()//输入课程信息函数{intn,i,j,ok;Student*a;Lecture*b;charch;while(1){system(cls);printf(\n\n\t\t学生成绩管理系统-录入课程信息\n\n\n);printf(\n\t\t请输入学生学号:\n);printf(\t\t);scanf(%d,&n);for(a=studenthead.next,ok=0;a!=NULL;a=a-next)if(a-num==n){ok=1;break;}if(ok==1)break;if(ok==0){printf(\n\t\t未查找到该学生,按任意键后重新继续...\n);getch();printf(\n\t\t是否继续输入其他课程信息(Y/N));while(1){ch=getch();if(strchr(YyNn,ch)!=NULL)break;}if(ch=='y'||ch=='Y')continue;if(ch=='n'||ch=='N')break;}}while(1){b=a-lecture;for(j=0;b[j].number!=0;j++);printf(\n\t\t请输入课程编号:\n);printf(\t\t);scanf(%d,&b[j].number);printf(\n\t\t请输入课程名称:\n);printf(\t\t);scanf(%s,b[j].l_name);printf(\n\t\t请输入课程学分:\n);printf(\t\t);scanf(%lf,&b[j].point);printf(\n\t\t请输入学生平时成绩:\n);printf(\t\t);scanf(%lf,&b[j].daily_score);printf(\n\t\t请输入学生考试成绩:\n);printf(\t\t);scanf(%lf,&b[j].exam_score);printf(\n\n\n\t\t已经成功录入此课程信息...\n);printf(\n\t\t是否继续输入此学生的其他课程信息(Y/N));while(1){ch=getch();if(strchr(YyNn,ch)!=NULL)break;}if(ch=='y'||ch=='Y')continue;if(ch=='n'||ch=='N')return;}}voidcorrect_student()//修改学生信息函数{charch;intn,ok;charm[50];Student*a;while(1){system(cls);printf(\n\n\n\t\t学生成绩管理系统-修改学生基本信息);printf(\n\n\n);printf(\t\t1.按学号查询并修改\n);printf(\n\t\t2.按姓名查询并修改\n);printf(\n\t\t0.返回主菜单\n);while(1){ch=getch();if(strchr(012,ch)!=NULL)break;}if(ch=='0')return;if(ch=='1'){printf(\n\t\t请输入学生学号:\n);printf(\t\t);scanf(%d,&n);for(a=studenthead.next,ok=0;a!=NULL;a=a-next)if(a-num==n){ok=1;break;}if(ok==0){printf(\n\t\t未查找到该学生,按任意键后重新继续...\n);getch();printf(\n\t\t是否继续修改其他学生信息(Y/N));while(1){ch=getch();if(strchr(YyNn,ch)!=NULL)break;}if(ch=='y'||ch=='Y')continue;if(ch=='n'||ch=='N')return;}}elseif(ch=='2'){printf(\n\t\t请输入学生姓名:\n);printf(\t\t);scanf(%s,m);for(a=studenthead.next,ok=0;a!=NULL;a=a-next)if(!strcmp(m,a-n
本文标题:C语言程序设计实践报告
链接地址:https://www.777doc.com/doc-3169704 .html