当前位置:首页 » 编程语言 » c语言实践课题目
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言实践课题目

发布时间: 2022-08-30 03:45:07

c语言课题

《程序设计及C语言》课程设计指导
LZ这本书的作者是谁啊

② C语言课程设计题目

#include <stdio.h>

void add(void);
int check(void);
int rent(void);
void useradd(void);
void returnn (void);

int user_number = 2;
int cd_number = 1;

struct cd{
char film_name[10];
char country[10];
char type[10];
int n; /*标记是否被借阅,借阅:0;存在:1*/
};

struct rent{
char username[10];
char film_name[10][10];
int rent_time;
int return_time;
int money;
};

struct cd CD[1000];
struct rent RENT[1000];

void main (void)

{
char choice;

a: printf("please input you choice\n");
printf("A: add CD\n");
printf("B: check CD\n");
printf("C: rent CD\n");
printf("D: return CD\n");
printf("E:useradd \n");
printf("F: quit the program\n");

scanf("%c",&choice);

switch(choice)
{
case 'A':
{
add();
break;
}
case 'B':
{
check();
break;
}
case 'C':
{
rent();
break;
}
case 'D':
{
returnn();
break;
}
case'E':
{
useradd();
break;
}
case'F':
{
exit(0);
}
}
goto a;

}

void add(void)
{

FILE *a;

printf("please input the cd name\n");
scanf("%s",CD[cd_number].film_name);
printf("please input the cd country\n");
scanf("%s",CD[cd_number].country);
printf("please input the cd type\n");
scanf("%s",CD[cd_number].type);

CD[cd_number].n = 1;

if (0 == cd_number)
{
a = fopen("cd.txt","wb");
fwrite(&CD[cd_number], sizeof(struct cd), 1, a);
}
else
{
a = fopen("cd.txt","ab");
fwrite(&CD[cd_number], sizeof(struct cd), 1, a);
}
cd_number++;

fclose(a);
}

int check(void)
{
int i;
FILE *a;
char cd_name[10];

a = fopen("cd.txt","rb");

for(i = 0; i < cd_number; i++)
{
fread(&CD[i], sizeof(struct cd), 1, a);
}
printf("please input the cd name\n");
scanf("%s",cd_name);

for(i = 0; i < cd_number; i++)
{
if(!(strcmp(CD[i].film_name, cd_name)))
{
if(1 == CD[i].n)
{
printf("could rent\n");
fclose(a);
return 1;
}
else
{
printf("rented\n");
fclose(a);
return 1;
}
}
}

fclose(a);
return 0;
}

void useradd(void)
{
FILE *a;

printf("please input the username\n");
scanf("%s",RENT[user_number].username);

if (0 == user_number)
{
a = fopen("rent.txt","wb");
fwrite(&RENT[user_number], sizeof(struct rent), 1, a);

}
else
{
a = fopen("rent.txt","ab");
fwrite(&RENT[user_number], sizeof(struct rent), 1, a);
printf("----- add ------");

}
user_number++;

fclose(a);
}

int rent(void)
{
char user_name[10];
char cd_name[10];
FILE *a;
FILE *b;
int i = 0;
int j;
int k = 0;
char choice;

a = fopen("rent.txt","r");
b = fopen("cd.txt","r");

for (i = 0; i < cd_number; i++)
{
fread(&CD[i], sizeof(struct cd), 1, b);
}

for (i = 0; i < user_number; i++)
{
fread(&RENT[i], sizeof(struct rent), 1, a);
}

printf("please input the username\n");
scanf("%s",user_name);

for (i = 0; i < user_number; i++)
{
if (!(strcmp(user_name, RENT[i].username)))
{
a: printf("please input the cd_name\n");
scanf("%s",cd_name);
printf("pleae input the cd_name again\n");
scanf("%s", RENT[i].film_name[k]);
k++;

for (j = 0; j < cd_number; j++)
{
if(!(strcmp(CD[j].film_name, cd_name)))
{
CD[j].n = 0;
break;
}
}

}
}

printf("pleae input the date to rent\n");
printf("--- i : %d ---\n", i);
scanf("%d",&RENT[i].rent_time);

getchar();
printf("A: to rent another\n");
printf("B: quit\n");

scanf("%c",&choice);
switch(choice){
case 'A': goto a;
break;
case 'B': return 0;
}

fclose(a);
fclose(b);

}

