c语言课程设计 求C语言课程设计的源代码

作者&投稿:店榕 (若有异议请与网页底部的电邮联系)
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"process.h"

/*单链表结构*/
typedef struct LNote {
char num[15];
char name[10];
int score;
struct LNote *next;
}LNote,*List;

/*初始化*/
List Start()
{
List L;
L=(List)malloc(sizeof(LNote));
L->next=NULL;
return L;
}

/*插入并排序*/
void Insert(List L,char num[],char name[],int score)
{
List pre,p,s;
p=L;
s=(List)malloc(sizeof(LNote));
strcpy(s->num,num);
strcpy(s->name,name);
s->score=score;
do {
pre=p;
p=p->next;
} while(p!=NULL&&s->score<p->score);
s->next=pre->next;
pre->next=s;
printf("\n\t\t\t\t插入成功");
}

/*删除*/
void Delete(List L,char num[])
{
List pre,p;
p=L;
if(p->next==NULL) {
printf("\n\t\t\t\t记录为空");
goto end;
}
while(p!=NULL&&strcmp(p->num,num)!=0) {
pre=p;
p=p->next;
}
if(p==NULL) {
printf("\n\t\t\t\t没有该学生的数据");
goto end;
}
if(strcmp(p->num,num)==0) {
pre->next=p->next;
free(p);
printf("\n\t\t\t\t删除成功");
}
end:
printf("\n");
}

/*遍历*/
void Traverse(List L)
{
List p;
p=L->next;
if(p==NULL)
printf("\n\t\t\t\t没有记录");
else {
printf("\n\t\t学号\t\t姓名\t成绩\n");
while(p!=NULL) {
printf("\t\t%-15s%-10s%-5d\n",p->num,p->name,p->score);
p=p->next;
}
}
}

/*查找*/
void Find(List L,char num[])
{
List p;
p=L;
while(p!=NULL&&strcmp(p->num,num)!=0)
p=p->next;
if(p==NULL)
printf("\t\t\t\t没有找到");
else {
printf("\n\t\t学号\t\t姓名\t成绩\n");
printf("\t\t%-15s%-10s%-5d",p->num,p->name,p->score);
}
}

/*保存*/
void Save(List L)
{
FILE *fp;
List p;
p=L->next;
if((fp=fopen("学生管理.txt","w"))==NULL) {
printf("文件打开失败\n");
exit(1);
}
while(p!=NULL) {
fprintf(fp,"%-15s%-10s%-4d\n",p->num,p->name,p->score);
p=p->next;
}
printf("\n\t\t\t\t保存成功");
}

/*统计*/
void Tegether(List L)
{
List p,q;
float a=0,b=0,c=0,length=0;
q=L->next;
while(q!=NULL) {
length++;
q=q->next;
}
if(length==0)
printf("\n\t\t\t\t记录为空\n");
else {
p=L->next;
while(p!=NULL) {
if(p->score>=80&&p->score<=100)
a++;
if(p->score>=60&&p->score<80)
b++;
if(p->score>=0&&p->score<60)
c++;
p=p->next;
}
printf("\n\t优秀%.0f人数\t及格%.0f人\t\t不及格%.0f人\n",a,b,c);
printf("\t优秀率%-3.2f\t及格率%-3.2f\t不及格率%-3.2f",a/length,b/length,c/length);
}
}

/*读取文件*/
void Read(List L)
{
FILE *fp;
char num[15];
char name[10];
int score;
List s,pre;
if((fp=fopen("学生管理.txt","r+"))==NULL)
printf("文件打开失败");
printf("%s\t\t%s\t%s\n","学号","姓名","成绩");
pre=L;
while(!feof(fp)) {
fscanf(fp,"%s%s%d\n",num,name,&score);
printf("%-15s%-10s%-4d\n",num,name,score);

s=(List)malloc(sizeof(LNote));
strcpy(s->num,num);
strcpy(s->name,name);
s->score=score;

pre->next=s;
pre=s;
}
s->next=NULL;
if(fclose(fp))
printf("文件关闭失败");
}

int scan()
{
int d,c=2;
printf("\t\t\t\t%c 1.初始化 %c\n\n",c,c);
printf("\t\t\t\t%c 2.输入数据 %c\n\n",c,c);
printf("\t\t\t\t%c 3.删除数据 %c\n\n",c,c);
printf("\t\t\t\t%c 4.遍历 %c\n\n",c,c);
printf("\t\t\t\t%c 5.保存为数据文件 %c\n\n",c,c);
printf("\t\t\t\t%c 6.查找 %c\n\n",c,c);
printf("\t\t\t\t%c 7.统计 %c\n\n",c,c);
printf("\t\t\t\t%c 8.读取数据文件 %c\n\n",c,c);
printf("\t\t\t\t%c 9.退出 %c\n\n",c,c);
do {
printf("\t\t\t\t 输入操作:");
scanf("%d",&d);
if(d<=0||d>9)
printf("\n\t\t\t\t无此操作\n\n");
} while(d<0||d>9);
return d;
}

