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

c++课程设计,急,谢谢了,请把代码发到邮箱361432126qq.com

发布网友 发布时间:2024-09-27 17:45

我来回答

1个回答

热心网友 时间:2024-11-25 11:46

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

typedef struct stud //学生信息结构
{
long num;
char name[20];
float score;
}Stud;

typedef struct node
{
Stud student;
struct node *next;
}Node;
Node *head=NULL;
void read(void);
void inser(long b);
void print();
void find(long b);
void searchname(char *s);
Node * del(long n);
void sort(int flag);
void menu();

void main()
{
char choose;
int flag=1;

while (flag)
{
menu(); //调用功能菜单函数,显示菜单项。
printf(" 请选择:");
choose=getchar();

switch(choose)
{ 1
case '1': read(); //调用建立链表的函数;输出链表信息;
print();
printf("\nPress any key Continue ");
//getchar();
getchar();
break;
case '2': //调用按学号查找学生信息的函数;并输出查找结果信息;
long c;
printf("input the number you want to find:");
scanf("%ld",&c);
find(c);
printf("\nPress any key Continue.");
getchar();
break;
case '3':
//调用按姓名查找学生信息的函数;并输出查找结果信息;
char s[20];
printf("input the name you want to find:");
scanf("%s",s);
searchname(s);
printf("\n Press any key Continue.");
getchar();
getchar();
break;
case '4':
//调用根据学号删除某个学生信息的函数;并输出删除后的链表信息;
Node *h;
long n;
printf("input the number you want to delete:");
scanf("%ld",&n);
h=del(n);
if(h==NULL) printf("No find the student \n");
else print();
printf("\n Press any key Continue.");
getchar();
getchar();
break;
case '5':
//调用插入新的学生信息的函数;并输出插入后的链表信息;
long a;
printf("input the number for the new:\n");
scanf("%ld",&a);
inser(a); 2
print();
printf("\n Press any key Continue.");
getchar();
getchar();
break;
case '6':
//调用按分数降序排序输出的函数;并输出排序后的链表信息;
sort(1);
print();
sort(0);
printf("\nPress any key Continue.");
getchar();
getchar();
break;
case '0':
//结束程序运行!
flag=0;
printf("\n *** The End! ***\n");
break;
default: printf("\n Wrong Selection !(选择错误,重选)\n");
getchar();
}
}
}

void menu() //综合作业功能菜单
{
printf(" \n 学 生 信 息 管 理 系 统\n");
printf(" \n 菜 单\n\n");
printf(" \n 1. 建 立 链 表 并 显 示 \n");
printf(" \n 2. 查 找 某 学 号 的 学 生 信 息 \n");
printf(" \n 3. 查 找 某 姓 名 的 学 生 信 息 \n");
printf(" \n 4. 删 除 某 个 学 号 的 学 生\n");
printf(" \n 5. 插 入 新 的 学 生 信 息 \n");
printf(" \n 6. 按 分 数 降 序 排 序 输 出 \n");
printf(" \n 0. 退 出\n\n");
}

void read(void)
{
long a;
printf("input the number:");
scanf("%ld",&a);
while(a>0){ 3
inser(a);
printf("input the number:");
scanf("%ld",&a);
}
}
void inser(long b)
{

Node *last,*current,*p;
current=head;
while(current!=NULL&&b>current->student.num){
last=current;
current=current->next;
}

if(current==NULL||b<current->student.num){
printf("input the name,score:");
p=(Node *)malloc(sizeof(Node));
p->student.num=b;
scanf("%s%f",p->student.name,&p->student.score);
p->next=NULL;
if(current==head){
p->next=head;
head=p;
}
else{
p->next=current;
last->next=p;
}
}
else if(b==current->student.num)
printf("error input a different number:");

}

void print()
{
Node *p=head;
printf("学号 姓名 成绩:\n");
while(p!=NULL){
printf("%ld %s %f\n",p->student.num,p->student.name,p->student.score);
p=p->next;
} 4
printf("\n");
}
void find(long b)
{
Node *p=head;
while(p!=NULL&&b!=p->student.num)
p=p->next;
if(!p) printf("No found\n");
else {
printf("学号 姓名 成绩\n");
printf("%ld %s %f\n",p->student.num,p->student.name,p->student.score);
}

}