void returnn (void)
{
char user_name[10];
char cd_name[10];
FILE *a;
FILE *b;
int i;
int j;
int k = 0;
char choice;

a = fopen("rent.txt","r");
b = fopen("cd.txt","r");

for (i = 0; i < cd_number; i++)
{
fread(&CD[i], sizeof(struct cd), 1, b);
}

for (i = 0; i < user_number; i++)
{
fread(&RENT[i], sizeof(struct rent), 1, a);
}

printf("please input the username\n");
scanf("%s",user_name);

for (i = 0; i < user_number; i++)
{
if (!(strcmp(user_name, RENT[i].username)))
{
a: printf("please input the cd_name to return \n");
scanf("%s",cd_name);

for (j = 0; j < cd_number; j++)
{
if(!(strcmp(CD[j].film_name, cd_name)))
{
CD[j].n = 1;
break;
}
}

}
}

printf("pleae input the data to rturn\n");
scanf("%d",&RENT[i].return_time);

if (0 == ((RENT[i].return_time - RENT[i].rent_time) % 3))
{

RENT[i].money = (RENT[i].return_time - RENT[i].rent_time) / 3;
}
else
{

RENT[i].money = (RENT[i].return_time - RENT[i].rent_time) / 3 + 1;
}
printf("%d\n",RENT[i].money);

printf("A: to rent another\n");
printf("B: quit\n");

scanf("%c",&choice);
switch(choice){
case 'A': goto a;
break;
case 'B': return 0;
}

fclose(a);
fclose(b);

}

才学编程两个月,很龊啊,包涵
请参考

③ 大一C语言课程设计题目, 求急! 加100分。


#include<stdio.h>

#include<string.h>

#define N 100

typedef struct AA

{

char name[20];

char phone[12];

char e_mail[30];

char relation[20];

}AA;

/*1。输入新联系人2。删除指定的联系人(输入姓名,若找掉则删除该联系人的信息)

3。根据输入的与本人关系,显示联系信息4。显示所有联系人的信息设计菜单*/

int input__(AA * s)

{

int len = 0,i = 0,n;

printf("请输入要添加的联系人个数,上限为%d个 ",N);

scanf("%d",&n);

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

{

printf("请依次输入第%d联系人的姓名、电话、邮箱以及与本人的关系(中间使用空格隔开即可): ",i);

scanf("%s%s%s%s",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);

}

return n;

}

void delete__(AA *s,int *n)

{

int i = 0,j = 0,status = 0;

char ca[20] = "";

printf("请输入要删除的联系人的姓名 ");

scanf("%s",ca);

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

{

if(!strcmp(ca,s[i].name))

{

*n = *n-1;

status = 1;

for(j=i;j<*n;j++)

{

s[j] = s[j+1];

}

break;

}

}

if(status == 0)

printf("没有找到要删除的人的信息 ");

else

printf("删除成功 ");

}

void show__relation(AA *s,int n)

{

int i = 0,status = 0;

printf("请输入与联系人的关系 ");

char ca[20] = "";

scanf("%s",ca);

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

{

if(!strcmp(ca,s[i].relation))

{

printf("name:%15s phone:%15s e-mail:%15s relation:%15s ",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);

status = 1;

}

}

if(!status)

printf("没有找到相应的信息 ");

}

void show__all(AA *s,int n)

{

int i = 0;

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

{

printf("name:%15s phone:%15s e-mail:%15s relation:%15s ",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);

}

}





