学生成绩管理系统千行代码c语言课程设计正文_大学论文
学生成绩管理系统c语言源代码

学生成绩管理系统c语言源代码介绍学生成绩管理系统是一个能够帮助学校、教师和学生管理和查询学生成绩的软件系统。
通过该系统,教师可以录入学生的考试成绩,并进行统计和分析;学生可以查询自己的成绩和排名;学校可以通过系统生成各种报表和分析数据。
本文将介绍一个使用C语言编写的学生成绩管理系统的源代码实现。
功能设计学生成绩管理系统的功能设计可以分为以下几个主要模块:登录模块1.输入用户名和密码;2.验证用户名和密码是否匹配;3.登录成功后进入主菜单。
学生管理模块1.输入学生信息(学号、姓名、性别、年龄等);2.添加学生信息到系统中;3.删除指定学号的学生信息;4.修改指定学号的学生信息;5.查询指定学号的学生信息;6.显示所有学生的信息。
课程管理模块1.输入课程信息(课程号、课程名称、授课教师等);2.添加课程信息到系统中;3.删除指定课程号的课程信息;4.修改指定课程号的课程信息;5.查询指定课程号的课程信息;6.显示所有课程的信息。
成绩管理模块1.输入学号和课程号;2.输入成绩信息(平时成绩、期末成绩、总评成绩等);3.添加成绩信息到系统中;4.修改指定学号和课程号的成绩信息;5.查询指定学号和课程号的成绩信息;6.统计指定课程的平均成绩、最高成绩和最低成绩;7.统计指定学生的平均成绩、最高成绩和最低成绩。
数据导入与导出模块1.从文件导入学生信息和成绩信息;2.将学生信息和成绩信息导出到文件。
源代码实现以下是一个使用C语言实现的学生成绩管理系统的源代码实例:#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct {int id;char name[100];char gender[10];int age;} Student;// 定义课程结构体typedef struct {int id;char name[100];char teacher[100];} Course;// 定义成绩结构体typedef struct {int studentId;int courseId;float ordinaryGrade;float finalGrade;float totalGrade;} Grade;// 学生管理函数void addStudent(Student *students, int *studentCount) {// 添加学生信息到系统}void deleteStudent(Student *students, int *studentCount, int studentId) { // 删除指定学号的学生信息}void modifyStudent(Student *students, int studentId) {// 修改指定学号的学生信息}void queryStudent(Student *students, int studentId) {// 查询指定学号的学生信息}void displayAllStudents(Student *students, int studentCount) { // 显示所有学生的信息}// 课程管理函数void addCourse(Course *courses, int *courseCount) {// 添加课程信息到系统}void deleteCourse(Course *courses, int *courseCount, int courseId) { // 删除指定课程号的课程信息}void modifyCourse(Course *courses, int courseId) {// 修改指定课程号的课程信息}void queryCourse(Course *courses, int courseId) {// 查询指定课程号的课程信息}void displayAllCourses(Course *courses, int courseCount) {// 显示所有课程的信息}// 成绩管理函数void addGrade(Grade *grades, int *gradeCount) {// 添加成绩信息到系统}void modifyGrade(Grade *grades, int gradeCount, int studentId, int courseId) { // 修改指定学号和课程号的成绩信息}void queryGrade(Grade *grades, int gradeCount, int studentId, int courseId) { // 查询指定学号和课程号的成绩信息}void calculateCourseStatistics(Grade *grades, int gradeCount, int courseId) { // 统计指定课程的平均成绩、最高成绩和最低成绩}void calculateStudentStatistics(Grade *grades, int gradeCount, int studentId) {// 统计指定学生的平均成绩、最高成绩和最低成绩}// 数据导入与导出函数void importData() {// 从文件导入学生信息和成绩信息}void exportData() {// 将学生信息和成绩信息导出到文件}int main() {// 主程序菜单return 0;}总结学生成绩管理系统是一个非常有用的工具,可以帮助学校、教师和学生高效地管理和查询学生成绩。
C语言课程设计-学生成绩管理系统-完整版

