课程名称:学生信息管理系统。
一、设计目的:
1)本学期我们学习了c语言,由于初接触,学习有一定困难;于是学校给我们提供一次巩固提高的机会---课程设计。该可程设计要求学生既动手又动脑,自学,查资料,独立实践。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对c语言系统编程有一个大致的了解。
2)c语言的实践。掌握c语言函数的定义方法,函数的声明及函数的调用过程。掌握结构体类型变量的定义和使用,综合应用c语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。
二、总体设计。
1)程序设计组成框图。
2)模块功能说明。
1 输出功能:完成全部学生记录的显示。
2 查询功能:输入姓名可以查询学生的详细信息。
3 增加功能:增加新学生的信息。
4 删除功能:删除学生信息。
5 修改功能:修改学生的错误信息。
6保存功能:保存已输入信息。
7读取功能:读取已输入信息。
8显示功能:按要求显示学生记录。
9 排序功能:按要求完成对学生信息的排序。
10 退出系统。
3)程序流程图。
4)主要函数之间相互调用如下:
5)各函数功能详见源程序清单。
6)在设计过程中的感受:
首先经过一周的编程实习,并在后一段的报告总结,我对c语言这门科有新的认识,本人实在是获益不浅!要想编写一个准确、高效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的上机操作能力,写程序其实很容易而关键在于调试程序。这次设计,让我重新掌握了c语言,而且还得到了用c语言解决实际问题的宝贵经验。
其次, 通过此次编程我也发现了自己在学习中的错误和不足,复习了以前学过的知识。同时也学到了一些没学过的知识,让我从中收益非浅,也为期末考试准备了一下!更重要的是培养了独立思考问题和解决问题的能力,熟悉了一些基本操作和解决问题的方法!
第三, 因为初次接触等原因此次设计遇到了许多问题,我深刻体会到老师发挥的重要作用,c语言程序对我们来说比较难,在匆忙的学习中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把程序搞定,体会到原来编程也挺有意思的快感。我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。
三、_源程序清单。
#include<>
#include<>
#include<>
#include<>
typedef struct student
char studentnumber[10];/学生学号*/
char studentname[20];/学生姓名*/
char classname[20];/班级名称*/
char yearname[20];/学期名称*/
float mark1;/*第1门成绩*/
float mark2;/*第2门成绩*/
float mark3;/*第3门成绩*/
struct student *next;
student;
student *headlink;/*链表表头指针*/
*以下是函数声明*/
void readinfoformfile(void);
void desplaymenu(void);
void createheadlink(void);
student *mallocnode(void);
void getinformation(student *t);
void outputinformation(void);
void desplayinfobystudentname(void);
void desplayonenode(student *t);
void insertonenode(student *t);
void deletenodebystudentnumber(void);
void changemarkbyname(void);
void changemarkbynumber(void);
void s**elinktofile(void);
void desplaymarksegment(void);
void compositorbytotalmark(void);
int choose;/*用于接受用户的选择*/
*主函数*/
void main()
createheadlink();
readinfoformfile();
desplaymenu();
函数功能:从文件中读学生信息到链表中。
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",p->studentnumber,p->studentname,p->classname,&(p->mark1),&p->mark2),&p->mark3))>0)
insertonenode(p);
p=mallocnode();
fclose(fp);
函数功能:显示菜单,根据用户的输入。
完成相应的功能。
void desplaymenu(void)
student *p;
printf("-请选择相应功能n");
printf("|1 按班级输出学生成绩单 |");
printf("|2 按姓名查询 |");
printf("|3 增加学生 |");
printf("|4 删除学生 |");
printf("|5 按班级修改学生成绩 |");
printf("|6 按学期修改学生成绩 |");
printf("|7 保存所有学生信息 |");
printf("|8 显示不及格学生成绩 |");
printf("|9 按平均成绩排序并输出绩 |");
printf("|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:
changemarkbynumber();根据用户输入的学号修改学生成绩*/
break;
case 7:
s**elinktofile();保存数据*/
break;
case 8:
desplaymarksegment();显示不及格的学生成绩*/
break;
case 9:
compositorbytotalmark();按平均成绩排序*/
break;
case 10:
s**elinktofile();保存数据后再退出*/
free(headlink);
break;
default:
break;
desplaymenu();递归调用*/
函数功能:建立链表表头。
void createheadlink(void)
student *p;
p=(student*)malloc(sizeof(student));
headlink=p;
p->next=null;
函数功能:申请一个新结点,并将其初始化。
student *mallocnode(void)
student *p;
int i;
p=(student*)malloc(sizeof(student));
if(p==null)
return null;
for(i=0;i<10;i++)
p->studentnumber[i]='0';
for(i=0;i<20;i++)
p->studentname[i]='0';
for(i=0;i<20;i++)
p->classname[i]='0';
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->next=null;
return p;
函数功能:取得用户输入的学生信息。
void getinformation(student *t)
printf("请输入学生学号:");
scanf("%s",t->studentnumber);
printf("请输入学生姓名:");
C语言课程设计报告书
高级语言程序设计 c语言 课程设计。湖南涉外经济学院计算机科学与技术学部。2010年12月。目录。1系统简介 2 2需求分析 2 3概要设计 2 3.1系统功能结构图 2 3.2重要数据的数据结构设计 2 3.3函数设计 3 3.4小组成员分工 4 4 详细设计 4 5 调试分析 7 6 用户手册 ...
C语言课程设计报告书
學院。學院。实验题目学生信息管理系统。一 实验目的 1 本学期我们学习了c语言,由于初接触,学习有一定困难 于是学校给我们提供一次巩固提高的机会 课程设计。该可程设计要求学生既动手又动脑,自学,查资料,独立实践。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高...
C语言课程设计报告书
中国地质大学 武汉 姓名 王友琪。专业 地质学。学号 20131000518 指导老师 王茂才。1 课设题目简要介绍 已知文本文件中存放了报考某校研究生的考生相关信息 不超过5000人 具体数据及存放格式为 每行存放一个考生的数据,数据之间用空格分隔,共有8项,依次为 考号 姓名 报考专业编号 政治...