设计题目: 学生成绩统计系统
课程名称: c语言课程设计。
学院 :物理与光电工程学院。
专业班级: 电子科学与技术(1)班。
学号 : 3111008376
姓名 : 何灿豪。
**** : 135
任课教师 : 刘力斌。
2013 年 11月 10日。
目录。设计目的2
任务要求2总体设计2
部分程序4调试分析过程9
课程设计总结13
一、设计目的:
1)该课程设计要求学生既动手又动脑,自学,查资料,独立实践。将上学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编(程的能力,使对c语言系统编程有一个大致的了解。
2)c语言的实践。掌握c语言函数的定义方法,函数的声明及函数的调用过程。掌握结构体类型变量的定义和使用,综合应用c语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。
二、任务要求:
假设某班有:30人(姓名自定)
考试课程有:高等数学、物理、外语、c语言、德育5门课程。
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容, 程序的功能主要包括3方面:
1 输入成绩到文件中。
2 输出成绩。
3 输出不及格学生名单。
4 成绩排序。
5 修改记录。
6 删除记录。
7 插入记录等。
主函数中对3个功能选择(菜单),调用对应的函数完成。
三、总体设计:
1)程序设计组成框图。
2)模块功能说明。
1 输出功能:显示全部学生的记录。
2 查询功能:输入姓名可以查询学生的详细信息。
3 增加功能:增加新学生的信息。
4 删除功能:删除学生信息。
5 修改功能:修改学生的错误信息。
6 保存功能:保存已输入信息。
7读取功能:读取已输入信息。
8显示功能:按照所需要的要求显示学生记录。
9 排序功能:按照要求完成对学生信息的排序。
10 退出系统。
3)程序流程图。
四、部分程序**如下:
1) 该函数功能:从文件中读学生信息到链表中。
void readinfoformfile(void)
file *fp;
student *p;
fp=fopen(""r");
if(!fp)
printf("文件不存在");
return;
p=mallocnode();
while(fscanf(fp,"%s%s%s%f%f%f%f%f",p->studentnumber,p->studentname,p->classname,(p->mark1),&p->mark2),&p->mark3),&p->mark4),&p->mark5))>0)
insertonenode(p);
p=mallocnode();
fclose(fp);
2)该函数功能:显示菜单,根据用户的输入的数字。
完成对应的功能。
void desplaymenu(void)
student *p;
printf("\t\t===欢迎来到学生成绩管理系统n");
printf("\t\t\t---请选择相应功能n");
printf("\t\tn");
printf("\t\t1 按班级输出学生成绩单n");
printf("\t\t2 按姓名查询n");
printf("\t\t3 增加学生n");
printf("\t\t4 删除学生n");
printf("\t\t5 按班级修改学生成绩n");
printf("\t\t6 保存所有学生信息n");
printf("\t\t7 显示不及格学生名单n");
printf("\t\t8 按平均成绩排序并输出成绩n");
printf("\t\t9 退出n");
printf("\t\tn");
printf("\t\t\t\t\t\t制作者:何灿豪");
printf("\t\t\t\t\t\t制作时间:2024年11月10号");
scanf("%d",&choose);/取得用户的选择*/
switch(choose)
case 1:
outputinformation();显示所有学生的信息*/
break;
case 2:
desplayinfobystudentname();
break;
case 3:
p=mallocnode();先申请一个新结点*/
getinformation(p);/要求用户输入信息到新结点中*/
insertonenode(p);/将新结点加到链表中*/
break;
case 4:
deletenodebystudentnumber();根据用户输入的学号删除该学生*/
break;
case 5:
changemarkbyname();根据用户输入的姓名修改学生成绩*/
break;
case 6:
s**elinktofile();保存数据*/
break;
case 7:
desplaymarksegment();显示不及格的学生成绩*/
break;
case 8:
compositorbytotalmark();按平均成绩排序*/
break;
case 9:
s**elinktofile();保存数据后再退出*/
free(headlink);
exit(1);
break;
default:
break;
desplaymenu();递归调用*/
3)函数功能:根据用户输入的学号删除该学生。
void deletenodebystudentnumber(void)
char studentnumber[10];
student *p,*q;
char flag=0;
printf("请输入要删除的学生学号:")
scanf("%s",studentnumber);
p=headlink;
q=headlink->next;
while(q)
if(strcmp(q->studentnumber,studentnumber)==0)
p->next=q->next;
free(q);
flag=1;
break;
p=p->next;
q=q->next;
if(!flag)
printf("不存在该学号的学生");
return;
printf("成功删除");
4)该函数功能是:保存链表数据到文件中。
void s**elinktofile(void)
student *p;
file *fp;
p=headlink->next;
if(p==null)
printf("现在没有学生信息,请先输入学生信息");
return;
fp=fopen(""w+")
if(!fp)
printf("文件不存在");
return;
while(p)
fprintf(fp,"%s %s %s %f %f %f",p->studentnumber,p->studentname,p->classname,p->mark1,p->mark2,p->mark3,p->mark4,p->mark5);
p=p->next;
fclose(fp);
5)函数功能:输出不及格学生名单
void desplaymarksegment(void)
student *p;
p=headlink->next;
printf("不及格学生的名单有:");
while(p)
if((6>((int)(p->mark1/10)))6>((int)(p->mark2/10)))6>((int)(p->mark3/10)))
6>((int)(p->mark4/10)))6>((int)(p->mark3/10)))只要有一科不及格就认为该生不及格*/
printf("%s",p->studentname);
p=p->next;
6)该函数功能:按平均成绩进行排序。
void compositorbytotalmark(void)
c语言课程设计报告 课程设计报告
周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...
C语言课程设计报告
华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...
C语言课程设计报告
c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...