C语言学生学习成绩管理系统实验报告(2)

2020-02-21 02:46

空时停止并返回主菜单选择。直接在输出数值时添加mscore+escore+cscore作为总成绩加到信息最后一列。 (4)show函数

为了能让用户输入字符串,依然是定义一个开关,此时的开关条件无最大值,添加信息时直接调用show函数即可实现学生信息的输入。 (5)printf函数

编写显示函数用来输出链表中结点信息, stu型指针r,接着r=*s初值为头指针,用printf方法输出存储学生信息,最while(r!=NULL){??}实现当表中有信息即不为空,就执行while中的内容,打印出学生的各个信息。 (6)delete函数

用来删除记录,先用 if(!s->next) {printf(\no student!\\nplease add at frist!\验证学生信息是否为空,如果为空则输出“please add first”。如果不为空,先选择按学号删除或按姓名删除,然后调用函数stu* Locate(stu *s,char find[],int k)查找要删除的记录。然后用freep()执行记录清空。 (7)insert函数

用来插入学生记录,定义二个指针为p和l,l为前驱,p为插入数据的位置。如果遇到相同学号的则显示输入有重复并显示原来学号的信息。如不然则用scnf和printf输入输出数据,并在运行结束后把指针置尾。 (8)sort函数

根据不同的要求实现成绩从大到小排列,程序中采用的使选择法进行排序,排序过程中调用swap函数实现数据的排列。这样就能按不同要求把数据排列了 。

3.8程序调试与测试(结果分析) 1.函数主界面

6

2.选择第一项实现添加数据如下

3.选择2进行修改编辑

4.选择3进行删除成绩

5.选择4进行排序显示成绩

6.选择5进行查找成绩

7

7.选择6提供载入信息条数

8.选择7保存

9.选择0关闭

要保存选Y不想保存先N。

结果分析

程序运用了结构体,链表,转换和选择法排序实现了删除,添加,信息载入,查询等功能。

(1)单链表查找算法的最好的时间复杂度为o(1),最坏时间复杂度o(n),平均时间复杂度o(n);空间复杂度为o(1)。

(2)单链表插入算法时间复杂度o(n);空间复杂度为o(1)。 (3)系统基本上实现了小型学生管理系统的功能。 4.总结

C语言使上学期教的,现在开始做这个课程设计刚开始有点仿偟,不知道何从下手,最后搬出书本有看了一下,网上查点资料,仔细阅读老师给的任务指导书,开始着手做这个学生成绩管理系统,其原因使该算法简便,程序贴近学生生活,该程序的目的使实现学生成绩的粗略管理。设计过程经过了任务定义,逻辑设计、详细设计、程序编码、程序调试与测试、结果分析和撰写实验报告,最终系统地完成整个课程的设计。

该系统是小型管理系统,运行界面为DOS界面,始终存在不足,从这次设计

8

中我深刻的体会C设计的意义,我觉得编程除了麻烦也是一件有趣的事情。

参考文献

[1] 谭浩强.C程序设计[M]北京:清华大学出版社, 2005.292页-310页. [2] 苏仕华. 数据结构课程设计[M].上海:机械工业出版社,2004. [3] 谭浩强.C程序设计题解与上机指导[M]北京:清华大学出版社,2005.

附录

#include

#include//提供malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、

srand()、exit()/

#include//字符串调用 typedef int status;

int change = 0; // 信息是否改变 typedef struct student{ int num; // 学号 char name[20]; // 姓名 int mscore; // 数学成绩 int cscore; // c语言成绩 int escore; // 英语成绩 struct student *next;//定义指针 }stu;//定义对象stu

void showmenu(){

printf(\printf(\ *\printf(\ *\printf(\ *\printf(\ *\printf(\ *\printf(\ *\printf(\ *\

9

printf(\ *\printf(\ *\printf(\ *\printf(\

} //给出菜单选择

void show(stu *s,int k){ // 用指向StU对象的指针输出学生信息 switch(k){

case 0:printf(\ mscore cscore escore allscore\\n\

case 1:

printf(\ mscore cscore escore allscore\\n\ printf(\ m m m\\n\

s->cscore,s->escore,(s->mscore+s->cscore+s->escore));

break; default:

printf(\ m m m\\n\

s->cscore,s->escore,(s->mscore+s->cscore+s->escore));

break;

} }

void showid(stu *s){// 显示学生学号对应的姓名

while(s->next){ s = s->next;

printf(\

} }

stu* Locate(stu *s,char find[],int k){ // 该函数用于定位连表中符合要求的接点, 返回该指针 stu *r;

if(strcmp(find,\按学号查询 r = s->next;

10


C语言学生学习成绩管理系统实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重大风险分析研判报告(终稿) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: