[计算机软件及应用]学生管理系统与车辆管理系统 课程设计报告

上传人:仙*** 文档编号:27753512 上传时间:2021-08-20 格式:DOC 页数:81 大小:734KB
收藏 版权申诉 举报 下载
[计算机软件及应用]学生管理系统与车辆管理系统 课程设计报告_第1页
第1页 / 共81页
[计算机软件及应用]学生管理系统与车辆管理系统 课程设计报告_第2页
第2页 / 共81页
[计算机软件及应用]学生管理系统与车辆管理系统 课程设计报告_第3页
第3页 / 共81页
资源描述:

《[计算机软件及应用]学生管理系统与车辆管理系统 课程设计报告》由会员分享,可在线阅读,更多相关《[计算机软件及应用]学生管理系统与车辆管理系统 课程设计报告(81页珍藏版)》请在装配图网上搜索。

1、 通信工程学院课程设计报告 姓名:陈志 学号:52101610 专业:通信工程 班级:10级16班 (车辆管理系统课程设计实验报告) 目录 1. 课程设计任务……………………………………………………2 2.设计结构图与流程图……………………………………………..2 3.程序代码设计…………

2、…………………………………………..5 1.1 头文件……………………………………………………..5 1.2 源文件……………………………………………………...5 4.编码与调试分析……………………………………………………5 5.使用说明及运行结果………………………………………………6 6.课程设计心得体会………………………………………………….7 7.附录(程序清单)……………………………………………………...8 1.课程设计任务 1.1实验目的 使用C语言实现交通车辆违章管理系统的违章信息录入、违章情况查询、针对每台车辆统计罚款总金额

3、等基本操作。进一步巩固C语言的学习,培养一定的综合编程能力。 1.2需要处理的基础数据 设违章种类分为违章停车、闯红灯、超速等三种。设违章停车每次罚款100元、闯红灯每次罚款200元、超速每次罚款500元。 需处理的车辆及违章基本信息包括:车牌号、车主姓名、违章停车次数、闯红灯次数、超速次数。 1.3系统功能 1.车辆及违章信息的录入。 2.基于车牌号查询每台车辆的违章情况。 3.基于车牌号统计每台车辆的罚款总金额。 2.设计结构图与流程图 2.1设计结构图 程序设计图分几个小模块,下面是程序的简易结构图 输入0结束输入并推出系统,输入1继续 !

4、 车辆管理系统 输入车辆信息 输入车牌号查询其违章情况 输入车牌号统计其罚款总金额 2.2程序设计流程图 开始 输入车辆信息 输入为1吗? 是 输入车牌号查询其违章情况 输入为1码? 输入车牌号统计该台车辆的罚款总金额 否 是 否 输入为1码? 结束 是 否 3.程序代码设计 3.1 头文件 为了使用系统中一些函数,引入一些系统函数的头文件#include #include 定义一个车辆结构体,用来记录车辆的

5、相关信息: typedef struct Pe { char vno[8]; /*车牌号*/ char name[15]; /*车主姓名*/ int times1; /*违章停车次数*/ int times2; /*闯红灯次数*/ int times3; /*超速次数*/ }PECCANCY; 之后就是编写的程序,该程序为未定义其他的函数,所有功能都是在main函数中实现! 3.2 源文件 该系统只有一个mian函数,无定义函数和自定义函数. 4.编码与调试分析 1).刚设计时,本来设计了很多的小函数来实现各个分功能,不过遇

6、到了困难,就是各个分函数不能共享数据,于是就改成在一个主函数实现所有的功能. 2).还有每次用户输入完一项功能,询问是否继续,如果不继续,就自动进入下一个功能. 5. 使用说明及运行结果 5.1 进入系统界面提示输入车辆信息,如下: 5.2 之后按0结束输入,或按1继续录入信息! 按0进入查询车辆信息界面.如下: 5.3 同样根据提示继续查询按1,否则按0结束查询,输入1进入根据车牌号查询该车总罚款金额,如下: 5.4 按1继续查询其他车辆的总罚款金额,按0退出系统! 6. 课程设计心得体会 通过自己编写车辆违章管理系

