资源简介
编写有一个程序,该程序输入教师编号和完成的教学量,程序允许同一教师有多次输入,由程序对其完成的教学量实现累计。程序按完成数量对他们排序,并确定他们的名次。按完成的教学量由多到少的顺序,输出名次、同一名次的教师人数及他们的编号(编号由小到大顺序输出)。要求程序用有序链表存储数据信息。
提示:教学量包括授课、实验、课程设计、毕业设计。
代码片段和文件信息
#include //标准输入、输出头文件
#include //包含字符串函数处理头文件
#include //包含动态存储与释放函数头文件
#include // system
#define TEALEN sizeof(teanode) //教师信息结构体长度
#define LEN sizeof(Lnode) //链表节点长度
#define MAX 10
int SAME[MAX];
typedef struct teanode
{
char name[10]; //教师姓名
int lesson; //授课工作量
int exper; //实验工作量
int cdesign; //课程设计工作量
int gdesign; //毕业设计工作量
int total; //总工作量
int pos; //排序位置
}teanode*linknode;//教师信息结构体
typedef struct Lnode
{
char no[20]; //教师编号
linknode info; //节点信息详细指针指向教师信息结构体
struct Lnode *prior*next; //双向链表指针域
}Lnode*linklist;//链表节点
void newLnode();
void initlist();
void prin();
void initlist(linklist *T)
{
*T=(linklist)malloc(LEN);
(*T)->info=(linknode)malloc(TEALEN);//为头结点申请空间
(*T)->prior=*T;//设置头结点的前驱指针
(*T)->next=*T;//设置头结点的后继指针
}//初始化双向循环链表
void newLnode(linklist*p)
{
*p=(linklist)malloc(LEN);//新节点
if(!p)
{
printf(“申请节点失败“);
exit(0);
}
(*p)->info=(linknode)malloc(TEALEN);
}
void prin(linklist * L)
{
if(L==NULL)
{
printf(“没有可以显示的信息\n“);
return;
}
linklist p=(*L)->next;
// printf(“********************************************************************************\n“);
printf(“教师编号 教师姓名 工作量排名 工作总量\n\n“);
while (p!=*L)
{
printf(“%7s%9s%10d%10d\n“p->nop->info->namep->info->posp->info->total);
p=p->next;
}
}
void main()
{
linklist input(linklist L);
linklist sort(linklist L);
int j;//用来判断是否结束
linklist L;
initlist(&L);
do{
system(“cls“);//清屏函数
printf(“ ★--- 您好,欢迎进入教师工作量统计系统! ---★\n“);
printf(“================================================================================\n“);
printf( “ -------- ☆ 1.输入教师工作量信息 ☆-------- \n\n“
“ -------- ☆ 2.进行教师工作量排序 ☆-------- \n\n“
“ -------- ☆ 3.显示教师工作量情况 ☆-------- \n\n“
“ -------- ☆ 0.退出 ☆-------- \n\n“);
printf(“================================================================================\n“);
printf(“请在0-3中选择以回车键结束:\n\n“);
scanf(“%d“&j);
switch(j) {
case 1:
L=input(L);
prin(&L);
printf(“录入结束\n“);
system(“pause“);
break;
case 2:
L=sort(L);
printf(“排序成功\n“);
system(“pause“);
break;
case 3:
prin(&L);
system(“pause“);
break;
case 0:;
break;
}
}while(j!=0);
printf(“谢谢使用,再见!\n“);
}//主函数结束
linklist input(linklist L)
{
linklist workload(linklist p);
linklist adworkload(linklist p);
linklist searinsert(linklist Llinklist p);
linklist sort(linklist L);
int flag=0;
char no[10];
linklist p;
p=L->next;
for(;;)
{
if(flag==1)
break;
printf(“请输入教师编号输入@结束:\n\n“);
scanf(“%s“no);
if(no[0]==‘@‘)
{
flag=1;
break;
}
- 上一篇:vc++ 浏览器 完整版
- 下一篇:遥感图像彩色合成C++
相关资源
- C语言课程设计—运动会管理系统(
- c语言课程设计 简易通讯录 源代码
- 进销存货物管理系统数据结构
- 拓扑排序 ---排课表----数据结构
- c++面向对象课程设计报告_(学生成绩
- C语言课程设计--商场商品信息管理系
- C语言课程设计万年历
- 银行排队系统课程设计
- 物业管理系统c++ 课程设计源码
- 数据结构c语言版-单链表的操作程序代
- 编译原理-简单编译器课程设计C语言源
- 进程调度时间片轮转+优先级进程调度
- 数据结构 C语言 迷宫问题求解 栈
- 专业课程设计—温度控制系统-包含(
- 杂志订阅管理系统
- 数据结构课程设计交通信息管理系统
- C语言课程设计报告-长整数四则运算
- 数据结构课程设计 通讯录的制作
- C++哈夫曼编码与译码课程设计实现源
- 数据结构课程设计——族谱管理系统
- 使用opengl的图形学大作业
- 数据结构C语言版_伙伴系统.txt
- 操作系统课程设计 文件管理系统模拟
- 表达式求值C语言实现《数据结构》课
- mfc 课程设计 view 浏览器 收藏夹
- 校园导游图(C++)
- 课程设计报告+源码--计算器(C++)
- 校园导游咨询 C程序
- 航空售票订票系统++数据库课程设计
- 销售管理系统-C语言课程设计
评论
共有 条评论