C语言课程设计报告材料学生信息管理系统

上传人:沈*** 文档编号:99522480 上传时间:2022-06-01 格式:DOC 页数:59 大小:419.50KB
收藏 版权申诉 举报 下载
C语言课程设计报告材料学生信息管理系统_第1页
第1页 / 共59页
C语言课程设计报告材料学生信息管理系统_第2页
第2页 / 共59页
C语言课程设计报告材料学生信息管理系统_第3页
第3页 / 共59页
资源描述:

《C语言课程设计报告材料学生信息管理系统》由会员分享,可在线阅读,更多相关《C语言课程设计报告材料学生信息管理系统(59页珍藏版)》请在装配图网上搜索。

1、word前言 C语言是一门通用的计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以与不需要任何运行环境支持便能运行的编程语言。 近年来,C语言在国内得到了迅速的推广和应用。作为一门通用的语言,在过去很流行吗,将来依然会如此。几乎每一个理工科或者其他专业的学生毫不例外的要学习它,同时,C语言作为“全国计算机二级等级考试中的一门可选语言,也是用来衡量计算机程序设计水平的一个重要标准。从C语言产生到现在,它已成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如JAVA的语法与C语言根本一样。学习、掌握C语言是每一个计

2、算机技术人员的根本功之一。C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能这些都是汇编语言的功能,因此,C语言通常又被称为中级语言。学习和掌握C语言,即可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的根底。C语言程序设计是一门实践性很强的课程,所以本学科的实验实训非常重要。所以我们进展了本次课程设计实践。在这个过程中我们都学到了很多,此报告便是这次课程设计的经过、流程,介绍了局部自己编写的程序。目录020202065系统的测试与调试15212123 设计一个学生综合测评的信息与成绩的管理系统,以解决传统纸质信息统计的不易修改,储存与放置等诸多不便与弊

3、端。来简化学校的办公,节约时间与人力。1. 系统需求分析在学生信息的日常管理中,经常需要对学生相关信息进展处理,采用传统的手工记录,查询方式,显然有很多不便,如屡次的增、删、改可能使信息变得混乱,为今后的信息提取带来很多麻烦。为了解决这一问题,可采用现代化的手段计算机进展系统的管理。这样可大大提高管理的质量和效率,并且使学生的信息管理也从手工操作中解脱出来,减少纸制材料的数量,对日常信息的查询、方便、快捷。因此,基于这些方面的考虑,决定开发本系统。2. 系统概要设计 设计一个学生综合测评的信息与成绩的管理系统,以解决传统纸质信息统计的不易修改,储存与放置等诸多不便与弊端。来简化学校的办公,节约

4、时间与人力。3.1 系统的主要功能系统的主要功能是实现学生根本的信息与成绩的录入和管理。主要包括:A、学生信息处理(1) 学生信息的录入。(2) 学生信息的修改。(3) 学生信息的浏览B、学生数据处理:(1) 学生考试数据输入并计算平均分与名次(2) 学生测评数据输入并计算综合测评总分与名次(3) 学生数据的修。(4) 学生数据的查询C、学生综合信息显示3.2 系统的总体结构 (1) 程序主界面的设计主界面主界面3学生综合信息显示2学生数据处理系统2学生数据处理系统 5 退出系统4用户指南1学生信息处理系统 图3.1.1 系统主界面结构图2学生信息处理子界面设计学生信息处理3返回主菜单2修改学

5、生信息1录入学生信息图3.1.2 系统子界面结构图1学生数据处理学生数据处理3学生数据修改2测评成绩录入与处理5返回主菜单4学生数据查询1考试成绩录入与处理图3.1 系统子界面结构图21、学生信息处理(1) 录入学生信息、学号、某某、性别、家庭住址、联系 ,按学号以小到大的顺序存入文件中。学生信息可先输入到数组中,排序后可写到文件中。(2) 修改同学信息。2、学生数据处理:(1) 考试成绩录入与处理: 考试成绩语文+数学+外语/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求知名次,最后把学生记录写入一个文件中。(2) 测评成绩录入与处理:

