C语言课程设计

发布 2022-09-30 16:23:28 阅读 2534

1. 主要功能。

2. 题目分析。

3. 源程序。

4. 调用关系图。

5. 测试流程。

建立有序链表、输出链表数据、节点的有序插入、节点删除、节点数据查询、从文件中整批输入数据、将链表记录写入到文件中、链表逆序存放、删除同名记录、退出管理系统。

本题的主要知识点为链表,以及对文件的操作。

本题中的函数,大都在教材中有类似的例题,因此遇到的问题不太多;但在文件的操作方面则出现了一些问题,例如在第6项输入文件名时,不输入拓展名则会提示找不到文件,第7项时若不输入拓展名,则文件的格式不符合要求。

#include<>

#include<>

#include<>

#include<>

struct stud定义节点结构 */

char name[20];

float sorce;

struct stud *next;

typedef struct stud student;

student *insert(student *head,student *s)

student *p1,*p2;

if(head==null建立首节点 */

p2=p1=head;

while(strcmp(s->name,p1->name)>0&&p1->next!=null中间节点 */

if(strcmp(s->name,p1->name)<=0字符串比较,按姓名排序 */

elsereturn (head);

student *create()

student *p,*head=null;

float k;

printf("please input the student's name and score(if(n) exit):输入第一个数据 */

for循环输入数据 */

while(k<0)

p->sorce=k;

head=insert(head,p);

printf("please input the student's name and score(if(n) exit):");

return (head返回创建链表的首指针 */

void display(student *head)

student *p;

int n=0;

p=head;

if(head==null)

printf("the list is null.");

while(p!=null)

student *insert_a_record(student *head)

student *p;

p=(student *)malloc(sizeof(student));

printf("please input the student's name and score:");

scanf("%s%f",p->name,&p->sorce);

head=insert(head,p);

return(head);

student *delete(student *head,char *name)

student *p1,*p2;

if(head==null链表为空 */

p1=head;

while(strcmp(name,p1->name)!=0&&p1->next!=null循环查找待删除结点 */

if(strcmp(name,p1->name)==0)

else未找到待删除结点 */

printf("the student is not found.");

return(head);

student *delete_a_record(student *head)

char name[20],x;

printf("please input the student's name:");

scanf("%s",name);

printf("if you confirm,please input y,else exit:");

getchar();

scanf("%c",&x);

if(toupper(x)==y')

head=delete(head,name);

return(head);

student *query(student *head,char *name)

student *p;

p=head;

while(p!=null)

return null若找不到,返回空指针 */

student *query_a_record(student *head)

char na[20];

student *p;

printf("please input the student's name:");

scanf("%s",na);

p=query(head,na);

if(p!=null)

printf("name:%s\tscore:%f",p->name,p->sorce);

elseprintf("student %s is not found.",na);

student *addfromtext(student *head,char *filename)

file *fp;

int n,i;

student *p;

if((fp=fopen(filename,"r"))null)

fscanf(fp,"%d",&n);

for(i=0;i

fclose(fp);

return(head);

void writetotext(student *head,char *filename)

student *p;

file *fp;

if((fp=fopen(filename,"w"))null)

printf("can't open %s",filename);

p=head;

while(p!=null)

fclose(fp);

student *reverse(student *head)

student *p1,*p2,*p;

if(head==null)

return(head);

p1=head;

p=p1->next;

p1->next=null;

while(p->name!=null)

return (p1);

student *deletesame(student *head)

student *p2,*p1;

p1=head;

while(p1!=null删除相同姓名的第一条纪录 */

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