C语言链表问题,作业编程。编好出现问题。高手看下。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言链表问题,作业编程。编好出现问题。高手看下。相关的知识,希望对你有一定的参考价值。

课程设计题目:学生成绩管理2(由 完成)
课程设计内容:用C语言编写程序完成以下任务:
学生基本信息包括学号,姓名,计算机成绩,请编程序,实现如下的功能:
(1)创建链表存放学生信息,并将学生信息保存到students.txt文件中。
(2)显示学生信息。
(3)修改指定学号的学生成绩并可存盘。
课程设计要求:
1.贯彻结构化程序设计思想。
2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3.用户界面中的菜单至少应包括“创建链表”、“显示学生信息”、“学生成绩修改”、 “退出”4项。
4.代码应适当缩进,并给出必要的注释,以增强程序的可读性。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>

typedef struct linknode

long number;
char name[21];
int score;
struct linknode *next;
linknode, *linklist;
void input(linklist *h);
void cleanup(linklist h);
void modify(linklist h);
void print(linklist h);

/* 添加学生记录 */
void input(linklist *h)

long num;
linklist p, q;
p = q = NULL;

printf("\n\n请输入学生信息(学号 姓名 成绩 ,学号为0结束):\n");

while (1)

scanf("%ld", &num);

if (num == 0)
break;

p = (linklist)malloc(sizeof(linknode));

if (p == NULL)

cleanup(*h);
exit(-1);


p->number = num;
p->next = NULL;
scanf("%s %d", p->name, &p->score);
getchar();

if (*h == NULL)
*h = q = p;
else

q->next = p;
q = p;



getchar();


/* 释放资源 */
void cleanup(linklist h)

linklist p = h;

while (p != NULL)

h = p->next;
free(p);
p = h;



/* 修改学生记录 */
void modify(linklist h)

if (h == NULL)
return;

char choice, name[21];
long num;
int found = 0;
linklist p = h;

printf("\n\n请选择查询方式:1) 学号 2) 姓名\n");
choice = getchar();
getchar();

if (choice == '1')
scanf("%d", &num);
else
scanf("%20[^\n]", name);

getchar();
while (p)

if (choice == '1' && p->number == num)
found = 1;
else if (!strcmp(p->name, name))
found = 1;

if (found)

printf("请输入新学生信息(学号 姓名 成绩): ");
scanf("%ld %s %d", &p->number, p->name, &p->score);
getchar();
break;


p = p->next;


if (found)
printf("成功更新学生信息\n");
else
printf("找不到学生信息\n");


/* 输出所有学生记录 */
void print(linklist h)

linklist p = h;
printf("\n\n学号\t姓名\t成绩\n");

while (p)

printf("%ld\t%s\t%d\n", p->number, p->name, p->score);
p = p->next;



int main(void)

linklist head, cursor;
head = cursor = NULL;
char choice;

printf("***欢迎使用简单学生管理系统***\n");

while (1)

printf("\n功能选择:\n");
printf("1) 添加记录 2) 显示记录 3) 修改记录 4)退出程序\n");
choice = getchar();
getchar();

switch (choice)

case '1':

input(&head);
break;

case '2':

print(head);
break;

case '3':

modify(head);
break;

case '4':
goto out;



out:
FILE *fp = fopen("students.txt", "w");

if (fp == NULL)

printf("无法打开文件,保存数据出错。。");
exit(-1);


cursor = head;

/* 保存学生记录 */
while (cursor != NULL)

fprintf(fp, "%ld %s %d\n", cursor->number, cursor->name, cursor->score);
cursor = cursor->next;


fclose(fp);
cleanup(head);
return 0;
参考技术A #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LEN sizeof(struct data)
#define N 3//在这修改学生的人数
struct data
int num;
char name[20];
int score;
stu[N];
void main()
int i,j,n,m;
char str[20];
for(i=0;i<N;i++)
printf("学号:");
gets(str);
stu[i].num=atoi(str);
printf("姓名:");
gets(stu[i].name);
printf("成绩:");
gets(str);
stu[i].score=atoi(str);

printf("学号 姓名 成绩\n");
for(i=0;i<N;i++)
printf("%2d%7s%5d\n",stu[i].num,stu[i].name,stu[i].score);
printf("要修改信息的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("\n要修改的学号:");
scanf("%d",&m);
for(j=0;j<N;j++)
if(stu[j].num==m)
printf("修改的成绩为:");
scanf("%d",&stu[j].score);
break;


printf("修改后:\n");
for(i=0;i<N;i++)
printf("%2d%7s%5d\n",stu[i].num,stu[i].name,stu[i].score);

《结对编项目作业名称-设计文档》

项目:关灯游戏,所用软件,pygame 成员:祁昊,刘孝东

关灯游戏设计文档:

pygame作为一种游戏编程语言,以其简单性、可移植性等优点,得到了广泛地应用,
特别是py使用比c,c++等语言简便,使其成为网络编程首选编程语言。,Pygame是
跨平台Python模块,专为电子游戏设计。基于这样一个设想,所有需要的游戏功能
和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以
由高级语言提供,如Python。工具tile编辑器和一个关卡编辑器。得到广大程序员
的接受和认可。

“关灯游戏”是大众化的一个小程序,人们手机中是一个很常见的一个小游戏,人们

对它并不陌生,在紧张 的现在生活中给人们带来了不少的乐趣,我们写的这

个关灯小游戏可以让人们业余时间的适当放松,再繁忙的生活节奏中适当的放
松下来。在这个程序中我用了python语言来编写,运用了python
中的一些常用的功能,python语言是在国内外广泛使用的一种语言。python语言功
能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,
纯粹的面向对象的编程,特别适合用于编写应用软件。代码简单易懂,在游戏的
同时也可以简单的看一下代码有助于初涉python者语言水平的提高。

“关灯”游戏是一个简单的游戏,它因操作简单、娱乐性强而广受欢迎。
基于python技术和pygame开发环境,开发了一个操作简单、界面美观、功能较
齐全的“关灯”游戏。整个游戏程序分为两个功能模块,六个类模块,实现了
游戏的开始、暂停、结束。进行了游戏的概要设计和详细设计。

这个游戏设计的重点之处在于编程思想,对游戏算法的完全理解,和对python
基本功能的完全掌握

这个程序的关键是表示游戏算法。白块和黑块的转换和对游戏生理条件的计算。

以上是关于C语言链表问题,作业编程。编好出现问题。高手看下。的主要内容,如果未能解决你的问题,请参考以下文章

C语言链表问题。。【在线等】【急】

《结对编项目作业名称-设计文档》

链表编程问题

c语言 出现空指针赋值怎么回事???请高手帮忙看下。

C语言编程问题!!高手救命,在线等答案

C语言编程 关于计算时间的问题 望高手解答!