int main(void)

{

AA a[N];

int n = 0;

int i;

while(1)

{

printf("0------退出系统 1------输入联系人信息 2------删除指定联系人信息 ");

printf("3------显示与本人关系相通的联系人信息 4------显示所有联系人的信息 ");

scanf("%d",&i);

if(i == 0)

break;

switch(i)

{

case 1:n = input__(a); break;

case 2:

if(n == 0)

{

printf("你还没有添加信息,请先添加信息: ");

break;

}

else

{

delete__(a,&n);

break;

}

case 3:

{

if(n == 0)

{

printf("你还没有添加信息,请先添加信息: ");

break;

}

else

{

show__relation(a,n);


break;

}

}

case 4:

{

if(n == 0)

{

printf("你还没有添加信息,请先添加信息: ");

break;

}

else

{

show__all(a,n);

break;

}

}

default:

printf("您的选择有误,请重新选择 ");

break;

}

}

return 0;


}

//看看~~~刚刚写完~

④ C语言实训题目

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

void guanli();//管理员文件

void zhu();//查询主函数

void nianca();

void mingca();

void banca();

void xingca();

void xueca();

void zhucaidan();

void tianjia();

void shexinxi();

void cunxinxi();

void tian();

void quanbushanchu();

void xingbieshanchu();

void banjishanchu();

void mougeshanchu();

void fugai();

void wenjian();

void shanchu();

int quanbuxianshi();

struct xuesheng

{

char name[8]; //姓名

char xingbie[3]; //性别

int age; //年龄

char banji[20]; //班级

char fenshu[3]; //分数

char hao[9]; //学号

};

typedef struct xuesheng XUE;

XUE str;

FILE *fp=NULL;

int no=1;

void main()

{

int a;

printf("\t\t简易学生档案库\n确认您的身份:\n");

while(1)

{

printf("\t1 管理员\n\t2 用户\n\t3 退出\n请选择:");

scanf("%d",&a);

switch(a)

{

case 1:guanli();

zhucaidan();

break;

case 2:zhu();

break;

case 3:

exit(0);

default:

printf("请重新选择!\n");

}

}

}

void guanli()

{

char mima[6];

char mi[6];

strcpy(mima,"000000");

for(int i=0;i<3;i++)

{

printf("请输入你的管理员密码(6位):");

scanf("%s",mi);

if(strcmp(mima,mi)==0)

{

printf("密码正确!\n");

return;

}

else

{

printf("密码不正确,请重新输入:\n");

}

}

printf("三次密码错误,系统即将退出。\n");

exit(0);

}

void zhucaidan()

{

int a;

while(1)

{

printf("\n\n\t 主菜单\n\t1 输出所有学生信息\n\t2 查找学生信息\n\t3 输入一个学生信息\n\t4 删除学生信息\n\t5 退出\n请选择:");

scanf("%d",&a);

switch(a)

{

case 1:quanbuxianshi();

break;

case 2:zhu();

break;

case 3:tian();

break;

case 4:shanchu();

break;

case 5:

exit(0);

default:

printf("请重新选择!\n");

}

}

}

void zhu()

{

int a,b;

b=quanbuxianshi();

while(b)

{

printf("\n\t请问你想按什么来查询:\n");

printf("\t1 年龄\n\t2 姓名\n\t3 班级\n\t4 性别\n\t5 学号\n\t 6 返回上一层\n\t 7 退出系统\n");

fflush(stdin);

scanf("%d",&a);

switch(a)

{

case 1:nianca();

break;

case 2:mingca();

break;

case 3:banca();

break;

case 4:xingca();

break;

case 5:xueca();

break;

case 6:return;

case 7:exit(0);

default:

printf("请重新选择!\n");

break;

}

}

}

void nianca()

{

int nianling,a=0;

printf("请输入你要查询的年龄:\n");

fflush(stdin);

scanf("%d",&nianling);

fp=fopen("wenjian.txt","rb+");

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(str.age==nianling)

{

printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

a=1;

}

}

