2022年C语言学生成绩管理系统.docx
精品学习资源课 程 设 计 报 告课程名称C语言课程设计课题名称成果治理系统专业班级学号姓名指导老师20 年 月日湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计课题 成果治理系统专业班级同学姓名学 号指导老师任务书下达日期0000年 0 月 0 日欢迎下载精品学习资源任务完成日期0000年 0 月 00 日C语言课程设计任务书设计课题 1:成果治理系统问题描述:成果治理系统主要治理同学考试成果的基本信息;在系统中,每个学 生是一条记录,包括姓名、学号、所选课程,而每个同学对应课程有相应 成果;系统要对一个有N 个同学的班级所选课程成果统一进行治理;包括了同学成果的录入、显示、修改、排序、储存等操作;1、 功能设计要求:1) 本系统接受两个结构体数组进行数据储备;同学结构体应当包括同学的基本信息(学号、姓名、所选课程),课程结构包括各项课程的基本信息(所选的各门课程对应的成果)2) 设计主菜单界面,确定函数个数;设计菜单应包含以下功能:录入信息(同学基本信息录入、课程成果基本信息录入) 显示(显示同学基本情形和所选课程成果)修改信息(同学基本信息修改、成果基本信息修改)成果统计(各科成果最高分,平均分) 退出系统3) 要求:建立两个结构体数组(或链表、文件),包括至少3 门课程成绩和 5 个同学的必要信息,能对数据进行补充、修改;执行一个具体的功能之后,程序将重新显示菜单 ;3、要求:1) 用 C语言实现系统;2) 函数功能要划分好(结构化程序设计);3) 界面友好(良好的人机交互),加必要的注释;4) 供应程序测试方案;目录一、系统介绍 3二、总体设计 3欢迎下载精品学习资源2.1 程序模块32.2.函数分析12.3.总体结构2三主要模块的实现 3四程序调试 6五总结与体会 13六源程序清单 14一、系统介绍成果治理系统主要治理同学考试成果的基本信息;在系统中,每个同学是一条记录,包括姓名、学号、所选课程,而每个同学对应课程有相应成果;系统要对一个有N 个同学的班级所选课程成果统一进行治理;包括了同学成果的录入、显示、修改、排序、储存等操作;二、总体设计2.1 程序模块主界面 void homepage ;显示全部成果 void display ;录入 插入 void input ;删除记录 void del ;排序 void sort ;等待界面 void waiting ;退出界面 void quit ;欢迎下载精品学习资源2.2. 函数分析主函数:调用所定义的函数,实现本系统要求的功能主界面函数 :显示主页面,并连接其它函数模块显示函数 : 显示按要求查询的信息录入 插入函数 :录入或插入所需信息删除记录函数: 删除数据中原有的信息排序函数 : 依据要求排列出信息的次序等待界面函数: 在显示期间一个缓冲页面退出界面函数: 退显现有页面并返回子菜单2.3. 总体结构欢迎下载精品学习资源信信信息息息删显输除示入输入显显错示示误信信息息开头主菜单选择功能退出系统进入系统选择功能信息修改信息查找选择查找方式按个输入输入错误返回主菜单终止.欢迎下载精品学习资源三主要模块的实现主函数( main)通过对函数的调用实现录入、显示、修改、排序、储存等功能,有机的联系了全部的模块,是整个系统正常完整的运行;主页面函数 void homepage这个函数主要利用了printf输出了完整的主页面,并且通过函数的调用使这个页面和本程序的其他功能模块连接了起来!显示全部成果函数 void display这个函数主要通过printf输出提示,操作者输入所查找方向,调用从前建立的数组中的储备数据,再通过printf函数依据确定的次序全部完整的输出出来;完成了整个成果的输出,显示;录入插入函数 void input这个函数先用到if语句判定输入成果是否正确,for 语句判定学号是否正确,然后用到for,printf,scanf三的函数完成了对全部同学信息的录入,并且储存到系统中,又用if , else判定输入数量是否超出数组的容纳量删除记录函数 void del这个函数先用for,if来判定所输入信息是否属于该系统信息,找到信息后用del 函数删除掉原有的信息,并且用if ,else 选择是否连续;排序函数 void sort这个函数用printf 输出操作提示,可以用for,if 来实现对每一种方式的排序,在按数字时用通过函数的调用地方法完成进入每一种排序的页面;退出界面函数 void quit这个函数主要通过printf 输出“感谢是由本程序”,完成对整个程序运行终止的提示;删除模式欢迎下载精品学习资源进入删除函数按要求输入信息Y数据错误显示信息错误查找信息并删除连续返回成果子菜单输入信息欢迎下载精品学习资源进 入 输 入 录 入 函输入信息YN信息错误提示错误输入姓名学号用 循 环的 方 式录 入 并存 放 同学 的 n门成果N连续Y返回成果子菜单四程序调试欢迎下载精品学习资源五总结与体会课程设计是培养同学综合运用所学学问, 发觉 , 提出 , 分析和解决实际问题, 锤炼实践才能的重要环节 , 是对同学实际工作才能的具体训练和考察过程. 随着科学技术进展的日新日异,当今运算机应用在生活中可以说得是无处不在;因此作为二十一世纪的高校来说把握运算机开发技术是特别重要的;回忆起此次课程设计,至今我仍感叹颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在一个多星期的日子里,我学到很多很多的的东西,同时不仅巩固了以前所学过的学问,而且学到了很多在书本上所没有学到过的学问;通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论学问是远远不够 的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,才能真正为社会服 务,从而提高自己的实际动手才能和独立摸索的才能;在设计的过程中遇到问题,可以说得是困难重重,这到底第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发觉了自己的不足之处,对以前所学过的学问懂得得不够深刻,把握得不够牢固,比如说结构体通过这次课程设计之后,确定把以前所学过的学问重新温故;这次课程设计最终顺当完成了,在设计中遇到了很多编程问题,最终在老师的辛勤指导下,最终完成课程设计;同时,我也学得到很多有用的学问,在次,对赐予过我帮忙的各位指导老师和全部同学表示忠心的感谢!参考文献C 语言程序设计案例教程张基温编著清华高校出版社C程序设计 (第三版)谭浩强著清华高校出版社欢迎下载精品学习资源C 语言程序设计方法邓文新张宏烈著哈尔滨工业高校出版社C 语言课程设计案例精编中国水利水电出版社六源程序清单#include<stdio.h> #include<string.h> #include<windows.h> #include<conio.h>void homepage ;/ 主界面void display ;/显示全部成果void input ;/ 录入 插入void del ;/ 删除记录void sort ;/ 排序void waiting ;/等待界面void quit ;/ 退出界面struct studentint num ;char name15 ;float score3 ;float avg ; ;int count=0 ;/ 当前同学个数int sort_type=0 ;/ 当前排序类型struct student stu10 ;void mainint i,k=0 ;char username15,pwd6 ;system"color ED" ;欢迎下载精品学习资源printf"nn";printf"tn";printf"tn";printf" printf"printf"ttt n" ;欢迎使用同学成果治理系统 n" ;n";printf"printf"tt n" ; n" ;printf" printf"printf"ttt XXXXX n" ; n" ; XXXXXX n" ;printf"printf"tt n" ;n";printf"tn";printf"tn";printf"nttt 请按回车键连续! n" ;getchar;system"cls" ;homepage;void homepage/ 主页面函数char n;printf"nn";printf"tn" ;printf"t n" ;printf"tn";printf"t1. 显示成果n" ;printf"tn";printf"t n" ;欢迎下载精品学习资源printf"tn";printf"t2. 录入成果n" ;printf"tn";printf"t n" ;printf"tn";printf"t3. 删除记录n" ;printf"tn";printf"tn" ;printf"t printf"tprintf"tn";4. 排序n" ;n";printf"tprintf"tn";n" ;printf"t printf"tprintf"t0. 退出程序n" ;n";n" ;printf"tn" ;while n.='1'&&n.='2'&&n.='3'&&n.='4'&&n.='0'printf"n 请选择 :" ;fflushstdin ;/函数清空scanf"%c",&n ;switchncase '1':display ;break;case '2':ifcount<10 input ;else欢迎下载精品学习资源printf" 记录数已满 n" ;Sleep2000 ;system"cls" ;homepage ;break;case '3':欢迎下载精品学习资源del;break ;case '4':sort ;case '0':quit ;break ;default:/ 不执行printf"n 选项错误 n" ;欢迎下载精品学习资源void display/ 显示全部成果函数int i ;char c;system"cls" ;switchsort_typecase 0:printf"tt 未排序 :nn" ;break;case 1:欢迎下载精品学习资源printf"tt 按学号排序 :nn" ;break;case 2:printf"tt 按成果 1排序 :nn" ;break;case 3:printf"tt 按成果 2排序 :nn" ;break;case 4:printf"tt 按成果 3排序 :nn" ;break;case 5:printf"tt 按平均成果排序 :nn" ;break;printf"t 学号 t姓名t英语 t数学 t物理 t平均成果 n" ;fori=0 ;i<count ;i+printf"t%dt%st%5.2ft%5.2ft%5.2ft%5.2fn",stui.num,stui.name,stui.score0,stui.score 1,stui.score2,stui.avg;printf"nn 按任意键返回 n" ;c=getch ;system"cls" ;homepage;void input/ 录入插入函数int i,numcheck ;char c;欢迎下载精品学习资源system "cls" ;doprintf" 学号:n" ;scanf"%d",&stucount.num;numcheck=1 ;ifstucount.num<0printf" 请输入正整数 :n" ;fori=0 ; i<count ;i+ifstucount.num=stui.numnumcheck=0 ;printf" 学号重复 ,重新输入 :n" ;while.numcheck;printf" 姓名 :n" ;fflushstdin ;getsstucount.name ;fori=0 ;i<3 ;i+printf" 第%d门课成果 :n",i+1 ;scanf"%f",&stucount.scorei;stucount.avg=stucount.score0+stucount.score1+stucount.score2/3;printf" 是否连续输入 y/n:n" ;doc=getchar ;ifc='y'|c='Y'欢迎下载精品学习资源count+ ;ifcount<10input ;elseprintf" 记录数已满 n" ;Sleep2000 ;system"cls" ;homepage ;else ifc='n'|c='N'count+ ;system"cls" ;homepage ;else;whilec.='y'&&c.='n'&&c.='Y'&&c.='N';void del/ 删除记录函数int i,j,del_num,match=0 ;char c;system"cls" ;printf" 请输入要删除的同学学号:n" ;scanf"%d",&del_num ;waiting ;/等待函数fori=0 ;i<count ;i+欢迎下载精品学习资源ifstui.num=del_num/匹配输出match=1 ;forj=i ;j<count ;j+ stuj=stuj+1;if.matchprintf" 没有要找的学号 .n" ;printf" 是否连续删除 .y/n" ;fflushstdin ;doc=getchar ;ifc='y'|c='Y'count- ;del ;/删除记录else ifc='n'|c='N'count- ;system"cls" ;homepage ;else;whilec.='y'&&c.='n';void sort/ 排序函数int i,j ;欢迎下载精品学习资源int choice ;struct student temp;system"cls" ;printf"tt 请选择排序功能 :n" ;printf"t1. 按学号排序 n" ;printf"t2. 按成果 1排序 n" ;printf"t3. 按成果 2排序 n" ;printf"t4. 按成果 3排序 n" ;printf"t5. 按平均成果排序n";doscanf"%d",&choice ;whilechoice.=1&&choice.=2&&choice.=3&&choice.=4&&choice.=5;switchchoicecase 1:/按学号fori=0 ; i<count-1 ;i+forj=0 ;j<count-i-1 ;j+ifstuj.num>stuj+1.numtemp=stuj ;stuj=stuj+1;stuj+1=temp ;sort_type=1 ;break ;欢迎下载精品学习资源case 2:fori=0 ; i<count-1 ;i+forj=0 ;j<count-i-1 ;j+ifstuj.score0<stuj+1.score0temp=stuj ;stuj=stuj+1;stuj+1=temp ;sort_type=2 ;break ;case 3:fori=0 ; i<count-1 ;i+forj=0 ;j<count-i-1 ;j+ifstuj.score1<stuj+1.score1temp=stuj ;stuj=stuj+1;stuj+1=temp ;欢迎下载精品学习资源sort_type=3 ;break ;case 4:fori=0 ; i<count-1 ;i+forj=0 ;j<count-i-1 ;j+ifstuj.score2<stuj+1.score2temp=stuj ;stuj=stuj+1;stuj+1=temp ;sort_type=4 ;break ;case 5:fori=0 ; i<count-1 ;i+forj=0 ;j<count-i-1 ;j+ifstuj.avg<stuj+1.avgtemp=stuj ;stuj=stuj+1;欢迎下载精品学习资源stuj+1=temp ;sort_type=5 ;break ;system"cls" ;waiting ;homepage;void waitingint i ;printf"nt 请稍侯" ;fori=0 ;i<25 ;i+switchi%4case 1:printf"b" ;break;case 2:printf"b-" ;break;case 3:printf"b/" ;break;case 0:printf"b|" ;break;Sleep100 ;system"cls" ;void quit欢迎下载精品学习资源system"cls" ;printf"nn";printf"t n" ;printf"t n" ;printf"tn" ;printf"t感谢使用本程序n" ;printf"t n" ;printf"t nn" ;运算机与通信学院课程设计评分表课程名称: C 语言程序设计项目评价设计方案的合理性与制造性设计与调试结果设计说明书的质量答辩陈述与回答疑题情形课程设计周表现情形综合成果老师签名:日 期:(注: 1此页附在课程设计报告之后;2综合成果按优、良、中、及格和不及格五级评定;)欢迎下载