#include<stdio.h> #include<stdlib.h>#include<io.h> #include<string.h> /* strcmp 函数原型包含 */#define N 100 /* 定义最大学生人数为 100*/ struct student /* 学生结构体定义 */ char no[11]; /* 学号 ,10 位 */ char name[10];/* 姓名, 3 个汉字 */ char grade[10];/* 班级 */ char pro[20];/* 专业 */float score[5];/* 储存 5 门功课的成绩 */ float ave;/* 储存平均分 */ int year;/* 入学年 *//* 通过 i 的值,判断信息要查找的信息是否存在 *//* 输出学生成绩函数(公共函数) */ /* 系统初始化函数 */ /* 建立新的数据文件 *//* 从数据文件中读取数据 */ /* 维护界面函数 */ /* 新增一个学生成绩函数 */ /* 修改学生成绩 */ /* 修改成绩 *//* 删除学生信息函数 */ /* 统计界面函数 */ /* 计算每个学生平均分 */ /* 计算每门课程的平均分 */ /* 排序函数 */ /* 按学号排序 */ /* 按平均分排序 */ /* 按单科成绩排序 *//* 交换结构体数组中的两个记录 *//* 选择输出单科成绩 */ /* 查找界面函数 */ /* 按学号查找 */ int findname(char cname[]);/* 按姓名查找 */ void findyear(int cyear); /* 按入学年查找 */ void save(); /* 保存文件 */ void stop(); /* 停顿函数 */void stop()/* 停顿函数 (公共函数) */{printf("Press Any Key To Continue...\n"); getchar();}}stu[N]; int num; void panduani(int); void output(); voidinit(); void newfile(); void read1(); void weihu(); void new1(); void xiugai(); void xgcj(int); void delete1(); void tongji(); void tongji1(); void tongji2(); void paixu1(); void paino(); void paiave(); void paidkcj(); voidchange(int,int); void outputx(int); void find1(); int find(char sno[]);void output() /* 输出学生成绩函数(公共函数) */{int i,j;printf("===================================================================\n");printf(" 学号姓名班级专业入学年 C 语言高数大物电路模电\n");printf("===================================================================\n");for(i=0;i<num;i++){printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year) Jfor(j=0;j<5;j++)printf(" %.1f",stu[i].score[j]);printf("\n");}stop();}void init() /* 系统初始化函数*/{if(access("stu.dat",0)) /* 判断文件是否存在*/newfile(); /* 若不存在,新建数据文件*/elseread1(); /* 若存在,读取数据*/}void newfile() /* 建立新的数据文件*/{int i;FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL) /* 创建二进制文件*/{printf(" 创建文件失败,请重新运行程序.\n"); /* 显示" 创建文件失败,请重新运行程序"*/exit(0); /* 终止程序*/}printf(" 初次运行,进行数据初始化...\n");/* 显示" 初次运行,进行数据初始化..."*/ stop();printf(" 请输入学生人数:");/* 显示"请输入学生人数:"*/ scanf("%d",&num);for(i=0;i<num;i++){printf(" 请输入第%d 个学生的学号:",i+1); /* 显示"请输入第i+1 个学生的学号:"*/ getchar(); /* 吃回车*/gets(stu[i].no);printf(" 姓名:"); /* 显示"姓名:"*/gets(stu[i].name);printf(" 班级:"); /* 显示"班级:"*/gets(stu[i].grade);printf(" 专业:"); /* 显示"专业:"*/gets(stu[i].pro);printf(" 入学年n:");/* 显示" 入学年"*/scanf("%d",&stu[i].year);printf("C 语言成绩:");/* 显示"C 语言成绩"*/ scanf("%f",&stu[i].score[0]);printf(" 高数成绩:");/* 显示"高数成绩"*/ scanf("%f",&stu[i].score[1]);printf(" 大物成绩:");/* 显示" 大物成绩"*/ scanf("%f",&stu[i].score[2]);printf(" 电路成绩:");/* 显示" 电路成绩"*/ scanf("%f",&stu[i].score[3]);printf(" 模电成绩:");/* 显示" 模电成绩"*/scanf("%f",&stu[i].score[4]);fwrite(&stu[i],1,sizeof(struct student),fp); /* 把第i+1 名学生成绩写入文件*/ }fclose(fp);printf("========================\n");printf(" 刚才输入的%d 个数据为:\n",num); /*显示"刚才输入的num 个数据为:"*/ printf("========================\n\n");output();}void read1() /* 从数据文件中读取数据*/{FILE *fp;num=0; /*num 为数据文件中实际存储的学生人数*/fp=fopen("stu.dat","r");if(fp==NULL) /* 数据文件不存在*/{printf(" 文件打开失败!重新运行程序\n"); /* 显示"文件打开失败!重新运行程序"*/ exit(0);}while(!feof(fp)) /* 文件结束检测"*/{fread(&stu[num],1,sizeof(struct student),fp); num++;}num--; fclose(fp); printf("\t\t\t=======================================\n"); printf(" \t\t\t现有 %d 个学生的成绩: \n",num); /* 显示 "现有 NUM 个学生的成绩: "*/printf("\t\t\t=======================================\n\n"); output();}void weihu() /* 维护界面函数 */{char c1; while(1){getchar(); if(c1=='9') break; switch(c1) { case '1': new1(); break; case '2': delete1(); case '3': xiugai(); break; default:printf(" 选择有误,请重选! \n");/*" 选择有误,请重选! "*/} } }void new1() /* 新增一个学生成绩函数 */{printf(" 请输入学号 :"); /* 显示 "请输入学号 :"*/ gets(stu[num].no);printf("\t\t\t* 维护*\n");printf("\t\t\t* 1. 新增 *\n"); /*新增 */printf("\t\t\t* 2. 删除 *\n"); /* 删除(按学号)*/printf("\t\t\t* 3. 修改 *\n"); /* 修改 */ printf("\t\t\t*9. 返回*\n"); /* 返回 */printf("\t\t\t************************\n");printf("\t\t\t 请选\n");/* 请选*/printf("\n\n\n\t\t\t* ********************* **\n"); c1=getchar();printf(" 姓名:"); /* 显示"姓名:"*/ gets(stu[num].name);printf(" 班级:"); /* 显示" 班级:"*/ gets(stu[num].grade);printf(" 专业:"); /* 显示"专业:"*/ gets(stu[num].pro);printf(" 入学年:");/* 显示"入学年"*/ scanf("%d",&stu[num].year);printf("C 语言成绩:");/* 显示"C 语言成绩"*/ scanf("%f",&stu[num].score[0]); printf(" 高数成绩:");/* 显示"高数成绩"*/ scanf("%f",&stu[num].score[1]);printf(" 大物成绩:");/* 显示" 大物成绩"*/ scanf("%f",&stu[num].score[2]);printf(" 电路成绩:");/* 显示" 电路成绩"*/ scanf("%f",&stu[num].score[3]);printf(" 模电成绩:");/* 显示" 模电成绩"*/ scanf("%f",&stu[num].score[4]);num++; printf("\n======================================\n");"*/ printf(" 现有%d 个学生的成绩:\n",num); /* 显示"现有NUM 个学生的成绩:printf("======================================\n\n");output();}void xiugai() /* 修改学生成绩*/{char xg[11];int i;printf("\n 请输入要修改学生的学号 :\n\n"); gets(xg);for(i=0;i<num;i++)if(strcmp(stu[i].no,xg)==0)break; if(i==num){printf("\n 数据文件无该生信息 !\n\n 请重新输入学号 .\n\n"); stop(); return;}xgcj(i);} void xgcj(int x)/* 修改成绩 */{ char xueke[5][10]={"C 语言","高数 ","物理","电路","模电"}; char (*p)[10],c; int j,k; p=xueke; for(;;){**\n\n"); printf("\t\t\t 成绩 printf("\t\t\t 1.C 语言 printf("\t\t\t 2.高数printf("\t\t\t 3.物理 printf("\t\t\t 4.电路 printf("\t\t\t5.模电 printf("\t\t\t9.返回printf("\n");printf("\t\t\t** ******************************** printf("\t\t\t** ******************************** \n");\n"); /*C 语言 */ \n"); /*高数 */\n"); /* 大学物理 */ \n"); /*电路 */ \n"); /*模电 */ \n\n"); /* 返回上级 */**\n\n"); printf("\t 请选择要修改的成绩 (按 1.2.3.4.5.9):\n"); c=getchar(); getchar();if(c=='9')break; else if (c>='1'&&c<='5'){k=c-49;printf("\n 请输入 %s 成绩 :\n",p+k); scanf("%f",&stu[x].score[k]); printf("\n 修 息为 :\n");printf(" 学号 姓名 班级 专业 入学年 C 语言 高数 大物电路模电printf("===================================================================\n");printf("%s %s %s %s %d",stu[x].no,stu[x].name,stu[x].grade,stu[x].pro,stu[x].ye ar);for(j=0;j<5;j++)printf(" %.1f",stu[x].score[j]);printf("\n");}else printf("\n 选择有误,请重选!\n\n");stop();}}int find(char sno[]) /* 按学号查找*/{int i;for(i=0;i<num;i++)if(strcmp(stu[i].no,sno)==0) /* 判断两个字符串相等*/return i;/* 查找成功*/return -1;/* 查找失败*/}void delete1() /* 删除学生信息函数*/{char cno[11];int i,j;printf(" 请输入要删除的学生学号:"); /*" 请输入要删除的学生学号"*/gets(cno);i=find(cno);if(i!=-1){for(j=i;j<num;j++)stu[j]=stu[j+1];num--;printf(" 现有%d 个学生的成绩:\n",num); /* 显示" 现有NUM 个学生的成绩:"*/ output();}else {printf(" 请输入正确的学号. \n");stop();}}void tongji(){int i;char c2; while(1) {printf("\t\t\t 请选择 :\n");/* 请选择: */ c2=getchar(); getchar(); if(c2=='9') break; switch(c2){case '1': tongji1();printf("\n\n 学生平均分为 :\n");printf("===========================================\n"); printf(" 学号 姓名 入学年 平均分 \n");printf("===========================================\n"); for(i=0;i<num;i++)printf("%s %s %d %.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave); stop(); break; case '2': tongji2(); break; default:printf(" 选择有误,请重选 \n");/*" 选择有误,请重选! "*/ }} }void tongji1() /* 计算每个学生平均分 */ { int i,j;for(i=0;i<num;i++){stu[i].ave=0; for(j=0;j<5;j++)stu[i].ave+=stu[i].score[j]; stu[i].ave=stu[i].ave/5;}}void tongji2()/* 计算每门课程的平均分 */{int i,j; float sum;printf("\t\t\t* 统计 *\n");printf("\t\t\t*1. 学生平均分 *\n"); /* 计算学生平均分 */ printf("\t\t\t*2. 课程平均分 *\n"); /* 计算每门课程平均分 */ printf("\t\t\t*9. 返回*\n"); /* 返回 */printf("\n\n\n\t\t\t ***************************** **\n"); printf("\t\t\t* **************************** **\n"); /* 统计界面函数 */float avec[5]; /* 储存每门课的平均分*/ for(j=0;j<5;j++){sum=0;for(i=0;i<num;i++)sum+=stu[i].score[j];avec[j]=sum/num;}printf("\n\n 各科平均分:\n");/*" 各科平均分:"*/printf("===================================\n"); printf("C 语言高数大物电路模电\n"); printf("===================================\n"); for(i=0;i<5;i++)printf("%-7.1f",avec[i]);printf("\n");stop();}void paixu1() /* 排序界面*/{char c3;for(;;){printf("\n\n\n");printf("\t\t\t***********************************\n");printf("\t\t\t* 排序* \n");printf("\t\t\t* 1. 按学号排序* \n"); /* 按学号排序*/printf("\t\t\t* 2. 按平均分排序* \n"); /* 按平均分排序*/printf("\t\t\t* 3. 按单科成绩排序* \n"); /* 按单科成绩排序*/printf("\t\t\t* 9. 返回* \n"); /* 返回*/printf("\t\t\t***********************************\n\n");printf("\t 请选(按 1.2.3.9):\n");/* 请选择:*/c3=getchar();getchar();if(c3=='9') break;switch(c3){case '1':paino();break;case '2':paiave();break;case '3':paidkcj();break; default:printf("\n 选择有误,请重选!\n\n");/* 选择有误,请重选!*/ stop();}}}void paino() /* 按学号排序*/{ /* 按学号从低到高冒泡法排序*/int i,j;for(i=0;i<num;i++)for(j=0;j<num-1-i;j++)if(strcmp(stu[j].no,stu[j+1].no)>0) change(j,j+1);printf("\n 排序后为:\n"); /*" 排序后为:"*/output();}void paiave() /* 按平均分排序*/{ /* 按平均分从高到低冒泡法排序*/int i,j;tongji1(); /* 计算平均成绩*/ for(i=0;i<num;i++) for(j=0;j<num-i-1;j++)if(stu[j].ave<stu[j+1].ave) change(j,j+1);printf("\n\t 排序后为:\n"); /*" 排序后为:"*/printf("\t===============================================\n"); printf("\t 学号姓名入学年平均分排名\n");printf("\t===============================================\n"); for(i=0;i<num;i++) printf("\t%s %s %d %.2f %4d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave,i+1); stop();void paidkcj() /* 按单科成绩排序*/ {char c;int i,j,k;while(1){printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\t 单科成绩\n");printf("\t\t\t 1.C 语言\n"); /*C 语言*/printf("\t\t\t 2.高数\n"); /*高数*/printf("\t\t\t 3.物理\n"); /* 大学物理*/printf("\t\t\t 4.电路\n"); /*电路*/printf("\t\t\t 5.模电\n"); /*模电*/printf("\t\t\t 9.返回\n\n"); /* 返回上级*/printf("\t\t\t************************************\n\n");( 按 1.2.3.4.5.9):\n");printf("\t 请选择:c=getchar();getchar();else if (c>='1'&&c<='5'){k=c-49;for(i=0;i<num;i++) for(j=0;j<num-1-i;j++) if(stu[j].score[k]<stu[j+1].score[k])change(j,j+1);outputx(k);}else printf("\n 选择有误,请重选!\n\n"); stop();}}void change(int i,int j)/* 交换结构体数组中的两个记录*/{struct student temp; temp=stu[i]; stu[i]=stu[j]; stu[j]=temp;}void outputx(int k) /* 选择输出单科成绩*/char xueke[5][10]={"C 语言","高数 ","物理","电路","模电"}; char (*p)[10]; /* 定义一个指向包含 10 个字符型元素的一维数组的指针变量 */int i;p=xueke;printf("\n\t 排序后为 :\n");printf("\t===============================================\n"); printf("\t 学号 姓名入学年 %s 排名 \n",p+k);printf("\t===============================================\n"); for(i=0;i<num;i++)printf("\t%-11s% -10s%-11d%-6.1f%5d\n",stu[i].no, stu[i].name,stu[i].year,stu[i].score[k],i+1);}void find1() /* 查找界面函数 */{char c4;char cno[11],cname[10]; int i,cyear; while(1){printf("\t\t\t* ************************************\n"); printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t请选择 :\n");/* 请选择:*/ c4=getchar();getchar(); if(c4==57) break; switch(c4){case '1':printf(" 输入学号 :\n");/*" 输入学号: "*/ gets(cno); i=find(cno); panduani(i); break; case '2':printf(" 输入姓名 :\n");/*" 输入姓名: "*/ gets(cname);i=findname(cname); panduani(i); break; case '3':printf(" 输入入学年 :\n");/*" 输入入学年 "*/ scanf("%d",&cyear);查找1. 按学号查找2. 按姓名查找3. 按入学年查找 9. 返回************************************\n");*\n");*\n"); /* 按学号查找 */ *\n"); /* 按姓名查找 */ *\n"); /* 按入学年查找 */findyear(cyear);stop();break;default:printf(" 选择有误,请重选!\n");/*" 选择有误,请重选!"*/}}} int findname(char cname[]) /* 按姓名查找*/{int i;for(i=0;i<num;i++)if(strcmp(stu[i].name,cname)==0) /* 判断两个字符串相等*/return i; /* 查找成功*/return -1; /* 查找失败*/}void findyear(int cyear){int i,j,flag=0;for(i=0;i<num;i++)if(stu[i].year==cyear){ flag=1;break;}if(flag==0){printf(" 要查找的学生不存在\n");stop(); }else{printf(" 查找到的学生信息为:\n");/*" 查找到的学生信息为:"*/printf(" 学号姓名班级专业入学年 C 语言高数大物电路模电\n");printf("================================================================ ===\n");for(i=0;i<num;i++){if(stu[i].year==cyear) /* 判断两个数值相等*/{printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year); for(j=0;j<5;j++) printf(" %.1f",stu[i].score[j]); printf("\n");}}}}void panduani(int i) /* 通过i 的值,判断信息要查找的信息是否存在*/{int j;if(i==-1){printf(" 要查找的学生不存在\n");/* 要查找的学生不存在*/ stop();}else{printf(" 查找到的学生信息为:\n");/*" 查找到的学生信息为:"*/ printf(" 学号姓名班级专业入学年 C 语言高数大物电路模电\n");printf("================================================================ ===\n");printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year)Jfor(j=0;j<5;j++)printf(" %.1f",stu[i].score[j]);printf("\n");stop();}}void save() /* 保存文件*/{int i;FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL) /* 创建二进制文件*/{printf(" 创建文件失败,请重新运行程序.\n"); /* 显示" 创建文件失败,请重新运行程序"*/exit(0); /* 终止程序*/}for(i=0;i<num;i++)fwrite(&stu[i],1,sizeof(struct student),fp); /* 将I+1 名学生成绩写入文件*/ fclose(fp);}void main() /* 主控菜单*/{char c;init();while(1){printf("\t\t 请选择 :\n");/* 请选择: */ c=getchar(); getchar(); switch(c){case '1': weihu(); break; case '2': tongji(); break; case '3': paixu1(); break; case '4': find1(); break; case '9': save(); exit(0); break; default:printf(" 选择有误,请重选 !\n");/*" 选择有误,请重选! "*/printf("\n\t\t***制作:王清珍,陈超,路梓裕,卢诚知,****\n"); printf("\n\t\t*************************************************\n");printf("\t\t* 、 t t • I 、/, 主菜单*\n");printf("\t\t* 1. 维护 *\n"); /* 维护 */ printf("\t\t* 2. 统计 *\n"); /* 统计 */ printf("\t\t* 3. 排序 *\n"); /* 排序 */ printf("\t\t*4. 查找*\n"); /* 排序 */ printf("\t\t*9. 存盘退出*\n"); /* 存盘退出printf("\t\t************* 欢迎登陆学生成绩管理系统 ************\n"); printf("\t\t** ********************************************* **\n");。
C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.二、学生成绩查询:输入一个学号,在文件中查找此学生,若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。
三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。
四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作.2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert()函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage () 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include”stdio.h"#in clude”stddef。
学生成绩管理系统C语言 课程设计

