c语言课程设计报告
c语言课程设计报告详细版

c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。
2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。
3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。
4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。
技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。
2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。
3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。
4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。
2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。
3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。
4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。
课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。
学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。
教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。
2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。
3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。
二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。
c语言课程设计报告模板及范文

c语言课程设计报告模板及范文一、引言引言部分在课程设计报告中扮演了导读的角色,通常包括以下内容:•背景:简要介绍课程设计的背景和目的。
•目的:阐述课程设计的目标和意义。
•项目概述:对设计项目的总体概况进行描述。
•报告结构:简要介绍后续报告的组织结构。
二、需求分析需求分析是课程设计过程中的重要环节,它用于明确项目的目标和功能,通常包括以下内容:•问题定义:对设计中需要解决的问题进行明确定义。
•功能需求:详细描述设计项目需要实现的各项功能。
•性能需求:根据设计的要求,确定设计项目的性能指标。
•接口需求:描述设计项目与其他模块或系统之间的接口要求。
三、设计方案设计方案部分是课程设计报告的核心,通常包括以下内容:•总体设计思路:对设计方案的总体思路进行简要介绍。
•模块划分:按照功能将设计项目分成各个模块,并描述各个模块的功能和关系。
•模块设计:对各个模块进行详细的设计说明,包括算法、数据结构等。
•界面设计:如果设计项目包含界面,需要对界面进行详细的设计说明。
•流程图:结合文字和图表展示设计项目的流程。
四、实现与测试实现与测试部分是课程设计报告中比较实际的内容,通常包括以下内容:•开发环境:列出完成设计的开发环境和所使用的工具。
•代码实现:详细描述设计项目的代码实现方法。
•测试方法:列出设计项目的测试方法和测试样例。
•测试结果:给出设计项目在测试样例下的实际运行结果。
五、总结与展望总结与展望部分对整个课程设计进行总结,并对未来的优化和拓展提出展望,通常包括以下内容:•成果总结:对整个课程设计的成果进行总结和评价。
•存在问题:对设计项目中存在的问题和不足进行归纳和总结。
•改进方向:针对存在问题提出改进的方向和思路。
•未来展望:对设计项目未来的拓展和优化方向进行展望。
六、参考文献在课程设计报告中,如果有引用的书籍、论文或网络资源,需要列出参考文献。
范文示例:```c #include <stdio.h>void main() { printf(。
C语言课程设计设计报告书

C语言课程设计设计报告书一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量声明、数据类型、运算符、表达式等基本概念。
2. 学会使用C语言进行顺序结构、分支结构和循环结构的编程。
3. 掌握函数的定义、声明和调用,理解局部变量和全局变量的作用域。
4. 了解数组、指针和字符串的使用,能够运用它们解决实际问题。
技能目标:1. 培养学生编写、编译和调试C程序的能力,提高编程技巧。
2. 培养学生运用C语言解决实际问题的能力,如数值计算、数据处理等。
3. 培养学生分析问题、设计算法和编写程序的能力,提高逻辑思维能力。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性,提高自主学习能力。
2. 培养学生合作学习、分享经验的精神,提高团队协作能力。
3. 培养学生严谨、认真、负责的学习态度,养成良好编程习惯。
课程性质:本课程为高中年级C语言课程,以实践为主,注重培养学生的编程能力和逻辑思维能力。
学生特点:高中年级学生对计算机编程有一定的基础,好奇心强,学习积极性较高,但需加强实践操作和问题分析能力的培养。
教学要求:结合课程内容和学生特点,采用任务驱动、案例教学等方法,引导学生主动探究、动手实践,提高编程技能和解决问题的能力。
同时,注重培养学生良好的编程习惯和团队合作精神。
通过本课程的学习,使学生能够具备C 语言编程的基本能力,为后续计算机课程学习打下坚实基础。
二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式。
教材章节:第一章2. 控制结构:顺序结构、分支结构(if语句、switch语句)、循环结构(for循环、while循环、do-while循环)。
教材章节:第二章3. 函数:函数定义、声明、调用;局部变量和全局变量;递归函数。
教材章节:第三章4. 数组:一维数组、二维数组;数组的初始化、遍历和排序。
教材章节:第四章5. 指针:指针的定义与使用;指针与数组、字符串、函数的关系。
课程设计报告模板c语言

课程设计报告模板c语言一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握变量定义、数据类型、运算符等基础知识;2. 学会使用控制结构,如顺序结构、分支结构和循环结构;3. 掌握函数定义、声明和调用的方法,理解局部变量和全局变量的概念;4. 了解数组、字符串和指针的使用,并能运用它们解决实际问题。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 培养良好的编程习惯,如规范命名、合理注释、代码缩进等;3. 学会使用编译器进行程序编译、调试和运行;4. 能够阅读和分析简单的C程序代码,提高编程能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题解决能力;3. 培养学生的团队协作意识,学会与他人分享编程经验;4. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
课程性质:本课程为初中年级的信息技术课程,旨在让学生掌握C语言编程的基本知识和技能。
学生特点:初中学生具有较强的逻辑思维能力和学习兴趣,但对编程知识了解较少。
教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等方式,使学生能够掌握C语言的基本知识,提高编程能力。
在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的编程习惯。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. C语言基础知识- 变量定义、数据类型和运算符- 输入输出函数的使用- 顺序结构程序设计2. 控制结构- 分支结构(if、if-else、switch)- 循环结构(for、while、do-while)3. 函数- 函数定义、声明和调用- 局部变量和全局变量- 递归函数4. 数组、字符串与指针- 数组的使用和操作- 字符串的基本操作- 指针的概念和用法5. 编程实践- 编写简单程序,解决问题- 分析实例代码,提高编程能力- 调试程序,找出并修复错误教学内容安排与进度:第一周:C语言基础知识,顺序结构程序设计第二周:控制结构(分支、循环)第三周:函数的定义和调用,递归函数第四周:数组、字符串与指针第五周:编程实践与总结教材章节关联:教学内容与教材相应章节紧密关联,确保学生能够在学习过程中系统地掌握C 语言知识。
c语言课程设计报告项目背景

c语言课程设计报告项目背景一、课程目标知识目标:1. 学生能理解C语言课程设计报告的项目背景,掌握C语言在工程项目中的应用。
2. 学生能够掌握C语言的基本语法,如变量定义、数据类型、运算符、控制结构等,并能够运用到实际项目中。
3. 学生能够了解C语言编程规范,培养良好的编程习惯。
技能目标:1. 学生能够独立完成C语言课程设计报告的撰写,包括项目背景、需求分析、设计思路、代码实现和测试结果等。
2. 学生能够运用C语言编写简单的程序,解决实际问题,提高编程实践能力。
3. 学生能够通过课程设计,培养自己的问题分析、解决方案设计和调试能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,提高自主学习能力。
2. 学生能够认识到C语言在计算机科学中的重要性,激发对计算机科学的热爱。
3. 学生通过团队协作完成课程设计,培养沟通协作能力和团队精神。
课程性质:本课程为C语言编程实践课程,强调理论与实践相结合,注重培养学生的编程能力和实际应用能力。
学生特点:学生为初中年级,对编程有一定的基础,具备基本的计算机操作能力,好奇心强,学习积极性较高。
教学要求:教师应关注学生的个体差异,提供针对性的指导,引导学生掌握C 语言基本知识,注重培养学生的实际操作能力和团队协作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. C语言基础知识回顾:变量定义、数据类型、运算符、控制结构(包括顺序、选择、循环结构)。
2. C语言编程规范:命名规则、注释、缩进、代码组织等。
3. 课程设计报告撰写方法:项目背景、需求分析、设计思路、代码实现、测试结果与分析。
4. 实践项目:选取与实际生活相关的问题,引导学生运用C语言进行程序设计。
- 项目一:计算器程序- 项目二:学生信息管理系统- 项目三:简易游戏开发(如:猜数字游戏)教学大纲:第一周:C语言基础知识回顾,重点讲解变量定义、数据类型和运算符。
c语言课程设计设计报告

c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
()(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。
(2)完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。
C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
c语言课程设计+报告+源代码

西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。
二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。
用户密码的修改。
而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。
三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。
2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。
3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。
4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。
5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。
6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。
b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。
C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。
7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。
8.输出现有职工的信息: 会显示现在记录的职工的各项信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计B课程设计报告设计题目:学生成绩管理系统年级班级:学号:姓名:指导教师:2020 年 6 月 18 日目录一、设计目的 (3)二、课程设计内容和要求 (4)三、总体设计 (5)四、主要步骤 (12)五、功能实现 (13)六、功能测试 (64)七、评价程序 (83)八、课程设计体会 (84)一、设计目的程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。
程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。
主要目的为以下几点:1、熟练掌握面向过程(结构化)程序设计基本知识;2、综合运用所学知识解决实际问题;3、受到面向过程(结构化)程序设计的基本训练;4、体会面向过程(结构化)开发程序的过程。
二、课程设计内容和要求1.课程设计内容:学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。
2.课程设计要求1)具有菜单,可以在菜单上进行选择;2)能实现学生数据录入、修改、删除、查询;3)能实现数据排序;4)有数据输出功能;5)有数据读取与存储功能;6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数学、英语、总分、名次等信息;7)以结构方式存储每条记录;8)多条记录以链表方式存储到内存;9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。
三、总体设计1.主函数的结构:2.用户的需求分析:学生成绩管理系统面向的用户群体分为两类:学生和教师。
对于学生:由于教务处的规定,原则上,系统对学生群体只开放“查看成绩”和“打印成绩”这两个版块的功能。
对于教师:由于工作上的需求,系统对教师开放全部功能,包括“添加学生”、“查找学生”、“删除学生”、“修改信息”、“成绩排序”、“打印成绩”等全部版块的功能。
3.版块设计:1.系统用户选择界面:在使用该系统的时候,需要先进行“注册账号”,之后才能“登陆账号”,进行之后的一系列操作;若已有账号,则直接进行“登陆账号”即可。
流程图如下:(用户账号选择界面)流程图说明:用户有两条途径可以到达下一步“用户选择界面”:1.直接“登录账户”,输入账号密码,程序进行“循环判断”直至遍历所有“已存在的账号密码”,若成功,则继续;若失败,则重新输入账号密码。
2.先“注册账户”,再进行“登陆账户”,用户在进行注册账户时,程序会对用户输入的账号进行判断“是否注册”,若不存在。
则进行下一步输入密码,登陆账号;若存在,则提示“账号已存在,请重新输入或者直接登陆”。
(用户身份选择界面)流程图说明:在用户选择“用户身份”时,会有两个选择:1.选择“学生身份”,之后选择班级后,进入到学生菜单进行下一步操作,之后退出系统;2.选择“教师身份”,在选择班级后,用户在进入“教师”菜单之前,会被要求“输入教师系统密码”,该密码由学校教务处设定,若用户输入正确教师系统密码,则进入到“教师菜单”;若用户输入错误,则会直接进入到“退出系统”。
程序不允许用户进行“多次输入密码”的操作,目的是为了保证“学生信息的安全”。
2.学生/教师菜单:(学生菜单)流程图说明:在用户选择“学生身份”后,会进入到“学生菜单界面”,会有3个选择:1、进行查找学生操作,在完成操作后,会“返回至学生菜单界面”;2、进行打印成绩操作,在完成操作后,会“返回至学生菜单界面”;3、退出系统。
4、根据“学生群体的需求”和学校教务处的规定,系统对“学生身份”的用户只开放“查找学生”和“打印成绩”功能,其他功能暂不对学生开放,若学生有其他需要,可与所在班级的教师联系;但是系统对“学生群体”不限制使用功能的次数,因此学生可以在系统开放的时间段内无限次的使用所开放的功能。
(教师界面)流程图说明:在用户成功进入到“教师菜单界面”后,会有8项功能可以选择:添加学生、查找学生、删除学生、保存信息、修改学生、成绩排序、打印成绩、退出系统。
1.在教师进行“添加学生、删除学生”的操作后,系统会自动进行“成绩排序”操作,目的是为了方便教师对学生成绩的进一步管理;但是在进行“修改学生”后,不会进行“成绩排序”操作,原因是根据一些学校的相关规定,以及高考的相关制度,“学生在对成绩提出有异议后,会对该学生的成绩进行复查,若情况属实,对其成绩予以改正,但是排名/位次不予以修改”。
2.教师在进行完对“学生成绩”的相关工作后,要及时进行“保存信息”操作,否则系统默认“不保存”。
4.添加学生:流程图说明:在用户选择“添加学生”后,会先要求“输入学号”操作,然后程序进行循环判断,“学号是否存在”,若存在则用户需要重新输入学号,再次进行循环判断,直至学号不存在,才可以输入其他信息,输入完成后,会提示添加成功,之后会返回至“教师菜单界面”。
5.查找学生:流程图说明:在用户选择“查找学生”后,会有3个选择:“按照学号查找”、“按照姓名查找”、“返回上一层界面”1、根据数据统计,以及用户的使用习惯,查找学生功能提供两个查找方式以便进行“模糊查找”,满足用户的需求;2、在用户选择查找方式后,会进行相同原理的操作,若该学生存在,则输出打印该学生的相关信息,若不存在,则会有提示,重新输入或者返回上一层。
6.删除学生:流程图说明:在用户选择“删除学生”后,需要先输入“学号”进行查找,若该学生存在,则会删除该学生的全部成绩;若不存在,则会提示,重新输入或者返回上一层。
7.修改学生:流程图说明:在用户选择“修改学生”后,会先进行“查找学生”操作,在找到该学生后,用户可以对其“所有科目的成绩”进行修改,但不能对其的学号、姓名、总分进行修改,原因是该功能只允许教务处使用,在修改完成后,会返回上一层。
8.退出系统:回收链表空间,退出系统。
四、主要步骤以下是本课程设计的主要步骤:1.构造本课程设计的流程图;2.编写主要函数以及部分主要函数的子函数;3.调试主要函数(1)调试子函数;(2)作出具体的测试报告。
4.将各主函数连接构造成为完整的结构,并调试结构;5.复查主要代码;6.调整输出窗口(使得输出界面美观大方);7.撰写实验报告;(1)编辑封面扉页;(2)设计目录;(3)课程设计及其内容;(4)设计目的;(5)总体设计;(6)主要步骤;(7)功能实现;(8)功能测试;(9)课程设计体会、心得。
五、功能实现以下是实现本程序的主要函数:1.创建链表函数:void CreateList(){pStu = (STU*)malloc(sizeof(STU));pStu->pnext = NULL;}2.文件打开函数:void OpenFile(){char ch;STU* pnew = NULL;STU* ptemp = NULL; //2 个结构体指针system("cls");CreateList(); //先创建链表ptemp=pStu;printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 请选择班级:\n");printf("\t\t\t\n");printf("\t\t\t 例如:19级信计2班.txt \n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t请输入要管理的班级:");gets(filename);fp=fopen(filename, "r+"); //绝对路径if (fp == NULL){printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 文档无法打开,请创建后再尝试!\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");exit(0);}else{printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 打开成功!\n");printf("\t\t\t \n");printf("\t\t\t 按“任意键”继续... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();}printf("\n");while(1){//开辟了内存pnew = (STU*)malloc(sizeof(STU));//没有读出来if((fscanf(fp,"%d\t%s\t%f\t%f\t%f\t%f\t%f\t%d\n",&pnew->num,pnew->name,&pnew->chinese,&pnew->math,&pnew->english,&pnew->computer,&pnew->sum,&pnew->rank))==EOF){free(pnew);break;}pnew->pnext = NULL;ptemp->pnext = pnew;ptemp = ptemp->pnext;}}3.打印信息函数:void printfALL(){system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 全部学生成绩\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");STU *ptemp = pStu ->pnext;if(ptemp == NULL) //处理文件{printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 没有数据!按“任意键”继续... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();return;}printf("\t\t\t学号\t姓名\t语文\t数学\t英语\tC语言\t总分\t名次\n");while(ptemp !=NULL){printf("\t\t\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\n",ptemp->num,ptemp->name,ptemp->chinese,ptemp->math,ptemp->english,ptemp->computer,ptemp->sum,ptemp->rank);ptemp= ptemp->pnext;}printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 按任意键继续... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();}4.按照学号查找函数:void searchNum(STU *ptemp){int num;system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 正在按照学号查找学生\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t请输入您要查找的学号:");scanf("%d",&num);printf("\n");ptemp = ptemp->pnext; //实参pSTU->形参ptemp ptemp指向头结点 ptemp指向第一个有数据的空间while(ptemp!=NULL){if(ptemp->num==num) //找到了{printf("\t\t\t学号\t姓名\t语文\t数学\t英语\tc语言\t总分\t名次\n");printf("\t\t\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\n",ptemp->num,ptemp->name,ptemp->chinese,ptemp->math,ptemp->english,ptemp->computer,ptemp->sum,ptemp->rank);printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 查找成功!\n");printf("\t\t\t\n");printf("\t\t\t 按“任意键”返回上一层界面... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();return;}ptemp = ptemp->pnext;}printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t 查无此人!\n");printf("\t\t\t\n");printf("\t\t\t 按“任意键”返回上一层界面...\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");getch();}5.按照姓名查找函数:void searchName(STU *ptemp){char name[20];system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 正在按照姓名查找学生\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t请输入您要查找的姓名:"); scanf("%s",name);printf("\n");ptemp = ptemp->pnext; //实参pSTU->形参ptemp ptemp指向头结点 ptemp指向第一个有数据的空间int n=0;while(ptemp!=NULL){if(!strcmp(ptemp->name,name)) //找到了{if(n == 0){printf("\t\t\t学号\t姓名\t语文\t数学\t英语\tc语言\t总分\t名次\n");}printf("\t\t\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\n",ptemp->num,ptemp->name,ptemp->chinese,ptemp->math,ptemp->english,ptemp->computer,ptemp->sum,ptemp->rank);n++;}ptemp = ptemp->pnext;}//找完了if(n==0){printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 查无此人!\n");printf("\t\t\t \n");printf("\t\t\t 按“任意键”返回上一层界面... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");}else{printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 查找成功!\n");printf("\t\t\t \n");printf("\t\t\t 按“任意键”返回上一层界面... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");}getch();}6.查找学生的主函数:void searchMain(){int choice;do{system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 正在查找学员\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 1.按学号查找\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 2.按姓名查找\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 3.返回主界面\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 请选择:\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t"); scanf("%d",&choice); printf("\n");switch(choice){case 1:searchNum(pStu);break;case 2:searchName(pStu);break;case 3:break;}}while(choice !=3);}7.学生/教师界面选择函数:void stuortea(){int choice;system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 请选择页面信息\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t\n");printf("\t\t\t 1.学生页面 2.教师页面\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t");scanf("%d",&choice); printf("\n");while(!(choice==2 && choice==1)){if(choice==2){printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 选择成功!按“任意键”继续... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();mima();do{welcome1(); //主界面printf("\t\t\t \n");printf("\t\t\t 请选择:");scanf("%d",&choice);printf("\t\t\t \n");printf("\t\t\t************************************************************\n");switch(choice){case 1:addstudata();rank1(pStu);//添加学生break;case 2:searchMain();//查找学生break;case 3:delstu(pStu);rank1(pStu);//删除学生break;case 4://保存信息savedata();break;case 5://修改信息editMain();break;case 6:rank2(pStu);//成绩排序break;case 7://打印成绩printfALL();break;case 8://退出系统//回收链表空间freelist(pStu);printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t 内存释放成功!\n");printf("\t\t\t \n");printf("\t\t\t 按“回车键”后退出系统\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");break;default:break;}}while(choice != 8);}else if(choice == 1){printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t 选择成功!按“任意键”继续...\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");getch();do{welcome2(); //主界面printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t 请选择:");scanf("%d",&choice);printf("\t\t\t \n");printf("\t\t\t************************************************************\n");switch(choice){case 1:searchMain();break;//查找学员case 2:printfALL();//打印成绩break;case 3://退出系统//释放链表空间freelist(pStu);break;default:break;}}while(choice != 3);}else{printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 输入错误!请重新输入您的选择!\n");printf("\t\t\t");scanf("%d",&choice);printf("\t\t\t \n");printf("\t\t\t************************************************************\n");}}}8.添加学生信息函数:void addstudata(){int number; //学生信息的个数system("cls");STU *ptemp = NULL;STU *pnew = NULL;printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 正在添加学员\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t请输入您要添加几个学生:");scanf("%d",&number);printf("\n");for(int i=0;i<number;i++){//开辟空间pnew = (STU *)malloc(sizeof(STU));printf("\t\t\t************************************************************\n");printf("\t\t\t 正在添加第%d个学生信息:\n",i+1);printf("\t\t\t\n");printf("\t\t\t请输入学号:");scanf("%d",&pnew->num);ptemp = pStu->pnext;while(ptemp!=NULL){if(pnew->num == ptemp->num){printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 学号重复,请重新输入:\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t请输入学号:");scanf("%d",&pnew->num);ptemp = pStu->pnext;continue;}elseptemp = ptemp->pnext;}printf("\t\t\t请输入姓名:");scanf("%s",pnew->name);printf("\t\t\t请输入语文:");scanf("%f",&pnew->chinese);printf("\t\t\t请输入数学:");scanf("%f",&pnew->math);printf("\t\t\t请输入英语:");scanf("%f",&pnew->english);printf("\t\t\t请输入C语言:");scanf("%f",&pnew->computer);printf("\t\t\t*************************************************** *********\n");if(pStu->pnext == NULL) //说明链表里面一个数据都没有{pnew->pnext = NULL;pStu->pnext = pnew;}else //说明有数据{ptemp = pStu;while(ptemp != NULL){if(ptemp->pnext != NULL){if(pnew->num > ptemp->num && pnew->num <ptemp->pnext->num){pnew->pnext = ptemp->pnext;ptemp->pnext = pnew;break;}}else{pnew->pnext = NULL;ptemp->pnext = pnew;break;}ptemp = ptemp->pnext;}}printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 信息添加成功!\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");}printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 按“任意键”返回上一层界面... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();}9.保存数据函数:void savedata(){STU *ptemp = pStu->pnext;system("cls");fp=fopen(filename,"w");if(fp == NULL){printf("\t\t\t文件打开失败!");}else{while(ptemp != NULL){fprintf(fp,"\t\t\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\n",ptemp->num,ptemp->name,ptemp->chinese,ptemp->math,ptemp->english,ptemp-> computer,ptemp->sum,ptemp->rank);ptemp = ptemp->pnext;}}fclose(fp);printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 保存信息成功!\n");printf("\t\t\t \n");printf("\t\t\t 按“任意键”返回上一层界面... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();}10.加密函数:void mima(){int mima;system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 请输入教师系统密码:\n");printf("\t\t\t (默认密码:123)\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 温馨提示:教师系统密码由教务处设定,教师无权限修改!\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t");scanf("%d",&mima);printf("\n");if(mima != 123){printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 密码错误!若忘记密码请联系教务处!\n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");exit(0);}fflush(stdin);printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 登陆成功!\n");printf("\t\t\t \n");printf("\t\t\t 按回车键继续... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();}11.修改学生的信息(按照学号)函数:void editstu1(STU *ptemp){int num;float score;int sub;system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t 正在修改学生的信息\n");printf("\t\t\t\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t请输入您要编辑学生的学号: ");scanf("%d",&num); printf("\n");ptemp = ptemp->pnext; //实参pSTU->形参ptemp ptemp指向头结点 ptemp指向第一个有数据的空间while(ptemp!=NULL){if(ptemp->num==num) //找到了{printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t学号\t姓名\t语文\t数学\t英语\tc语言\t总分\n");printf("\t\t\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",ptemp->num,ptemp->name,ptemp->chinese,ptemp->math,ptemp->english,ptemp->computer,ptemp->sum);printf("\t\t\t\n");printf("\t\t\t************************************************************\n");printf("\t\t\t请输入需要修改该学生的成绩科目:\n");printf("\n");printf("\t\t\t(1、语文 2、数学 3、英语 4、C语言)\n");printf("\t\t\t");scanf("%d",&sub);printf("\n");switch(sub){case 1:printf("\t\t\t请输入修改后的语文成绩:\n");printf("\t\t\t");scanf("%f",&score);printf("\n");ptemp->chinese=score;break;case 2:printf("\t\t\t请输入修改后的数学成绩:\n");printf("\t\t\t");scanf("%f",&score);printf("\n");ptemp->math=score;break;case 3:printf("\t\t\t请输入修改后的英语成绩:\n");printf("\t\t\t");scanf("%f",&score);printf("\n");ptemp->english=score;break;case 4:printf("\t\t\t请输入修改后的c语言成绩:\n");printf("\t\t\t");scanf("%f",&score);printf("\n");ptemp->computer=score;break;default:break;}printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t 修改成功!\n");printf("\t\t\t\n");printf("\t\t\t 按回车键继续... \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");getch();return;}ptemp = ptemp->pnext;}printf("\t\t\t************************************************************\n");printf("\t\t\t\n");printf("\t\t\t 查无此人!\n");printf("\t\t\t\n");printf("\t\t\t 按回车键继续...\n");printf("\t\t\t\n");printf("\t\t\t************************************************************\n");getch();}12.修改学生的信息(按照姓名)函数:void editstu2(STU *ptemp){int num;char name[20];float score;int sub;system("cls");printf("\n\n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 学生成绩管理系统\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t 正在修改学生的信息\n");printf("\t\t\t \n");printf("\t\t\t \n");printf("\t\t\t************************************************************\n");printf("\t\t\t请输入您要编辑学生的姓名:");scanf("%s",name); printf("\n");ptemp = ptemp->pnext; //实参pSTU->形参ptemp ptemp指向头结点 ptemp指向第一个有数据的空间int n=0;while(ptemp!=NULL){if(!strcmp(ptemp->name,name)) //找到了{if(n == 0){printf("\t\t\t************************************************************\n");。