7、统这一程序,让我学会了很多。以前学C语言、C++时,自己只是会运用所学的知识编写一些非常简单的程序,从没有编写过较大的程序,更别说编写一车辆管理系统了,不过这次通过自己的努力以及老师的精心指导,成功的做出了车辆管理系统,虽然该系统功能较少,但毕竟是我自己通过所学的知识做出的产品,看着一个个数据的输入,之后得到了自己想要的结果,一种成就感从心里油然而生,同时让我发现了编程中更大的乐趣,本来我对编程就挺感兴趣,通过此次实践,让我对编程越来越感兴趣了,当然编程过程中也遇到了一些困难,通过自己的努力以及老师的指导与帮助,一个个困难都迎刃而解了,让我学会很多东西,同时让我明白了编程要细心,否则调试程序时

8、会带来没必要的困难,总而言之,此次编程设计让我受益匪浅!!!,希望我的编程能力越来越高,将来能在激烈的社会竞争中脱颖而出 ! 7.附录(程序清单) #include #include #define p 1000 typedef struct Pe { char vno[8]; /*车牌号*/ char name[15]; /*车主姓名*/ int times1; /*违章停车次数*/ int times2; /*闯红灯次数*/ int times3; /*超速次数*/ }PECCANCY

9、; void main() { int i,e,a,c,d,m=0,n=0,s; char k[8],j[8]; PECCANCY b[p]; cout<<"输入车辆信息"<>b[i].vno; cout<<"输入车主姓名:"<>b[i].name; cout<<"输入违章停车次数:"<>b[i].times1; cout<<"输入闯红灯次数:"<

10、 cin>>b[i].times2; cout<<"输入超速次数:"<>b[i].times3; cout<<"输入0结束录入,输入1继续录入车辆信息"<>a; if(a==0) break; } cout<>j;

11、 for(i=0;i

12、<>c; if(c==0) break; } cout<>k; for(i=0;i

13、s3)*500; cout<<"车牌号为"<>d; if(d==0) break; } } (学生管理系统课程设计报告) 目录 1.课程设计任务……………………………………………………….13 2

14、设计结构图及流程图………………………………………………14 3程序代码设计……………………………………………………….20 3.1头文件………………………………………………………..20 3.2源文件………………………………………………………..21 4编码与调试分析…………………………………………………….22 5使用说明及运行结果……………………………………………….22 6课程设计心得体会………………………………………………….29 7附录(程序清单)……………………………………………………..30 1.课程设计任务 1.1实

15、验目的 使用标准C或C++实现学生成绩管理系统的录入、查询、删除、统计等基本操作。进一步巩固C语言的学习,以提高学生对开发环境的进一步认识和综合编程能力。 1.2需要处理的基础数据 学生基本信息:学号(例如2003级12班6号写作20031206)、姓、名、性别、出生年月日、课程名称(外语SCORE[0]、高数SCORE[1]、C语言SCORE[2]、马哲SCORE[3])、考试成绩等。 1.3系统功能 1.学生基本情况录入。 2.允许对已经录入的数据进行显示。 3.允许进行数据的插入。 4.删除基本数据的相关信息。 5.基于姓名的查询。如:姓张的所有同学。 6. 对性别、

16、出生年月日的合理性进行判断(如0代表“女”,1代表“男”,输入其他值非法,年龄不能为负,月份不能大于13等) 7.基于各种基本数据的统计计算。如: ①统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩)。 ②列出90分以上(包括90)、80分以上(包括80)、70分以上(包括70)、60分以上(包括60)、不及格学生清单(学号、姓名、不及格的课程和成绩)。 ③统计并输出各门功课的平均成绩和总平均成绩。 ④按班级统计并输出总成绩。(需要对学号进行解析) 2.设计结构图及流程图

17、 2.1程序设计结构图如下: 学生课程管理系统 输入学生信息 删除学生信息 插入学生信息 修改学生信息 学生成绩排名 输出学生信息 学生成绩计算 保存学生信息 学生成绩排名 显示学生信息 读入学生信息 查询学生信息 按学号查询 按学生姓查找 按学生班级查找 2.2 程序设计流程图如下: 各函数块流程图:创建函数creat_stu() P1->num==0? N 对p1新空间赋值,p2=p1,,p2->next=p1 Y 结束 开辟一空间使*p

