《2022年大一数据结构c语言课程设计说课讲解 .pdf》由会员分享,可在线阅读,更多相关《2022年大一数据结构c语言课程设计说课讲解 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大 一 数 据 结 构 c 语 言课 程 设 计名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢2 XIAN TECHNOLOGICAL UNIVERSITY 课程设计报告课程名称:C 语言程序设计专业:班级:姓名:学号:指导教师:成绩:2017 年 1 月 5 日名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢1 题目:学生成绩管理系统思路:先建立一个链表然后以链表为基础进行各种操作,设计学生成绩管理系统,通过主页显示,根据自己需求按主页中所
2、显示步骤输入,删除,查找,插入,修改,统计学生信息。算法:核心算法为链表的生成,插入,查找,排序算法。函数模块介绍:void xuanze();/选择功能void shuchu(struct student*h);/输出void tianjia(struct student*h);/添加void shanchu(struct student*h);/删除void chaxun(struct student*h);/查询名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢2 void genggai(struct stude
3、nt*h);/更改主void gxuehao(struct student*p);/改学号void gname(struct student*p);/改姓名void ggaoshu(struct student*p);/改高数成绩void gyingyu(struct student*p);/改英语成绩void gc(struct student*p);/改 c 语言成绩void tongji();/统计主void max_average(struct student*h);/统计平均分最高void max_gaoshu(struct student*h);/统计高数最高void max_yi
4、ngyu(struct student*h);/统计英语最高void max_c(struct student*h);/统计 c 语言最高void bujige_average(struct student*h);/统计平均分不及格学生信息void bujige_gaoshu(struct student*h);/统计高数不及格学生信息void bujige_yingyu(struct student*h);/统计英语不及格学生信息void bujige_c(struct student*h);/同意 c 语言不及格学生信息struct student*creat(int n);/创建链表vo
5、id order_two(struct student*p,struct student*q);/调换位置void order(struct student*h);/排序源程序#includestdio.h#includestring.h#includeconio.h#include#define N 30#define M 3 typedef struct student 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢3 char number10;char name20;float scoreM;float av
6、er;float total;STU;STU stuN;int n;void inputscore(void);void savescore(void);void avergescore(void);void total(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void savescore(void);void menu(void);int main()short int flag=0;m
7、enu();do flag=1;switch(getch()case1:inputscore();break;/*输入成绩*/case2:lookscore();break;/*查看成绩*/case3:searchscore();break;/*查找成绩*/case4:statistic();break;/*成绩统计*/case5:modify();break;/*修改成绩*/case6:add();break;/*添加成绩*/case7:delscore();break;/*删除成绩*/名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 13 页 -精品资料仅供学习与交流,如有侵权
8、请联系网站删除谢谢4 case8:savescore();break;/*保存成绩*/case9:exit(0);/*退出成绩*/default:printf(输入有误 n);printf(按任意键继续 n);getch();menu();while(flag=1);void menu(void)system(cls);printf(tt n);printf(tt 学生信息管理系统 n);printf(tt n);printf(tt n);printf(tt 1.输入成绩 2.查看成绩并排序 n);printf(tt n);printf(tt 3.查询学生成绩 4.成绩统计 n);printf
9、(tt n);printf(tt 5.修改成绩 6.添加成绩 n);printf(tt n);printf(tt 7.删除成绩 8.保存成绩 n);printf(tt n);printf(tt 9.退出系统 n);printf(tt n);printf(tt请您选择(0-9)n);/*输入各个同学的学生信息*/void inputscore(void)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢5 int i,j;system(cls);printf(请输入学生总数:n);scanf(%d,&n);for(i=0;
10、in;i+)printf(请输入第%d个学生的学号姓名:n,i+1);scanf(%s,stui.number);scanf(%s,stui.name);printf(请输入学生成绩:n);printf(高数tC 语言t 大英n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(成功输入 n);/*计算各个同学的总分*/void total(void)int i,j;for(i=0;in;i+)stui.total=0;for(j=0;jM;j+)stui.total+=stui.scorej;/*计算各个同学的平均分*/void avergescore
11、(void)int i,j;for(i=0;in;i+)stui.aver=0;for(j=0;jM;j+)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢6 stui.aver+=stui.scorej;stui.aver=stui.aver/M;/*查看学生成绩及根据平均分对学生排序*/void lookscore(void)int i,j,k;STU t;total();avergescore();system(cls);for(i=0;in-1;i+)for(k=i,j=i+1;jstuk.aver)k=j;i
12、f(k!=j)t=stuk;stuk=stui;stui=t;printf(名次t学号tt姓名t高数tC 语言t大英t 总分t 平均分 n);for(i=0;in;i+)printf(%dt%stt%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);/输出成绩 printf(%4.2ft,stui.total);printf(%4.2ft,stui.aver);printf(n);/*通过输入学号查找学生成绩*/void searchscore(void)char a10;名师资料总结-精品资料欢迎下载
13、-名师精心整理-第 8 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢7 int i,j;system(cls);printf(请输入需查询的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)/比较两个字符串 printf(名次t 学号tt姓名t高数tC 语言t 大英t 总分t平均分n);printf(%dt%stt%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.tot
14、al);printf(%4.2ft,stui.aver);printf(n);break;/*找到该学生成绩信息后跳出for循环*/else printf(未找到该学生信息 n);/*统计学生成绩信息,平均分及格率,优秀率*/void statistic(void)STU*p=stu;int i,j;float count=0.0,sum=0.0;system(cls);for(i=0;iaver;printf(该班级平均分为%4.2fn,sum/n);/*平均分计算*/for(i=0;iaver=60)count+;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 13 页 -精
15、品资料仅供学习与交流,如有侵权请联系网站删除谢谢8 printf(该班级及格率为%4.2f%n,count/n*100);/*及格率计算*/count=0.0;for(i=0;iaver=90)count+;printf(该班级的优秀率为%4.2f%n,count/n*100);/*优秀率计算*/printf(平均分低于 60 的学生名单 n);for(i=0;in;i+)if(stui.aver60)printf(%sn,stui.name);/*统计不及格学生名单*/*修改学生成绩*/void modify(void)char a10;int i,j;system(cls);printf(
16、请输入需要修改成绩的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t高数tC 语言t大英t 总分t平均分n);printf(%dt%st%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2ft,stui.aver);printf(n);printf(请重新输入该学生的学号姓名:n);scanf(%s,stui.number);
17、scanf(%s,stui.name);printf(请重新输入学生成绩:n);名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢9 printf(高数tC 语言t 大英n);for(j=0;jM;j+)scanf(%f,&stui.scorej);/*找到该学生成绩后进行后进行修改,跳出 for 循环*/printf(修改成功 n);break;else printf(请确认该学生是否为本班学生!n);/*添加学生成绩*/void add(void)int a,i,j;system(cls);printf(请输入新增
18、加的学生人数:n);scanf(%d,&a);n=n+a;for(i=n-a;in;i+)printf(请输入学生%d的学号姓名:n,i+1);scanf(%s,stui.number);scanf(%s,stui.name);printf(请输入学生成绩:n);printf(高数tC 语言t 大英n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(添加成功 n);/*删除学生成绩*/void delscore(void)int i,j,c;char m,a10;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 13 页 -精品资料仅供学
19、习与交流,如有侵权请联系网站删除谢谢10 system(cls);printf(请输入学生学号 n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t高数tC 语言t大英t 总分t平均分n);printf(%dt%st%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2f,stui.aver);printf(n);c=i;break;els
20、e printf(未找到该学生信息 n);printf(是否删除该学生成绩(y/n)n);scanf(%s,&m);if(m=y)for(i=c;in-1;i+)stui=stui+1;/*结构体整体赋值将最后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/n=n-1;/*删除该学生信息后学生总数减一*/printf(删除成绩成功 n);else printf(删除成绩失败 n);/*保存学生成绩*/void savescore(void)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 13 页 -精品资料仅供学习与交流,如有侵权请联系网站删除谢谢11 FILE*fp;int i,flag=1;char m;system(cls);puts(是否保存学生成绩(y/n);scanf(%s,&m);if(m=y)if(fp=fopen(score.dat,wb)=NULL)printf(文件打开失败 n);return;for(i=0;in;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(保存失败 n);flag=0;if(flag=1)printf(保存成功!n);fclose(fp);else return;名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 13 页 -