学生信息管理系统C语言编写-编辑学生信息如何写

 目

 录

 1 设计目得………………………………………………………………………3 2 设 计 题 目 及 要 求 … … … … … … … … … … … … … … … … … … … … 3 3设计算法分析………………………………………………………………3

  3、1 模块调用层次图………………………………………………………3

  3、2 核心算法描述………………………………………………………4

  3、3 系统特点………………………………………………………6 4 程序代码………………………………………………………………………6 5调试情况……………………………………………………………………8 6 结论……………………………………………………………………………11

 学生信息管理

 1 1 、设计目得

 本课程设计得目得就就是要通过一次集中得强化训练,使学生能及时巩固已学得知识,补充未学得但又必要得内容。进行课程设计目得在于加深对程序设计基础中基础理论与基本知识得理解,促进理论与实践得结合,进一步提高程序设计得能力.具体目得如下: 1.使学生更深入地理解与掌握该课程中得有关基本概念,程序设计思想与方法. 2.培养学生综合运用所学知识独立完成课题得能力。

 3。培养学生勇于探索、严谨推理、实事求就是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有得素质. 4。提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关得基本素质。

 5.培养学生从资料文献、科学实验中获得知识得能力,提高学生从别人经验中找到解决问题得新途径得悟性,初步培养工程意识与创新能力。

 6.对学生掌握知识得深度、运用理论去处理问题得能力、实验能力、课程设计能力、书面及口头表达能力进行考核. 2 2 、设计题目及要求

 【1】设计题目

 【2】要求 实现如下功能:

 (1)建立学生信息得结构体 (2)学生信息得初始化(可以从文件获取)

 (3)学生信息得添加、修改、删除、查找 (4)学生信息得输出 (5)对学生信息按学号、成绩排序 (6)计算一门课得平均分与总分 (7)将学生信息保存为文件 综合应用数组、指针、结构体、文件等,对该设计题目进行设计与实现。课程设计完成后,提交课程设计报告。

 3 3 、 设计 算法分析

 3、1 模块调用层次图

  【1】变量描述

 定义形式/名称 含义/作用 数组 char name[20] 定义姓名数组 结构体 struct student stu[50] 声明一个结构数组 全局变量 int input=0;float ave,sum;

 全局变量标记当前录入学生个数

 FILE *fp;

 文件 stu_list2、doc 保存学生信息 函数 Save InputStu DelStu Modif y Stu FindStu InsertStu SortStu ListStu 保存 录入 删除 修改 查找 插入 排序 显示学生信息

 【2】系统模块调用层次图

 3、2核心算法描述

 1、总体模块流程图:

 N

 T

  2、修改模块:

  for(i=0;i<=15;i++)

  for(i=0;i<input;i++)

 stu[i]、num==id

  T(flag!=0)

 F(flag!=0)

 输出修改后学生信息

 printf(”\n\nnull")

  3、查询模块: Main ListStu SortStu ModifyStu FindStu InsertStu Save InputStu DelStu

  开始

 !(scanf("%d",&in1)==1

  学生信息

 修改

 查询

  插入

  删除

  排序

 保存

 结束

 for(i=0;i<=15;i++)

 for(i=0;i<input;i++)

  (stu[i]、num==id)

  T

 (flag=0)

  F (flag!=0)

 输出查询后学生信息

 printf("\n\nnull")

  (stu[i]、classid==id)

  T (flag=0)

  F(flag!=0)

  输出查询后学生信息

  printf(”\n\nnull”)

 T (flag=0)

  (!strcmp(stu[i]、name,name))

  F(flag!=0)

 输出查询后学生信息

 无找到有关信息 4、插入模块: for(i=0;i<input;i++)

 stu[i]、num=id

 )0=galf(Tﻩ F(flag!=0)

  学号信息已经存在

  输入要插入学生信息

 5、删除模块:

 ask != "n’ T

 F i=0;i〈input;i++

  stu[i]、num == delnum

 T (flag=0)

 F(flag!=0)

 for(j=i;j<input;j++)

 删除成功且

 显示删除后数据

 删除指定学生得信息

  没有要删除得学生 6、排序模块:

  chose==1 T

 F(chose==2) for(i=0;i〈input-1;i++)

  for(i=0;i〈input-1;i++)

 for(j=i+1;j〈input;j++)

 for(j=i+1;j<input;j++)

  stu[i]、num〉stu[j]、num

 stu[i]、ave〈stu[j]、ave

 T

  F

  T

 F

 temp=stu[i]

  temp=stu[i]

 stu[i]=stu[j]

  stu[i]=stu[j]

 stu[j]=temp

  stu[j]=temp 3、3 系统特点 【1】特点:这个学生信息管理系统建立了学生信息得结构体,实现了学生信息得录入、添加、修改、删除、查找等功能,并能计算学生得平均分与总分,对学生进行排序。

 4、 程序代码

 【1】程序代码

  void Help();

 void Save(struct student stu[]);

  void InputStu(struct student stu[]);

 void DelStu(struct student stu[]);

 void ModifyStu(struct student stu[]);

 void FindStu(struct student stu[]);

  void InsertStu(struct student stu[]);

 void SortStu(struct student stu[]);

  void ListStu(struct student stu[]);

  void main()

  {

 struct student stu[50];

  struct student *p;

 int

 in;

 int

 in1;

  char ch;

  void InputStu(struct student stu[])

  {

 pp=stu;

  system("cls");

 int i;

 printf("Number of students you want to enter information:");

 scanf("%d",&input); if((fp=fopen("inputdata、sys","wb+"))==NULL)

  {

 printf("Cannot open

 any key exit!");

 getch();

  exit(1);

 }

  void ModifyStu(struct student stu[])

 {

 system("cls");

 pp=stu;

  int id,i,flag=1;

 if((fp=fopen("modifydata、sys","wb+"))==NULL)

  {

 printf(”Cannot open

 any key exit!”); getch();

 exit(1);

  }

 void FindStu(struct student stu[])

 {

 system("cls");

 int i=0,id,flag=1,chose;

 printf("\nPlease select query:

 1、No、 inquiries by school;2、Query by class;3、Query by name\n"); scanf("%d",&chose); switch(chose){ case 1:

 printf(”Please enter your query No、 students:”); scanf("%d”,&id); for(i=0;i<input;i++) {

 if (stu[i]、num==id)

  {

 flag=0; stu[i]、sum=stu[i]、score1+stu[i]、score2+stu[i]、score3; stu[i]、ave=stu[i]、sum/3; printf(”\nNo、 Studies\ Name\ No、 classes\ The first subjec\

 The second subject\ The third subject\Average \Total\n"); void InsertStu(struct student stu[ ])

  {

 system(”cls”); int flag=1;

 pp=stu;

 int i,id; if((fp=fopen("insertdata、sys”,”wb+”))==NULL)

  {

 printf("Cannot open

 any key exit!”); getch();

 exit(1);

  }

  void ListStu(struct student stu[])

  {

 int i=0; for(i=0;i〈input;i++)

 {

 stu[i]、sum=stu[i]、score1+stu[i]、score2+stu[i]、score3; stu[i]、ave=stu[i]、sum/3;} printf("\nNo、 Studies\ Name\ No、 classes\ The first subjec\

 The second subject\ The third subject\Average \Total\n”); for(i=0;i<input;i++)

 {printf("\n %d %s %d \t%d \t%d \t%d

 \t%d

  %d”,stu[i]、num,stu[i]、name,stu[i]、classid,stu[i]、score1,stu[i]、score2,stu[i]、score3,stu[i]、ave, stu[i]、sum);

 }

 getch();

 } void DelStu(struct student stu[])

 {

 system(”cls"); pp=stu;

 int delnum,flag=1;

  char ask;

 int i,j; if((fp=fopen("Deldata、sys","wb+"))==NULL)

  {

 printf("Cannot open

 any key exit!”); getch();

  exit(1);

 } void SortStu(struct student stu[])

 {

 system("cls"); int i,j,chose;

 struct student temp; printf(”To sort the data before:\n”); printf("\nNo、 Studies\ Name\ No、 classes\ The first subjec\

 The second subject\ The third subject\Average \Total\n"); for(i=0;i<input;i++) {printf(”\n %d

  %s

 %d

 %d\t %d\t

 %d\t %d\t %d\n",stu[i]、num,stu[i]、name,stu[i]、classid,stu[i]、score1,stu[i]、score2,stu[i]、score3,stu[i]、ave,stu[i]、sum);

  } printf("\n1、Sort by Student ID\t2、By the average score (high → low) Sort\n");

 void Save(struct student stu[])

  {

 int i,j;

  pp=stu;

 system(”cls"); printf(”\n\n\n\n\t\t\tSaving"); if((fp=fopen(”stu_list2、doc”,”wb+"))==NULL)

  {

 printf("Cannot open

 any key exit!"); getch();

  exit(1); }

  【2】程序执行结果

 【3】结果得讨论:系统最后将修改过后得学生信息保存了下来 5 5 、 调试情况

  三科成绩、平均分、总分不能用 float定义应改为 int

  定义应在函数得最前端

 文件未定义

 这就是建立学生信息文件

 添加学生信息并计算平均分与总分

 找不到要删除得学生信息

  删除了学号为 12 得学生信息

 修改学生信息

 新学生信息记录

 保存信息后退出程序 6 6 、结论

 (1)能够通过编译时出现得出错提示信息,进行初步得纠错。

 (2)完成一个程序得一般步骤为设计,录入 ,编译 ,如果出错,则修改,然后再编译,编译成功后,瞧瞧结果就是否正确,如果结果不正确,则再重复以上步骤。

 (3)从这次编程序得过程中,我学到了编程所必须具备得专业技能,更领会编译程序所需要得细心与耐心。