18、1,*p2指向它 开辟一新空间*p1指向它 开始 对*p1指向的空间赋值,取出 P1->num的值 查找函数search_NO() 开始 获得头指针head P=head->next 输入一要查找的姓名/学号给数组a[15] a[15]是否等于P->num/p->name? 查找成功调用打印输出 结束 P=P->next Y N 插入函数insert_stu() 开始 创建一新空间给*PP 对*PP空间赋值 P=head->next PP->sumsum? P=P->next

19、 将*PP链结接于*P后 是否继续插入? 结束 N Y Y N 开始 声明变量:a=0,b=0。c=0,d=0,e=0 a++ b++ c++ e++ d++ sum>=90? Sum>=80? Sum>=70? Sum>=60? 输出个分数段人数,a,b,c,d,e的值 结束 Y N Y Y Y N N N 按分数段输出函数jieduan() 其他函数过于简单就不再画出其流程图。 3程序代码设计 3.1 头文件 先是,为了用到一些系统函数,所以引用一些库文件: #include #in

20、clude #include #define PF printf #include "time.h " 下一个就是存放学生的基本信息,包括指向下一个节点的指针. 定义了一个学生结构体用来存放学生基本信息: typedef struct St1 { char IDNumber[16];/*学号*/ char FamilyName[16]; /*姓*/ char GivenName[16]; /*名*/ int sex; /*性别(0代表"女",1代表"男")*/ int BirthYear

21、; /*出生年*/ int BirthMonth; /*出生月*/ int BirthDay; /*出生日*/ float score0,score1,score2,score3; /*成绩*/ float sum; /*总分*/ float average; /*平均分*/ struct St1 *next; }StudentNode; 3.2 源文件,包括自己定义的函数 void show_menu(); //显示菜单 void menu(); //执行菜单 void creat_stu();

22、 //建立链表 void input_stu(); //输入学生信息 void print_stu(); //显示链表中所有记录信息 void search_NO(); //以学号方式查询信息 void search_name(); //以姓方式查询信息 void arrage_stu(); //学生成绩排名 void del_stu(); //删除学生信息 void revise_stu(); //修改学生信息 void save(); //保存信息

23、 void jisuan(); //计算所有学生的以及各科总分和均分 void search_clas(); //按班级查询显示学生信息 void insert_stu(); //插入学生记录到表中 void sort(float x[],int n); //对学生按总分进行从高到底排序 void search_allscore(); //按学生总成绩查询,用来输出排名信息 void jieduan(); //用来输出按平均分阶段输出信息,其中用了按

24、 平均分输出信息的程序。 void Loadf(); //从文件中读出所有学生记录 4编码与调试分析 本程序比较大,调试过程中遇到了许多困难,在这里只是列举少部分.我程序中按学生总分排名是先将所有学生的总分放在一个全局数组中,然后再用冐泡法排序,不过我先前没有将该数组写入文件,所以当退出系统重进系统后,从文件中读入数据后,该系统排序功能不好用了.后来我就将该数组也保存到文件中去,不过此时又遇到了困难,我先是将数组一下写入文件,后来出错了.文件中各数据完全不匹配了,后来我采用循环的方式一个个将数组中的数据写入文件中保存起来,就解决了该问题!

25、还有就是当我编译时没有错误,运行时系统就弹出一个对话框说莫莫数据不匹配,后来我发现原来是运用输入函数scanf时,要求数据类型与要输入的数据类型不同,不过编译器不能查出这个文题,所以以后编程时一定注意这个问题! 总之, 编码与调试分析部分是编程步骤中非常重要的一部分,是一个程序能投入使用必须执行的部分,非常重要! 5使用说明及运行结果 5.1 进入系统界面如下: 输入1,进行学生信息的录入,年份输入必须保证人的年龄在0-100岁之间,月份不大于31,否则提示重新输入!如下: 每次结束一个操作后,菜单界面就会自动弹出,而且操作完后自动保存数据.输入2时,进行删除学生操作