(2)培养学生综合运用所学知识独立完成课程设计的能力。
(3)培养学生勇于探索、严谨推理、实事求是、有错必改、用实践来检验理论,全方位考虑问题等科学技术人员应具备的素质。
(4)提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
if(strcmp(str1,str)==0)
{
system("cls");
main();
}
else if(strcmp(str2,str)==0)
{
printf("请按任意键退出!\n");
exit(0);
}
else
printf("您输入的数据不正确!请重新输入:");
}while(1);
}
5.进入功能选项,需用select()函数;
菜单九:用户选择此操作后可直接退出软件。
3 系统存储结构设计与描述
struct student
{
long id;
char name[10];
char sex[10];
float computer,math,english;
float total;
}stu[1000]此存储结构包括学生的姓名、学生的性别、学生的学号及学生给门功课的成绩,并且记录下该学生的总分。这些都用结构体变量数组来存储。
{
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
{
printf("Can not open the file!\n");
exit(0);
毕业论文设计--学生成绩管理系统千行代码c语言课程设计正文

毕业论⽂设计--学⽣成绩管理系统千⾏代码c语⾔课程设计正⽂内蒙古科技⼤学本科⽣课程设计说明书题⽬:C语⾔课程设计——学⽣成绩管理系统学⽣姓名:边峰学号:1467159114专业:软件⼯程班级:1班指导教师:周李涌⽇期:2015年 1⽉ 1⽇内蒙古科技⼤学课程设计说明书内蒙古科技⼤学课程设计任务书I内蒙古科技⼤学课程设计说明书⽬录内蒙古科技⼤学课程设计任务书 ............................................................ I ⽬录.......................................................................................... II 第⼀章需求分析 (3)1.1引⾔ (3)1.2任务概述 (3)1.3数据描述 (3)1.4功能需求 (4)1.5性能需求 (4)1.6运⾏需求 (4)1.7任务计划 (5)第⼆章概要设计 (6)2.1总体设计 (6)2.2数据类型设计(或数据结构设计) (6)2.3接⼝设计 (7)2.4运⾏界⾯设计 (7)第三章详细设计 (8)3.1输⼊模块设计 (8)3.2输出模块设计 (10)3.3查找模块设计 (11)3.4排序模块设计 (14)3.5保存及读取模块设计 (16)第四章测试分析 (17)4.1测试程序执⾏情况 (17)4.2出现的问题和解决的⽅法 (20)第五章课程设计总结 (21)附录:程序代码 (21)参考⽂献 (46)II内蒙古科技⼤学课程设计说明书第⼀章需求分析1.1引⾔此报告完整呈现了我开发“学⽣成绩管理系统”的整个软件过程,包括需求分析阶段,软件设计与实现阶段和测试阶段。
在需求分析阶段,明确所要开发的软件应具有的功能、性能与界⾯,使系统使⽤⼈员及系统开发⼈员能清楚地了解⽤户的需求,并在此基础上进⼀步提出概要设计说明书和完成后续设计与开发⼯作。
学生成绩管理系统C语言程序设计

C语言课程设计(实训)报告信息科技学院学院 _电子信息学院_ 专业电子信息工程班级 _ _ 学号姓名课题 _C语言课程设计_ 指导教师 __ __ 报告成绩______________日期:2009年7月7日1 / 27学生成绩管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。
本程序中涉及结构体、单链表、文件等方面的知识。
通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。
1、问题定义创建一个学生成绩管理系统。
假设系统中每个学生记录只包括学号、姓名、数学成绩、英语成绩、C语言成绩、总分、平均分、等信息。
程序的运行效果如下图所示,选择任意菜单后,实现相应功能。
=================主菜单====================== 1 输入学生信息==== 2 删除学生信息==== 3 查询学生信息==== 4 修改学生信息==== 5 显示学生信息==== 6 统计学生信息==== 7 排序学生信息==== 8 保存学生信息==== 0 退出系统==============================================图1.1 学生成绩管理系统功能需求在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计2.1 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
图2.1 学生成绩管理系统功能模块图本成绩管理系统要求采用单链表实现,如图2.1所示,它由如下五大功能模块组成:●输入记录模块。
学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合运用,能够设计并实现一个学生成绩管理系统;2. 让学生了解并掌握文件操作在C语言中的实现方法,能够完成数据的存储与读取;3. 让学生理解模块化编程的思想,能够将复杂的程序分解为多个简单、独立的功能模块。
技能目标:1. 培养学生运用C语言解决实际问题的能力,提高编程技巧;2. 培养学生分析问题、设计算法、编写程序、调试程序的能力;3. 培养学生团队协作能力,能够与他人共同完成一个项目。
情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发学生学习C语言的积极性;2. 培养学生认真负责、严谨细致的工作态度,养成良好的编程习惯;3. 培养学生善于思考、勇于创新的精神,提高学生的自主学习能力。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 能够独立设计并实现一个具备基本功能的学生成绩管理系统;2. 能够运用所学知识,完成对学生成绩的增、删、改、查等操作;3. 能够通过团队协作,优化系统功能,提高系统性能;4. 能够对编程过程中遇到的问题进行自主分析、解决,并在实践中不断总结经验,提高编程能力。
二、教学内容根据课程目标,本章节的教学内容主要包括以下几部分:1. C语言基础回顾:结构体、数组、函数的定义与使用;2. 文件操作:文件的打开、关闭、读写操作;3. 模块化编程:功能模块的划分、接口设计、实现与调用;4. 学生成绩管理系统需求分析:功能模块划分、数据结构设计;5. 学生成绩管理系统的设计与实现:各功能模块的具体实现;6. 团队协作与项目实践:项目分工、进度安排、协作沟通。
具体教学大纲安排如下:1. 复习C语言基础知识,明确课程所需掌握的基本概念(1课时);2. 讲解文件操作原理,并通过示例演示文件操作在C语言中的实现(2课时);3. 介绍模块化编程思想,分析学生成绩管理系统功能模块划分及接口设计(2课时);4. 分析学生成绩管理系统需求,引导学生进行数据结构设计(2课时);5. 指导学生进行学生成绩管理系统的设计与实现,分阶段完成各功能模块(6课时);6. 安排团队协作项目实践,确保学生在实践中掌握所学知识,提高编程能力(4课时)。
c语言课程设计学生成绩管理系统代码

学生成绩管理系统是一个常见的C语言入门项目,可以帮助初学者了解循环、条件控制、结构体、文件操作等基本知识。
以下是一个简单的C语言学生成绩管理系统示例,实现了查询、添加、修改和删除学生成绩等功能。
您可以修改和扩展该代码以满足您的需求:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {int id;char name[20];float score;} Student;void display_menu();void add_student();void find_student();void edit_student();void delete_student();void save_data();void load_data();int student_count = 0;Student students[100];int main() {load_data();while (1) {display_menu();int choice;printf("请输入您的选择:");scanf("%d", &choice);switch (choice) {case 1:find_student();break;case 2:add_student();break;case 3:edit_student();break;case 4:delete_student();break;case 5:save_data();printf("数据已保存。
\n");exit(0);default:printf("无效的选项!\n");}}return 0;}void display_menu() {printf("学生成绩管理系统\n");printf("====================\n");printf("1. 查询学生成绩\n");printf("2. 添加学生成绩\n");printf("3. 修改学生成绩\n");printf("4. 删除学生成绩\n");printf("5. 退出系统\n");printf("====================\n");}void add_student() {printf("请输入学生ID:");scanf("%d", &students[student_count].id); printf("请输入学生姓名:");scanf("%s", students[student_count].name); printf("请输入学生成绩:");scanf("%f", &students[student_count].score); student_count++;printf("学生已添加成功!\n");}void find_student() {int id;printf("请输入要查询的学生ID:");scanf("%d", &id);for (int i = 0; i < student_count; ++i) {if (students[i].id == id) {printf("ID:%d, 姓名:%s, 成绩:%.2f\n", students[i].id, students[i].name, students[i].score);return;}}printf("未找到该学生。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内蒙古科技大学本科生课程设计说明书题目:C语言课程设计——学生成绩管理系统学生姓名:边峰学号:1467159114专业:软件工程班级:1班指导教师:周李涌日期:2015年 1月 1日内蒙古科技大学课程设计说明书内蒙古科技大学课程设计任务书I内蒙古科技大学课程设计说明书目录内蒙古科技大学课程设计任务书 (I)目录 (II)第一章需求分析 (3)1.1引言 (3)1.2任务概述 (3)1.3数据描述 (3)1.4功能需求 (4)1.5性能需求 (4)1.6运行需求 (4)1.7任务计划 (5)第二章概要设计 (6)2.1总体设计 (6)2.2数据类型设计(或数据结构设计) (6)2.3接口设计 (7)2.4运行界面设计 (7)第三章详细设计 (8)3.1输入模块设计 (8)3.2输出模块设计 (10)3.3查找模块设计 (11)3.4排序模块设计 (14)3.5保存及读取模块设计 (16)第四章测试分析 (17)4.1测试程序执行情况 (17)4.2出现的问题和解决的方法 (20)第五章课程设计总结 (21)附录:程序代码 (21)参考文献 (46)II内蒙古科技大学课程设计说明书第一章需求分析1.1引言此报告完整呈现了我开发“学生成绩管理系统”的整个软件过程,包括需求分析阶段,软件设计与实现阶段和测试阶段。
在需求分析阶段,明确所要开发的软件应具有的功能、性能与界面,使系统使用人员及系统开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。
在软件设计与实现阶段,进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示,然后着手于实践。
最后在测试阶段检验了我们的软件的实用性,发现了许多不足。
这个报告即是对最后软件的总体描述1.2任务概述学生成绩管理系统:包括以下功能:从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里打开文件后,计算每个人的总分和平均分,排序并保存具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)具有插入、删除和修改功能具有输出文件数据信息的功能1.3数据描述数据是关于学生的资料:包括学号、姓名、5门功课的成绩、总分、平均分。
3内蒙古科技大学课程设计说明书1.4功能需求为实现学生成绩管理系统,该程序有以下功能:1.输入学生成绩。
以插入节点的形式将输入的学生资料按总分降序插入链表中。
2.删除学生成绩。
用学号进行查找,查找到后直接删除。
3.查询学生成绩。
三种查找方式,1.姓名2.学号3.分数。
1.2.为精确查找,3为范围查找,输入成绩后,查找出所有高于该成绩的学生并输出。
4.修改学生成绩。
按学号查找学生,查找后可以修改学生的所有信息,包括学号。
修改成绩后自动对总分、平均分更新。
5.排序学生成绩。
排序学生成绩有三种排序方案:1.学号升序。
2.总分升序。
3.总分降序6.保存学生成绩。
将学生成绩保存到student 文件内,以便下次运行程序时读入数据。
7.科目设置。
对五门科目的名称进行设置。
8.程序密码设置。
程序首次运行时,设置密码。
密码保存在mima.txt文件内。
以后每次运行程序都需要输入密码。
9.程序密码修改。
在进入程序主界面后,可以对程序密码进行修改。
修改密码会覆盖原有的mima.txt,将新的密码保存在该文件内。
10.程序字体颜色。
为了程序的美观性,在主菜单内设置了颜色功能。
可以修改程序的颜色。
有9种颜色可供选择。
1.5性能需求本程序采用动态内存申请的方式,储存学生成绩资料,尽可能的节省了所占内存空间,并且在程序结束时释放所有内存。
1.6运行需求在输入学号是学号数值大小不大于长整型的数值范围。
姓名不超过5个中文字符、11个英文字符。
学生成绩不超过宏定义的maxscore 100 不小于minscore 0.4内蒙古科技大学课程设计说明书本程序在运行时,要求有student文件储存学生资料,mima.txt文件储存程序密码,kemu.txt文件储存科目名称。
在文件不存在时,程序会自行创建这些文件以供使用。
1.7任务计划设计一个学生成绩管理系统,来管理学生成绩。
包括以下功能:从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里打开文件后,计算每个人的总分和平均分,排序并保存具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)具有插入、删除和修改功能具有输出文件数据信息的功能5内蒙古科技大学课程设计说明书第二章概要设计2.1总体设计2.2数据类型设计(或数据结构设计)typedef struct student{long xuehao;char name[12];int chengji[N];int zongfen;float pingjun;6内蒙古科技大学课程设计说明书7struct student*next; } NODE;2.3 接口设计void huanyingyu(); //LED 灯闪烁欢迎语 void mytime();//输出问候语句+时间void mima(char mi[],char mi1[]); //密码函数 void caidan(); //输出主菜单NODE* daoru (NODE *l,char kemu [][20]); //已存在信息导入 void jieshu(NODE* l); //模块0 结束程序NODE* InsertNode(NODE *head,char kemu [][20],int count);//模块1 插入学生资料 (总分排序)NODE* DeleteNode(NODE* head); //模块2 删除学生资料 void FIND (NODE *head,char kemu [N][20] ); //模块3 查询学生资料 void xiugai(NODE *head,char kemu [N][20] ); //模块4 修改学生资料 void DisplyNode(NODE *head,char kemu [][20]); //模块5 显示学生资料 void Tongji(NODE* l,char kemu[][20]); //模块6 统计学生资料 NODE* paixv(NODE *head); //模块7 排列学生资料 void mimaxiugai(char* mi1); //模块8 密码修改 void kemushezhi(char kemu[][20],int k); //模块9 科目设置 void Save(NODE* l); //模块10 学生资料保存 void yanse(); //模块11 颜色设置 2.4运行界面设计内蒙古科技大学课程设计说明书8第二章 详细设计3.1 输入模块设计1. 流程图2.模块代码:/* 函数功能:菜单功能1 输入学生信息 以总分降序插入链表*/ NODE *InsertNode(NODE *head,char kemu [][20],int count) {int j,i;int sum,xuehao;NODE *pr = head->next, *p = head, *temp = NULL,*q = head->next; p = (NODE *)malloc(sizeof(NODE));/* 让p 指向待插入节点 */ if (p == NULL) /* 若为新建节点申请内存失败,则退出程序 */ {printf("No enough memory!\n"); exit(0); }p->next = NULL; /* 为待插入节点的指针域赋值为空指针 */ printf("请输入第%d 位学生资料:",count); printf("请输入学号:(输入0返回)"); scanf("%ld",&p->xuehao); xuehao=p->xuehao; if(p->xuehao==0) {free(p);内蒙古科技大学课程设计说明书return head;}else{while (xuehao != q->xuehao && q->next != NULL)/* 未找到且未到表尾*/{q = q->next;}if (xuehao == q->xuehao){printf("您输入的学好对应学生信息已存在,请检查是否错误后重新输入!\n");free(p);return head;}}printf("请输入姓名:");scanf("%s",p->name);for(j=0; j<N; j++){w:printf("请输入%s的%s成绩:",p->name,kemu[j]);scanf("%d",&p->chengji[j]);if(p->chengji[j]>maxscore||p->chengji[j]<minscore){printf("输入成绩超出有效范围,请重新输入!\n");goto w;}}sum = 0;for(i=0; i<N; i++){sum+=(*p).chengji[i];}p->zongfen = sum;p->pingjun= (float)sum/N;system("pause");if (head == NULL) /* 若原链表为空表*/{head = p; /* 待插入节点作为头节点*/}else{/* 若未找到待插入节点的位置且未到表尾,则继续找*/while (pr->zongfen > p->zongfen && pr->next != NULL){temp = pr; /* 在temp中保存当前节点的指针*/pr = pr->next;/* pr指向当前节点的下一节点*/}//printf("程序运行到此");if (pr->zongfen <= p->zongfen){if (pr == head->next) /* 若在头节点前插入新节点*/{p->next = head->next;/* 将新节点的指针域指向原链表的头节点*/head->next= p; /* 让head指向新节点*/}else /* 若在链表中间插入新节点*/{pr = temp;9p->next = pr->next;/* 将新节点的指针域指向下一节点 */ pr->next = p; /* 让前一节点的指针域指向新节点 */ } }else /* 若在表尾插入新节点 */ {pr->next = p; /* 让末节点的指针域指向新节点 */ } }printf("学生资料添加成功!\n"); ziliao = 1; return head; /* 返回插入新节点后的链表头指针head 的值 */ }3.2 输出模块设计1. 流程图2.模块代码/* 函数的功能:菜单更能5 显示学生资料 */ void DisplyNode(NODE *head,char kemu [N][20] ) {NODE *p = head->next; int j = 1;printf("学号 姓名%8s%8s%8s%8s%8s 总分 平均分 编号\n",kemu[0],kemu[1],kemu[2],kemu[3],kemu[4]);while (p != NULL) /* 若不是表尾,则循环打印 */ {printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f %-3d\n",p->xuehao, p->name, p->chengji[0], p->chengji[1], p->chengji[2], p->chengji[3], p->chengji[4], p->zongfen,p->pingjun,j);/* 打印第j 个节点的数据 */ p = p->next; /* 让p 指向下一个节点 */ j++;}}3.3查找模块设计1.流程图2.模块代码/* 函数的功能:菜单功能3 查询学生资料*/void FIND (NODE *head,char kemu [N][20] ){NODE *p = head->next;int j = 1,k = 1,c=0;long xuehao;char name[20];char c1[1];int zongfen;printf("请输出查找方式:\n1.学号查找\n2.姓名查找\n3.总分查找\n======>");c1[0] = getche();c = atoi(c1);printf("\n");if(c==1){printf("请输入学号:");scanf("%ld",&xuehao);while (p != NULL) /* 若不是表尾,则循环打印*/{if(xuehao == p->xuehao){if(k){printf("学号姓名%8s%8s%8s%8s%8s 总分平均分\n",kemu[0],kemu[1],kemu[2],kemu[3],kemu[4]);}printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f \n",p->xuehao,p->name,p->chengji[0],p->chengji[1],p->chengji[2],p->chengji[3],p->chengji[4],p->zongfen,p->pingjun);/* 打印第j个节点的数据*/k=0;}p = p->next; /* 让p指向下一个节点*/}if(k==1)printf("抱歉,您查找的信息不存在!\n");system("pause");}else if(c==2){printf("请输入姓名:");scanf("%s",name);while (p != NULL) /* 若不是表尾,则循环打印*/{if(strcmp(name,p->name) == 0){if(k){printf("学号姓名%8s%8s%8s%8s%8s 总分平均分\n",kemu[0],kemu[1],kemu[2],kemu[3],kemu[4]);}printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f \n",p->xuehao,p->name,p->chengji[0],p->chengji[1],p->chengji[2],p->chengji[3],p->chengji[4],p->zongfen,p->pingjun);/* 打印第j个节点的数据*/k=0;}p = p->next; /* 让p指向下一个节点*/}if(k==1)printf("抱歉,您查找的信息不存在!\n");system("pause");}else if(c==3){printf("请输入要查找多少分以上的学生:");scanf("%d",&zongfen);while (p != NULL) /* 若不是表尾,则循环打印*/{if(zongfen <=p->zongfen){if(k){printf("学号姓名%8s%8s%8s%8s%8s 总分平均分\n",kemu[0],kemu[1],kemu[2],kemu[3],kemu[4]);}printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f \n",p->xuehao,p->name,p->chengji[0],p->chengji[1],p->chengji[2],p->chengji[3],p->chengji[4],p->zongfen,p->pingjun);/* 打印第j个节点的数据*/k=0;}p = p->next; /* 让p指向下一个节点*/}if(k==1)printf("抱歉,您查找的信息不存在!\n");system("pause");}else{printf("输入有误,请重新输入!\n");system("pause");caidan();printf("\n");FIND (head,kemu);}}3.4排序模块设计2.模块代码/* 函数的功能:菜单功能7.1 学号升序排列学生*/NODE* paixv(NODE* head){NODE* r = head;NODE* SL = NULL;NODE* t,*cp,*ap;char xv[1];int xv1;printf("请选择排序方式:\n1.学号升序排列\t\t2.总分升序排列\n3.总分降序排列\n");xv[0] = getche();xv1 = atoi(xv);while (r != NULL){t = r->next;cp = SL;ap = NULL;while (cp != NULL){if(xv1==1){if(r->xuehao < cp->xuehao){break;}else{ap = cp;cp=cp->next;}}else if(xv1==2){if(r->zongfen < cp->zongfen){break;}else{ap = cp;cp=cp->next;}}}if (ap == NULL){r->next = SL;SL = r;}else{r->next = cp;ap->next = r;}r = t;}printf("排序完成!\n");return SL;}3.5 保存及读取模块设计1. 流程图2. 模块代码/* 函数功能:菜单功能10 对新录入的学生信息进行保存*/void Save(NODE* l) {FILE *fp; NODE *p; int flag=1,count=0; fp=fopen("student","w"); if(fp==NULL) {printf("\n=====>提示:重新打开文件时发生错误!\n"); exit(1); } p=l->next; while(p!=NULL){ fprintf(fp,"%ld %s %d %d %d %d %d %d %f\n",p->xuehao,p->name,p->chengji[0],p->chengji[1], p->chengji[2],p->chengji[3],p->chengji[4], p->zongfen, p->pingjun); p=p->next;count++;} if(flag){printf("\n=====>提示:文件保存成功.(有%d 条记录已经保存.)\n",count); ziliao = 0;system("pause");} fclose(fp); }第三章测试分析4.1测试程序执行情况1.密码测试先输入错误密码,在输入正确密码。