C语言课程设计

发布 2022-09-30 17:15:28 阅读 3378

——学生成绩简单管理程序二。

姓名: 学号:

学院: 1.程序功能;

(1)create()含函数(建立有序单项链表)

从键盘上输入一个学生的姓名和成绩,以姓名为序建立有序链表。插入一条记录后,显示提示确认是否输入下一条记录,如确定,继续输入,否则,退出输入功能。

2) display all record(显示所有结点记录)

按顺序显示链表中所有记录,每屏显示10条记录。每显示10条,按键继续显示下一屏。

3)insert a record (插入一条结点记录)

在以姓名为序排列的链表中插入一条记录,插入后,链表仍有序。输出插入成功的信息。

4)delete a record ( 按姓名查找,删除一条结点记录)

输入待删除记录的姓名,显示提示信息,让用户再次确定是否要删除。确定后,将该姓名的记录删除。

5) query (查找并显示一个结点记录)

输入姓名,查找该记录,并显示该同学的成绩‘

6) add records from text file(从正文文件中添加数据到链表中)

用户可事前建立一个正文文件存放多个待加入的记录。提示输入正文文件的文件名,然后从该文件中一次性加入多条学生记录,文件格式如下:

wangxiao 95

liulin 87

(7) write to a text file

将链表中的全部记录写入文件要求文件格式和文件相同。

1) quit (退出学生成绩管理程序)

释放链表存储空间。

2.题目分析。

1)建立有序链表,可以用书上的创建有序链表函数structure node *create_sort()。

2) 输出链表数据,这个可以借用书上的 void printf()函数。但是它还要求10条一屏显示,这就要在输出时限制输出的条数。

3) 结点的有序插入。

先编写student *insert_a_record()函数,在次函数中输入学生的姓名和成绩,在调用insert()函数插入。

4) 结点删除。

先编写delete_a_record()函数,输入要删除的学生姓名,在调用delete()函数删除。这函数,可借鉴书上的delete_one_node()函数。

5)结点数据查找。

先在函数query_a_record()中输入待查找的姓名,在调用函数query()进行查找。可以借鉴书上的search()函数。

6) 从文件中整批输入数据。

7) 将链表结点记录写入到文件中。

从以上的函数来看,大部分函数都可以在书上找到相关的函数,这编写起来比较容易,虽然课设中有新的要求,但这问题不大。总的来说时比较好做的。

3.感想心得。

选择这个课设题目的原因时因为,有许多函数可以在书上找到,会比较容易。虽然,书上都有。但是编写起来还时遇到了许多麻烦。

有时是一个小错误,一个符号的错误,很难发现,就会和花时间。在遇到问题时,很难一个人解决,大部分问题都时找同学一起解决的。还有如果书上没有有关的函数,自己一个人时很难编写出来的。

也发现了,自己在编写时,有时很粗心,导致一些难发现的错误。

4.源程序。

#include<>

#include<>

#include<>

struct stud

char name[20]; 姓名*/

int score; /分数*/

struct stud *next; /指向下一结点的指针*/

typedef struct stud student;

int menu_select();菜单函数*/

struct stud *creat();建立有序列表*/

struct stud *insert();插入结点*/

struct stud *display();显示所有结点记录*/

struct stud *insert_a_record();插入新的姓名分数*/

struct stud *delete();删除信息*/

struct stud *delete_a_record();删除信息*/

struct stud *query();查找信息*/

struct stud *query_a_record(student *head);/查找信息并显示其信息*/

struct stud *addfromtext();从正文文件中添加数据到链表中*/

void writetotext();把链表中的数据写入文件*/

void quit();退出程序*/

void main()/主函数*/

struct stud *head;/*定义头指针*/

student stud;

char name[10];

for( ;

int menu_select()/菜单函数*/

char c;

dowhile(c<'0' |c>'9');

return(c-'0');

student *creat()/创建链表函数*/

student *p, *head;

char str[10];int score;

head=null;

printf("creat an increasing list...n");

printf("please input a student's name and score((-1)stop):

scanf("%s%d",str,&score); 输入学生信息*/

while(score!=-1) /循环输入,当输入的分数是-1时,停止*/

return(head);/返回链表头指针*/

student *insert(student *head,student *p)/*insert()函数,有序的插入,是链表保持有序*/

student *p1, *p2;

if(head==null)/*插入前为空链表*/

p2=p1=head;

while(strcmp(p->name,p1->name)>0&&p1->next!=null)

{ p2=p1;p1=p1->next; /指向后一个结点,p2指向的结点在p1指向的结点之前*/

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月 计算机科学与技...