14信管01班学生表现报告单

时间:2024.5.9

14信管01班学生表现报告单

学期:20##-20##-1    报告人:周水开    报告时间:20##年01月17日


第二篇:46学生信息管理


46学生信息管理

沈阳航空工业学院

课程设计任务书

院系:航空宇航工程学院 专业: 飞行器设计 班级:7403302 学号:200704033046 题目:学生信息管理2

一、课程设计时间

2008~9第2学期第1周,共计1周,20学时。

二、课程设计内容:用C语言编写程序完成以下任务:

学生基本信息包括学号,姓名,计算机成绩,请编程序,实现如下的功能:

(1)创建链表存放学生信息,并将学生信息保存到students.txt文件中。

(2)显示学生信息。

(3)修改指定学号的学生成绩并可存盘。

三、课程设计要求:

1.贯彻结构化程序设计思想。

2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

3.用户界面中的菜单至少应包括“创建链表”、“显示学生信息”、“学生成绩修改”、出”4项。

4.代码应适当缩进,并给出必要的注释,以增强程序的可读性。

四、指导教师和学生签字

指导教师:________ 学生签名:________

五、说明书成绩

六、教师评语

“退

沈 阳 航 院 设 计 用 纸

目录

一、需求分析 .................................................................. 2

二、程序流程图 .............................................................. 2

三、核心技术的实现说明及相应程序段 ...................... 5

四、个人总结 ................................................................. 10

五、参考文献 ................................................................. 10

六、完整的源程序 ......................................................... 10

I

沈 阳 航 院 设 计 用 纸

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,它们的功能分别是:添加学生数据函数,删除数据函数,排序函数,成绩查询函数,更改学生数据函数以及显示学生信息函数。在这些函数当中,前四个函数的实现严格按照题目的要求,而后面的两个函数属于附加功能。

1、创建链表 主要实现程序最初运行时学生数据的录入

2、显示学生信息 实实现的是显示目前所有的有效学生记录信息。

3、更改数据函数 可以实现对学生记录中除学号以外的信息进行修改;

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

每一个学生记录都包含学号、姓名,以及计算机成绩,在程序当中,将学生记录类型定义为结构体类型,添加的学生信息直接写入D盘的student.txt文件中,其它函数每次对学生记录的访问,其数据来源都是student. txt文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。

二、程序流程图

1、程序总体结构图

2

沈 阳 航 院 设 计 用 纸

图1程序总体结构图

2.具体功能框图

(1)创建学生信息链表add

46学生信息管理

图2建立链表

46学生信息管理

3

沈 阳 航 院 设 计 用 纸

(2)显示学生信息show()

图2 显示学生信息

(3)修改学生信息change()

46学生信息管理

46学生信息管理

图3 修改学生信息

4

沈 阳 航 院 设 计 用 纸

三、核心技术的实现说明及相应程序段

本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,建立链表函数、信息显示、修改学生信息是程序中较为核心的部分,下面分别进行说明。

1、建立链表函数

建立链表分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:

void add()

{ FILE *fp;

if((fp=fopen("student.txt","w"))==NULL)

5 {printf("不能打开文件!\n"); exit(0); } int n=0; struct student *head; struct student *p1,*p2;

沈 阳 航 院 设 计 用 纸

p1=p2=(struct student *)malloc(LEN); printf("输入学号、姓名、计算机成绩,空格隔开,以0 0 0结束:\n");

scanf("%d %s %f",&p1->num,p1->name,&p1->score); head=NULL;

while(p1->num!=0)

{ fprintf(fp,"%d %s %f\n",p1->num,p1->name,p1->score);

n=n+1; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(LEN);

scanf("%d %s %f",&p1->num,p1->name,&p1->score);

}

2.学生信息显示

该函数也分为两种情况,一是存在student.txt文件,使用个体getchar和putchar现实到屏幕上。另外的是不存在student.txt文件,显示不

6 } p2->next=NULL; fclose(fp);

沈 阳 航 院 设 计 用 纸

能打开文件。具体的程序段如下:

void show()

{

FILE *fp;

if((fp=fopen("student.txt","r"))==NULL)

}

3.修改学生信息

先输入要修改的学生的学号,接着判断student.txt文件是否有此学号,有的话就输入要修改的学生姓名,计算机成绩。然后用写的方式打开student.txt文件,使student.txt文件刷新,将新的学生姓名,计算机成绩写入student.txt文件。如果没有此学号,那么输出“无此学生信息!” 具体的程序段如下:

void change()

