① 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; /*平均成绩;*/
}