26、!如下: 每次删除时会提示出你要删除的学生记录,并提示删除完毕保存! 菜单3是显示文件中已经保存所有学生的记录,界面如下: 图片太小,下面还有所有的学生记录! 菜单4是按学生的姓查找学生记录,输入输出界面如下: 该操作可以找出该姓的所有学生记录并显示出来! 输入5将数据保存到文件中,操作界面如下: 输入6就是从文件中读入数据并显示出来,该界面就不给出了! 输入7来计算所有学生各科总分和均分,输入输出界面如下: 输入8按班级查询学生记录,该功能可以输出该班级(学生学号按20101601格式书写只要输入前六位就是班级)所有学生记录!操作界面如下

27、: 输入9就是插入学生记录,该界面就不显示了,注意插入学生记录是插入到最后一天记录! 输入10是按学号查询学生信息,只要输入学生学号就可以找到该学生,如没找到,会给出错误提示,该功能每个步骤都有!,该界面和按班级查找差不多,此处也不给出了. 输入11,给学生排名,并按名次从高到低显示出来!界面如下: 输入12是修改学生信息,该界面是先提示输入要修改学生的学号,然后显示要修改的学生的全部信息确认一下,后输入正确的信息,改后自动保存!~该界面也不给出了! 输入13时按平均分分段输出学生信息,界面如下: 输入0是退出该系统! 到这里该系统所有

28、功能影示完毕,操作非常简单,该系统具备对学生管理的全部基础操作,具有可行性!而且非常具有人性化!欢迎使用! 6课程设计心得体会 本次实验,就是一个较大的C语言编程。以前,我们编写一些小程序都是一些小函数,不存在一个特定功能的系统。因此,在编写调试时不需要懂得太多的调试技巧。这次实验编写的是一个系统,代码相对较多,函数调用频繁,对各个函数的兼容性调试,是很大的一项工程。 整个系统,一开始以为很大了对我们是个不小的考验。后面自己分析之后,发现不过就是一个一个的小函数拼接而成,没有什么难的。在对一个一个功能函数,调试正确后,变开始设计界面,组装函数为系统。在这过程中确实遇到了不少的麻烦

29、但大多是些语法错误,几经调试也就好了。 系统的完善。在基本功能无误后,开始想办法把系统做的更人性化一点。就比如,在每次函数输出后,进行清屏使每次实现新功能时,是在独自的屏幕下进行。对系统的退出进行提示,以免误动作退出系统。将性别输出的字符型,改成汉子的男/女输出,这在人性方面无疑是便于操作的。 要说这次实验最大获得是什么,就是调试,调试,再调试。完善,完善,在完善。还有就是提高了我对编程的兴趣!希望自己的编程能力越来越好,将来可以在激烈的社会竞争中脱颖而出! 7.附录(程序清单) #include #include #include

30、 #define PF printf #include "time.h " #define LEN sizeof(struct St1) //定义结构体// typedef struct St1 { char IDNumber[16];/*学号*/ char FamilyName[16]; /*姓*/ char GivenName[16]; /*名*/ int sex; /*性别(0代表"女",1代表"男")*/ int BirthYear; /*出生年*/ int BirthMonth; /*出

