您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C语言课设报告——学分管理程序
C程序课程设计报告(学分管理程序)学分管理程序一:【题目描述】请设计一个学生的学分管理程序。假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8学分、实验性课程20学分才能够毕业。因此在管理学分时,要考虑每个学分所属于的课程类别。该程序应该具有下列功能:(1)通过键盘输入某位学生的学分;(2)给定学号,显示某位学生的学分完成情况;(3)给定某个班级的班号,显示该班所有学生学分完成情况;(4)给定某位学生的学号,修改该学生的学分信息;(5)按照某类课程的学分高低进行排序;(6)提供一些统计各类信息的功能。【题目要求】(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2)学分信息应该包括学号、姓名、课程类别、学分等;(3)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。【输入要求】应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。【输出要求】(1)应用程序运行后,要在屏幕上显示一个菜单;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。二:软件的总体结构图。开始显示主菜单建立两个班级结构,其中包括,班中每一名学生的学号,名字,基础科学分,专业课学分,选修课学分,人文课学分,实验课学分,分别以数组的形式存储。在针对每个数族元素进行赋值,修改,运算。三,程序主流程图fanhui()(班级、学号、姓名、成绩)输入学生基本信息输入学号显示个人信息输入班级显示该班所有学生信息输入学号修改学生基本信息统计printf按任意键返回菜单Caidan();输入相应课程学分排序beganshuru1();break;xianshi1();break;xianshi2();break;xiugai();breakexit(0)paixu();break;tongji();break;目录函数caidan()a,Aq,Qb,Bd,De,Ef,Fc,C输入学生学分shuru()paixu();break;beginchari;printf显示菜单i=getch();switch(i)输入学号,显示该学生各学科学分完成情况xianshi1()begin提示输入班级printf,scanf输入学生个人信息返回菜单printf按任意键返回菜单输入班号,显示班级所有学生的学分情况xianshi2()beganinta,b;chars;显示该学生各学科学分情况casey:运行xianshi1程序casen:返回菜单printf(“Enterthenumberofclass(1-2)”);scanf(“%d”,&a);printf(“Enterthenumberofstudent(1-5)”);scanf(“%d”,&a);scanf(“%d”,&a);修改该学生的学分信息xiugai()Beganinta,i;chars;根据输入的班号,显示该班内所有学生学分完成情况casey:运行xianshi2程序casen:返回菜单printf(“Enterthenumberofclass(1-2)”);begininta,b,choice;chars;printf(\tEnterthenumberofclass(1-2):);scanf(%d,a);case1:修改基础课学分switch(choice)case2:修改专业课学分case3:修改选修课学分case4:修改人文课学分case5:修改实验课学分printf(\tEnterthechoice(1-5):);scanf(%d,choice);printf(\tEnterthenumberofstudent(1-5):);scanf(%d,b);按照单科成绩由高到底排序paixu()casey:运行xiugai程序casen:返回菜单显示修改后的学生学分成绩beganinta,b,i,j,index,temp,x;charn[100];chars;输入数组nindex=0i=1index=ii=i+1a[i]a[index]in输入最大值a[index]和下标index交换a[index]和a[0]输出数组a输出排序后学生学号,姓名,学分按学科统计各班总分,平均分tongji()casey:运行paixu程序casen:返回菜单beganinta,b,i,total;doubleaverage;chars;total=0switch(b)case1:统计基础课总学分,及平均分case3:统计选修课总学分,及平均分case2:统计专业课总学分,及平均分case4:统计人文课总学分,及平均分case5:统计实验课总学分,及平均分输出总学分,平均分casey:tongji()casen:caidan()switch(s)提示输入班级,学科学分高低排序调用copyfs(XF*a,XF*b)inti,j,k,n;FILE*fp;XFt;clrscr()printf(\n\n\t\t\t此文件无法打开!!!);exit(0)if((fp=fopen(c:\\xfk.dat,rb))==NULL)fread(&stu[i],sizeof(XF),1,fp)i=0iNi++fclose(fp)begin按照一类课程的学分高低进行排序paixu()真假假真scanf(%d,&k);按学分高低进行排序i=0iN-1i++clrscr()fanhui();begincaidan();假真printf输出学生信息主函数main()四.小组最终程序报告(1)内容描述。这是一个学生的学分管理程序。假设每位学生必须完成基础课、专业课、选修课、人文类课程、实验性课程的一定学分才能够毕业。因此在管理学分时,要考虑每个学分所属于的课程类别。(2)程序主要功能应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。(3)程序所含功能如下:(1)通过键盘输入某位学生的学分;(2)输入学号,显示该同学的学分完成情况(3)给定某个班级的班号,显示该班所有学生学分完成情(4)给定某位学生的学号,修改该学生的学分信息;(5)按照某类课程的学分高低进行排序;(6)提供一些统计各类信息的功能。(4)主要思想:首先,建立菜单,运用switchcase语句。通过使用者的输入,进入相应不同的运行程序。再建立返回程序goto,在出错或结束程序时返回菜单。在第一个输入学分的程序中,建立学生信息结构并建立文件(FILE*fp),通过用户输入学生的信息(班号,学号,姓名,以及个课程学分),储存在各自的一维数组中。一并存储在所建立的文件中。输入完毕后,返回主菜单。在第二个输入学号,显示学生学分程序中。通过输入学号,打开(fread)文件,运用for循环在数组中进行脚码的比较,实现寻找获得正确的地址。显示该学生结构中的各项信息。第三个程序,给出班号,显示全班学生学分完成情况。输入班号,运用for循环比较。比较正确后,打开文件,读入到内存中。输出该班级的所有学生信息。返回主菜单。第四个,修改学分程序。输入学号。运用循环找出对应地址,读文件到内存中,打开学生结构。输出学生信息。用fwrite重新写入到文件中,进行修改。输出修改完毕,返回主菜单。第五个,按课程学分高低排序。输入课程类别,读出文件,针对每个学生的结构中相应的学分地址中的数据进行比较,运用指针,冒泡排序的方法排出顺序,并输出。返回主菜单。第六个,提供一些统计各类信息的功能。计算总分功能。计算平均分。返回主菜单。
本文标题:C语言课设报告——学分管理程序
链接地址:https://www.777doc.com/doc-5100242 .html