《2022年C语言课程设计-学生成绩管理系统分析方案.docx》由会员分享,可在线阅读,更多相关《2022年C语言课程设计-学生成绩管理系统分析方案.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源课程名称 课程设计报告题目同学成果治理系统学号姓名年级专业2021 电子信息工程同组人员指导老师完成日期2021年06月30日安徽师范高校物理与电子信息学院College of Physics and Electronic Information, AnhuiNormalUniversity一、 问题描述和基本要求1、每条记录包括:学号、姓名、专业和5 门课程的分数;2、能够实现添加、删除、修改功能;3、能够运算某同学的总分和平均分;4、能够照总分排序输出;二、 系统分析和设计仔细阅读系统要求,第一将此系统化分为如下模块:欢迎下载精品学习资源同学成果治理系统输入同学信息显示同学信息
2、排序模块插入模块删除模块1、输入初始的同学信息:可用函数input来实现此操作;2、输出同学的信息以及成果:可通过函数output来实现,3、排序模块:可通过 sort来实现,通过比较总分的大小来排序;4、插入模块:可通过函数insert 来实现,其中通过学号的大小来比较,并且以此来排序;5、删除模块:可通过函数delete 来实现,其中通过输入学号来选择要删除的同学信息;5、退出系统:可通过一个函数 exit 来实现,输入“ 0”即退出此程序 ;三、程序流程图欢迎下载精品学习资源开头STUDENTdataMAXN ;a.=0a=1欢迎下载精品学习资源inputdata,&len;break;
3、a=2outputdata,len;break;a=3sortdata,len;break;a=4insertdata,&len;break;a=5delete_itemdata,&l en;break;a.=nbreak;欢迎下载精品学习资源a.=nscanf%c,&a;终止欢迎下载精品学习资源四、程序清单源程序:#include #include #include #define MAXN 35#define MAX_NAME 128typedef struct student /*定义同学信息 */int no; /* 定义学号 */char nameMAX_NAME ; /* 定义姓名
4、 */ char fieldMAX_NAME;/* 定义专业 */doublesubject1;/* 定义五个科目 */doublesubject2;doublesubject3;doublesubject4;doubledoublesubject5;mark_ave;/* 定义平均分 */doublemark_tot;/*定义总分 */ STUDENT ;/* 以下为输入信息程序 */void inputSTUDENT *data, int *lenint no;putcharn;printf%sn, Please enter a new record, if need to exit th
5、e current menu please input - 1.;printf%s, Form: nno ;printf%s, Name field subject1 subject2 subject3 subject4 subject5n; scanf%d, &no ;whileno .= -1data*len.no = no;scanf%s %s %lf %lf %lf %lf %lf, data*len.name,data*len.field, &data*len.subject1,&data*len.subject2,&data*len.subject3, &data*len.subj
6、ect4, &data*len.subject5 ;data*len.mark_ave=data*len.subject1+data*len.subject2+data*len.subj ect3+data*len.subject4+data*len.subject5/5.0;data*len.mark_tot=data*len.subject1+data*len.subject2+data*len.subje ct3+data*len.subject4+data*len.subject5;*len+ ;/*指针加一 */scanf%d, &no ;/* 输入*/欢迎下载精品学习资源/* 以下
7、为输出信息程序 */void outputSTUDENT *data, int lenint i;systemcls;/* 定义系统菜单 */ printf%5s, no ;/*输出菜单 */ printf%7s, name ;printf%7s, field ;printf%10s, subject1 ;printf%10s, subject2 ;printf%10s, subject3 ;printf%10s, subject4 ;printf%10s, subject5 ;printf%12s, mark_ave ;printf%10s, mark_tot ;putcharn;for i
8、 =0 ; i 80; i+putchar=;putcharn;for i = 0 ; i len; i+printf%5d, datai.no ;printf%8s, datai.name ;printf%8s, datai.field ;printf%8.1lf, datai.subject1 ;printf%8.1lf, datai.subject2 ;printf%10.1lf, datai.subject3 ;printf%10.1lf, datai.subject4 ;printf%10.1lf, datai.subject5 ;printf%12.1lf, datai.mark_
9、ave ;printf%10.1lf, datai.mark_tot ;putcharn;for i =0 ; i 80; i+putchar=;putcharn;printfPress Enter to continue.;getchar;getchar;/*以下为排序程序 */void sortSTUDENT *data, int len欢迎下载精品学习资源int i,j,k ;STUDENT temp;for i=0 ; ilen-1; i+for k=i, j=i+1 ; jlen; j+if datak.mark_tot dataj.mark_tot k=j ;if k .= i欢迎
10、下载精品学习资源temp = datai;datak = temp;datai = datak ;欢迎下载精品学习资源/* 以下为添加程序 */void insertSTUDENT *data, int *lenint no, pos;double subject1, subject2, subject3, subject4, subject5, mark_ave, mark_;tot int i;char nameMAX_NAME ;char fieldMAX_NAME;lab: printf%sn, Enter the new record, please input from the c
11、urrent menu - 1.; printf%s, Form :nno ;printf%s, Name field subject1 subject2 subject3 subject4 subject5n; scanf%d, &no;if no = -1 return ;data*len.no = no;scanf%s %s %lf %lf%lf %lf%lf,name, field, &subject1, &subject2, &subject3, &subject4, &subject5;mark_ave=subject1+subject2+subject3+subject4+sub
12、ject5/5.;0mark_tot=subject1+subject2+subject3+subject4+subject;5 pos = 0;while datapos.mark_tot mark_tot & pos = pos; i-datai+1 = datai ;datapos.no = no;strcpydatapos.name, name;strcpydatapos.field, field;datapos.subject1 = subject1; datapos.subject2 = subject2;欢迎下载精品学习资源datapos.subject3 = subject3;
13、 datapos.subject4 = subject4; datapos.subject5 = subject5; datapos.mark_ave = mark_ave; datapos.mark_tot = mark_tot;*len+ ;goto lab;/*以下为删除程序 */void delete_itemSTUDENT *data, int *lenint no, i, pos;lab: pos=0;printf%sn, The students need to delete the input of student id, please input from the curre
14、nt menu - 1.;scanf%d, &no;if no = -1return;while datapos.no .= no & pos = *len欢迎下载精品学习资源elseprintf%sn, Did not find the students need to delete;goto lab;for i = pos+1;i *len ; i+欢迎下载精品学习资源datai-1 = datai ;*len = *len -1 ;欢迎下载精品学习资源if *len = 0printf%sn, No records, please press Enter to return.; getc
15、har;getchar;return;欢迎下载精品学习资源goto lab;/* 以下为显示信息程序 */ void paintint i;欢迎下载精品学习资源systemcls;printfn%49sn, Score Manage Systemn;for i = 0 ; i 80; i+putchar=;putcharn;printf1 Input data2 Output datan; printf3 sort4 Insertn;printf5 delete0 Quitn;for i = 0 ;i = 79;i+putchar=;putcharn;printf%sn, Enter num
16、from 1 to 5: ;/* 以下为主程序 */void mainSTUDENT dataMAXN ;int len = 0;char a;paint;scanf%c, &a;while a .= 0switchacase 1: inputdata, &len;break;case 2: outputdata, len;break;case 3: sortdata, len; break;case 4: insertdata, &len;break;case 5: delete_itemdata, &len; break;default: if a .= n printf%sn, Inpu
17、t Error.;break;if a .= n paint ;scanf%c, &a;五、 测试数据运行源程序,结果如下:欢迎下载精品学习资源欢迎下载精品学习资源六、 问题小结在设计过程中,遇到的问题有:欢迎下载精品学习资源1、如何排序,在排序方法的选择上显现问题,最终在查阅课本、相互比较之下得到明白决;2、所学的函数实现不了系统要求的功能,通过查阅书籍、询问同学得到明白决,如使用了 systemcls来定义系统菜单等;七、 收成和体会通过此次课程设计,巩固了对for 循环、 switch 结构、函数调用、指针等已学过的重要学问点的把握;明白并学习了systemcls,goto 语句,把握了新学问;提高了分析解决问题的才能;八、参考资料:1) 谭浩强, C 程序设计教程,清华高校出版社, 2007 年2) 赵永哲,李雄飞,戴秀英编著, C 语言程序设计,科学出版社 ,2003 年3) 夏宽理,赵子正编著, C 语言程序设计,中国铁道出版社,2006 年物理与电子信息学院课程设计评定看法欢迎下载精品学习资源主要内容包括:设计报告内容的完整性和完成情形、报告格式的规范性、通过课程设计取得的收成等;指导老师评语成果:签名:年月日欢迎下载