课程设计报告。
课程名称:程序设计语言课程设计任课教师:尹剑伟。
设计题目:学生成绩管理系统所学专业:信息管理与信息系统班级学号:0911080207学生姓名:钟华。
报告完成日期:2023年09月29日。
一、题目(问题)描述。
用结构体数组结构实现简单的学生管理成绩管理功能,要求具有数据输入、数据输出、数组排序、元素插入、元素删除、查询等功能。
二、功能分析。
数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其。
选修课程信息;
数据的插入:插入某个学生信息;
数据的查询:如按学号查询、按姓名查询等;
数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从。
高到低的次序输出学生信息;
列出不及格学生清单(学号、姓名、不及格的课程和成绩)。考虑用文件把数据保存起来(可选)。
三、系统设计1.程序总体结构。
程序中由主模块负责协调各功能模块的工作。进入程序后,根据输入操作,执行相应的录入、注销、挂失、查询、显示、统计、退出等功能。
学生成绩管理系统。
录入注销挂失查询。
显示统计。退出。
2.界面设计。
3.输入方式设计。
此程序为vc下程序,因此简化为键盘控制。
4.重要数据的数据结构设计。
struct student/*定义结构体数组*/
struct student stu[40]
5.函数设计。
函数原型函数功能。
学生成绩输入。
函数处理描述用for循环和if条件语句,通过调用input_one_record()函数,对学生成绩进行输入。
int input()
void sort_by_name()
排序。用for循环语句,通过调用void sort_by_
name()函数进行排序。
void query_a_record()
查找一个学生的成绩记录。
用if条件语句调用函。
数query,判断要查找的记录是否存在。
void display()
输出所有学生的成绩记用for循环和if条件语录句,通过调用void
display()函数,对学生。
成绩进行输出。
四、关键技术、难点及其解决方法。
插入信息:本系统采用的是按学号顺序来进行插入的,在这一功能的设计中,首先在开辟一个结构体空间将插入学生的信息存储于其中,在采用判断语句和循环语句来查找该条信息应该插入位置的地址,将上一结点的下行指针指向本结点,再将该节点的下行指针指向下一个结点从而达到插入信息的目的。在这一功能的设计中我感到插入的具体算法是个难点。
五、测试方法。
1.按键测试。检查正确的输入时,是否界面正确表现;错误输入时,是否无效。
2.程序运行测试。正确运行,观察是否异常;运行时中断,程序是否正确退出。随时中断是否可以,可以、进行。不可、重新修改。
六、总结。通过这次的课程设计,我收获了很多。在设计的过程中,我对课本的内容有了进一步的了解,编程及调试程序的能力都得到了较大的提高。
每个函数都调试了n多次,经常报错,当时真的很想砸电脑,不过当我写完了之后又非常地高兴很有成就感,从而促使我继续下去。而且在写程序时候开始没什么头绪,好不容易写出来一点东西又二三十个错,或者就是根本没有实现我想要它实现的功能,但是到后来慢慢的就越写越顺畅,真的很有意思啊!
附录**清单。
#include<>#include<>#include<>#include<>
struct student/*定义结构体数组*/;
int menu_select();
struct student input_one_record()/输入一个学生的成绩记录*/
int input(struct student stu,int n)/*输入学生成绩记录*/
return n+1;}
void display(struct student stu,int n)/*输出所有学生的成绩记录*/}
void sort_by_name(struct student stu,int n)/*排序*/
if(p!=i)/*判断最小数据是否在第一个*/}
printf("succeed!");
int insert_a_record(struct student stu,int n)/*插入一个学生成绩记录*/
int insert(struct student stu,int n,struct student *s)/*有序插入*/
int delete_a_record(struct student stu,int n)/*删除一个学生的成绩记录*/
int delete(struct student stu,int n,struct student *name)}
void query_a_record(struct student stu,int n)/*查找一个学生的成绩记录*/
if(i<=n-1)/*判断要查找的记录时候存在*/return i;/*存在,返回下标i*/
else return -1;/*不存在,返回提示信息*/}
int addfromtext(struct student stu,int n)/*从文件中整批输入*/
fscanf(fp,"%d",&num);
for(i=0;in+=num;fclose(fp);
sort_by_name(stu,n);/调用函数sort_by_name排序*/return n;}
void writetotext(struct student stu,int n)/*将记录写到文件*/
fprintf(fp,"%d",n+1);
for(i=0;i<=n-1;i++)循环将记录写到文件中*/fprintf(fp,"%s\t%f",stu[i].name,stu[i].score);fclose(fp);
printf("succeed!");
void quit(){
void main()/主函数*/}
int menu_select()/显示主菜单*/ while(c<'0'||c>'8');return(c-'0');
C语言课程课程设计
课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...