if(a==0)

{

printf("没有你要找的学生信息。\n");

}

}

void mingca()

{

char xm[20];

int a=0;

printf("请输入你要查询的姓名:\n");

fflush(stdin);

scanf("%s",xm);

fp=fopen("wenjian.txt","rb+");

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(str.name,xm)==0)

{

printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

a=1;

}

}

if(a==0)

{

printf("没有你要找的学生信息。\n");

}

}

void banca()

{

char bj[20],a=0;

printf("请输入你要查询的班级:\n");

fflush(stdin);

scanf("%s",bj);

fp=fopen("wenjian.txt","rb+");

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(str.banji,bj)==0)

{

printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

a=1;

}

}

if(a==0)

{

printf("没有你要找的学生信息。\n");

}

}

void xingca()

{

char xb[3];

int a=0;

printf("请输入你要查询的性别\n");

fflush(stdin);

scanf("%s",xb);

fp=fopen("wenjian.txt","rb+");

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(str.xingbie,xb)==0)

{

printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

a=1;

}

}

if(a==0)

{

printf("没有你要找的学生信息。\n");

}

}

void xueca()

{

char xh[9];

int a=0;

printf("请输入你要查询的学号\n");

fflush(stdin);

scanf("%s",xh);

fp=fopen("wenjian.txt","rb+");

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(str.hao,xh)==0)

{

printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

a=1;

}

}

if(a==0)

{

printf("没有你要找的学生信息。\n");

}

}

void tian()

{

while(1)

{

char xuanze;

printf("\ta 添加\n\tb 返回\n\t请选择服务\n");

fflush(stdin);

scanf("%c",&xuanze);

switch(xuanze)

{

case'a':

case'A':

{

printf("\t你选择添加服务\n");

shexinxi();

cunxinxi();

break;

}

case'b':

case'B':

{

return;

}

}

}

}

void shexinxi()

{

printf("\t请输入姓名\n");

fflush(stdin);

scanf("%s",str.name);

printf("\t请输入年龄\n");

fflush(stdin);

scanf("%d",&str.age);

printf("\t请输入性别(男/女)\n");

fflush(stdin);

scanf("%s",str.xingbie);

printf("\t请输入班级\n");

fflush(stdin);

scanf("%s",str.banji);

printf("\t请输入分数\n");

fflush(stdin);

scanf("%s",str.fenshu);

printf("\t请输入学号\n");

fflush(stdin);

scanf("%s",str.hao);

printf("\t添加成功!\n");

printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

}

void cunxinxi()

{

fp=fopen("wenjian.txt","ab+");

if(fp==NULL)

{

printf("\t文件失败\n");

exit(0);

}

fwrite(&str,sizeof(XUE),1,fp);

fclose(fp);

}

void shanchu()

{

char xuanze;

for (;;)

{

printf("\n\ta 全部删除\n");

printf("\tb 按性别删除\n");

printf("\tc 按班级删除\n");

printf("\td 删除某一个\n");

printf("\te 返回上级菜单\n");

printf("\t请输入您的选择:\n");

fflush(stdin);

scanf("%c",&xuanze);

switch(xuanze)

{

case 'a':

case 'A':

{

quanbushanchu();

printf("\n删除成功!");

break;

}

case 'b':

case 'B':

{

xingbieshanchu();

printf("\n删除成功!");

break;

}

case 'c':

case 'C':

{

banjishanchu();

printf("\n删除成功!");

break;

}

case 'd':

case 'D':

{

mougeshanchu();

printf("\n删除成功!");

break;

}

case 'e':

{

return;

}

default:

{

printf("\t您的输入有误,请重新输入\n\n");

}

}

}

}

void quanbushanchu()

{

printf("\t全部删除\n");

fugai();

return;

}

void xingbieshanchu()