main()
{
int quit=0,score;
char name[10],num[15];
List L;
L=Start();
printf("\t\t\t\t***** 欢迎使用 *****\n\n");
while(!quit) {
switch(scan()) {
case 1:
Start();
printf("\n\n");
break;
case 2:
printf("\n\t\t\t\t学号:");
scanf("%s",num);
printf("\n\t\t\t\t姓名:");
scanf("%s",name);
printf("\n\t\t\t\t分数:");
scanf("%d",&score);
Insert(L,num,name,score);
printf("\n\n");
break;
case 3:
printf("\n\t\t\t\t输入学号:");
scanf("%s",num);
Delete(L,num);
printf("\n");
break;
case 4:
Traverse(L);
printf("\n\n");
break;
case 5:
Save(L);
printf("\n\n");
break;
case 6:
printf("\n\t\t\t\t输入学号:");
scanf("%s",num);
Find(L,num);
printf("\n\n");
break;
case 7:
Tegether(L);
printf("\n\n");
break;
case 8:
Read(L);
printf("\n\n");
break;
case 9:
quit=1;
break;
}
}
}

#include <stdio.h>
#include <string.h>
#include <process.h>
#define MAX_SIZE 38
typedef struct INFO
{ char id[10];
char name[21];
char sex[3];
int course1;
int course2;
int course3;
int score;
float ave;
} INFO;
INFO info[MAX_SIZE];
void compute()
{
int i;
for (i = 0; i < MAX_SIZE; i++)
{ info[i].score = info[i].course1 + info[i].course2 + info[i].course3;
info[i].ave = (float)info[i].score / 3;
}
}
void find()
{ int i, max[3], min[3];
max[0] = min[0] = 0;
max[1] = min[1] = 0;
max[2] = min[2] = 0;
for (i = 0; i < MAX_SIZE; i++)
{ /*课程1*/
if (info[i].course1 > info[max[0]].course1) max[0] = i;
if (info[i].course1 < info[min[0]].course1) min[0] = i;
/*课程2*/
if (info[i].course2 > info[max[1]].course2) max[1] = i;
if (info[i].course2 < info[min[1]].course2) min[1] = i;
/*课程3*/
if (info[i].course3 > info[max[2]].course3) max[2] = i;
if (info[i].course3 < info[min[2]].course3) min[2] = i;
}
printf("\n课程1成绩最好的学生的信息:\n");
printf("编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
printf("%s %s %s %d %d %d %d %.2f\n", info[max[0]].id, info[max[0]].name, info[max[0]].sex, info[max[0]].course1, info[max[0]].course2, info[max[0]].course3, info[max[0]].score, info[max[0]].ave);
printf("\n课程1成绩最差的学生的信息:\n");
printf("编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
printf("%s %s %s %d %d %d %d %.2f\n", info[min[0]].id, info[min[0]].name, info[min[0]].sex, info[min[0]].course1, info[min[0]].course2, info[min[0]].course3, info[min[0]].score, info[min[0]].ave);
printf("\n课程2成绩最好的学生的信息:\n");
printf("编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
printf("%s %s %s %d %d %d %d %.2f\n", info[max[1]].id, info[max[1]].name, info[max[1]].sex, info[max[1]].course1, info[max[1]].course2, info[max[1]].course3, info[max[1]].score, info[max[1]].ave);
printf("\n课程2成绩最差的学生的信息:\n");
printf("编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
printf("%s %s %s %d %d %d %d %.2f\n", info[min[1]].id, info[min[1]].name, info[min[1]].sex, info[min[1]].course1, info[min[1]].course2, info[min[1]].course3, info[min[1]].score, info[min[1]].ave);
printf("\n课程3成绩最好的学生的信息:\n");
printf("编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
printf("%s %s %s %d %d %d %d %.2f\n", info[max[2]].id, info[max[2]].name, info[max[2]].sex, info[max[2]].course1, info[max[2]].course2, info[max[2]].course3, info[max[2]].score, info[max[2]].ave);
printf("\n课程3成绩最差的学生的信息:\n");
printf("编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
printf("%s %s %s %d %d %d %d %.2f\n", info[min[2]].id, info[min[2]].name, info[min[2]].sex, info[min[2]].course1, info[min[2]].course2, info[min[2]].course3, info[min[2]].score, info[min[2]].ave);}
void sort()
{
int i, j;
INFO temp;
for (i = 0; i < MAX_SIZE; i++)
{
for (j = i; j < MAX_SIZE; j++)
{
if (info[i].score < info[j].score)
{
temp = info[i];
info[i] = info[j];
info[j] = temp;
}
}
}
printf("\n\n编号 姓名 性别 课程1 课程2 课程3 总分 平均分\n");
for (i = 0; i < MAX_SIZE; i++)
{
printf("%s %s %s %d %d %d %d %.2f\n", info[i].id, info[i].name, info[i].sex, info[i].course1, info[i].course2, info[i].course3, info[i].score, info[i].ave);
}
}

int main(int argc, char* argv[])
{
int i, flag = 0, cnt = 0;
char id[10];
while(cnt < MAX_SIZE)
{
flag = 0;
printf("请输入第%d个学生的编号:", cnt+1);
scanf("%s", id);
for (i = 0; i < cnt; i++)
{
if (strcmp(info[i].id, id) == 0)
{
printf("已存在在编号的学生\n");
flag = 1;
break;
}
}
if (flag == 1) continue;
printf("请输入第%d个学生的名字:", cnt+1);
scanf("%s", info[cnt].name);
printf("请输入第%d个学生的性别:", cnt+1);
scanf("%s", info[cnt].sex);
printf("请输入第%d个学生的课程1的成绩:", cnt+1);
scanf("%d", &info[cnt].course1);
printf("请输入第%d个学生的课程2的成绩:", cnt+1);
scanf("%d", &info[cnt].course2);
printf("请输入第%d个学生的课程3的成绩:", cnt+1);
scanf("%d", &info[cnt].course3);
cnt++;
}
compute();
find();
sort();
system("pause");
return 0;
}

C语言课程设计~

C语言课程设计编写问题
答:C语言课程设计编写问题 一个简单的成绩管理系统[[问题描述] 一个不多于50个班级,每个班级人数不多于60人,需要对他们的一些课程成绩进行管理包括输入修改,查询,统计等。[基本要求] 实现如下功能:1)学生... 一个简单的成绩管理系统[ [问题描述] 一个不多于50个班级,每个班级人数不多于60人,需要对他们的一些课程...

C语言 编程 课程设计 要交了,我还不会!!!很...
答:C语言 编程 课程设计 要交了,我还不会!!!很... 设计课题:飞机订票系统一、问题描述:假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。二、功能要求:1.本系统采用一个包含N个数据的结... 设计课题:飞机订票系统一、问题描述:假设某航空公司只有M架N个座位的飞机...

求一份C语言课程设计报告要求包括:系统需求分析,总体设计,详细设计,程序...
答:课程设计报告要求: 总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 C语言常见错误 书写标识符时,忽略了大小写字母的区别 main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的...

c语言课程设计!急!!!
答:include<stdio.h> include<stdlib.h>//应用动态存储分配函数// include define LEN sizeof(struct question)struct question { char ask[200];//选择题题目// char answer[4][80];//选择题选项,每个答案的长度// int right;//正确答案// struct question *next;//next是指针类型的成员,//它...

C语言课程设计,用c语言设计一户籍管理系统,求所写代码
答://多给点财富 include<stdio.h> include<stdlib.h> typedef struct tagHuJiXinXi { char shfzhh[64]; //身份证号 char xm[16]; //姓名 char xb[8]; //性别 int nl; //年龄 char xl[64]; //学历 char zhzh[64]; //住址 char dh[32]; //电话 }HuJiXinXi,*PtHuJiXinXi;void ...

外国语言文学专业开设课程设置,课程内容学什么
答:主要课程:德语综合实践、德语会话、德语视听、德语口译、德语笔译、德语国家概况、德语文学、德语国家历史、德语国家文化、德语文体学、德语词汇学、欧盟概况。 修业年限:四年 授予学位:文学学士 050204*法语 培养目标:本专业培养具有扎实的法语语言基础和比较广泛的科学文化知识,能在外事、经贸、文化、新闻出版、教育、...

C语言程序设计课程设计报告怎么写啊?有谁有样本吗?谢啦!
答:实 验 报 告 一 课 程 C语言程序设计 实验项目 C程序设计初步 成 绩 专业班级 学 号 指导教师 金发夏 姓 名 序 号 实验日期 一【实验目的】1. 了解使用VC++6.0的开发环境;2. 掌握在该系统上如何编辑、编译、连接和运行一个C程序;3. 通过运行简单的C程序,初步了解...

c语言课程设计
答:printf("请输入该学生的“C程序设计语言”分数:");scanf("%f",&stud[i].c_program);printf("请输入该学生的“大学物理”分数:");scanf("%f",&stud[i].physics);printf("请输入该学生的“大学英语”分数:");scanf("%f",&stud[i].english);printf("请输入该学生的“体育”分数:");scanf("%f",&...

C语言课程设计 使用数组和指针统计成绩 该班有五门课,分别为语文、数学...
答:"8. 统计某门课程的学生成绩","9. 按姓名查找学生信息","10. 退出系统"};char s[3];int c,i;for(i=0;i<=11;i++)printf(" %s\n",menu[i]);do { printf("\n请选择0~10中的某一个选项\n");scanf("%s",s);c=atoi(s);}while(c<0||c>10);return c;} STUDENT *...

C语言程序 课程设计
答:试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能... 题目:学生信息管理系统 学生信息包括:学号,姓名,性别,出生年月,地址,电话,E-mail。试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)---输入3、学生信息...