6、综合测评总分考试成绩*0.6+同学互评分*0.1+品德成绩*0.1+任课教师评分*0.2。(3) 学生数据修改:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:输入学号,即读出所有数据信息,并显示出来。3、查询学生综合信息 输入学号即读出综合信息,并显示出来3.3 系统软硬件环境 本程序所适用的计算机系统软硬件环境要求为: 硬件环境: PentiumIII500以上内存:256M 软件环境: Windows 73.4 数据结构设计学生信息数据结构类型如下:struct student int num; /*学号*/char name20; /*学生某某*/c

7、har sex10; /*性别 男/女*/char home200; /*家庭住址*/ int s1; /*语文成绩*/int s2; /*数学成绩*/int s3; /*英语成绩*/ int ave; /*三科平均成绩*/int Tel; /*联系方式*/ int m1; /*考试名次*/int a1; /*同学互评分*/int a2; /*品德成绩*/int a3; /*任课教师评分*/int z; /*综合测评总分*/int m2; /*综合测评名次*/stuN;4 系统的详细设计根据系统总体结构对问题进展的模块划分,对总的问题可划分为:学生信息处理、学生数据处理、学生综合信息查询三个大

8、模块,另还设置了用户帮助函数与退出系统。首先在主函数中调用了void one()函数来显示主菜单,主菜单中调用子菜单也就是学生信息处理、学生数据处理的菜单。学生信息处理用void info()来显示子菜单1,子菜单1中调用了void info_1();void info_2()。两个函数来实现学生信息的录入和修改。学生数据处理用void data()来显示子菜2,子菜单2中调用了void data_2; void data_1; void data_3; void data_4等函数来实现数据的录入修改与查询。还使用了void sort_num(struct student a, int n)

9、;void sort_ave(struct student a, int n); void sort_z(struct student a, int n); 三个排序函数来处理学生的数据在最后的学生综合信息查询中使用的是void look()来实现其功能在用户指南中使用了void help()函数来实现其功能以上就是此系统中使用的函数来实现其功能。4.1主菜单void one()该函数主要用来显示主菜单的内容以与进入子菜单实现功能,该函数实现过程中首先定义了一个变量opt1,这是用户选择进入那个模块的选项。首先判断opt1的值,如果为1如此调用void info()进入信息管理模块,如果为2如

10、此调用void data()进入数据管理模块,如果为3如此调用void look()进入学生综合信息查询功,如果为4如此调用void help()进入用户指南函数查看,如果为5如此退出系统。 如果用户没有输入12345中的选项,如此会提示输入错误请重新输入。void one() /*主菜单函数*/int opt1; /*主菜单项选择项*/printf( 欢迎使用学生综合测评系统 nn);printf( 1: 学生信息处理 2:学生数据处理nn 3: 学生综合信息);printf( 4:用户使用指南nn);printf( 5:退出nn);printf( 请输入1 2 3 4 5中的任意一个选项进

11、展操作:);loop:scanf(%d, &opt1);switch (opt1)case 1:info();break;case 2:data();break;case 3:look();break;case 4:help();break;case 5:break;default:printf( 输入错误,请重新输入 1 2 3 4 5中的一项);scanf(%d, &opt1);goto loop;4.2子菜单1 void info()该函数主要用来显示子菜单1的内容以与进入功能实现函数,该函数实现过程中首先定义了一个变量opt2,这是用户选择进入那个功能的选项。首先判断opt2的值,如果

12、为1如此调用void info_1()进入学生信息录入功能,如果为2如此调用void info_2()进入学生信息修改功能,如果为3如此调用void one()返回到主菜单。 如果用户没有输入123中的选项,如此会提示输入错误请重新输入。void info() /*信息处理函数*/int opt2; /*子菜单项选择项*/printf(nn 欢迎进入信息处理 nn);printf( 1.学生信息录入nn 2.学生信息的修改nn);printf( 3.返回nn);printf( 请输入 1 2 3 中的任意一个选项进展操作);loop:scanf(%d, &opt2);switch (opt2)