7 {printf("不能打开文件!\n"); } else {printf("学号 姓名 计算机成绩\n"); while(!feof(fp)) putchar(getc(fp)); fclose(fp); }

沈 阳 航 院 设 计 用 纸

{

struct student stu[N],change;

printf("输入要修改的学生学号:");

scanf("%d",&change.num);

FILE *fp;

int i=0,j,n;

if((fp=fopen("student.txt","r"))==NULL)

{ printf("文件打开失败!\n");

return;

}

else

{

for(i=0;!feof(fp);i++)

fscanf(fp,"%d%s%f",&stu[i].num,stu[i].name,&stu[i].score);

}

fclose(fp);

n=i;

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

if(change.num==stu[i].num)

8 break;

沈 阳 航 院 设 计 用 纸

if(i>=n)

{printf("无此学生信息!\n");

return;

}

printf("\n请输入更改后学生的姓名和计算机成绩,按回车键确认:\n");

scanf("%s%f",change.name,&change.score);

stu[i]=change;

if((fp=fopen("student.txt","w"))==NULL)/*更新文件*/

{printf("打开文件失败!");

return;

}

j=1;

for(i=0;i<n-1;i++)

{ fprintf(fp,"%d %s %f\n",stu[i].num,stu[i].name,stu[i].score);

}

fclose(fp);

}

9

沈 阳 航 院 设 计 用 纸

四、个人总结

经过这一个星期的课程设计让我深深知道什么是课程设计,我觉得要想自己真正的做出比较好的课设,不仅要对老师所讲的内容理解透彻,还要对课本的主要内容深入学习,除了这些还不够,还要有老师的指导和程序例题的参考。当然在这几天里同学之间的帮助也是比不可少的,要谢谢杨俊堂同学,是他帮助我完成了比较复杂的程序段的编写。通过其他资源也可能更快的了解做题思路。其实学C语言要做到孰能生巧,面对问题要有解题的算法。通过这次课设让我对C语言产生了兴趣,对以后的学习会很有帮助的。

五、参考文献

1 谭浩强.C程序设计.北京:清华大学出版社,2007

六、完整的源程序

#include <stdlib.h>

#include <stdio.h>

#include <malloc.h>

#define NULL 0

#define N 20

struct student

{

10 int num;

沈 阳 航 院 设 计 用 纸

};

#define LEN sizeof(struct student) void menu();

void add();

void show();

void change();

void main()

{

while(1) char name[10]; float score; struct student *next;

{

int choice; menu(); printf("选择所需操作序号:"); scanf("%d",&choice); switch(choice)

{

case 1:add();break; case 2:show();break; case 3:change();break;

11

沈 阳 航 院 设 计 用 纸

case 4:exit(0);

default:printf("\n请输入存在的序号!\n");

}

}

}

void menu()

{

printf("**************************学生成绩***************************\n");

printf(" 1.创建链表 \n"); printf(" 2.显示学生信息\n"); printf(" 3.学生成绩修改\n"); printf(" 4.退出\n");

}

void add()

{ FILE *fp;

if((fp=fopen("student.txt","w"))==NULL)

{printf("不能打开文件!\n");

exit(0);

12 管理

沈 阳 航 院 设 计 用 纸

} int n=0; struct student *head; struct student *p1,*p2; p1=p2=(struct student *)malloc(LEN); printf("输入学号、姓名、计算机成绩,空格隔开,以0 0 0结束:\n");

scanf("%d %s %f",&p1->num,p1->name,&p1->score); head=NULL;

while(p1->num!=0)

{ fprintf(fp,"%d %s %f\n",p1->num,p1->name,p1->score);

n=n+1; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(LEN);

scanf("%d %s %f",&p1->num,p1->name,&p1->score);

13 } p2->next=NULL; fclose(fp);

沈 阳 航 院 设 计 用 纸

}

void show()

{

FILE *fp;

if((fp=fopen("student.txt","r"))==NULL)

}

void change()