{

for(int i=0;i<3;i++)

{

char xingbie;

wenjian();

char name[20]={0};

char xingbie1[3]={0};

int age=0;

char banji[20];

char fenshu[3]={0};

fread(&str,sizeof(XUE),1,fp);

printf("\t请输入要删除人的性别(m:男/f:女)");

fflush(stdin);

scanf("%c",&xingbie);

while(!feof(fp))

{

if(xingbie=='m'||xingbie=='M')

{

if(strcmp(str.xingbie,"男")==0)

{

strcpy(str.name,name);

strcpy(str.xingbie,xingbie1);

str.age=age;

strcpy(str.banji,banji);

strcpy(str.fenshu,fenshu);

}

return;

}

else if(xingbie=='f'||xingbie=='F')

{

if(strcmp(str.xingbie,"女")==0)

{

strcpy(str.name,name);

strcpy(str.xingbie,xingbie1);

str.age=age;

strcpy(str.banji,banji);

strcpy(str.fenshu,fenshu); ;

}

return;

}

else

{

printf("\t您的输入有误,请重新输入\n");

}

}

}

}

void banjishanchu()

{

char banji[20];

wenjian();

char name[20]={0};

char xingbie1[3]={0};

int age=0;

char banji1[20]={0};

char fenshu[3]={0};

fread(&str,sizeof(XUE),1,fp);

printf("\t请输入您要删除的班级:\n");

fflush(stdin);

scanf("%s",banji);

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(banji,str.banji)==0)

{

strcpy(str.name,name);

strcpy(str.xingbie,xingbie1);

str.age=age;

strcpy(str.banji,banji1);

strcpy(str.fenshu,fenshu); ;

}

return;

}

}

void mougeshanchu()

{

char name1[20]={0};

char xingbie1[3]={0};

int age=0;

char banji[20]={0};

char fenshu[3]={0};

char name[20];

wenjian();

printf("\t请输入该学生的姓名");

fflush(stdin);

scanf("%s",name);

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(str.name,name))

{

strcpy(str.name,name1);

strcpy(str.xingbie,xingbie1);

str.age=age;

strcpy(str.banji,banji);

strcpy(str.fenshu,fenshu); ;

}

return;

}

}

void fugai()

{

fp=fopen("wenjian.txt","wb+");

if(fp==NULL)

{

printf("\tSorry!!!文件打开失败,系统即将退出。\n");

exit(0);

}

fclose(fp);

}

void wenjian()

{

fp=fopen("wenjian.txt","rb+");

if(fp==NULL)

{

printf("\tSorry!!!文件打开失败,系统即将退出。\n");

exit(0);

}

fclose(fp);

}

int quanbuxianshi()

{int a=0;

if(!(fp=fopen("wenjian.txt","rb+")))

fp=fopen("wenjian.txt","wb+");

while(!feof(fp))

{

fread(&str,sizeof(XUE),1,fp);

if(strcmp(str.name,""))

{printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%d\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);

a=1;

}

}

if(a==0)

{

printf("\n目前没有学生信息。\n");

}

return a;

}

⑤ c语言课程设计题目~求高手解答~写好可追加100分

你追我先啊,=下我写出给你发你邮箱你邮箱什么啊?

⑥ C语言课程题目

#include <stdio.h>
int main()
{
int a,b;
char c;
scanf("%d %c %d",&a,&c,&b);
if(c=='+')
printf("%d\n",a+b);
else if(c=='-')
printf("%d\n",a-b);
else if(c=='*')
printf("%d\n",a*b);
else if(c=='/')
printf("%d\n",a/b);
}

#include <stdio.h>
int main()
{
/*int a,b;
char c;
scanf("%d %c %d",&a,&c,&b);
if(c=='+')
printf("%d\n",a+b);
else if(c=='-')
printf("%d\n",a-b);
else if(c=='*')
printf("%d\n",a*b);
else if(c=='/')
printf("%d\n",a/b);*/
double d;
scanf("%lf",&d);

printf("%.2f\n",d);
}

