问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

《数据结构》课程设计

发布网友 发布时间:2022-04-25 14:51

我来回答

2个回答

热心网友 时间:2023-10-10 01:22

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

void read_func(void);
void write_func(void);
void insert_func(void);
void sort_func(void);
void delete_func(void);
void display_func(void);
void modify_func(void);
void anykey_func(void);

struct student
{
char name[20];
int score;
struct student *next;
};

struct student *ptr, *head, *current, *prev;//全部声明为全局变量

int main(void)
{
char option1;

system("cls");//清屏
read_func();
while(1)
{
printf("****************************************\n");
printf(" 1.insert\n");
printf(" 2.delete\n");
printf(" 3.display\n");
printf(" 4.modify\n");
printf(" 5.quit\n");
printf("****************************************\n");
printf(" Please enter your choice (1-5)...");
option1=getche();
printf("\n");
switch(option1)
{
case '1':
insert_func();
break;
case '2':
delete_func();
break;
case '3':
display_func();
break;
case '4':
modify_func();
break;
case '5':
// write_func();
exit(0);//这里也处理的比较好
}
}
}

void read_func(void)
{
FILE *fptr;

head=(struct student *) malloc(sizeof(struct student));
head->next = NULL;

/* 开始时,若表中不存在数据,则要求输入第一笔数据 */
if((fptr=fopen("slist.dat","r")) == NULL)
{
printf(" Data file not exist\n");
printf(" Press any key to edit first record...\n");
getch();
insert_func();//不存在就实行插入操作
}
else
{
ptr=(struct student *) malloc(sizeof(struct student));
while(fscanf(fptr, "%s %d", ptr->name, &ptr->score) != EOF)
{
sort_func();
ptr=(struct student *) malloc(sizeof(struct student));
}
fclose(fptr);
}
}

void write_func(void)
{
FILE *fptr;

fptr=fopen("slist.dat","w");
current=head->next;
while(current != NULL)
{
fprintf(fptr, "%s %d\n", current->name, current->score);
current = current->next;
}
fclose(fptr);
}

void insert_func(void) //一插入就比较字符串(2 2想比较很简单) 不是等到全部插完了才比较
{
char s_temp[4];
ptr=(struct student *) malloc(sizeof(struct student));
printf(" Student name : ");
gets(ptr->name);
printf(" Student score: ");
gets(s_temp);
ptr->score = atoi(s_temp);//把字符串转化为 整数 为什么不直接把成绩存在ptr->score ???

sort_func();
}

/*以分数高低由大到小排列*/
void sort_func(void)
{
//插入数据
prev = head;
current = head->next;
while ((current != NULL) && (current->score > ptr->score))
{
prev = current;
current = current->next;
}
ptr->next = current;
prev->next = ptr;
}

void delete_func(void)
{
char del_name[20];
printf(" Delete student name: ");
gets(del_name);

prev = head;
current = head->next;
while ((current != NULL) && (strcmp(current->name , del_name)!=0))//用到了strcmp 比较字符串
{
prev = current;
current = current->next;
}
if (current != NULL)
{
prev->next = current->next;
free(current);
printf(" %s student record deleted\n",del_name);
}
else
printf(" Student %s not found\n",del_name);

anykey_func();
}

void modify_func(void)
{
char n_temp[20],s_temp[4];
printf(" Modify student name: ");
gets(n_temp);//这样输入姓名
current=head->next;

while ((current != NULL) && (strcmp(current->name , n_temp)!=0))
{
prev = current;
current = current->next;
}
if (current != NULL)
{
printf(" **************************\n");
printf(" Student name : %s\n",current->name);
printf(" Student score: %d\n",current->score);
printf(" **************************\n");
printf(" Please enter new score: ");
gets(s_temp);
current->score = atoi(s_temp);
printf(" %s student record modified\n",n_temp);
}
else
printf(" Student %s not found\n",n_temp);

anykey_func();
}

