C语言课程设计报告

发布 2022-10-03 03:32:28 阅读 6996

设计题目: 学生成绩统计系统

课程名称: 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月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...