⑦ C语言的简单题目

***********第一题**********
long a; //陌生人给富翁,单位万
long b; //富翁给陌生人,单位分
int main()
{
int i;
long todaygive;
todaygive=1;
for(i=0;i<30;i++)
{a+=10;
b+=todaygive;
todaygive*=2;
}
printf("陌生人给富翁:%ld0000元\n",a);
printf("富翁给陌生人:%ld.%ld元",b/100,b%100);
getchar();
}

***********第二题**********
struct student{
char name[20];
int score[3];
int ave;
}student[5];

int input()
{
int i;
for(i=0;i<5;i++)
{
printf("Student %d:",i+1);
gets(student[i].name);
printf("语文:");
scanf("%d",&student[i].score[0]);
printf("数学:");
scanf("%d",&student[i].score[1]);
printf("计算机:");
scanf("%d",&student[i].score[2]);
getchar();
student[i].ave=student[i].score[0]+student[i].score[1]+student[i].score[2];
student[i].ave/=3;
}
}
int print()
{
int i;
int max=0;
int maxid=0;
printf("%20s%5s%5s%7s%5s\n","姓名","语文","数学","计算机","平均");
for(i=0;i<5;i++)
{if(student[i].ave>=60)
printf("%20s%5d%5d%7d%5d\n",student[i].name,student[i].score[0],student[i].score[1],student[i].score[2],student[i].ave);
if(student[i].ave>max) {maxid=i; max=student[i].ave;}

}
printf("最高分:%s",student[maxid].name);
}

int main()
{
input();
print();
getchar();
getchar();
}
**************第三题****************
int main()
{
int i=0,j=0,k=0,l=0;
int count=0;
printf("%4s%4s%4s%4s\n","10元","5元","2元","1元");
for(i=1;i<10;i++)
for(j=1;j<20;j++)
for(k=1;k<40;k++)
for(l=1;l<40;l++)
{
if(i+j+k+l==40&&i*10+j*5+k*2+l==100)
{printf("%4d%4d%4d%4d\n",i,j,k,l);
count++;
}
}
printf("共有%d种换法.",count);
getchar();
}

************第四题***********
int b1,b2,b3;
char color[4][7]={"Red","While","Yellow","Blue"};
int count;
int main()
{
for(b1=0;b1<4;b1++)
for(b2=0;b2<4;b2++)
for(b3=0;b3<4;b3++)
if(b1!=b2&&b2!=b3&&b3!=b1)
{printf("%7s%7s%7s\n",color[b1],color[b2],color[b3]);
count++;
}printf("Total:%d",count);
getchar();
}
回答者:soyboydoy - 助理 三级 6-21 19:03

答了这么多建议加最佳

⑧ C语言实习变态题目,望高手帮忙,不胜感激!!