13、case 1:info_1();break;case 2:info_2();break;case 3:one();break;default: printf(输入错误,请重新输入 1 2 3 中的一项);goto loop; 4.3学生信息录入void info_1()1. 系统流程 该函数运行后,首先打开文件,然后判断文件是否为空。如果为空设置一个变量count来记录录入学生的数目。如果不为空,如此从文件中读取count的值。然后开始录入学生信息,设置变量输入s,用switch语句来决定是否录入或退出。输入1录入0退出2返回上一层。在1中用goto语句实现循环录入到数组中。在2中调用void

14、 one().最后将学生信息的数组和count写入文件,然后关闭文件。void info_1() /*信息录入函数*/FILE *fp;int s, i,count;count=0;i = 1;if(fp = fopen(stu,rb+) = NULL) if(fp = fopen(stu,wb) = NULL) printf(Cont open filen);exit(1); stu0.num=0;else fclose(fp); if(fp = fopen(stu,ab+) = NULL) printf(Cont open filen);exit(1); fread(stu,sizeof(

15、struct student),N,fp); fscanf(fp,%d,&stu0.num);loop:printf(nn您将开始录入学生信息n输入1将继续n输入2返回上一层n输入0将退出n);looo:scanf(%d, &s);switch (s)case 0:break;case 1:count+; printf(nn您将输入第%d学生的信息:,count);printf(n学号:);scanf(%d,&stui.num); printf(某某:);scanf(%s,stui.name);printf(性别:);scanf(%s,stui.sex);printf(家庭住址:);scanf

16、(%s,stui.home);printf(联系 :);scanf(%d,&stui.Tel);i+;goto loop;break;case 2:info();break;default:printf(n 输入错误,请重新输入0 1 2中的一项);goto looo;sort_num(stu, i); stui+1.num=0;stu0.num += count;fseek(fp, 0, SEEK_SET);fwrite(stu, sizeof(struct student), N, fp);fseek(fp, 0, SEEK_SET);fread(stu, sizeof(struct st

17、udent), N, fp);for(i=1;i=stu0.num;i+)printf(%dn,stui.num);system(pause);fclose(fp);4.4学生信息修改void info_2()1. 系统流程 该函数运行后,首先打开文件,读取文件内容到数组中。设置变量num 用户输入一个学号。然后用一个for循环将num与数组中的学号的值进展比拟,如果一样,跳出循环。找到后将其输出。询问是否修改。修改后将其写入文件中。关闭文件。void info_2() /*信息修改函数*/FILE *fp;int j;if (fp = fopen(stu, rb) = NULL)printf

18、(Can not open filen);exit(1); /*打开文件*/ fread(stu, sizeof(struct student),1 , fp); for(j = 1;j =stu0.num;j+)fread(&stuj, sizeof(struct student),1 ,fp);fclose(fp);int i, num, xu, a;llll:printf(nn请输入需要修改信息的学生的学号:n);scanf(%d, &num);for (i = 1; i= stu0.num) printf(查无此人);return ;printf(请问您是否是需要修改此生的信息:);p

19、rintf(学号%d 某某%s 性别%s 家庭住址%s 联系 %d, stui.num, stui.name, stui.sex, stui.home, stui.Tel);printf(nn如果是请输入1 不是请输入2:n);loop: scanf(%d, &xu);switch (xu)case 1:printf(请输入新的信息n);printf(学号:);scanf(%d, &stui.num);printf(某某:);scanf(%s, stui.name);printf(性别:);scanf(%s, stui.sex);printf(家庭住址:);scanf(%s, stui.hom

20、e);printf(联系 :);scanf(%d, &stui.Tel);printf(完成修改!);break;case 2:break;default:printf(n 输入错误,请重新输入0 1中的一项);goto loop; /*修改学生信息*/if (fp = fopen(stu, wb) = NULL)printf(Can not open filen);exit(1); /*打开文件*/fwrite(stu, sizeof(struct student), stu0.num, fp); /* 写入文件中*/fclose(fp);printf(n 是否继续修改学生信息 n是请输入1

21、 n退出请输入2n返回上一层请输入0);lllk: scanf(%d, &a);switch (a)case 0:info();break;case 1:goto llll;break;case 2:break;default:printf(n 输入错误,请重新输入0 1中的一项);goto lllk; /*关闭文件*/学生数据模块的函数与学生信息模块的函数相似,录入,修改,查询功能。4.5学生综合信息查询 void look()1. 系统流程2. 该函数运行后,首先打开文件,读取文件内容到数组中。设置变量num 用户输入一个学号。然后用一个for循环将num与数组中的学号的值进展比拟,如果一

