C语言课程设计报告学生信息管理系统.docx
《C语言课程设计报告学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告学生信息管理系统.docx(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、优质文本前言 C语言是一门通用的计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 近年来,C语言在国内得到了迅速的推广和应用。作为一门通用的语言,在过去很流行吗,将来依然会如此。几乎每一个理工科或者其他专业的学生毫不例外的要学习它,同时,C语言作为“全国计算机二级等级考试中的一门可选语言,也是用来衡量计算机程序设计水平的一个重要标准。从C语言产生到现在,它已成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如JAVA的语法与C语言根本相同。学习、掌握C语言是每一个计
2、算机技术人员的根本功之一。C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能这些都是汇编语言的功能,因此,C语言通常又被称为中级语言。学习和掌握C语言,即可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的根底。C语言程序设计是一门实践性很强的课程,所以本学科的实验实训非常重要。所以我们进行了本次课程设计实践。在这个过程中我们都学到了很多,此报告便是这次课程设计的经过、流程,介绍了局部自己编写的程序。目录1.问题概述02 2.系统需求分析023.系统概要设计024.系统的详细设计065系统的测试及调试156.用户手册217.总结218.参考文献229.附录
3、231.问题概述 设计一个学生综合测评的信息及成绩的管理系统,以解决传统纸质信息统计的不易修改,储存及放置等诸多不便及弊端。来简化学校的办公,节约时间及人力。1. 系统需求分析在学生信息的日常管理中,经常需要对学生相关信息进行处理,采用传统的手工记录,查询方式,显然有很多不便,如屡次的增、删、改可能使信息变得混乱,为今后的信息提取带来很多麻烦。为了解决这一问题,可采用现代化的手段计算机进行系统的管理。这样可大大提高管理的质量和效率,并且使学生的信息管理也从手工操作中解脱出来,减少纸制材料的数量,对日常信息的查询、方便、快捷。因此,基于这些方面的考虑,决定开发本系统。2. 系统概要设计 设计一个
4、学生综合测评的信息及成绩的管理系统,以解决传统纸质信息统计的不易修改,储存及放置等诸多不便及弊端。来简化学校的办公,节约时间及人力。3.1 系统的主要功能系统的主要功能是实现学生根本的信息及成绩的录入和管理。主要包括:A、学生信息处理(1) 学生信息的录入。(2) 学生信息的修改。(3) 学生信息的浏览B、学生数据处理:(1) 学生考试数据输入并计算平均分及名次(2) 学生测评数据输入并计算综合测评总分及名次(3) 学生数据的修。(4) 学生数据的查询C、学生综合信息显示3.2 系统的总体结构 (1) 程序主界面的设计主界面主界面3学生综合信息显示2学生数据处理系统2学生数据处理系统 5 退出
5、系统4用户指南1学生信息处理系统 图3.1.1 系统主界面结构图2学生信息处理子界面设计学生信息处理3返回主菜单2修改学生信息1录入学生信息 图3.1.2 系统子界面结构图1学生数据处理学生数据处理3学生数据修改2测评成绩录入及处理5返回主菜单4学生数据查询1考试成绩录入及处理图3.1 系统子界面结构图21、学生信息处理(1) 录入学生信息、学号、姓名、性别、家庭住址、联系 ,按学号以小到大的顺序存入文件中。学生信息可先输入到数组中,排序后可写到文件中。(2) 修改同学信息。2、学生数据处理:(1) 考试成绩录入及处理: 考试成绩语文+数学+外语/3 计算考试成绩,并计算考试名次,提示:先把学
6、生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求知名次,最后把学生记录写入一个文件中。(2) 测评成绩录入及处理:综合测评总分考试成绩*0.6+同学互评分*0.1+品德成绩*0.1+任课老师评分*0.2。(3) 学生数据修改:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:输入学号,即读出所有数据信息,并显示出来。3、查询学生综合信息 输入学号即读出综合信息,并显示出来3.3 系统软硬件环境 本程序所适用的计算机系统软硬件环境要求为: 硬件环境: PentiumIII500以上内存:256M 软件环境: Windows 73.4 数据结构设计学生信息
7、数据结构类型如下:struct student int 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; /*任课教师评分*/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
9、_4等函数来实现数据的录入修改及查询。还使用了void sort_num(struct student a, int n);void sort_ave(struct student a, int n); void sort_z(struct student a, int n); 三个排序函数来处理学生的数据在最后的学生综合信息查询中使用的是void look()来实现其功能在用户指南中使用了void help()函数来实现其功能以上就是此系统中使用的函数来实现其功能。4.1主菜单void one()1.系统流程该函数主要用来显示主菜单的内容以及进入子菜单实现功能,该函数实现过程中首先定义了一个
10、变量opt1,这是用户选择进入那个模块的选项。首先判断opt1的值,如果为1那么调用void info()进入信息管理模块,如果为2那么调用void data()进入数据管理模块,如果为3那么调用void look()进入学生综合信息查询功,如果为4那么调用void help()进入用户指南函数查看,如果为5那么退出系统。 如果用户没有输入12345中的选项,那么会提示输入错误请重新输入。2.代码实现void one() /*主菜单函数*/int opt1; /*主菜单项选择项*/printf( 欢送使用学生综合测评系统 nn);printf( 1: 学生信息处理 2:学生数据处理nn 3:
11、学生综合信息);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 5中的一项);scanf(%d, &opt1);goto loop;4.2子菜单1 void info()1.系统流
12、程该函数主要用来显示子菜单1的内容以及进入功能实现函数,该函数实现过程中首先定义了一个变量opt2,这是用户选择进入那个功能的选项。首先判断opt2的值,如果为1那么调用void info_1()进入学生信息录入功能,如果为2那么调用void info_2()进入学生信息修改功能,如果为3那么调用void one()返回到主菜单。 如果用户没有输入123中的选项,那么会提示输入错误请重新输入。2.代码实现void info() /*信息处理函数*/int opt2; /*子菜单项选择项*/printf(nn 欢送进入信息处理 nn);printf( 1.学生信息录入nn 2.学生信息的修改nn
13、);printf( 3.返回nn);printf( 请输入 1 2 3 中的任意一个选项进行操作);loop: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; 4.3学生信息录入void info_1()1. 系统流程 该函数运行后,首先翻开文件,然后判断文件是否为空。如果为空设置一个变量count来记录录入学生的数目。如果不为空,那么从文件中读取count
14、的值。然后开始录入学生信息,设置变量输入s,用switch语句来决定是否录入或退出。输入1录入0退出2返回上一层。在1中用goto语句实现循环录入到数组中。在2中调用void one().最后将学生信息的数组和count写入文件,然后关闭文件。2.代码实现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
15、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输入2返回上一层n输入0将退出n);looo:scanf(%d, &s);switch (s)case 0:break;case 1:count+; printf(nn您将输入第%d学生的信息:,count);printf(n学号:);scanf(%d,&
16、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(fp, 0, SEEK_SET);
17、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);4.4学生信息修改void info_2()1. 系统流程 该函数运行后,首先翻开文件,读取文件内容到数组中。设置变量num 用户输入一个学号。然后用一个for循环将num与数组中的学号的值进行比拟,如果相同,跳出循环。找到后将其输出。询问是否修改
18、。修改后将其写入文件中。关闭文件。2.代码实现void info_2() /*信息修改函数*/FILE *fp;int j;if (fp = fopen(stu, rb) = NULL)printf(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请输入需要修改信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 学生 信息管理 系统
限制150内