void searchname(char *s)
{
Node *p=head;
int flag=0;
printf("学号 姓名 成绩:\n");
while(p!=NULL)
{
if(strcmp(p->student.name,s)==0)
{
printf("%ld %s %f\n",p->student.num,p->student.name,p->student.score);
flag=1;
p=p->next;
continue;
}
else p=p->next;
}
if(!flag) printf("No find");
}
Node * del(long n)
{
Node *p=head,*last;
while(p->student.num!=n){
last=p;
p=p->next;
}
if(p==NULL) return p;
else if(p==head) head=p->next;
else last->next=p->next; 5
return head;
}
void sort(int flag)
{
/*flag==1 按分数排序 else 按学号排序*/
Node *p1,*p2,*k;
float t1;
long t2;
char s[20];
for(p1=head;p1->next;p1=p1->next)
{
k=p1;
for(p2=p1->next;p2;p2=p2->next)
if(flag==1&&k->student.score<p2->student.score||!flag&&k->student.num>p2->student.num)
k=p2;
if(k!=p1){
t1=p1->student.score;
p1->student.score=k->student.score;
k->student.score=t1;
t2=p1->student.num;
p1->student.num=k->student.num;
k->student.num=t2;
strcpy(s,p1->student.name);
strcpy(p1->student.name,k->student.name);
strcpy(k->student.name,s);
}
}
}
给你看看
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 ...每天晚上睡觉都做梦,然后梦里的情景记得清清楚楚,连... ...我为什么会天天做梦,梦醒了还会记得那么清清楚楚,包括各个细节?_百度... 暴走吧球球游戏安卓APK 名爵6启动不了没反应是怎么回事 水平面上的一个物体受一个水平夹角为θ方向斜向下的推力F作用下前进了... 一个木箱放在水平面上,箱内有一固定的竖直杆,在杆上套一个小环,环的... 中考朋友祝福语和鼓励的话(繁星点点,星光璀璨——2023中考祝福语句子... ...的A点处固定一根轻杆a,杆与天花板保持垂直,杆的下端有一个轻... 中考毕业祝福语和鼓励的话简短 苦瓜素好使么? 苦瓜素哪卖的好? 自然堂 苦瓜素减肥有没有用啊?效果如何,会便秘吗?广告的滚!!!_百度... 自然堂苦瓜素有用吗? 求分享倚天屠龙记邓超版 百度云 苦瓜素减肥吗?药房里卖的苦瓜素是纯的吗?一个月减多少? 中铁十一局二公司海南项目举办工地集体生日宴 桂林恒大广场中铁十一局的法人代表是谁 谢谢 中铁十一局四公司简介 微信朋友圈能不能发实况图片 租车有哪些好处 七个在线图片生成网站!非常牛批! 有关高二化学平衡问题 可逆反应中各物质的反应速率不是等于化学计量数之... ...化学计量数比,各自反应速率等于化学计量数之比吗??(在线 莴苣是莴笋吗?!教你如何快速辨认莴苣和莴笋! 续费活动气泡网页打不开,显示一片空白是怎么回事,数据也清除了,卸... ...各物质的物质的量的比值是化学计量数之比吗?如果是不平衡的时候哪... 化学方程式中的化学计量数之比 等于参加反映各物质的物质的量之比 谷歌浏览器关闭气泡 跪求高中化学高手,不是速率之比等于化学计量数之比吗? 刀刺在背传说来源 一刀传说手游安卓APK 红茶怎么泡才好喝,6个步骤教会您冲泡红茶 广州卡尔迅驾校怎样退学费!NND,我从去年5月到现在才安排我九选三,火... 手机qq音乐下载的歌曲保存在哪里了 手机下载的音乐在哪个文件里面 手机qq音乐下载的歌曲在哪个文件里面? 广州南沙鱼窝头驾校现在通过率怎么样?有没有现在鱼窝头驾校学习的朋友... 手机百度音乐下载的歌曲在哪里查找? 在哪能找到下载的歌曲在哪个文件夹里? 辽宁省建筑市场管理条例简介