22、样,跳出循环。找到后将其输出。然后询问是否继续修改,如果是goto语句回到输入学号那里,如果不是,关闭文件退出。void look() /*综合信息显示函数*/int m;FILE *fp;if (fp = fopen(stu, rb) = NULL)printf(Can not open filen);exit(1); fread(stu, sizeof(struct student),1 , fp); for(m = 1;m =stu0.num;m+)fread(&stum, sizeof(struct student),1 ,fp); fclose(fp); /*读取文件*/int i,

23、 num, a;llll:printf(nn请输入需要查询综合信息的学生的学号:n);scanf(%d, &num);for (i = 1; i= stu0.num) printf(查无此人);return ;printf( 学生数据显示:nn);printf( 学号%d 某某%s 性别%s 家庭住址%s 联系 %d n, stui.num, stui.name, stui.sex, stui.home, stui.Tel);printf( 语文%d 数学%d 英语%d 平均分%d 考试名次%d n, stui.s1, stui.s2, stui.s3, stui.ave, stui.m1);

24、printf( 同学互评分%d 品德成绩%d 任课教师评分%d 综合测评总分%d 综合排名%d, stui.a1, stui.a2, stui.a3, stui.z, stui.m2);printf(n 是否继续查询学生数据 是请输入1 否请输入2n);lllk: scanf(%d, &a);switch (a)case 1:goto llll;break;case 2:break;default:printf(n 输入错误,请重新输入0 1中的一项);goto lllk;fclose(fp); /*关闭文件*/4.6用户指南 void help()1. 系统流程该函数主要用来提示用户此系统的

25、信息,进入后浏览信息,最后定义一个变量i,请用户输入1返回到主菜单进展操作。如果用户输入的不是1如此提示请输入1。void help()int i;printf(本系统可以存储学生的根本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。nn );printf( 根本信息包括:学号、某某、性别、家庭住址、联系 ;nn 各科成绩包括:语文、数学、英语成绩;nn);printf( 其它包括:考试名次、同学互评分、品德成绩、任课教师评分等。nn);printf( 说明:考试成绩排名是按照考试成绩平均分计算的( 平均分=(语+数+外)/3)nn);printf( 综合测评总分=(考试成绩)*0.6+

26、同学互评分*0.1+(品德成绩)*0.1n +(任课教师评分)*0.2)nn);printf( 此系统最多可管理5000人信息。);printf( 其它请按照提示操作即可。n);printf(返回上一层请输入1);loop:scanf(%d,&i);if(i=1)one();elseprintf(输入错误请重新输入:); goto loop;5 系统测试与调试系统的测试与调试是为了发现程序中错误,而执行程序的过程。5.1运行过程:1运行该程序,进入一个主菜单函数,出现了选择的菜单:可输入选项进入子菜单两个子菜单分别进入:2在进入第一个子菜单后可进展学生的信息处理:在输入1后可进展学生信息的录入

27、:每录完一个信息后会询问是否继续录入或者返回上一层或者退出返回上一层,便回到了主菜单可继续进展操作:在信息处理内选择2来修改学生的信息:3在进入第二个子菜单后可进展学生的数据处理:数据录入:数据查询:3在主菜单项选择择3进入后可查询综合信息:4在主菜单项选择择4进入后可查看用户指南:5)输入5便退出系统:5.2系统调试过程中遇到的问题 :1录入学生信息后能够写进文件,但是只能查询时只能查询到第一个人的信息错误原因:录入信息后储存后。无法知道信息的条数。读取的时候只读取了第一条。解决方案:在信息录入的时候设置一个变量来记录学生信息录入的条数。并且将条数写进文件中,读取的时候将它先读出来,再读取学