史//学生成绩管理程序
#include <stdio.h>
#include "stdlib.h"
#include <string.h>
#include<time.h>
#define S 5 /* 课程数 */
#define N 30 /* 姓名最大字符数 */
#define C 10 /* 学号最大字符数 */
#define F 80 /* 文件名最大字符数 */
#define B 80 /* 缓冲区最大字符数 */
#define M 500 // 最大学生人数
/* 课程名称表 */
char schoolwork[S][N+1] = {"物理","数学","英语","C 语言"," 电路分析"};
//结点类。
struct node
{
char name[N+1]; /* 姓名 */
char code[C+1]; /* 学号 */
int marks[S]; /* 各课程成绩 */
int total; /* 总分 */
struct node *next; /* 后续表元指针 */
}*head; /* 链表首指针 */
int total[S]; /* 各课程总分 */
char stuf[F]; /* 文件名 */
/* 从指定文件读入一个记录 */
int readnode(FILE *fpt,struct node *rpt)
{
char buf[B];
int i;
if(fscanf(fpt,"%s",buf)!=1)
return 0; /* 文件结束 */
strncpy(rpt->name,buf,N);
fscanf(fpt,"%s",buf);
strncpy(rpt->code,buf,C);
for(i=0;i<S;i++)
fscanf(fpt,"%d",&rpt->marks[i]);
for(rpt->total=0,i=0;i<S;i++)
rpt->total+=rpt->marks[i];
return 1;
} /* 对指定文件写入一个记录 */
int writenode(FILE *fpt,struct node *rpt)
{
int i;
fprintf(fpt,"%s\n",rpt->name);
fprintf(fpt,"%s\n",rpt->code);
for(i=0;i<S;i++)
fprintf(fpt,"%d\n",rpt->marks[i]);
return 1;
} /* 显示学生记录 */
void displaystu(struct node *rpt)
{
int i;
printf("\n学生名字 : %s\n",rpt->name);
printf("学号 : %s\n",rpt->code);
printf("各科成绩 :\n");
for(i=0;i<S;i++)
printf(" %-15s : %4d\n",schoolwork[i],rpt->marks[i]);
printf("Total : %4d\n",rpt->total);
}
/* 计算各单科总分 */
int totalmark(char *fname)
{
FILE *fp;
struct node s;
int count,i;
if((fp=fopen(fname,"r"))==NULL)
{
printf("不能打开文件%s.\n",fname);
return 0;
}
for(i=0;i<S;i++)
total[i]=0;
count=0;
while(readnode(fp,&s)!=0)
{
for(i=0;i<S;i++)
total[i]+=s.marks[i];
count++;
}
fclose(fp);
return count; /* 返回记录数 */
}
/* 列表显示学生信息 */
void liststu(char *fname)
{
FILE *fp;
int i;
struct node s;
if((fp=fopen(fname,"r"))==NULL)
{
printf("不能打开文件 %s.\n",fname);
return ;
}
printf("\n姓名\t学号\t物理\t数学\t英语\tC语言\t电路分析\t总分\n");
while(readnode(fp,&s)!=0)
{
printf("\r%s",s.name);
printf("\t %s",s.code);
for(i=0;i<S;i++)
printf("\t%4d",s.marks[i]);
printf("\t\t %4d",s.total);
printf("\n 按 ENTER 键继续...");
while(getchar()!='\n');
}
fclose(fp);
return;
}
/* 构造链表 */
struct node *makelist(char *fname)
{
FILE *fp;
struct node *p,*u,*v,*h;
if((fp=fopen(fname,"r"))==NULL)
{
printf("不能打开文件 %s.\n",fname);
return NULL;
}
h=NULL;
p=(struct node *)malloc(sizeof(struct node));
while(readnode(fp,(struct node *)p)!=0)
{
v=h;
while(v&&p->total<=v->total)
{
u=v;
v=v->next;
}
if(v==h)
h=p;
else
u->next=p;
p->next=v;
p=(struct node *)malloc(sizeof(struct node));
}
free(p);
fclose(fp);
return h;
}
/* 顺序显示链表各表元 */
void displaylist(struct node *h)
{
int i;
printf("\n姓名\t学号\t物理\t数学\t英语\tC语言\t电路分析\t总分\n");
while(h!=NULL)
{
printf("\r%s",h->name);
printf("\t %s",h->code);
for(i=0;i<S;i++)
printf("\t%4d",h->marks[i]);
printf("\t\t %4d",h->total);
printf("\n 按 ENTER 键继续...");
while(getchar()!='\n');
h=h->next;
}
return;
} /* 按学生姓名查找学生记录 */
int retrievebyn(char *fname, char *key)
{
FILE *fp;
int c;
struct node s;
if((fp=fopen(fname,"r"))==NULL)
{
printf("不能打开文件 %s.\n",fname);
return 0;
}
c=0;
while(readnode(fp,&s)!=0)
{
if(strcmp(s.name,key)==0)
{
displaystu(&s);
c++;
}
}
fclose(fp);
if(c==0)
printf("你要查找的学生%s 不在文件中! %s.\n",key,fname);
return 1;
}
/* 按学生学号查找学生记录 */
int retrievebyc(char *fname, char *key)
{
FILE *fp;
int c;
struct node s;
if((fp=fopen(fname,"r"))==NULL)
{
printf("不能打开文件 %s.\n",fname);
return 0;
}
c=0;
while(readnode(fp,&s)!=0)
{
if(strcmp(s.code,key)==0)
{
displaystu(&s);
c=1;
break;
}
}
fclose(fp);
if(c==0)
printf("你要查找的学生 %s 不 在文件中 %s.\n",key,fname);
return 1;
}
void insertlist() /*添加学生记录*/
{
FILE *fp;
int j;
char sh='k';
struct node s;
if((fp=fopen(stuf,"r"))==NULL)
{
printf("不能打开文件 %s.\n",stuf);
return ;
}
fp=fopen(stuf,"a");
while(sh!='#')
{
printf("请输入学生的名字: ");
scanf("%s",&s.name);
printf("请输入学号: ");
scanf("%s",&s.code);
for(j=0;j<S;j++)
{
printf("请输入 %s成绩: ",schoolwork[j]);
scanf("%d",&s.marks[j]);
}
writenode(fp,&s);
getchar();
printf("停止输入请按数字“#”,继续请按其他键");
sh=getchar();
}
fclose(fp);
return;
}

