当前位置:首页 » 编程语言 » c语言综合程序设计周信东
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言综合程序设计周信东

发布时间: 2022-01-13 08:50:10

c语言程序设计 (学生选修课程设计)

这是我做的,你看是否满意?可能有点大,但也没办法呀,你的题目也比较大,呵呵!所以,如果满意,多给我追加点分!
#include
"stdio.h"
#include
"stdlib.h"
#include
"string.h"
typedef
struct
course
{
char
number[15],name[25];
int
kind,time,lessontime,practicetime,credit,term;
}type;
FILE
*fp1;
void
overview();
//浏览函数,负责浏览整个课程信息
void
seek();
//查询函数,负责查询课程信息
void
choose_course();//选课函数,负责让用户选课
void
out(type
temp);
void
input();
int
main()
{
int
n,i;
if((fp1=fopen("course_information.txt","wb"))==NULL)
{printf("创建文件失败!\n");exit(0);}
printf("请输入要存储的课程数目:\n");
scanf("%d",&n);
printf("开始创建文件,请输入课程信息:\n\n");
for(i=0;i<n;i++)
{
printf("请输入第%d门课程的信息:\n",i+1);
input();
printf("\n");
}
printf("如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;
如想进行选课,请输入3;如想结束选修课系统,请输入0!\n");
while((scanf("%d",&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");
}
printf("欢迎您使用此程序进行选课,谢谢!\n");
fclose(fp1);
return
0;
}
void
input()
{
course
c_a;
printf("请输入课程编码:
");
scanf("%s",c_a.number);
printf("请输入课程名:
");
scanf("%s",c_a.name);
printf("请输入课程性质:限选课,请输入1;选修课,请输入2;必修课,请输入3!
");
scanf("%d",&c_a.name);
printf("请输入课程总学时:
");
scanf("%d",&c_a.time);
printf("请输入课程授课时间:
");
scanf("%d",&c_a.lessontime);
printf("请输入课程实验或实践时间:
");
scanf("%d",&c_a.practicetime);
printf("请输入课程学分:
");
scanf("%d",&c_a.credit);
printf("请输入课程所在的学期,比如第二学期,就输入2即可。");
scanf("%d",&c_a.term);
fwrite(&c_a,sizeof(struct
course),1,fp1);//将一个结构体元素写入文件中
}
void
out(type
temp)
{
printf("课程代码:
%s\n课程名:
%s\n",temp.number,temp.name);
printf("课程名:
%s\n",temp.name);
if(temp.kind==1)
printf("课程性质:
Limited
optional
course\n");
else
if(temp.kind==2)
printf("课程性质:
Optional
course\n");
else
if(temp.kind==3)
printf("课程性质:
Required
Courses\n");
else
printf("该编码系统不认识,即无对应的课程性质存在!\n");
printf("课程总学时:
%d\n课程授课学时:
%d\n实验或上机学时:
%d\n学分:
%d\n课程开课学期:
%d\n\n",temp.time,temp.lessontime,temp.practicetime,temp.credit,temp.term);
}
void
overview()
{
rewind(fp1);
course
temp;
printf("整个课程信息如下:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
void
seek()
{
int
judge,credit=0,kind=0;
char
a='N';
course
temp;
printf("如想按学分查询,请输入1;如想按课程性质,请输入2:\n");
scanf("%d",&judge);
rewind(fp1);
//将文件指针位置置为开头
if(judge==1)
{
printf("请输入要查询的学分:\n");
scanf("%d",&credit);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(credit==temp.credit)
out(temp);
}
else
if(judge==2)
{
printf("请输入你要查找课程的性质(限选课,请输入1;选修课,请输入2;必修课,请输入3):");
scanf("%d",&kind);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(temp.kind==kind)
out(temp);
}
else
printf("不好意思,无此类查询!\n");
}
void
choose_course()
{
rewind(fp1);
course
temp;
int
judge=1,n=0,time=0,credit=0;
char
choose[20][20];
r1:
printf("请开始填写课程编号进行选课:\n");
while(judge==1)
{
printf("请输入你所选课程的标号:
");
scanf("%s",choose[n]);
n++;
printf("如想继续选课,请输入1;如想提交,请输入0!\n");
scanf("%d",&judge);
}
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int
i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{time=time+temp.time;credit=temp.credit;break;}
}
if(time<270||credit<40)
goto
r1;
printf("你所选的课为:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int
i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{out(temp);break;}
}
}

⑵ C语言综合训练程序设计要求

我现在写上,好了传上来。

OK了,先上图看下。

#include<stdio.h>

#include<conio.h>

#defineMAX100

typedefstruct{

intsn;

charname[11];

intcj;

}student;

intread(student*strp);

voiddisp_max(student*strp,intn);

voiddisp_ave(student*strp,intn);

voiddisp_cj(student*strp,intn);

voidmain()

{

studentstu[MAX];

inti;

i=read(stu);

disp_max(stu,i);

disp_ave(stu,i);

disp_cj(stu,i);

getchar();

}

intread(student*strp){

FILE*fp;

inti;

if((fp=fopen("stuin.dat","r"))==NULL){

printf(" Cannotopenfile!");

getchar();

exit();

}

for(i=0;i<MAX;i++){

if(feof(fp))

break;

fscanf(fp,"%d%s%d",&strp[i].sn,strp[i].name,&strp[i].cj);

}

fclose(fp);

returni;

}

voiddisp_max(student*strp,intn){

inti,max=0;

for(i=0;i<n;i++){

if(strp[i].cj>max)

max=strp[i].cj;

}

printf(" Maxscoreis%d: ",max);

for(i=0;i<n;i++){

if(strp[i].cj==max)

printf(" %d%s%d",strp[i].sn,strp[i].name,strp[i].cj);

}

}

voiddisp_ave(student*strp,intn){

longtotal=0;

inti,big,small,equ;

floatave;

for(i=0;i<n;i++){

total+=strp[i].cj;

}

ave=total/n;

printf(" AVE:");

printf(" %dstudenttotalis%ld,aveis%f.",n,total,ave);

big=0,small=0,equ=0;

for(i=0;i<n;i++){

if(strp[i].cj>(int)ave)

big++;

elseif(strp[i].cj<(int)ave)

small++;

else

equ++;

}

printf(" >aveis%d,<aveis%d,=aveis%d.",big,small,equ);

}

voiddisp_cj(student*strp,intn){

inti,n1=0,n2=0,n3=0,n4=0,n5=0;

for(i=0;i<n;i++){

if(strp[i].cj>89)

n1++;

elseif(strp[i].cj>79)

n2++;

elseif(strp[i].cj>69)

n3++;

elseif(strp[i].cj>59)

n4++;

else

n5++;

}

printf(" score:");

printf(" Excellent=%dis%.2f%",n1,((float)n1/n)*100);

printf(" veryGood=%dis%.2f%",n2,((float)n2/n)*100);

printf(" good=%dis%.2f%",n3,((float)n3/n)*100);

printf(" pass=%dis%.2f%",n4,((float)n4/n)*100);

printf(" Fail=%dis%.2f%",n5,((float)n5/n)*100);

}

测试文件内容

stuin.dat

1001stuname189

1002stuname278

1003stuname365

1013stuname1389

1015stuname1581

1100stuname10087

⑶ c语言程序设计(周信东版)的综合程序设计如下:编写程序,从键盘输入某楼6家住户某月的水电消耗及水费和电费

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

int main()
{
char user[4];
char waterNum[4];
char elecNum[4];
char inlinebuf[32];
char outlinebuf[32];
char pbuf[256];
FILE *fp1;
FILE *fp2;

int WaterNum=0;
int ElecNum=0;
int length =0;
int m=0;
int n=0;
int weishuflag=0;
int flagnum=0;
int i=0;
int j=0;

float waterPrice=0.0;
float elecPrice=0.0;

if((fp1=fopen("./input.dat","r"))==NULL)
{
printf("open input data error!\n");
return -1;
}

if((fp2=fopen("./change.dat","w"))==NULL)
{
printf("open input data error!\n");
return -1;
}

fseek(fp1,0,SEEK_END);
length = ftell(fp1);
fseek(fp1,0,SEEK_SET);
memset(pbuf,0,sizeof(pbuf));

printf("the input data length == %d\n",length);
fread(pbuf,length,1,fp1);

fseek(fp2, 0, SEEK_SET);
sprintf(outlinebuf,"住户\t\t水费\t\t电费\n");
fputs(outlinebuf, fp2);

while(length--)
{
if(pbuf[m]!='\n')
{
inlinebuf[n]=pbuf[m];
n++;
}
else
{
j = 0;
inlinebuf[n++]='\t'; //为处理每一行的最后一个数据(即用电量),需加入一个tab或空格键
inlinebuf[n] = '\0';//一行数据结束
while( inlinebuf[j] != '\0')
{
switch(flagnum)
{
case 0: //用户
if(inlinebuf[j] != ' ' && inlinebuf[j] != '\t')
{
user[i]=inlinebuf[j];
i++;
}
else
{
user[i]='\0';
flagnum++;//表示之前获取的是住户,下两个数据分别获取用水量与用电量
i=0;
}
break;

case 1: //用水量
if(inlinebuf[j] != ' ' && inlinebuf[j] != '\t')
{
waterNum[i]=inlinebuf[j];
i++;
}
else
{
waterNum[i]='\0';
weishuflag=i;//表示当前数据的位数,住户、用水量、用电量均限制为三位数以内
flagnum++;//表示下个数据获取的是用电量
if(weishuflag == 1)
{
WaterNum = waterNum[0] - 48;
}
else if(weishuflag == 2)
{
WaterNum = (waterNum[0] - 48)*10 + (waterNum[1] - 48);
}
else
{
WaterNum = (waterNum[0] - 48)*100 + (waterNum[1] - 48)*10 + (waterNum[2] - 48);
}
i=0;
weishuflag = 0;
}
break;

case 2: //用电量
if(inlinebuf[j] != ' ' && inlinebuf[j] != '\t')
{
elecNum[i]=inlinebuf[j];
i++;
}
else
{
elecNum[i]='\0';
weishuflag=i;//表示当前数据的位数,住户、用水量、用电量均限制为三位数以内
flagnum = 0;//表示一行三个数据获取完毕
if(weishuflag == 1)
{
ElecNum = elecNum[0] - 48;
}
else if(weishuflag == 2)
{
ElecNum = (elecNum[0] - 48)*10 + (elecNum[1] - 48);
}
else
{
ElecNum = (elecNum[0] - 48)*100 + (elecNum[1] - 48)*10 + (elecNum[2] - 48);
}
i=0;
weishuflag = 0;
}
break;
default:
break;
}
j++;
}
waterPrice = (float)WaterNum * 1.5;
elecPrice = (float)ElecNum * 0.5;
printf("The user == %s,waterNum == %d,elecNum == %d\n",user,WaterNum,ElecNum);//打印用户,用水量,用电量
printf("The user == %s,waterPrice == %.1f,elecPrice == %.1f\n\n",user,waterPrice,elecPrice);//打印用户,水费,电费
sprintf(outlinebuf,"%3s \t\t%4.1f \t\t%4.1f\n",user,waterPrice,elecPrice);

fputs(outlinebuf, fp2);//写入每一行数据(数据格式为 住户 + 水费 + 电费)
memset(outlinebuf,0,sizeof(outlinebuf));
memset(inlinebuf,0,sizeof(inlinebuf));
n=0; //一行数据处理结束,开始新的一行
}
m++;
}

fclose(fp1);
fclose(fp2);
return 0;
}
input.dat(每一行数据分别为住户 用水量 用电量,以空格或tab键隔开,且每行数据必须以回车结尾)
101 5 150
201 4 90
301 4 120
401 3 78
501 4 60
601 6 105
charge.dat (输出文件格式如下)
住户 水费 电费
101 7.5 75.0
201 6.0 45.0
301 6.0 60.0
401 4.5 39.0
501 6.0 30.0
601 9.0 52.5

⑷ C语言程序设计这门课程第三章综合实例(初级)的知识点有哪些

C语言程序设计这门课第三章综合实例(初级)的知识点包含【初级】第14讲-打字游戏(上)-主界面,【初级】第15讲-打字游戏(中)-退出游戏,【初级】第16讲-打字游戏(下)-开始游戏,。

⑸ 急求C语言综合设计(编写程序处理10个学生的信息......)

#include<stdio.h>
#include<string.h>
typedef struct node{
int num;
char name[20];
char sex;
int math;
int eng;
int pol;
}elemsn;
void claug(elemsn s[],int n)
{
int i;
double aug;
printf("name average gread\n");
printf("_______________________________\n");
for(i=0;i<n;i++)
{
int sum=0;
sum=s[i].math+s[i].eng+s[i].pol;
aug=(double)sum/3;
printf("%s\t\t%lf\n",s[i].name,aug);

}
}
int main()
{
elemsn s[10];
int i,nu,ma,en,po;
char n[20],sex;
printf("please input students information:\n");
printf("___________________________________\n");
for(i=0;i<10;i++)
{
printf("number:");
scanf("%d",&nu);
s[i].num=nu;
fflush(stdin);
printf("name:");
gets(n);
strcpy(s[i].name,n);
printf("sex:");
scanf("%c",&s);
s[i].sex=sex;
printf("gread:Math,English,Political\t");
scanf("%d%d%d",&ma,&en,&po);
s[i].math=ma;
s[i].eng=en;
s[i].pol=po;//结构体初始化值。
}//必须一个一个键入。
claug(s,10);
return 0;
}

⑹ 求C语言程序综合设计

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

typedef struct _student
{
char name[30];
int number;
int chinese, math;
int total;
} student;

int index = 0;
student ss[100];

void asort()
{
int i, j, k;

for (i = 0; i < index-1; ++i)
{
k = i;

for (j = i + 1; j < index; ++j)
{
if (ss[k].total < ss[j].total)
{
k = j;
}
}

if (k != i)
{
student s;
memcpy(&s, &ss[i], sizeof(student));
memcpy(&ss[i], &ss[k], sizeof(student));
memcpy(&ss[k], &s, sizeof(student));
}
}
}

void input()
{
printf("\n请输入学生信息(姓名、学号、语文、数学成绩)!结束输入。\n");

while (1)
{
scanf("%s", ss[index].name);

if (ss[index].name[0] == '!')
break;

scanf("%d %d %d", &ss[index].number, &ss[index].chinese, &ss[index].math);
ss[index++].total = ss[index].chinese + ss[index].math;
}
}

void rank()
{
int i = 0, r = 1;
printf("\nNo: Total: Name:\n");

for (; i < index - 1; ++i)
{
printf("%d\t\t%d\t\t%s\n", r, ss[i].total, ss[i].name);

if (ss[i].total != ss[i+1].total)
++r;
}

printf("%d\t\t%d\t\t%s\n", r, ss[i].total, ss[i].name);
}
void find()
{
char nm[30];
int i;

printf("\n请输入需要查找的学生名:\n");
scanf("%s", nm);

for (i = 0; i < index; ++i)
{
if (!strcmp(ss[i].name, nm))
break;
}

if (i < index)
printf("学号:%d\t姓名:%s\t语文成绩:%d\t数学成绩:%d\t总成绩:%d\n",
ss[i].number, ss[i].name, ss[i].chinese, ss[i].math, ss[i].total);
else
printf("没有找到合适的记录!\n");
}

void statistic()
{
int min, max, i, tt;
float avg = 0., pr = 0.;
max = tt = 0;
min = 100;

for (i = 0; i < index; ++i)
{
tt += ss[i].chinese;

if (ss[i].chinese < min)
min = ss[i].chinese;

if (ss[i].chinese > max)
max = ss[i].chinese;

if (ss[i].chinese > 60)
++pr;
}

avg = (float)tt / index;

if (index == 1)
{
if (ss[0].chinese < 60)
pr = 0.;
else
pr = 100.;
}
else
pr = (pr / index) * 100;

printf("\n语文成绩的平均分、及格率、最高分、最低分是:%0.2f %0.2f %d %d\n",
avg, pr, max, min);

avg = pr = 0.;
max = tt = 0;
min = 100;

for (i = 0; i < index; ++i)
{
tt += ss[i].math;

if (ss[i].math < min)
min = ss[i].math;

if (ss[i].math > max)
max = ss[i].math;

if (ss[i].math > 60)
++pr;
}

avg = (float)tt / index;

if (index == 1)
{
if (ss[0].math < 60)
pr = 0.;
else
pr = 100.;
}
else
pr = (pr / index) * 100;

printf("语文成绩的平均分、及格率、最高分、最低分是:%0.2f %0.2f %d %d\n",
avg, pr, max, min);
}

void display()
{
int i = 0;
printf("\n学号\t姓名\t语文成绩\t数学成绩\t总成绩\n");

for (;i < index; ++i)
{
printf("%d\t%s\t%d\t\t%d\t\t%d\n", ss[i].number, ss[i].name,
ss[i].chinese, ss[i].math, ss[i].total);
}
}

void menu()
{
int choice;

while (1)
{
puts("\n\n请输入你想进行的操作:\n");
puts("1. 添加学生 2. 总分排名 3. 查找信息");
puts("4. 显示统计 5. 成绩表 0. 退出程序");

do
scanf("%d", &choice);
while (choice < 0 || choice > 5);

if (choice == 0) break;

switch (choice)
{
case 1:
input();
asort();
break;
case 2:
rank();
break;
case 3:
find();
break;
case 4:
statistic();
break;
case 5:
display();
break;
}
}
}

int main(void)
{
menu();
return 0;
}

⑺ c语言程序设计

#include <stdio.h>
#include <string.h>
#define N 4

struct student
{
char name[20];
int temp;
int Chinese;
int English;
int Score;
};

int Initliaze(struct student stu[],int inum); //初始化
int Input(struct student stu[],int inum); //赋值
int Output(struct student stu[],int inum); //输出
int Order(struct student stu[],int inum); //排序

void main()
{
struct student stu[N];
Initliaze(stu,N);
Input(stu,N);
Output(stu,N); //输出总值
printf("\n");
Order(stu,N);
Output(stu,N); //输出排序后的值
printf("\n");
}
int Initliaze(struct student stu[],int inum) //对数字进行初始化
{
for(int i=0;i<inum;i++)
{
strcpy(stu[i].name, " ");
stu[i].temp=0;
stu[i].Chinese=0;
stu[i].English=0;
stu[i].Score=0;
}
return 0;
}
int Input(struct student stu[],int inum)
{
int i;
for(i=0;i<inum;i++)
{
printf("请输入姓名,学号,语文成绩,英语成绩:");
scanf("%s",stu[i].name);
scanf("%d%d%d",&stu[i].temp,&stu[i].Chinese,&stu[i].English);

stu[i].Score = stu[i].Chinese + stu[i].English;
}

return 0;
}
int Output(struct student stu[],int inum)
{
printf("\n 姓名 学号 语文 英语 总分\n");
for(int i=0;i<inum;i++)
printf(" %s %d %d %d %d \n",stu[i].name,stu[i].temp,stu[i].Chinese,stu[i].English,stu[i].Score);
return 0;
}
int Order(struct student stu[],int inum)
{
struct student add;
for(int i=0;i<inum-1;i++)
{
for(int j=i+1;j<inum;j++)
{
if(stu[i].Score<stu[j].Score)
{
add=stu[i];
stu[i]=stu[j];
stu[j]=add;
}
}
}
return 0;

}

⑻ 程序设计综合题 C语言

第一个

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; /* */
struct student
{
char num[10];/* 学号 */
char name[20];
char sex[4];
char yuan;
int ban;
char neartime[10];/* 最近更新时间 */
};

typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;

void menu()
{
printf("********************************************************************************");
printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n");
printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n");
printf("\t5保存学生资料\t\t\t\t\t0退出系统\n");
printf("********************************************************************************\n");
}

void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>提示:输入错误!\n");
}

void Nofind()
{
printf("\n=====>提示:没有找到该学生!\n");
}

void printc() /* 本函数用于输出中文 */
{
printf("学号\t 姓名 性别 学院 班级\n");
}

void printe(Node *p)/* 本函数用于输出英文 */
{
printf("%-12s%s\t%s\t%c\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.yuan,p->data.ban);
}

Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */
{
Node *r;
if(strcmp(nameornum,"num")==0) /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}

void Add(Link l) /* 增加学生 */
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; /* 将指针置于最末尾 */
while(1)
{
printf("请你输入学号(以'0'返回上一级菜单:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}

p=(Node *)malloc(sizeof(Node));

strcpy(p->data.num,num);
printf("请你输入姓名:");
scanf("%s",p->data.name);
getchar();
printf("请你输入性别:");
scanf("%s",p->data.sex);
getchar();
printf("请你输入学院:");
scanf("%c",&p->data.yuan);
getchar();
printf("请你输入班级:");
scanf("%d",&p->data.ban);
getchar();
/* 信息输入已经完成 */
p->next=NULL;
r->next=p;
r=p;
shoudsave=1; }

}

void Qur(Link l) /* 查询学生 */
{
int sel;
char findmess[20];
Node *p;

if(!l->next)
{
printf("\n=====>提示:没有资料可以查询!\n");
return;

}
printf("\n=====>1按学号查找\n=====>2按姓名查找\n");
scanf("%d",&sel);
if(sel==1)/* 学号 */
{
printf("请你输入要查找的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else if(sel==2) /* 姓名 */
{
printf("请你输入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();

}
void Del(Link l) /* 删除 */
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以删除!\n");
return;
}
printf("\n=====>1按学号删除\n=====>2按姓名删除\n");
scanf("%d",&sel);
if(sel==1)
{
printf("请你输入要删除的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("请你输入要删除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}

void Modify(Link l)
{
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以修改!\n");
return;
}
printf("请你输入要修改的学生学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("请你输入新学号(原来是%s):",p->data.num);
scanf("%s",p->data.num);
printf("请你输入新姓名(原来是%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("请你输入新性别(原来是%s):",p->data.sex);
scanf("%s",p->data.sex);
printf("请你输入新的学院:",p->data.yuan);
scanf("%c",&p->data.yuan);
getchar();
printf("请你输入新的班级(原来是%d):",p->data.ban);
scanf("%d",&p->data.ban);
getchar();
printf("\n=====>提示:资料修改成功!\n");
shoudsave=1;
}
else
Nofind();

}

void Save(Link l)
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
printf("\n=====>提示:重新打开文件时发生错误!\n");
exit(1);
}
p=l->next;

while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}

void main()
{
Link l;/* 连表 */
FILE *fp; /* 文件指针 */
int sel;
char ch;
char jian;

int count=0;
Node *p,*r;
printf("\t\t\t\t学生成绩管理系统\n\t\t\t\t-------建筑电气及智能化0801\n");
l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;

fp=fopen("C:\\student","rb");
if(fp==NULL)
{
printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
fp=fopen("C:\\student","wb");
else
exit(0);
}
printf("\n=====>提示:文件已经打开,正在导入记录......\n");

while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
}

fclose(fp); /* 关闭文件 */
printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);

while(1)
{
menu();
printf("请你选择操作:");
scanf("%d",&sel);

if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====>提示:你已经退出系统,再见!\n");
break;
}
switch(sel)
{
case 1:Add(l);break; /* 增加学生 */
case 2:Del(l);break;/* 删除学生 */
case 3:Qur(l);break;/* 查询学生 */
case 4:Modify(l);break;/* 修改学生 */
case 5:Save(l);break;/* 保存学生 */
case 9:printf("\t\t\t==========帮助信息==========\n");break;
default: Wrong();getchar();break;
}
}
}

第二个:

#include<stdio.h>

//定义结构体
struct student
{
int number;
char name[20];
float score1;
float score2;
float score3;
float ave;
};

//单个学员录入函数
void input(struct student *st)
{
printf("\n学号: ");
scanf("%d",&st->number);
printf("姓名: ");
fflush(stdin);
gets(st->name);
printf("三门课成绩:\n成绩1: ");
scanf("%f",&st->score1);
printf("成绩2: ");
scanf("%f",&st->score2);
printf("成绩3: ");
scanf("%f",&st->score3);
st->ave=(st->score1+st->score2+st->score3)/3;
}

//显示学员信息函数
void display(struct student *st,int n)
{
int i;
printf("\n\t学号\t姓名\t平均成绩\n");
for(i=0; i<n; i++)
{
printf("\t%d\t%s\t%5.2f\n",st->number,st->name,st->ave);
st++;
}
}

//排序函数,大到小
void sorting(struct student stu[],int n)
{
struct student temp;
int i,j;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(stu[j].ave<stu[j+1].ave)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
}

//插入函数
void insertinfo(struct student stu[], struct student *st1, int n)
{
int i,j;
for(i=0; i<n; i++)
{
if(stu[i].ave<st1->ave)
break;
}
for(j=n; j>i; j--)
stu[j]=stu[j-1];
stu[i]=*st1;
}

//删除学员信息函数
void deleteinfo(struct student stu[], int num, int n)
{
int i,j;
for(i=0; i<n; i++)
{
if(stu[i].number==num)
break;
}
for(j=i; j<n; j++)
stu[j]=stu[j+1];
}

void main()
{
struct student stu[50],stu1;
char ch;
int i=0,num;

//通过调用函数录入学员的信息
printf(" 请输入学员信息: \n\n");
do
{
input(&stu[i++]);
printf("是否继续(Y/N)? ");
fflush(stdin);
ch=getchar();
}while(ch=='Y'||ch=='y');

//显示学员信息
printf("\n排序前学员的信息如下: \n");
display(stu,i);

//排序函数
sorting(stu,i);

//显示学员信息
printf("\n排序后学员的信息如下: \n");
display(stu,i);

//插入函数
printf("\n是否要插入新学员(Y/N)? ");
fflush(stdin);
ch=getchar();
while(ch=='Y'||ch=='y')
{
printf("\n请输入要插入学员的信息: \n");
input(&stu1);
insertinfo(stu,&stu1,i);
i++;
printf("\n是否继续插入新学员(Y/N)? ");
fflush(stdin);
ch=getchar();
}

//显示学员信息
printf("\n插入后学员的信息如下: \n");
display(stu,i);

//删除函数
printf("\n是否要删除某个学员(Y/N)? ");
fflush(stdin);
ch=getchar();
while(ch=='Y'||ch=='y')
{
printf("\n请输入要删除学员的学号: \n");
scanf("%d",&num);
deleteinfo(stu,num,i);
i--;
printf("\n是否继续删除某个学员(Y/N)? ");
fflush(stdin);
ch=getchar();
}

//显示学员信息
printf("\n删除后学员的信息如下: \n");
display(stu,i);
}

⑼ C语言程序综合编程

好巧啊,前几天我们期末复习讲到这一题了

1.改变语句const char username[10]="12345",的初始值可以改变学生的账号

2.改变语句const int password=12345,的初始值可以改变学生的密码