28、生信息。 2录入学生信息后再次读取,学生学号变为乱码。错误原因:录入完信息后储存了一个记录学生信息条数的变量。这个数储存的时候储存在了文件的第一个位置。而学生信息所在的结构体如此在后面,所以读取的时候出错。解决方法:将结构体的第一个用来储存记录学生信息变化的数据。信息录入如此从第二个开始录入。3第二次录入学生信息与第一次录入学生信息的时候变量的设置问题。错误原因:在第一次录入时读不到设置的变量而第二次需要读取设置的变量。解决方案:在打开文件时增加一个判断,文件是否为空,假如是空如此便是第一次写入学生信息,如此设置变量为0。假如不为空,如此读取变量,并继续进展累加。其他错误与此类似,便不一一举例

29、。6 用户手册 1本系统执行文件为:Cpp1.exe。2进入系统界面后,在主菜单的中,选择相应的操作前的数字,出现提示界面。根据提示输入相关信息或得到预期结果。3在输入信息时:学号为字符型。某某 15个汉字或110个英文字母。性别 男或女 联系方式 为11个数字家庭住址 为120个汉字。考试成绩与测评成绩都为0100的数字7 总结在五天的苦力后,我的学生信息综合管理系统项目课程设计终于完工了,虽然系统还不够完善,但是已经具备了一个信息管理系统的根本功能。一周的课程设计,虽然很忙碌,但我感觉收获很多,不仅仅在知识和技术上,而且我也懂得了很多人生哲理,懂得怎么样去制定计划,怎么样去实现这个计划。曾

30、经有过放弃本系统的念头,曾经有过敷衍了事的想法。但是每一次技术突破的喜悦,都让我坚决了胜利的信念。通过这次程序设计,让我更好的了解C语言,对系统的编译有了更深刻的认识。在测试和调试方面,曾经天真的一位编程才是最浪费时间的,在这次实践中,让我更加清楚的认识到,软件测试和调试在整个工作中所占的比例。也让我更加相信调试是软件开发中最艰巨的脑力劳动。本次课程设计中出现了许多隐藏的错误,令我收获不少。但我相信也一定会有很多未发现的问题,特别是在以后的系统扩展中,种些问题会更明显,但我相信问题的出现就是需要我们去解决。通过这次课程设计我通彻的体会到了一个问题:在做实验前一定要将课本上的知识吃透,因为这是实

31、验的根底,否如此,这将使你做实验的难度加大,浪费做实验的宝贵时间。比如说文件的使用,因为没有将文件的使用学习贯彻,所以导致在调试的时候出现各种错误。在做实验的时候才去摸索,这将使我极大地浪费时间。在这次课程设计中我学到了很多很多。受益匪浅。总体来说,这次C语言程序设计实验还是比拟成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比拟高兴的。最后,要感谢学校为我们提供这次实验机会,也要感谢教师的教诲,帮助与支持8参考文献1X磊编著C语言程序设计教程第2版 中国铁道2薛小龙编著开发日记:深入体验C语言项目开发 清华大学3X宇君 X月琴 叶瑶 王庆生 编著C+程序设计案例分析 清华大学9附

32、录 /*学生综合测评系统*/#include#include#include#define N 5000struct studentint num; /*学号*/char name20; /*学生某某*/char sex10; /*性别 男/女*/char home200; /*家庭住址*/int s1; /*语文成绩*/int s2; /*数学成绩*/int s3; /*英语成绩*/int ave; /*三科平均成绩*/int Tel; /*联系方式*/int m1; /*考试名次*/int a1; /*同学互评分*/int a2; /*品德成绩*/int a3; /*任课教师评分*/dou

33、ble z; /*综合测评总分*/int m2; /*综合测评名次*/stuN;void one(); /*主菜单函数声明*/void info(); /*信息处理函数声明*/void data(); /*数据处理函数声明*/void look(); /*综合信息显示函数声明*/void help(); /*用户指南函数声明*/void info_1(); /*信息录入函数声明*/void sort_num(struct student a, int n); /*学号排序函数声明*/void sort_ave(struct student a, int n); /*平均分排序函数声明*/voi