31、生月*/ int BirthDay; /*出生日*/ float score0,score1,score2,score3; /*成绩*/ float sum; /*总分*/ float average; /*平均分*/ struct St1 *next; }StudentNode; int time() { struct tm* ptm; long ts; int y,m,d,h,n,s; ts = time(NULL); ptm = localtime(&ts); y

32、= ptm-> tm_year+1900; //年 m = ptm-> tm_mon+1; //月 d = ptm-> tm_mday; //日 h = ptm-> tm_hour; //时 n = ptm-> tm_min; //分 s = ptm-> tm_sec; //秒 return(y); } StudentNode *head=NULL; //全局指针 int n,i=0,c=0,d=0,j=0;

33、 //全局变量 j在函数中作数组下标或循环变量 c为总分数组中元素个数 d为平均分数组元素个数 float English=0.0,Math=0.0,C=0.0,Mazhe=0.0,Sum[100],Avr[100]; //全局变量 //自定义函数// void show_menu(); //显示菜单 void menu(); //执行菜单 void creat_stu(); //建立链表 void input_stu(); //输入学生信息 void print_stu()

34、; //显示链表中所有记录信息 void search_NO(); //以学号方式查询信息 void search_name(); //以姓方式查询信息 void arrage_stu(); //学生成绩排名 void del_stu(); //删除学生信息 void revise_stu(); //修改学生信息 void save(); //保存信息 void jisuan(); //计算所有学生的以及各科总分和均分 void search_clas(); //按班级查

35、询显示学生信息 void insert_stu(); //插入学生记录到表中 void sort(float x[],int n); //对学生按总分进行从高到底排序 void search_allscore(); //按学生总成绩查询,用来输出排名信息 void jieduan(); //用来输出按平均分阶段输出信息,其中用了按平均分输出信息的程序。 void Loadf(); //从文件中读出所有学生记录 void main() { printf("*********************************

36、***********************************************"); printf("\n"); printf(" 欢迎来到学生管理系统 !"); printf("\n"); printf("\n"); printf(" 制作人:陈志52101610"); creat_stu(); menu(); } //**************************************创建链表***************

37、*********************** void creat_stu() { FILE *fp; long size; StudentNode *p1,*p2; head=(StudentNode *)malloc(sizeof(StudentNode)); head->next=NULL; if((fp=fopen("fname.txt","r"))==NULL) { printf("这是新表\n"); return; } fseek(fp,0L,2); size=ftell(fp); if(!size) { pr

38、intf("这是空表\n"); return; } //开始创建链表 rewind(fp); //移动到文件首 p2=head->next; //找到当前位置 while(!feof(fp)) { p1=(StudentNode *)malloc(sizeof(StudentNode)); fscanf(fp,"%s %s %s %d %d %d %d %f %f %f %f %f %f\n",p1->IDNumber,p1->FamilyName,p1->GivenName,\ &p1->sex,&p1-

39、>BirthYear,&p1->BirthMonth,&p1->BirthDay,&p1->score0,&p1->score1,&p1->score2,&p1->score3,&p1->sum, &p1->average); p1->next=NULL; //创建节点完 if(head->next==NULL) head->next=p1; else p2->next=p1; p2=p1; n++; } p2->next=NULL; fclose(fp); } //**************************

40、****************执行菜单****************************************** void menu() { int c; show_menu(); while(1) { scanf("%d",&c); switch(c) { getchar(); case 1:input_stu();break; case 2:del_stu(); break; case 3:print_stu();break; case 4:search_name(); break; case 5:save()

41、;break; case 6:Loadf();break; case 7:jisuan(); break; case 8:search_clas(); break; case 9:insert_stu() ; break; case 10:search_NO(); break; case 11:arrage_stu();break; case 12:revise_stu(); break; case 13:jieduan();break; case 0:exit(0); } //执行菜单选项 show_menu(

42、); } } //******************************************显示菜单****************************************** void show_menu() { PF("\n"); PF("\n**************************************菜单**************************************\n"); PF("\t\t* 1.输 入 学 生 信 息 *\n");

43、 PF("\t\t* 2.删 除 学 生 信 息 *\n"); PF("\t\t* 3.显示链表中所有记录信息 *\n"); PF("\t\t* 4.按照学生的姓查找记录 *\n"); PF("\t\t* 5.将链表中记录保存到文件中 *\n"); PF("\t\t* 6.从文件中读入记录 *\n"); PF("\t\t*

44、7.计算所有学生以及各科总分和均分 *\n"); PF("\t\t* 8.按班级查询显示学生信息 *\n"); PF("\t\t* 9.插入记录到表中 *\n"); PF("\t\t* 10.按学号查询学生信息 *\n"); PF("\t\t* 11.学生成绩排名 *\n"); PF("\t\t* 12.修改学生信息 *\n"); PF("\t\t* 13.按平均分阶段输出学生信息 *\n");

45、 PF("\t\t* 0. 退 出 *\n"); PF("********************************************************************************\n"); PF("\n请选择\n"); } //******************************************输入学生信息****************************************** void input_stu() //输入学生信息 {float

46、a,b; //a,b分别用来存放该生的各科总成绩和平均成绩 int y,j; y=time(); n=0; StudentNode *p1=NULL,*p2=NULL; p1=( StudentNode *)malloc(sizeof(StudentNode)); PF("\n**********************************输入学生信息**********************************\n"); //输入学生信息 PF("\t\t输入学生学号:\t"); scanf("%s",p1->IDNumber)

