大一数据结构c语言课程设计_第1页
大一数据结构c语言课程设计_第2页
大一数据结构c语言课程设计_第3页
大一数据结构c语言课程设计_第4页
大一数据结构c语言课程设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、xian technological university 课程设计报告 课程名称课程名称: c 语言程序设计 专专 业业: 班班 级级: 姓姓 名名: 学学 号号: 指导教师指导教师: 成成 绩绩: 20172017 年年 1 1 月月 5 5 日日 题目:题目:学生成绩管理系统 思路:思路:先建立一个链表然后以链表为基础进行各种操作,设计学生 成绩管理系统,通过主页显示,根据自己需求按主页中所显示步骤 输入,删除,查找,插入,修改,统计学生信息。 算法:算法:核心算法为链表的生成,插入,查找,排序算法。 函数模块介绍:函数模块介绍: void xuanze();/选择功能 void shu

2、chu(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 stude

3、nt*p);/改英语成绩 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);/统计平均分不及格学生信息 void bujige

4、_gaoshu(struct 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

5、#includeconio.h #include #define n 30 #define m 3 typedef struct student char number10; char name20; float scorem; float aver; 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

6、statistic(void); void add(void); 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; /*查看成绩*/ case3:searchscore();break; /*查找成绩*/ case4:statistic();b

7、reak; /*成绩统计*/ case5:modify();break; /*修改成绩*/ 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 学生信息管理系统

8、n); printf(tt n); printf(tt n); printf(tt 1. 输入成绩 2. 查看成绩并排序 n); printf(tt n); printf(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 inputsc

9、ore(void) int i,j ; system(cls); printf(请输入学生总数:n); scanf(%d, for(i=0;in;i+) printf(请输入第%d 个学生的学号 姓名:n,i+1); scanf(%s,stui.number); scanf(%s,); printf(请输入学生成绩:n); printf(高数tc 语言t 大英n); for(j=0;jm;j+) scanf(%f, printf(成功输入n); /*计算各个同学的总分*/ void total(void) int i,j; for(i=0;in;i+) stui.total=

10、0; for(j=0;jm;j+) stui.total+=stui.scorej; /*计算各个同学的平均分*/ void avergescore(void) int i,j; 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

11、=i,j=i+1;jstuk.aver) k=j; if(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,); for(j=0;jm;j+) printf(%4.2ft,stui.scorej); /输出成绩 printf(%4.2ft,stui.total); printf(%4.2ft,stui.aver); printf(n); /*通过输入学号查找学生成绩 */ vo

12、id searchscore(void) char a10; 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,); for(j=0;jm;j+) printf(%4.2ft,stui.scorej); printf(%4.2ft,stui.total);

13、 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+; printf(该班级及格率为%4.2f%n,

14、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,); /*统计不及格学生名单*/ /*修改学生成绩*/ void modify(void) char a10; int i,j; system(cls); printf(请输入需要修改成绩的学生学号n); scanf(%s,a); fo

15、r(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,); 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,stui

16、.name); printf(请重新输入学生成绩:n); printf(高数tc 语言t 大英n); for(j=0;jm;j+) scanf(%f,/*找到该学生成绩后进行后进行 修改,跳出 for 循环*/ printf(修改成功n); break; else printf(请确认该学生是否为本班学生!n); /*添加学生成绩*/ void add(void) int a,i,j; system(cls); printf(请输入新增加的学生人数:n); scanf(%d, n=n+a; for(i=n-a;in;i+) printf(请输入学生%d 的学号 姓名:n,i+1); scanf

17、(%s,stui.number); scanf(%s,); printf(请输入学生成绩:n); printf(高数tc 语言t 大英n); for(j=0;jm;j+) scanf(%f, 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 学号tt 姓名t 高数tc 语言t 大英t 总分t 平均

18、 分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.2f,stui.aver); printf(n); c=i; break; else printf(未找到该学生信息n); printf(是否删除该学生成绩(y/n)n); scanf(%s, if(m=y) for(i=c;in-1;i+) stui=stui+1; /*结构体整体赋值将最后一位学生成绩 信息拷贝进入前一位学生信息的存储位置*/ n=n-1; /*删除该学生信息后学生总数减一*/ printf(删除

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论