{

struct student stu[N],change;

printf("输入要修改的学生学号:"); scanf("%d",&change.num); FILE *fp;

int i=0,j,n;

14 {printf("不能打开文件!\n"); } else {printf("学号 姓名 计算机成绩\n"); while(!feof(fp)) putchar(getc(fp)); fclose(fp); }

沈 阳 航 院 设 计 用 纸

if((fp=fopen("student.txt","r"))==NULL)

{ printf("文件打开失败!\n");

return;

}

else

{

for(i=0;!feof(fp);i++)

fscanf(fp,"%d%s%f",&stu[i].num,stu[i].name,&stu[i].score);

}

fclose(fp);

n=i;

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

if(change.num==stu[i].num)

break;

if(i>=n)

{printf("无此学生信息!\n");

return;

}

printf("\n请输入更改后学生的姓名和计算机成绩,按回车键确认:\n");

15

沈 阳 航 院 设 计 用 纸

scanf("%s%f",change.name,&change.score);

stu[i]=change;

if((fp=fopen("student.txt","w"))==NULL)/*更新文件*/

{printf("打开文件失败!");

return;

}

j=1;

for(i=0;i<n-1;i++)

{ fprintf(fp,"%d %s %f\n",stu[i].num,stu[i].name,stu[i].score);

}

fclose(fp);

}

16

更多相关推荐:
当代大学生现实表现材料

…….…同志现实表现材料…,男,汉族,出生于19..年x月,团员,专科学历,该同志在山东….学院表现如下:一、思想、政治上的表现(思想是意识精神,政治是行动表现)该同志积极参加团支部和党支部组织的活动,认真学习…

个人现实表现材料

同志现实表现鉴定材料安阳市局:,男,汉族,中共党员,现年28岁,本科学历,人。20xx年x月毕业于河南科技学院,同年x月到我校工作至今。现担任我校团委副书记一职。该同志在我校工作期间政治思想、工作、学习及生活上…

关于XXX同学现实表现情况的证明

关于刘晓维同学现实表现情况的证明一思想品德在思想上该生20xx年正式加入中国共 产 党积极上进热爱祖国热爱人民拥护中国共 产 党的领导该生为人谦虚真诚乐于助人心胸宽容大度不计较个人得失待人诚恳友善与同学和谐相处二学习表...

XX同志现实表现材料(老师)

XX同志现实表现材料(老师)XX同志现实表现材料XX,女,19xx年x月出生,本科学历,19xx年x月参加教育工作,现任XX镇XX初中专职音乐教师至今。该同志的现实表现:一、政治素质较高该同志具有较高的政治素质…

个人现实表现材料

个人现实表现材料xxx汉族xxxx年x月参加工作xxxx年xx月加入中国共 产 党现从事xx工作该同志以党性为后盾以政治责任感为动力以党性最强作风最正工作出色为具体要求从思想上作风上加强自身建设恪尽职守竭诚奉献辛勤...

某某同志现实表现材料范本

同志现实表现男壮族出生于19xx年2月19xx年7月参加工作县人在职研究生学历现任科长近三年来同志先后担任等职务在局党组的正确领导下勤勤恳恳任劳任怨较好地完成了各项工作任务该同志主要表现如下一政治思想觉悟高工作...

XX个人现实表现材料

XX同志个人现实表现材料XX男X族X年X月出生XX省XX市人大学本科文化程度XXX年X月毕业于XX大学X年X月至今就职于我公司先后担任我们公司XX该同志的主要表现是一具有较高的政治理论水平良好的政治素养在工作中...

现实表现

同志现实情况表现材料男汉族出生于19xx年6月1日青岛市人本科学历20xx年7月毕业于学院汉语言文学专业20xx年9月在物流有限公司工作至今该同志在思想工作学习生活方面表现如下一思想方面该同志能够自觉遵守国家的...

个人现实表现

个人现实表现1有较好的政治思想素质能认真学习邓小平理论三个代表重要思想和党的路线方针政策牢固树立科学发展观始终保持与时俱进的精神品质能较好地运用法律政策理论科学技术市场经济知识指导实践党性原则强具有较强的组织观...

XXX同志的现实表现

XXX同志现实表现20xx年7月XXX同志曾任区政府副区长区纪委书记等职务20xx年5月经区六届人大三次会议依法选举为区政府常务副区长主要负责区政府日常工作分管政法信访农业和农村经济工作并联系区人大区政协和民主...

现实表现证明

现实表现证明姓名xxx男汉族本科学历中共党员该同志自XXX年xx月到我单位工作以来拥护共 产 党领导热爱祖国团结同事工作踏实无不良生活和工作习惯未发现参与邪教组织未发现违法犯罪行为特此证明xxxxxxxxxxxx年...

现实表现证明

现实表现证明莲湖区人才中心我公司所聘职员身份证号为于20xx年6月毕业于大学材料学院在我公司工作期间表现良好思想进步无不良嗜好无违法乱纪行为和参与非法组织的纪录特此证明二一二年二月十一日开户口准迁证的条件1人才...

学生现实表现(36篇)