47、; //学号 PF("\t\t输入学生的姓:\t"); scanf("%s",p1->FamilyName); //姓 PF("\t\t输入学生的名:\t"); scanf("%s",p1->GivenName); //名 PF("\t\t输入学生性别(0代表女,1代表男):\t"); scanf("%d",&p1->sex); //性别 for(j=0;;j++) //判断输入年份是否合理,假设人年

48、龄在0-100岁之间为正常 {PF("\t\t输入学生出生年:\t"); scanf("%d",&p1->BirthYear); //出生年 if((y-p1->BirthYear)>100||(p1->BirthYear>y)) PF("\t\t年份输入错误不符合要求,请重新输入出生年份:\t"); else break;} for(j=0;;j++) //判断输入月份是否合理 {PF("\t\t输入学生出生月:\t"); scanf("%d",&p1->Bir

49、thMonth); //出生月 if(p1->BirthMonth<1||p1->BirthMonth>12) PF("\t\t月份输入错误不符合要求,请重新输入出生月份:\t"); else break;} for(j=0;;j++) // 判断输入出生日是否合理 { PF("\t\t输入学生出生日:\t"); scanf("%d",&p1->BirthDay); //出生日 if(p1->BirthDay<1||p1->BirthDay>31) PF("

50、\t\t出生日输入错误不符合要求,请重新输入出生日:\t"); else break;} PF("\t\t输入学生的外语成绩:\t"); scanf("%f",&p1->score0); //各科成绩 PF("\t\t输入学生的数学成绩:\t"); scanf("%f",&p1->score1); PF("\t\t输入学生的C语言成绩:\t"); scanf("%f",&p1->score2); PF("\t\t输入学生的马哲成绩:\t"); scanf("%f",&p1->score3); a=p1->score

51、0+p1->score1+p1->score2+p1->score3; //求该生的各科总成绩 b=(a/4); //求该生的平均成绩 p1->sum=a; p1->average=b; English=English+p1->score0; //求学生英语总分 Math=Math+p1->score1; //求学生数学总分 C=C+p1->score2;

52、 //求学生C语言总分 Mazhe=Mazhe+p1->score3; //求学生马哲总分 Sum[c++]=a; //将各学生的总成绩输入到一个全局数组当中,方便按成绩排序 Avr[d++]=b; //将个学生的平均分输入到一个全局数组中存放 n++; if(head->next==NULL) { head=(StudentNode *)malloc(LEN); head->next

53、=p1; } else { for(p2=head;p2->next!=NULL;p2=p2->next); /*找到最后的结点,然后 将增加的结点挂在它上面*/ p2->next=p1; } p1->next=NULL; save();//保存到文件 } //******************************************显示链表中所有记录学生信息*********************************

54、********* void print_stu() //学生信息浏览 { StudentNode *p=NULL; if(head==NULL) //判断链表是否为空 { PF("文档中无记录!\n"); return; } for(p=head->next;p!=NULL;p=p->next) //读出信息 { PF("**************************************查看链表中所有记录学生信息**************************************\n"); PF("\t学生

55、学号:\t%s\n",p->IDNumber); PF("\t学生姓:\t%s\n",p->FamilyName); PF("\t学生名:\t%s\n",p->GivenName); PF("\t学生性别:\t%d\n",p->sex); PF("\t学生出生年:\t%d\n",p->BirthYear); PF("\t学生出生月:\t%d\n",p->BirthMonth); PF("\t学生出生日:\t%d\n",p->BirthDay); PF("\t学生英语成绩:\t%f\n",p->score0); PF("\t学生数学成绩:\t%f\

56、n",p->score1); PF("\t学生C语言成绩:\t%f\n",p->score2); PF("\t学生马哲成绩:\t%f\n",p->score3); PF("\t学生总成绩:\t%f\n",p->sum); PF("\t学生平均成绩:\t%f\n",p->average); PF("\n"); } //输出信息 PF("\t各个学生总分分别为:"); for(n=0;n

57、); for(n=0;n

58、return; } PF("输入学生姓:"); scanf("%s", FamilyName); for(p=head->next;p!=NULL;p=p->next) //读出信息 { if(!strcmp(p->FamilyName, FamilyName)) {PF("\t\t您查找的学生有:\n"); PF("\n"); PF("\t\t学生学号:\t%s\n",p->IDNumber); PF("\t\t学生姓:\t%s\n",p->FamilyName); PF("\t\t学生名:\t%s\n",p->Give