我有的就是这个..自己改下...

⑨ c语言程序设计编程题目:请 :编写完成对学生相关信息的要求:1.定义一个结构体类型student,其中包括三个成

#include <stdio.h>

#include <stdlib.h>

#define STU_NUM 10 /*宏定义学生的数量*/

struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/

{

char stu_id[20]; /*学生学号;*/

float score[3]; /*三门课成绩;*/

float total; /*总成绩;*/

float aver; /*平均成绩;*/

};

/*排序用一个函数来实现*/

void SortScore(student *stu,int n)

{

student stud;

for(int i = 0; i < n-1; i++)

for(int j = i+1 ; j < n; j++)

{

if(stu[i].total < stu[j].total)

{

stud = stu[i];

stu[i] = stu[j];

stu[j] = stud;

}

}

}

int main( )

{

student stu[STU_NUM]; /*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*/

/*输入这十个学生的相关信息*/

for(int i = 0; i<STU_NUM; i++)

{

printf("请输入第%d个学生的学号:",i+1);

scanf("%s",&stu[i].stu_id);

printf("输入第%d个学生的数学成绩:",i+1);

scanf("%f",&stu[i].score[0]);

printf("输入第%d个学生的英语成绩:",i+1);

scanf("%f",&stu[i].score[1]);

printf("输入第%d个学生的计算机成绩:",i+1);

scanf("%f",&stu[i].score[2]);

stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

stu[i].aver = stu[i].total/3;

}

printf("\n");

SortScore(stu,STU_NUM);/*调用排序函数*/

/*输出排序后的各学生的成绩*/

for(i = 0 ; i < STU_NUM; i++)

{

printf("序号: %d\t",i);

printf("学号:%s\t",stu[i].stu_id);

printf("数学:%f\t",stu[i].score[0]);

printf("英语:%f\t",stu[i].score[1]);

printf("计算机:%f\t",stu[i].score[2]);

printf("平均成绩:%f\t",stu[i].aver);

printf("总分:%f\t",stu[i].total);

printf("\n\n");

}

return 0;

}

注:(源程序中主要标识符含义说明)

#define STU_NUM 10 /*宏定义学生的数量*/

struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/

{

char stu_id[20]; /*学生学号;*/

float score[3]; /*三门课成绩;*/

float total; /*总成绩;*/

float aver; /*平均成绩;*/

}