版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 . I . . r . .XIAN TECHNOLOGICAL UNIVERSITY课程设计报告课程名称课程名称:C 语言程序设计专专 业业:班班 级级: 姓姓 名名: 学学 号号: 指导教师指导教师: 成成 绩绩: 20172017 年年 1 1 月月 5 5 日日. v题目:题目:学生成绩管理系统思路:思路:先建立一个链表然后以链表为基础进行各种操作,设计学生成绩管理系统,通过主页显示,根据自己需求按主页中所显示步骤输入,删除,查找,插入,修改,统计学生信息。算法:算法:核心算法为链表的生成,插入,查找,排序算法。函数模块介绍:函数模块介绍:void xuanze();/选择功能void
2、 shuchu(struct student*h);/输出void tianjia(struct student*h);/添加void shanchu(struct student*h);/删除void chaxun(struct student*h);/查询void genggai(struct student*h); /更改主void gxuehao(struct student*p);/改学号void gname(struct student*p);/改void ggaoshu(struct student*p);/改高数成绩void gyingyu(struct student*p);
3、/改英语成绩void gc(struct student*p);/改 c 语言成绩void tongji(); /统计主void max_average(struct student*h);/统计平均分最高void max_gaoshu(struct student*h);/统计高数最高void max_yingyu(struct student*h);/统计英语最高void max_c(struct student*h);/统计 c 语言最高void bujige_average(struct student*h);/统计平均分不及格学生信息. vvoid bujige_gaoshu(str
4、uct student*h);/统计高数不及格学生信息void bujige_yingyu(struct student*h);/统计英语不及格学生信息void bujige_c(struct student*h);/同意 c 语言不及格学生信息struct student*creat(int n);/创建链表void order_two(struct student*p,struct student*q);/调换位置void order(struct student*h);/排序源程序源程序*includestdio.h*includestring.h*includeconio.h*incl
5、ude *define N 30*define M 3typedef struct student char number10; char name20; float scoreM; float aver; float total;STU;STU stuN;int n;. vvoid inputscore(void);void savescore(void);void avergescore(void);void total(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void)
6、;void modify(void);void delscore(void);void savescore(void);void menu(void);int main() short int flag=0; menu(); do flag=1; switch(getch() case1:inputscore();break; /* 输入成绩*/ case2:lookscore();break; /*查看成绩*/. v case3:searchscore();break; /*查找成绩*/ case4:statistic();break; /*成绩统计*/ case5:modify();bre
7、ak; /*修改成绩*/ case6:add();break; /*添加成绩*/ case7:delscore();break; /*删除成绩*/ 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);print
8、f(tt 1. 输入成绩 2. 查看成绩并排序 n);printf(tt n);. vprintf(tt 3. 查询学生成绩 4. 成绩统计 n);printf(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) int i,j ; system(cls); printf(请输入学生
9、总数:n); scanf(%d,&n); for(i=0;in;i+) printf(请输入第%d 个学生的学号 :n,i+1); scanf(%s,stui.number);scanf(%s,); printf(请输入学生成绩:n);. v 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+) stu
10、i.total+=stui.scorej; /*计算各个同学的平均分*/void avergescore(void) int i,j;. v for(i=0;in;i+) stui.aver=0; for(j=0;jM;j+) 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)
11、 k=j;. v if(k!=j) t=stuk; stuk=stui; stui=t; printf(名次t 学号ttt 高数tC 语言t 大英t 总分t 平均分n);for(i=0;in;i+) printf(%dt%stt%st,i+1,stui.number,); 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) cha
12、r a10;int i,j;. vsystem(cls);printf(请输入需查询的学生学号n);scanf(%s,a);for(i=0;in;i+) if(strcmp(a,stui.number)=0) /比较两个字符串 printf(名次t 学号ttt 高数tC 语言t 大英t 总分t 平均分n); printf(%dt%stt%st,i+1,stui.number,); for(j=0;jM;j+) printf(%4.2ft,stui.scorej); printf(%4.2ft,stui.total); printf(%4.2ft,stui.aver); pri
13、ntf(n); break; /*找到该学生成绩信息后跳出 for 循环*/ else printf(未找到该学生信息n);/*统计学生成绩信息,平均分及格率,优秀率*/void statistic(void)STU*p=stu;. vint 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+;printf(该班级及格率为%4.2f%n,count/n*100);/*及格率计算*/count=0.0;for
14、(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,); /*统计不及格学生*/. v /*修改学生成绩*/ void modify(void) char a10; int i,j; system(cls); printf(请输入需要修改成绩的学生学号n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stui.number)=0) pr
15、intf(名次t 学号ttt 高数tC 语言t 大英t 总分t 平均分n); printf(%dt%st%st,i+1,stui.number,); 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); scanf(%s,); printf(请重新输入学生成绩:n); printf(高数tC 语言t 大英n)
16、; for(j=0;jM;j+). v scanf(%f,&stui.scorej);/*找到该学生成绩后进行后进行修改,跳出 for 循环*/printf(修改成功n);break;else printf(请确认该学生是否为本班学生!n); /*添加学生成绩*/ void add(void) int a,i,j; system(cls); printf(请输入新增加的学生人数:n);scanf(%d,&a);n=n+a;for(i=n-a;in;i+) printf(请输入学生%d 的学号 :n,i+1); scanf(%s,stui.number); scanf(%s,st
17、); printf(请输入学生成绩:n); printf(高数tC 语言t 大英n);. v for(j=0;jM;j+) scanf(%f,&stui.scorej);printf(添加成功n); /*删除学生成绩*/ void delscore(void) int i,j,c; char m,a10; system(cls); printf(请输入学生学号n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stui.number)=0) printf(名次t 学号ttt 高数tC 语言t 大英t 总分t 平均分n); printf(
18、%dt%st%st,i+1,stui.number,);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;. v else 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) FIL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论