59、nName); PF("\t\t学生性别:\t%d\n",p->sex); PF("\t\t学生出生年:\t%d\n",p->BirthYear); PF("\t\t学生出生月:\t%d\n",p->BirthMonth); PF("\t\t学生出生日:\t%d\n",p->BirthDay); PF("\t\t学生英语成绩:\t%f\n",p->score0); PF("\t\t学生数学成绩:\t%f\n",p->score1); PF("\t\t学生C语言成绩:\t%f\n",p->score2); PF("\t\t学生马哲成绩:\t%f\n

60、",p->score3); PF("\t\t学生总成绩:\t%f\n",p->sum); PF("\t\t学生平均成绩:\t%f\n",p->average); PF("\n"); i=1;} } //输出信息 if(i!=1) {PF("无该姓氏学生信息!请查证:"); } //没找到信息时的处理 } //******************************************按照学生学号信息查找*****

61、************************************* void search_NO() //学生学号信息查找 {int i=0; StudentNode *p=NULL; char IDNumber[20]; if(head==NULL) //判断链表是否为空 { PF("文档中无记录!\n"); return; } PF("请输入学生学号:"); scanf("%s",IDNumber); for(p=head->next;p!=NULL;p=p->next) //读出信息 { if(!s

62、trcmp(p->IDNumber,IDNumber)) {PF("\t\t您查找的学生是:\n"); PF("\n"); PF("\t\t学生学号:\t%s\n",p->IDNumber); PF("\t\t学生姓:\t%s\n",p->FamilyName); PF("\t\t学生名:\t%s\n",p->GivenName); PF("\t\t学生性别:\t%d\n",p->sex); PF("\t\t学生出生年:\t%d\n",p->BirthYear); PF("\t\t学生出生月:\t%d\n",p->BirthMonth);

63、 PF("\t\t学生出生日:\t%d\n",p->BirthDay); PF("\t\t学生英语成绩:\t%f\n",p->score0); PF("\t\t学生数学成绩:\t%f\n",p->score1); PF("\t\t学生C语言成绩:\t%f\n",p->score2); PF("\t\t学生马哲成绩:\t%f\n",p->score3); PF("\t\t学生总成绩:\t%f\n",p->sum); PF("\t\t学生平均成绩:\t%f\n",p->average); PF("\n"); i=1

64、;} } //输出信息 if(!i) {PF("无该生信息!请查证:"); } //没找到信息时的处理 } //******************************************按照学生班级统计并输出总成绩****************************************** void search_clas() //学生学号信息查找 {int i=0,j=0; StudentNode *p=NULL; char a[6],b

65、[6]; if(head==NULL) //判断链表是否为空 { PF("文档中无记录!\n"); return; } PF("请输入学生班级:"); scanf("%s",a); for(p=head->next;p!=NULL;p=p->next) //读出信息 { for(j=0;j<6;j++) b[j]=p->IDNumber[j]; if(a[0]==b[0]&&a[1]==b[1]&&a[2]==b[2]&&a[3]==b[3]&&a[4]==b[4]&&a[5]==b[5]) {PF("\

66、t\t您查找的班级学生有:\n"); PF("\n"); PF("\t\t学生学号:\t%s\n",p->IDNumber); PF("\t\t学生姓:\t%s\n",p->FamilyName); PF("\t\t学生名:\t%s\n",p->GivenName); PF("\t\t学生性别:\t%d\n",p->sex); PF("\t\t学生出生年:\t%d\n",p->BirthYear); PF("\t\t学生出生月:\t%d\n",p->BirthMonth); PF("\t\t学生出生日:\t%d\n",p->BirthDay); PF("\t\t学生英语成绩:\t%f\n",p->score0); PF("\t\t学生数学成绩:\t%f\n",p->score1); PF("\t\t学生C语言成绩:\t%f\n",p->score2); PF("\t\t学生马哲成绩:\t%f\n",p->score3); PF("\t\t学生总成绩:\t%f\n",p->sum); PF("\t\t学

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!