34、d sort_z(struct student a, int n); /*综合成绩排序函数声明*/void info_2(); /*信息修改函数声明*/void info_3(); /*信息浏览函数声明*/void data_1(); /*考试成绩录入与处理函数声明*/void data_2(); /*测评成绩录入与处理函数声明*/void data_3(); /*数据修改函数声明*/void data_4(); /*数据查询函数声明*/int count;int main(void)one();return 0;void one() /*主菜单函数*/int opt1; /*主菜单项选择项*

35、/printf( 欢迎使用学生综合测评系统 nn);printf( 1: 学生信息处理 2:学生数据处理nn 3: 学生综合信息);printf( 4:用户使用指南nn);printf( 5:退出nn);printf( 请输入1 2 3 4 5中的任意一个选项进展操作:);loop:scanf(%d, &opt1);switch (opt1)case 1:info();break;case 2:data();break;case 3:look();break;case 4:help();break;case 5:break;default:printf( 输入错误,请重新输入 1 2 3 4

36、5中的一项);scanf(%d, &opt1);goto loop;void help()int i;printf(本系统可以存储学生的根本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。nn );printf( 根本信息包括:学号、某某、性别、家庭住址、联系 ;nn 各科成绩包括:语文、数学、英语成绩;nn);printf( 其它包括:考试名次、同学互评分、品德成绩、任课教师评分等。nn);printf( 说明:考试成绩排名是按照考试成绩平均分计算的( 平均分=(语+数+外)/3)nn);printf( 综合测评总分=(考试成绩)*0.6+同学互评分*0.1+(品德成绩)*0.1n +

37、(任课教师评分)*0.2)nn);printf( 此系统最多可管理5000人信息。);printf( 其它请按照提示操作即可。n);printf(返回上一层请输入1);loop:scanf(%d,&i);if(i=1)one();elseprintf(输入错误请重新输入:); goto loop;void info() /*信息处理函数*/int opt2; /*子菜单项选择项*/printf(nn 欢迎进入信息处理 nn);printf( 1.学生信息录入nn 2.学生信息的修改nn);printf( 3.返回nn);printf( 请输入 1 2 3 中的任意一个选项进展操作);loop:

38、scanf(%d, &opt2);switch (opt2)case 1:info_1();break;case 2:info_2();break;case 3:one();break;default: printf(输入错误,请重新输入 1 2 3 中的一项);goto loop; void info_1() /*信息录入函数*/FILE *fp;int s, i,count;count=0;i = 1;if(fp = fopen(stu,rb+) = NULL) if(fp = fopen(stu,wb) = NULL) printf(Cont open filen);exit(1); s

39、tu0.num=0;else fclose(fp); if(fp = fopen(stu,ab+) = NULL) printf(Cont open filen);exit(1); fread(stu,sizeof(struct student),N,fp); fscanf(fp,%d,&stu0.num);loop:printf(nn您将开始录入学生信息n输入1将继续n输入0将退出n输入2将返回上一层);looo:scanf(%d, &s);switch (s)case 0:break;case 1: count+; printf(nn您将输入第%d学生的信息:,count);printf(

40、n学号:);scanf(%d,&stui.num); printf(某某:);scanf(%s,stui.name);printf(性别:);scanf(%s,stui.sex);printf(家庭住址:);scanf(%s,stui.home);printf(联系 :);scanf(%d,&stui.Tel);i+;goto loop;break;case 2:info();break;default:printf(n 输入错误,请重新输入0 1 2 中的一项);goto looo;sort_num(stu, i); stui+1.num=0;stu0.num += count; fseek

41、(fp, 0, SEEK_SET);fwrite(stu, sizeof(struct student), N, fp);fseek(fp, 0, SEEK_SET);fread(stu, sizeof(struct student), N, fp);for(i=1;i=stu0.num;i+)printf(%dn,stui.num);system(pause);fclose(fp);void info_2() /*信息修改函数*/FILE *fp;int j;if (fp = fopen(stu, rb) = NULL)printf(Can not open filen);exit(1);