void display_func(void)
{
int count=0;
system("cls");
if(head->next == NULL)
{
printf(" No student record\n");
}
else
{
printf(" NAME SCORE\n");
printf(" ---------------------------\n");
current=head->next;
while(current != NULL)
{
printf(" %-20s %3d\n", current->name, current->score);
count++;
current=current->next;
if(count % 20 == 0) getch();
}
printf(" ---------------------------\n");
printf(" Total %d record(s) found\n", count);
}
anykey_func();
}

void anykey_func(void)//任何键继续
{
printf(" Press any key to continue...");
getch();
printf("\n");
}

热心网友 时间:2023-10-10 01:22

http://ke.baidu.com/view/9900.htm?fr=ala0_1_1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
易企秀如何分享链接给微信好友?-易企秀分享链接给微信好友的方法 华为荣耀3c系统辅助功能服务老是自动关闭,求解决方案。 我用一键清理忽... 华为荣耀3c手机双击唤醒屏幕不好用了怎么办? 荣耀手机刷机包从哪下 木地板为啥走过会响 瓷砖块要斜成几度角人踩上去不会烂 刚出生的婴儿肚子胀怎么办 新生儿涨肚子按摩图 刚生小宝宝胀气怎么办 白果怎么炒好吃 白果可以制作哪些美食 《数据结构》课程设计题目急急!!! 数据结构课程设计题目 1. 运动会分数统计   任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个 我的数据结构课程设计!!! 一道数据结构课程设计题目 数据结构课程设计题目:猴子选大王问题 安卓手机qq 什么都很正常 就是一点进群对话马上闪退 刚刚还好好的 重启了也没用 在线等解决方法 东方卫视《加油2008》女主持人是谁啊?有她的个人资料吗? 上海东方卫视女主持人何捷的出生年月? 谁知道东方卫视看东方主持人尹红的个人资料 东方卫视主持人 这个人是谁 求简介 东方卫视看东方节目的这女主持人叫什么名字? 东方卫视主持人丹丹近况如何? 东方卫视的女主持人有哪些? 上海女主持人有哪些? 我想问下上海电视台的丹丹,贝贝,万蒂妮都是几几年出生的啊? 东方卫视有几位女主持人 她们叫什么? 陈蓉房海燕暂时无法出镜,单位里还有哪些当红的女主持人? 唐嫣将主持东方卫视春晚,她的主持功底如何? 陈蓉正式转为幕后人员,东方卫视的五大女主持人,谁将成为新一姐?_百度... 正常性生活多少时间最佳!! 几个数据结构的课程设计题目 数据结构课程设计题:链表操作 一、 设计目的 1.掌握线性表的在顺序结构和链式结构实现。 2.掌握线性表 数据结构课程设计题 数据结构课程设计题目,图的建立以及遍历。 数据结构课程设计,求大神,只做其中一题 紧急!数据结构课程设计 题目:哈夫曼树的建立(由键盘输入各个节点,并建立二叉树,能实现对二叉树的查询 《数据结构》的课程设计,题目是请设计一个算法,把二叉树的叶子结点按从左到右的顺序连成。 求《数据结构》课程设计(题目:算术表达式求值) 求问!!!数据结构课程设计题:病毒测试程序。(c语言) 数据结构-课程设计:二叉排序树的实现 怎样洗螃蟹和做螃蟹 为什么QQ中有一个群只要点开QQ就会闪退 ACA电烤箱顶部的煎烤盘要一直放着么? ACA烤炉上配的那个煎烤盘可以干嘛啊 ACA烤箱ATO-MF24C烤盘能直接放在加热管上吗 ACA16L烤箱的烤盘那里可以买到? ACA电烤箱 VTO-9F-1 容量:9L 功率:800w 包装尺寸:408*293*283(mm) 这个烤箱能放多少寸的烤盘啊 请问ACA18升的烤箱最大可以几寸的PIZZA烤盘? 数码暴龙亚古兽所有进化形态的图 数码宝贝1,2部所有数码宝贝进化图