2022年C语言学生信息管理实习电子.docx
精品学习资源C语言实训报告同学信息治理系统系部名称:电子工程系专业名称:电子信息技术班级: 110112学号: 11011221同学姓名:刘龙涛指导老师:顾军林时间: 2021 年 5月 26 日 至2021年 6月 1 日一、课程设计目的1) 对 C各部分学问的综合应用才能2) 提高程序设计的才能3) 提升对于较大程序的抽象分析设计才能4) 学习调试和测试的技巧二、课程设计内容1 )熟识 C试验环境,按给定的上机步骤练习完成;2 )熟识 C程序的编辑,编译,链接和运行的过程;3 )编译一个应用系统程序,形成一个软件系统;三、需求分析随着当今社会进展,信息化水平逐步提高,对教务治理有了新的要求,因此,编写一个信息治理系统是特别有必要的;该软件主要是实现对同学信息进行系统化的治理,第一可以对同学基本信息进行输入和读取,其次查找并显示特定同学的相关信息,然后可以插入同学的相关信息,仍有就是可按同学相关信息排序,以求达到简易操作的目的; 四、概要设计1. 系统结构图(功能模块图)和数据变量说明主菜单2. 功能模块说明1. 输入模块 2. 列表模块输入列表查找增加修改排序退出欢迎下载精品学习资源开头3. 查找模块 4. 修改模块开头5. 增加模块-1开输始入返回主程序6. 成果排序开头开头输出列表-1读文件数据读文件数据输入数据输入 num列出数据i=-1i=-1返回主程序读文件数据开头返回主程序输读入文件n数um据-1返回主程序s=i stui.num=nuum .N列出数据stui.num=nN返回主函数返回主函数Yuum .Y i=-1返回主函数冒泡排序YN输出数据输入数据输入数据输出数据Y返回主函数返回主函数修改数据i=-1返回主函数N显示数据返回主函数欢迎下载精品学习资源五、运行情形1. 主菜单2. 录入数据3. 输出数据4. 查找数据5. 增加数据5. 增加数据6. 修改数据7. 成果排序8. 退出系统六、设计体会和反思通过两周的上机实习,我对C语言又有了崭新的熟识;C 语言的学习是一个系统的过程,需要长期的学问积存和储备并辅以大量的上级实际操作练习,自己也应当有所体会,在实践中成长,在实践中求知;这次我设计的课题是同学信息治理系统;课题要求对同学信息实现一系列基本操作;我选择通过结构体数组来实现这个设计;通过fread和 fwrite两个函数实现对文件的读写,过程比较简洁(这里也有参考C 程序设计中某例题的思想);通过大量的符号和printf语句,使得操作界面更加和谐友善,这些都是我通过这次实习积存的体会;同时,设计完成后我也发觉了代码中的一些不足,例如在录入数据时要求输入序号的值,这个我认为操作比较复杂,但由于时间紧迫,未能提出完善的解决方案, 但此问题并不影响程序的运行和要求的实现;经过实际检验,只要依据程序要求输 入,就能够实现;总之,通过这次实习,我也熟识到了我自己在程序设计这门课程上的不足,在以后的学习实践中,要更加的严谨踏实,对学问的把握要更加的细致入微,要活学活用,争取在这个学科上取得更大的进步;七、参考文献谭浩强著 .C 程序设计(第三版) . 北京:清华高校出版社, 2005欢迎下载精品学习资源八、程序源代码#include "stdio.h" #define SIZE 100000 #include"string.h" #include"stdlib.h" #include"conio.h" struct studentint n ;int num ;char name10 ;int C ;int Maths ;int En ;float ave;stuSIZE ;/* 录入数据 */void finputFILE *fp ;int i,p ;fp=fopen"fstu","wb";fori=0 ;i<SIZE ;i+1printf"i=%d输入序号 i 当输入 i=-1 时,返回 ,i=",i+ ;scanf"%d",&i ;ifi=-1欢迎下载精品学习资源return;fclosefp ;欢迎下载精品学习资源elseprintf" 请输入学号,姓名, C 成果,数学成果,英语成果:" ;欢迎下载精品学习资源scanf"%d%s%d%d%d",&stui.num,stui.name,&stui.C,&stui.Maths,&stui.En;stui.ave=stui.C+stui.Maths+stui.En/3.0;stui.n=i+1 ;fwrite&stui,sizeofstruct student,1,fp;fclosefp ;/* 输出数据 */void flistFILE *fp ;int i ;fp=fopen"fstu","rb";printf" n" ;printf"成果列表 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";fori=0 ;fread&stui,sizeofstruct student,1,fp=1;i+printf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;欢迎下载精品学习资源printf"-nn";printf" n" ;fclosefp ;/* 查找数据 */void fsearchFILE *fp ;int i,num ;fp=fopen"fstu","rb";rewindfp ;printf" 请输入要查找的学号 :" ;scanf"%d",&num ;printf" n" ;printf"查询结果 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";fori=0 ;i<=SIZE ;i+ ifstui.num=numprintf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;printf"-nn";printf" nnn" ;fclosefp ;/* 增加数据 */void faddenint i,s ;FILE *fp ;fp=fopen"fstu","ab+";rewindfp ;printf" n" ;printf"成果列表 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";fori=0 ;fread&stui,sizeofstruct student,1,fp=1;i+printf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;printf" n" ;s=i;fori=s ;i<SIZE ;i+printf"i=%d输入序号 i当输入 i=-1 时,返回 ,i=",i+1 ;scanf"%d",&i ;ifi=-1欢迎下载精品学习资源return ;elsefclosefp ;欢迎下载精品学习资源printf" 请输入学号,姓名, C 成果,数学成果,英语成果:" ;stui.n=i+1 ;scanf"%d%s%d%d%d",&stui.num,stui.name,&stui.C,&stui.Maths,&stui.En;stui.ave=stui.C+stui.Maths+stui.En/3.0;fwrite&stui,sizeofstruct student,1,fp;fclosefp ;/* 修改数据 */void fchangeFILE *fp ;int i,num,n ;int flag=0 ;printf" 请输入要修改同学的学号:" ;scanf"%d",&num ;fori=0 ;i<=SIZE ;i+ ifstui.num=numprintf" n" ;printf"成果列表 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";printf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;printf"-nn";printf" n" ;n=i ;flag=1 ;break;ifflag=0printf" n" ;printf"输入错误 .n" ;printf"请返回 .n" ;printf" n" ;return ;printf"nnn";fp=fopen"fstu","rb+";fseekfp,n*sizeofstruct student,0 ;printf" 请输入新的学号,姓名,C 成果,数学成果,英语成果:" ;scanf"%d%s%d%d%d",&stui.num,stui.name,&stui.C,&stui.Maths,&stui.En;stui.ave=stui.C+stui.Maths+stui.En/3.0;fwrite&stui,sizeofstruct student,1,fp;fclosefp ;fp=fopen"fstu","rb";printf" n" ;printf"成果列表 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";欢迎下载精品学习资源fori=0 ;fread&stui,sizeofstruct student,1,fp=1;i+printf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;printf"-nn";printf" n" ;fclosefp ;/* 成果排序 */void ftaxisint i,j,n ;FILE *fp ;struct student t;fp=fopen"fstu","rb";printf" n" ;printf"成果列表 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";fori=0 ;fread&stui,sizeofstruct student,1,fp=1;i+printf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;printf"-nn";printf" n" ;fclosefp ;n=i ;fori=0 ;i<n ;i+ forj=i+1 ;j<n ;j+ ifstui.ave<stuj.avet=stui ;stui=stuj ;stuj=t ;fp=fopen"fstus","wb";printf"nnn";printf" n" ;printf"成果列表 n" ;printf"-n";printf" 序号 学号 姓名C 成果数学英语平均 n" ;printf"-n";fori=0 ;i<n ;i+fwrite&stui,sizeofstruct student,1,fp;printf"%d%8d%8s%8d%8d%8d%16.2fn",stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave;printf" n" ;fclosefp ;/* 主函数 */mainint n;for ; 欢迎下载精品学习资源printf"n" ;printf" n" ;printf" n";printf" 欢迎来到同学信息治理系统 n" ;printf" n";printf" 系部 :通信工程专业:通信工程 n";printf" 姓名 :学号 : n" ;printf" 班内序号 :指导老师 : n" ;printf" n";printf" 主菜单 n" ;printf" n";printf" 1.录入数据 n" ;printf" 2.输出数据 n" ;printf" 3.查找数据 n" ;printf" 4.增加数据 n" ;printf" 5.修改数据 n" ;printf" 6.成果排序 n" ;printf" 7.退出系统 n" ;printf" n";printf" nn" ;printf" 请输入选择项 1-7:" ;scanf"%d",&n ;printf"nnnn";ifn>0&&n<8switchncase 1:finput ;break;case 2:flist ;break;case 3:fsearch;break;case 4:fadden;break;case 5:fchange;break;case 6:ftaxis ;break;case 7:printf" n" ;printf" n" ;printf" 感谢使用 . n" ;printf" 再见 . n" ;printf" n" ;printf" n" ;exit0 ;欢迎下载精品学习资源elseprintf" n" ;欢迎下载精品学习资源printf" n" ;printf" 输入错误 . n" ;printf" 请退出 . n" ;printf" n" ;printf" n" ;break;欢迎下载