42、/*打开文件*/ fread(stu, sizeof(struct student),1 , fp); for(j = 1;j =stu0.num;j+)fread(&stuj, sizeof(struct student),1 ,fp);fclose(fp);int i, num, xu, a;llll:printf(nn请输入需要修改信息的学生的学号:n);scanf(%d, &num);for (i = 1; i= stu0.num) printf(查无此人);return ;printf(请问您是否是需要修改此生的信息:);printf(学号%d 某某%s 性别%s 家庭住址%s 联系

43、 %d, stui.num, stui.name, stui.sex, stui.home, stui.Tel);printf(nn如果是请输入1 不是请输入2:n);loop: scanf(%d, &xu);switch (xu)case 1:printf(请输入新的信息n);printf(学号:);scanf(%d, &stui.num);printf(某某:);scanf(%s, stui.name);printf(性别:);scanf(%s, stui.sex);printf(家庭住址:);scanf(%s, stui.home);printf(联系 :);scanf(%d, &stu

44、i.Tel);printf(完成修改!);break;case 2:break;default:printf(n 输入错误,请重新输入0 1中的一项);goto loop; /*修改学生信息*/if (fp = fopen(stu, wb) = NULL)printf(Can not open filen);exit(1); /*打开文件*/fwrite(stu, sizeof(struct student), stu0.num, fp); /* 写入文件中*/fclose(fp);printf(n 是否继续修改学生信息 n是请输入1 n退出请输入2n返回上一层请输入0);lllk: scan

45、f(%d, &a);switch (a)case 0:info();break;case 1:goto llll;break;case 2:break;default:printf(n 输入错误,请重新输入0 1 2 中的一项);goto lllk; /*关闭文件*/void data() /*数据处理函数*/int opt3; /*子菜单项选择项*/printf(nn 欢迎进入数据处理 nn);printf( 1.考试成绩录入与处理nn 2.测评成绩录入与处理nn);printf( 3.学生数据修改nn 4.学生数据查询n);printf( 5.返回nn);printf(nn 请输入 1 2

46、 3 4 5中的任意一个选项进展操作);loop:scanf(%d, &opt3);switch (opt3)case 1:data_1();break;case 2:data_2();break;case 3:data_3();break;case 4:data_4();break;case 5:one();break;default:printf( n输入错误,请重新输入 1 2 3 4中的一项n);goto loop;void data_1() /*数据修改函数*/int m;FILE *fp;if (fp = fopen(stu, rb) = NULL)printf(Can not o

47、pen filen);exit(1); fread(stu, sizeof(struct student),1 , fp); for(m = 1;m = stu0.num;m+)fread(&stum, sizeof(struct student),1 ,fp);fclose(fp);int i, num, xu, a;llll:printf(nn请输入需要录入成绩的学生的学号:n);scanf(%d, &num);for (i = 1; i= stu0.num) printf(查无此人);return ;printf(请问您是否是需要录入此生的考试成绩的数据:);printf(学号%d 某某

48、%s 性别%s 家庭住址%s 联系 %d n, stui.num, stui.name, stui.sex, stui.home, stui.Tel);printf(nn如果是请输入1 不是请输入2:n);loop: scanf(%d, &xu);switch (xu)case 1:printf(nn您将输入此学生的考试成绩:n);looo:printf(语文成绩:);scanf(%d, &stui.s1);if (stui.s1100)printf(输入错误请重新输入);goto looo;printf(数学成绩:);looi:scanf(%d, &stui.s2);if (stui.a21

49、00)printf(输入错误请重新输入);goto looi;printf(英语成绩:);looy:scanf(%d, &stui.s3);if (stui.a1100)printf(输入错误请重新输入);goto looy;case 2:break;default:printf(n 输入错误,请重新输入0 1中的一项);goto loop; int j;for (j = 1; j=a; j+)stuj.ave = (stuj.s1 + stuj.s2 + stuj.s3) / 3); /*求其平均分*/sort_ave(stu, a); /*根据平均分排序*/for (j = 1; j=a;

50、 j+)stuj.m1 = j; /*录入其考试名次*/sort_num(stu, a); /*根据学号排序*/if (fp = fopen(stu, wb) = NULL)printf(Can not open filen);exit(1); /*打开文件*/fwrite(stu, sizeof(struct student), N, fp); /* 写入文件中*/fclose(fp);printf(n 是否继续录入学生数据 是请输入1 否请输入2n);lllk: scanf(%d, &a);switch (a)case 1:goto llll;break;case 2:break;default:printf(n 输入错误,请重新输入0 1中的一项);goto lllk;fclose(fp); /*关闭文

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