资源简介
编写有一个程序,该程序输入教师编号和完成的教学量,程序允许同一教师有多次输入,由程序对其完成的教学量实现累计。程序按完成数量对他们排序,并确定他们的名次。按完成的教学量由多到少的顺序,输出名次、同一名次的教师人数及他们的编号(编号由小到大顺序输出)。要求程序用有序链表存储数据信息。
提示:教学量包括授课、实验、课程设计、毕业设计。
代码片段和文件信息
#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语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 宠物管理系统课程设计(源码+数据库
- 数据结构教程李春葆第五版书中例题
- c语言课程设计:客房登记系统源码
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 8位竞赛抢答器的课程设计报告.docx
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- VC++MFC课程设计的学生成绩管理系统
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- C++实现21点游戏
- c++课程设计学生管理系统浙工大源码
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 课程设计: MFC 学生信息管理系统
评论
共有 条评论