c语言课程设计价格表(c语言课程设计高速公路计费系统)

本文目录
c语言课程设计高速公路计费系统
#include《stdio.h》
#include《stdlib.h》
#include《string.h》
#include《conio.h》
#define N 10
// 定义三个入口到出口的路程分别是l1 l2 l3
struct vehicle//车辆信息
{
char num;//车牌号
char variety;//车辆类型a,b,c(大,中,小)
int entime;//进入时间
char enter;//进入口1,2,3……分别为各个入口
}ve;
int count=0;
FILE *fp;
//函数声明//
void menu();//主菜单
void input();//输入函数
void show();
void all();
void readfile();//从文件导入
void writefile();//写入
void main()
{
readfile();
while(1)
{
menu();
}
}
void readfile()//从文件导入
{
if((fp=fopen("vehicle.txt","r"))==NULL)
{
printf("\n\t\t\t\t文件为空,请添加信息");
if((fp=fopen("vehicle.txt","w"))==NULL)
{
printf("\n\t\t\t建立失败");
exit(0);
}
else
{
printf("\n\t\t文件已建立");
printf("\n\t\tPress any key to get to mainmenu!");
getch();
return;
}
exit(0);
}
fseek(fp,0,2); /*文件指针fp指到到文件末尾*/
if(ftell(fp)》0) /*文件不为空*/
{
fseek(fp,0,0); /*文件指针指到文件开始位置*/
for(count=0;!feof(fp)&&fread(&ve,sizeof(struct vehicle),1,fp);count++);
printf("\n\t\t文件导入成功");
printf("\n\t\t按任意键进入系统");
getch();
return;
}
printf("\n\t\t\t已成功打开文件!");
printf("\n\t\t\tPress anykey to get back to mainmenu");
getch();
return;
}
void menu()
{system("cls");//清屏
char n;
printf("\n\n\n\n");
printf("\t\t☆★☆★☆★欢迎使用高速公路收费系统☆★☆★☆★\n");
printf("\t\t◇◇◇§§§◇◇◇◇主菜单◇◇◇◇§§§◇◇◇\n");
printf(" *********1.输入车辆信息*********\n");
printf(" *********2.显示车辆信息*********\n");
printf(" *********3.显示车辆总数*********\n");
printf(" *********4.保存退出系统 *********\n");
printf(" 请输入数字选择操作类型:\n");
n=getch();
switch(n)
{
case ’1’: input();break;
case ’2’: show();break;
case ’3’: all();break;
case ’4’: writefile();break;
default: break;
}
}
void input()
{ system("cls");
printf("请输入车辆信息\n");
printf("车牌号:\n");
scanf("%s",&ve.num);
printf("车辆类型(a,b,c分别代表大,中,小):\n");
scanf("%s",ve.variety);
printf("进入时间:\n");
scanf("%d",&ve.entime);
printf("入口(1,2,3代表三个入口):\n");
scanf("%s",&ve.enter);
count++;
printf("是否继续添加(Y/N)\n");
if(getch()==’y’||getch()==’Y’)
input();
}
void show()
{ system("cls");
char num;
char enter;
int i;
double a,b,c,l1=200,l2=300,l3=400;// 定义三个入口到出口的路程分别是l1 l2 l3(200 300 400)公里
printf("请输入车牌号:\n");
scanf("%s",num);
for(i=0;i《count;i++)
{if(strcmp(ve.num,num)==0)
{
printf("车辆信息:");
printf("车辆类型:%s\n",ve.variety);
printf("入口站:%s\n",ve.enter);
printf("进入时间:%d\n",ve.entime);
printf("车牌号:%s",ve.num);
}
}
for(i=0;i《count;i++)
{ if(strcmp(ve.enter,"1")==0)
{
a=0.5*l1;
printf("此车应缴费%f元",a);
}
else if(strcmp(ve.enter,"2")==0)
{
a=0.5*l2;
printf("此车应缴费%f元",a);
}
else if(strcmp(ve.enter,"3")==0)
{
a=0.5*l3;
printf("此车应缴费%f元",a);
}
else if(strcmp(ve.enter,"1")==0)
{
b=0.4*l1;
printf("此车应缴费%f元",b);
}
else if(strcmp(ve.enter,"2")==0)
{
b=0.4*l2;
printf("此车应缴费%f元",b);
}
else if(strcmp(ve.enter,"3")==0)
{
b=0.4*l3;
printf("此车应缴费%f元",b);
}
else if(strcmp(ve.enter,"1")==0)
{
c=0.3*l1;
printf("此车应缴费%f元",c);
}
else if(strcmp(ve.enter,"2")==0)
{
c=0.3*l2;
printf("此车应缴费%f元",c);
}
else if(strcmp(ve.enter,"3")==0)
{
c=0.3*l3;
printf("此车应缴费%f元",c);
}
}
getch();
return;
}
void writefile()
{
int i;
if((fp=fopen("vehicle.txt","w"))==NULL)
{
printf("\n\t\t文件打开失败");
}
for (i=0;i《count;i++)
{
if(fwrite(&ve,sizeof(struct vehicle),1,fp)!=1)
{
printf("\n\t\t写入文件错误!\n");
}
}
fclose(fp);
printf("\n\t\t通讯录文件已保存");
printf("\n\t\t按任意键退出程序\n\t\t");
exit(0);
}
void all()
{ system("cls");
printf("车辆总数为:%d",count);
getch();
return;
}
C语言利用数组解决火车价格表问题求完整程序语句
我写了一个完整的程序给你参考。
源代码如下(vc++ 6.0下编译通过):
#include 《stdio.h》
#include 《stdlib.h》
#define MAX_DATA_LEN 7//A,B,...,F,G
int main()
{
int i = 0, j = 0;
int m = 0, n = 0;
char site1 = 0, site2 = 0;
int train_ticket_price = {0};
char select_input = {0};
int select = 0;
train_ticket_price = 100;
for (i = 2; i 《 MAX_DATA_LEN; i++)
train_ticket_price + 100;
train_ticket_price = 110;
for (i = 3; i 《 MAX_DATA_LEN; i++)
train_ticket_price + 100;
train_ticket_price = 220;
train_ticket_price = 110;
train_ticket_price = 120;
train_ticket_price = 220;
train_ticket_price = 320;
train_ticket_price = 410;
train_ticket_price = 300;
train_ticket_price = 210;
train_ticket_price = 110;
train_ticket_price = 110;
train_ticket_price = 210;
train_ticket_price = 320;
train_ticket_price = 410;
train_ticket_price = 300;
train_ticket_price = 210;
train_ticket_price = 100;
train_ticket_price = 110;
train_ticket_price = 200;
train_ticket_price = 505;
train_ticket_price = 405;
train_ticket_price = 300;
train_ticket_price = 200;
train_ticket_price = 110;
train_ticket_price = 100;
train_ticket_price = 605;
for (i = 1; i 《 MAX_DATA_LEN-1; i++)
train_ticket_price - 100;
while (1)
{
m = 0;
n = 0;
printf("请输入两个站点名称:\n");
while (1)
{
fflush(stdin);
scanf("%c %c", &site1, &site2);
if ( (site1 》 ’G’ || site1 《 ’A’)
|| (site2 》 ’G’ || site2 《 ’A’) )
{
printf("输入站点名称错误,请重新输入: \n");
continue;
}
else
break;
}
for (i = 0; i 《 MAX_DATA_LEN; i++)
{
if (site1 == (’A’ + i))
{
m += i;
}
if (site2 == (’A’ + i))
{
n += i;
}
}
//printf("%d, %d\n", m, n);
printf("%c-》%c, 票价: %d\n", site1, site2, train_ticket_price);
printf("%c-》%c, 票价: %d\n", site2, site1, train_ticket_price);
printf("经过的站点:\n");
if ( (m+1) == n || (n+1) == m )
{
printf("%c和%c之间没有站点.\n", site1, site2);
}
else
{
if (m 》 n)
{
for (i = n+1; i 《 m; i++)
{
printf("%c ", ’A’+i);
}
printf("\n");
}
else
{
for (i = m+1; i 《 n; i++)
{
printf("%c ", ’A’+i);
}
printf("\n");
}
}
while (1)
{
printf("继续查询请输入1,退出请输入2 \n");
fflush(stdin);
scanf("%s", &select_input);
select = atoi(select_input);
if (select == 1)
{
break;
}
else if (select == 2)
{
exit(-1);
}
else
printf("选择错误,请重新输入:\n");
}
}
return 0;
}
希望对你有帮助。
c语言课程设计
刚为别人做了一个,和你这个很像,不过用的是单项链表方式而不是array.
自己修改下满足你的要求吧
#include 《stdio.h》
#include 《string.h》
#include 《stddef.h》
struct StudentCard {
int index; //学生号
char name; //姓名
int age; //年龄
char sex; //性别
int classroom; //班级
char school; //学校
char birthday; //出生年月
struct StudentCard *next; //到下一个学生卡,链表
};
typedef struct StudentCard ELEMENT; //自定义符号
typedef ELEMENT *LINK;
LINK add(LINK head){ //加入一个新的学生信息,该函数将返回一个struct的指针
int index,age,classroom;
char name;
printf("Please input index number: ");
scanf("%d",&index);
printf("Please input name: ");
scanf("%s",name);
printf("Please input age: ");
scanf("%d",&age);
printf("Please input sex(nan or nv): ");
scanf("%s",sex);
printf("Please input classroom: ");
scanf("%d",&classroom);
printf("Please input school: ");
scanf("%s",school);
printf("Please input birthday :");
scanf("%s",birthday);
if (!head){ //如果是头链表为空的情况,也就是输入第一个学生卡
head=malloc(sizeof(ELEMENT));
head-》index=index;
head-》age=age;
head-》classroom=classroom;
strcpy(head-》name,name);
strcpy(head-》sex,sex);
strcpy(head-》school,school);
strcpy(head-》birthday,birthday);
head-》next=NULL; //下一个元素为NULL,空
printf("Successful!\n");
return head; //返回头链
}
else{
LINK tail=head;//用一个哨兵指针指向头元素
while ((tail)&&(tail-》index!=index))
//在tail为NULL并且tail的index不与用户输入的index相等之前,tail一直跳到下一个元素
tail=tail-》next;
if (tail) //如果存在这个tail
printf("index has already existed! Failed!\n");
else{
tail=head;//再次初始化
while (tail-》next) //当哨兵的下一个元素存在时,哨兵跳到哨兵下一个元素
tail=tail-》next;
//当上面这个循环结束后,此时tail的下一个元素必定为NULL
tail-》next=malloc(sizeof(ELEMENT));//创建新的元素
tail=tail-》next; //跳转到下一个新创建的元素
tail-》index=index;
tail-》age=age;
tail-》classroom=classroom;
strcpy(tail-》name,name);
strcpy(tail-》sex,sex);
strcpy(tail-》school,school);
strcpy(tail-》birthday,birthday);
tail-》next=NULL;
printf("Successful!\n");
return head;
}
}
}
void Print_ALL(LINK head){//该函数输出所有学生信息
LINK tail=head;
if (!head) //如果头元素为NULL,就是链表无一个元素
printf("Empty List!\n");
else{
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
while (tail){//知道哨兵为NULL之前,一直输出哨兵的内容
printf("%d\t%s\t",tail-》index,tail-》name);
printf("%d\t%s\t%d\t",tail-》age,tail-》sex,tail-》classroom);
printf("%s\t%s\n",tail-》school,tail-》birthday);
tail=tail-》next;
}
}
};
void Print_DEPEND_INDEX(LINK head){ //该函数输出指定的学生号的学生信息
int tem;
LINK tail=head;
printf("Please input the index number of student: ");
scanf("%d",&tem);
if (!head)
printf("Empty List!\n");
else{
while ((tail)&&(tail-》index!=tem))
tail=tail-》next;
if (!tail)
printf("student not existed!\n");
else{
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
printf("%d\t%s\t",tail-》index,tail-》name);
printf("%d\t%s\t%d\t",tail-》age,tail-》sex,tail-》classroom);
printf("%s\t%s\n",tail-》school,tail-》birthday);
}
}
}
void Print_DEPEND_CLASS(LINK head){ //该函数输出指定的班级的学生信息
int tem;
LINK tail=head;
printf("Please input classroom: ");
scanf("%d",&tem);
if (!head)
printf("Empty List!\n");
else{
while ((tail)&&(tail-》classroom!=tem))
tail=tail-》next;
if (!tail)
printf("No such classroom!\n");
else{
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
while (tail){
if (tail-》classroom==tem){
printf("%d\t%s\t",tail-》index,tail-》name);
printf("%d\t%s\t%d\t",tail-》age,tail-》sex,tail-》classroom);
printf("%s\t%s\n",tail-》school,tail-》birthday);
}
tail=tail-》next;
}
}
}
}
void Print_DEPEND_SEX(LINK head){ //该函数输出男或女同学信息
char tem;
printf("please input sex(nan or nv): ");
scanf("%s",tem);
if (!head)
printf("Empty List!\n");
else{
LINK tail=head;
while ((tail)&&(strcmp(tem,tail-》sex)!=0))
//当不相等或者tail有效时,tail跳到下一个元素
tail=tail-》next;
if (!tail)
printf("No %s student!\n",tem);
else{
tail=head;
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
while (tail){
if (strcmp(tem,tail-》sex)==0){
printf("%d\t%s\t",tail-》index,tail-》name);
printf("%d\t%s\t%d\t",tail-》age,tail-》sex,tail-》classroom);
printf("%s\t%s\n",tail-》school,tail-》birthday);
}
tail=tail-》next;
}
}
}
}
LINK Edit(LINK head){ //该函数用来修改信息
int tem;
LINK tail=head;
printf("Please input index of student: ");
scanf("%d",&tem);
if (!head){
printf("Empty List!\n");
return NULL;
}
else{
while ((tail)&&(tail-》index!=tem))
tail=tail-》next;
if (!tail){
printf("No such student!\n");
return head;
}
else{
printf("Please input name: ");
scanf("%s",tail-》name);
printf("Please input age: ");
scanf("%d",&tail-》age);
printf("Please input sex(nan or nv): ");
scanf("%s",tail-》sex);
printf("Please input classroom: ");
scanf("%d",&tail-》classroom);
printf("Please input school: ");
scanf("%s",tail-》school);
printf("Please input birthday :");
scanf("%s",tail-》birthday);
printf("Edit successful!\n");
return head;
}
}
}
LINK DELETE(LINK head){ //该函数用来删除学生信息
int tem;
LINK tail=head;
printf("Please input index of student: ");
scanf("%d",&tem);
if (!head){
printf("Empty List!\n");
return NULL;
}
else if ((head-》index==tem)&&(!head-》next)){//当头元素满足并且链表只有一个元素
printf("Deleted!\n");
return NULL;
}
else if ((head-》index==tem)&&(head-》next)){//当头元素满足并且链表有许多元素
printf("Deleted!\n");
return head-》next;
}
else{ //当满足条件的元素在链表中间或者结尾
while ((tail)&&(tail-》index!=tem))
tail=tail-》next;
if (!tail){
printf("No such student!\n");
return head;
}
else{
if (!tail-》next){//当满足条件的元素在链表结尾
LINK tail2=head;//新的哨兵
while (tail2-》next!=tail)
tail2=tail2-》next;
tail2-》next=NULL; //直接指向为NULL,表示链表尾,跳过tail
printf("Deleted!\n");
return head;
}
else{ //当满足条件的元素在链表中间
LINK tail2=head;//新的哨兵
while (tail2-》next!=tail)
tail2=tail2-》next;
tail2-》next=tail-》next; //跳过tail这个元素
printf("Deleted!\n");
return head;
}
}
}
}
void Display_MENU(){
printf("\t*********studentcard management system*********\n");
printf("\t1.Input student’s informations (add a student)\n");
printf("\t2.Print all students’ informations\n");
printf("\t3.Input index number,print selected student’s information\n");
printf("\t4.Input classroom number,print informations of those students\n");
printf("\t5.Input index number, modify information\n");
printf("\t6.Input index number, remove information\n");
printf("\t7.Print nan or nv informations\n");
printf("\t8.Display Menu\n");
printf("\t9.Exit\n");
printf("\t***********************************************\n");
}
int main(){
LINK head=NULL; //链表头的初始化
int asker;
Display_MENU();
while(1){
printf("》》");
scanf("%d",&asker);
if (asker==1)//加入新学生信息
head=add(head);
else if (asker==2)//输出所有学生信息
Print_ALL(head);
else if (asker==3) //输入学生号,输出学生信息
Print_DEPEND_INDEX(head);
else if (asker==4) //输入班级,输出学生信息
Print_DEPEND_CLASS(head);
else if (asker==5) //输入学生号,修改学生信息
head=Edit(head);
else if (asker==6) //输入学生号,删除学生信息
DELETE(head);
else if (asker==7) //输入男或女,输出学生信息
Print_DEPEND_SEX(head);
else if (asker==8) //显示菜单
Display_MENU();
else if (asker==9) //退出程序,也就是退出while(1)循环
break;
else
printf("please select correct number!\n");
}
printf("system log-out!\n");
return 0;
}
c语言课程设计
#include 《stdio.h》
#include 《stdlib.h》
#include 《string.h》
#include 《conio.h》
struct record
{
char id;
char name;
char phone;
char adress;
char postcode;
char e_mail;
}student;
int num=0;//外部变量num为文件中的纪录数
FILE *fp;
void mainmenu();//主菜单
void newrecord();//新添纪录
void searchmenu();//查询菜单
void searchbyid();//按学号查询
void searchbyname();//按姓名查询
void searchbyphone();//按电话查询
void deletemenu();//删除菜单
void deleteall();//删除所有
void deleteone();//删除单个
void showall();//茄梁显示所有
void readfromfile();//读取文件
void writetofile();//写入文件
void deletebyid();//按学号删除
void deletebyname();//按姓名删除
void listbyid();//按学号排序
void listbyname();//按姓名排序
void listmenu();//排序菜单
void main()
{
readfromfile();
while (1)
{
mainmenu();
}
}
void readfromfile()//从文件导入
{
if((fp=fopen("student.bin","rb"))==NULL)
{
printf("\n\颤芹运t\t通讯录文件不存在");
if ((fp=fopen("student.bin","wb"))==NULL)
{
printf("\n\t\t建立失败");
exit(0);
}
else
{
printf("\n\t\t通讯录文件已建立");
printf("\n\t\t按任意键进入主菜单");
getch();
return;
}
exit(0);
}
fseek(fp,0,2); /*文件位置指针移动到文件末首森尾*/
if (ftell(fp)》0) /*文件不为空*/
{
rewind(fp); /*文件位置指针移动到文件开始位置*/
for (num=0;!feof(fp) && fread(&student,sizeof(struct record),1,fp);num++);
printf("\n\t\t文件导入成功");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
printf("\n\t\t文件导入成功");
printf("\n\t\t通讯录文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
void mainmenu()//主菜单
{
char choic;
system("cls");
printf("\n\t\t******************** 主菜单 ********************");
printf("\n\t\t*********** 1-新添纪录 2-查询菜单 ************");
printf("\n\t\t*********** 3-删除菜单 4-记录排序 ************");
printf("\n\t\t*********** 5-保存退出 6-不保存退出***********");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:");
choic=getch();
switch (choic)
{
case ’1’:newrecord();break;
case ’2’:searchmenu();break;
case ’3’:deletemenu();break;
case ’4’:listmenu();break;
case ’5’:writetofile();break;
case ’6’:exit(0);
default:mainmenu();
}
}
void searchmenu()//查询菜单
{
char choic;
system("cls");
printf("\n\t\t******************* 查询菜单 *******************");
printf("\n\t\t********** 1-显示所有 2-按学号查询 ************");
printf("\n\t\t********** 3-按姓名查询4-按电话查询 ************");
printf("\n\t\t********** 5-返回主菜单 ************");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:");
choic=getch();
switch (choic)
{
case ’1’:showall();break;
case ’2’:searchbyid();break;
case ’3’:searchbyname();break;
case ’4’:searchbyphone();break;
case ’5’:mainmenu();break;
}
}
void deletemenu()//删除菜单
{
char choic;
if(num==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
system("cls");
printf("\n\t\t******************* 删除菜单 *******************");
printf("\n\t\t*********** 1-删除所有 2-删除单个 ***********");
printf("\n\t\t*********** 3-返回主菜单 ***********");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:");
choic=getch();
switch (choic)
{
case ’1’:deleteall();break;
case ’2’:deleteone();break;
case ’3’:mainmenu();break;
default:mainmenu();break;
}
}
void deleteall()//删除所有
{
printf("\n\t\t确认删除?(y/n)");
if (getch()==’y’)
{
fclose(fp);
if ((fp=fopen("student.bin","wb"))==NULL)
{
printf("\n\t\t不能打开文件,删除失败");
readfromfile();
}
num=0;
printf("\n\t\t纪录已删除,按任意键返回主菜单");
getch();
return;
}
else
return;
}
void deletebyname()//按姓名删除
{
int a=0;
int findmark=0;
int j;
int deletemark=0;
int i;
char name;
printf("\n\t\t请输入要删除学生姓名:");
scanf("%s",name);
for (i=a;i《num;i++)
{
if (strcmp(student.name,name)==NULL)
{
printf("\n\t\t以下是您要删除的学生纪录:");
findmark++;
printf("\n\t\t________________________________");
printf("\n\t\t学号: %s",student.id);
printf("\n\t\t姓名: %s",student.name);
printf("\n\t\t电话: %s",student.phone);
printf("\n\t\t地址: %s",student.adress);
printf("\n\t\te-mail:%s",student.e_mail);
printf("\n\t\t________________________________");
printf("\n\t\t是否删除?(y/n)");
if (getch()==’y’)
{
for (j=i;j《num-1;j++) /*纪录移动,从stud数组中删除之*/
student;
num--;
deletemark++;
printf("\n\t\t删除成功");
if((i+1)《num)
{
printf("\n\t\t是否继续删除相同姓名的同学信息?(y/n)");
if (getch()==’y’)
{
a=i;
continue;
}
}
printf("\n\t\t是否继续删除?(y/n)");
if (getch()==’y’)
deletebyname();
return;
}
if((i+1)《num)
{
printf("\n\t\t是否继续删除相同姓名的同学信息?(y/n)");
if (getch()==’y’)
{
a=i;
continue;
}
}
}
else
continue;
}
if ((deletemark==0)&&(findmark==0))
{
printf("\n\t\t没有该同学的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()==’y’)
deletebyid();
return;
return;
}
else if (findmark!=0)
{
printf("\n\t\t没有重名信息");
printf("\n\t\t没有该同学的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()==’y’)
deletebyid();
return;
return;
}
}
void deletebyid()//按学号删除
{
int i,j;
int deletemark=0;
char id;
printf("\n\t\t请输入要删除学生学号:");
scanf("%s",id);
if(num==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for (i=0;i《num;i++)
{
if (strcmp(student.id,id)==NULL)
{
printf("\n\t\t以下是您要删除的学生纪录:");
printf("\n\t\t学号: %s",student.id);
printf("\n\t\t姓名: %s",student.name);
printf("\n\t\t电话: %s",student.phone);
printf("\n\t\t地址: %s",student.adress);
printf("\n\t\te-mail:%s",student.e_mail);
printf("\n\t\t是否删除?(y/n)");
if (getch()==’y’)
{
for (j=i;j《num-1;j++) /*纪录移动,从stud数组中删除之*/
student;
num--;
deletemark++;
printf("\n\t\t删除成功");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()==’y’)
deletebyid();
return;
}
else
return;
}
continue;
}
if (deletemark==0)
{
printf("\n\t\t没有该同学的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()==’y’)
deletebyid();
return;
}
}
void newrecord()//添加纪录
{
printf("\n\t\t**************** 请输入学生信息 ****************\n");
printf("\n\t\t输入学号:");
scanf("%s",&student.id);
printf("\n\t\t输入姓名:");
scanf("%s",&student.name);
printf("\n\t\t输入电话号码:");
scanf("%s",&student.phone);
printf("\n\t\t输入地址:");
scanf("%s",&student.adress);
printf("\n\t\t输入邮编:");
scanf("%s",&student.postcode);
printf("\n\t\t输入e-mail:");
scanf("%s",&student.e_mail);
num++;
printf("\n\t\t是否继续添加?(Y/N):");
if (getch()==’y’)
newrecord();
return;
}
void showall()//显示所有
{
int i;
system("cls");
if(num!=0)
{
printf("\n\t\t*************** 以下为通讯录所有信息************");
for (i=0;i《num;i++)
{
printf("\n\t\t学号: %s",student.id);
printf("\n\t\t姓名: %s",student.name);
printf("\n\t\t电话: %s",student.phone);
printf("\n\t\t地址: %s",student.adress);
printf("\n\t\t邮编: %s",student.postcode);
printf("\n\t\te-mail:%s",student.e_mail);
printf("\t\t");
if (i+1《num)
{
printf("\n\t\t__________________________");
system("pause");
}
}
printf("\n\t\t************************************************");
}
else
printf("\n\t\t通讯录中无任何纪录");
printf("\n\t\t按任意键返回主菜单:");
getch();
return;
}
//按电话查询
void searchbyphone()
{
int mark=0;
int i;
int a=0;
printf("\n\t\t****************** 按电话查找 ******************");
char phone;
printf("\n\t\t请输入学号:");
scanf("%s",phone);
for(i=0;i《num;i++)
{
if (strcmp(student.phone,phone)==0)
{
printf("\n\t\t************** 以下是您查找的学生信息 **********");
printf("\n\t\t学号: %s",student.id);
printf("\n\t\t姓名: %s",student.name);
printf("\n\t\t电话: %s",student.phone);
printf("\n\t\t地址: %s",student.adress);
printf("\n\t\te-mail:%s",student.e_mail);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:");
mark++;
getch();
return;
}
}
if (mark==0)
{
printf("\n\t\t没有改学生的信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void searchbyname()//按姓名查询
{
int mark=0;
int i;
int a=0;
printf("\n\t\t***************** 按姓名查找 *******************");
char name;
printf("\n\t\t请输入姓名:");
scanf("%s",name);
for(i=a;i《num;i++)
{
if (strcmp(student.name,name)==0)
{
printf("\n\t\t************* 以下是您查找的学生信息 ***********");
printf("\n\t\t学号: %s",student.id);
printf("\n\t\t姓名: %s",student.name);
printf("\n\t\t电话: %s",student.phone);
printf("\n\t\t地址: %s",student.adress);
printf("\n\t\te-mail:%s",student.e_mail);
printf("\n\t\t************************************************");
mark++;
if ((i+1)《num)
{
printf("\n\t\t是否继续查找相同名字的学生信息:(y/n)");
if (getch()==’y’)
{
a=i;
continue;
}
else
return;
}
else
{
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
}
if(mark!=0)
{
printf("\n\t\t没有相同姓名的学生纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
else
{
printf("\n\t\t没有相同姓名的学生纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void searchbyid()//按学号查询
{
int mark=0;
int i;
int a=0;
printf("\n\t\t****************** 按学号查找 ******************\n");
char id;
printf("\n\t\t请输入学号:");
scanf("%s",id);
for(i=0;i《num;i++)
{
if (strcmp(student.id,id)==0)
{
printf("\n\t\t************** 以下是您查找的学生信息 **********");
printf("\n\t\t学号: %s",student.id);
printf("\n\t\t姓名: %s",student.name);
printf("\n\t\t电话: %s",student.phone);
printf("\n\t\t地址: %s",student.adress);
printf("\n\t\te-mail:%s",student.e_mail);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:");
mark++;
getch();
return;
}
}
if (mark==0)
{
printf("\n\t\t没有改学生的信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void writetofile()//写入文件
{
int i;
if ((fp=fopen("student.bin","wb"))==NULL)
{
printf("\n\t\t文件打开失败");
}
for (i=0;i《num;i++)
{
if (fwrite(&student,sizeof(struct record),1,fp)!=1)
{
printf("\n\t\t写入文件错误!\n");
}
}
fclose(fp);
printf("\n\t\t通讯录文件已保存");
printf("\n\t\t按任意键退出程序\n\t\t");
exit(0);
}
void deleteone()//删除单个
{
char choic;
printf("\n\t\t1-按学号删除 2-按姓名删除");
printf("\n\t\t请选择:");
choic=getch();
switch (choic)
{
case ’1’:deletebyid();break;
case ’2’:deletebyname();break;
}
}
void listbyname()//按姓名排序
{
int i,j;
struct record tmp;
for (i=1;i《num;i++)
{
if(strcmp(student.name)《0)
{
tmp=student;
j=i-1;
do
{
student;
j--;
}while ((strcmp(tmp.name,student.name)《0&&j》=0));
student=tmp;
}
}
printf("\n\t\t排序成功,是否显示?(y/n)");
if (getch()==’y’)
showall();
return;
}
void listbyid()//按学号排序
{
int i,j;
struct record tmp;
for (i=1;i《num;i++)
{
if(strcmp(student.id)《0)
{
tmp=student;
j=i-1;
do
{
student;
j--;
}while ((strcmp(tmp.id,student.id)《0)&&j》=0);
student=tmp;
}
}
printf("\n\t\t排序成功,是否显示?(y/n)");
if (getch()==’y’)
showall();
return;
}
void listmenu()//排序菜单
{
char choic;
if(num==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
system("cls");
printf("\n\t\t******************* 排序菜单 *******************");
printf("\n\t\t********** 1-按学号排序 2-按姓名排序 **********");
printf("\n\t\t********** 3-返回主菜单 **********");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:");
choic=getch();
switch(choic)
{
case ’1’:listbyid();break;
case ’2’:listbyname();break;
case ’3’:mainmenu();break;
default:mainmenu();break;
}
}
请采纳答案,支持我一下。
C语言课程设计
3、班级通讯录管理系统设计与实现
以本班同学的具体数据为背景,设计一个本班同学实现以下功能:
1)通讯录(添加、删除) ;
2)按不同的项进行查找;
3)对已存在的通讯录按不同的项排序;
4)将通讯录写入文件;
5)从文件读入通讯录。
备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。
***隐藏网址***
提取码: 1111
6、成绩记录簿设计与实现
实现以下功能:
1)创建信息并以磁盘文件保存;
2)读取磁盘文件并显示输出所有学生的成绩;
3)按学号或姓名查询成绩;
4)添加成绩记录;
5)修改指定姓名或学号的学生的成绩并可存盘;
6)显示输出60分以下、60 79、80 89、90分以上各分数段的学生信息。
备注:每个学生信息包括:学号、姓名、C语言成绩。
***隐藏网址***
提取码: 1111
7、学生籍贯信息记录簿设计与实现
实现以下功能:
1)创建信息并以磁盘文件保存;
2)读取磁盘文件并显示输出所有学生的籍贯信息;
3)按学号或姓名查询其籍贯;
4)按籍贯查询并输出该籍贯的所有学生;
5)能添加、删除和修改学生的籍贯信息;
6)显示输出四川籍和非四川籍学生的信息并可分别存盘。
备注:每个学生信息包括:学号、姓名、籍贯
***隐藏网址***
提取码: 1111
9、图书信息管理系统设计与实现
实现卜卜以下功能:
1)系统以菜单方式工作;
2)图书信息录入功能(图书信息用文件保存);
3)图书信息浏览功能;
4)查询和排序功能;
备注:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
***隐藏网址***
提取码: 1111
10、学生信息管理系统设计与实现
实现以下功能:
1)系统以菜单方式工作;
2)学生信息录入功能(学生备弊凯信息用文件保存) ;
3)学生信息浏览功能;
4)查询、排序功能(至少两种查询依据和两种排序依据);
5)学生信息删除、修改功能。
备注:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-
mail等。
***隐藏网址***
提取码: 1111
12、职工工作量统计系统设计与实现
完成以下功能:
1)输入职工工号和完成的产品数量,程序允许同- -职工有多次输入,由程序对
其完成的产品数量实现累计;
2)按完成数量对职工排序,并确定名次;
3)按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们
的工号(工号由小到大顺序输出)。
***隐藏网址***
提取码: 1111
c语言课程设计报告,100行左右,要注解
#include 《蠢陪雹stdio.h》
#include 《string.h》
#include 《乱弊stdlib.h》
#define N 10
struct library {
int num;
char book_name;
char writer;
char sort_num;
char pub_company;
char pub_time;
char prise;
};
typedef struct library LIB; /*结构体的定义用于存放书籍及借书的信息*/
LIB lib;
FILE *fp; int all=0;
int menu(void);
void input(void);
void output(void);
void save(void);
void del(void);
void search(void);
void xiugai(void);
main()
{
for(;;)
{
switch(menu()) {
case 1:input();break;
case 2:output();break;
case 3:save();break;
case 4:search();break;
case 5:xiugai();break;
case 6:del();break;
case 7:sort();break;
case 0:exit(1);break;
} /*SWITCH定义函数输出*/
}
}
int menu(void)
{
char m;
int n; printf(" *********************WELCOME**********************\n\n\n\n\n");
printf("\t\t\t-----图书信息管理系统----\n");
printf("\t\t1:输入\n");
printf("\t\t2:输出\n");
printf("\t\t3:保存\n");
printf("\t\t4:查找\n");
printf("\t\t5:修改\n");
printf("\t\t6:删除\n");
printf("\t\t7:统计\n");
printf("\t\t0:退出\n");
printf("\t\tplease choose a operation(0-6):\n");
scanf("%s",m);
n=atoi(m);
return(n);
} /*主要界面*/
void input(void)
{
int i;
char m;
for(i=all;i《N;i++)
{
all++;
printf("请输入信息:\n");
printf("\t\t号码:\n");
scanf("%d",&lib.num);
printf("\t\t书名:\n");
scanf("%s",lib.book_name);
printf("\t\带帆t作者:\n");
scanf("%s",lib.writer);
printf("\t\tsort_num:\n");
scanf("%s",lib.sort_num);
printf("\t\t出版商:\n");
scanf("%s",lib.pub_company);
printf("\t\t出版时间:\n");
scanf("%s",lib.pub_time);
printf("\t\t价格:\n");
scanf("%s",lib.prise);
a: printf("\t\tyes/哦了?\n");
printf("\t\t1:yes\n");
printf("\t\t2:no\n");
scanf("%s",m);
if(atoi(m)==1)
continue;
else if(atoi(m)==2)
return;
else
{
printf("\t\t错误!\n");
goto a;
} /* 输入条件查找*/
}
}
void output(void)
{
int i;
for(i=0;i《all;i++)
{
printf("\t\t%d\n",lib.num);
printf("%s\t\t%s\t\t%s\n",lib.sort_num);
printf("%s\t\t%s\t\t%s\n",lib.prise);
}
} /*输出书名作者出版时间价格等*/
void save(void)
{
int i;
if((fp=fopen("file.c","wb"))==NULL)
{
printf("can not open the file");
exit(1);
}
for(i=0;i《all;i++)
{
if(fwrite(&lib,sizeof(LIB),1,fp)!=1)
{
printf("can not write!");
exit(1);
}
} /*条件不符合时拒绝存储*/
fclose(fp);
}
void search(void)
{
int i,flag;
char m;
char name;
printf("\t\t请选择您的存储方式:\n");
printf("\t\t1:按书名!\n");
printf("\t\t2:按作者!\n");
scanf("%s",m);
i=atoi(m);
switch(i)
{
case 1:{
printf("\t\t请输入书名:\n");
scanf("%s",name);
flag=0;
for(i=0;i《N;i++)
{
if(strcmp(name,lib.book_name)==0)
{
printf("\t\t%d\n",lib.num);
printf("%s\t\t%s\t\t%s\n",lib.sort_num);
printf("%s\t\t%s\t\t%s\n",lib.prise);
flag=1;break;
}
}
if(flag==0)
printf("\t\t没有这本书!\n");
}
case 2:{
printf("\t\t请输入作者:\n");
scanf("%s",name);
flag=0;
for(i=0;i《N;i++)
{
if(strcmp(name,lib.writer)==0)
{
printf("\t\t%d\n",lib.num);
printf("%s\t\t%s\t\t%s\n",lib.sort_num);
printf("%s\t\t%s\t\t%s\n",lib.prise);
flag=1;break;
}
}
if(flag==0)
printf("\t\t没有这个作者!\n");
}
} /*查找图书按书名或作者并输出*/
}
void xiugai(void)
{
int i,flag;
char name;
printf("\t\t请输入要修改的书名 :\n");
scanf("%s",name); /*修改书名*/
flag=0;
for(i=0;i《N;i++)
{
if(strcmp(name,lib.book_name)==0)
{
printf("\t\t%d\n",lib.num);
printf("%s\t\t%s\t\t%s\n",lib.sort_num);
printf("%s\t\t%s\t\t%s\n",lib.prise);
printf("\t\tplease input xiugai’s the informations:\n");
printf("\t\tnum:\n");
scanf("%d",&lib.num);
printf("\t\tbook_name:\n");
scanf("%s",lib.book_name);
printf("\t\twriter:\n");
scanf("%s",lib.writer);
printf("\t\tsort_num:\n");
scanf("%s",lib.sort_num);
printf("\t\tpub_company:\n");
scanf("%s",lib.pub_company);
printf("\t\tpub_time:\n");
scanf("%s",lib.pub_time);
printf("\t\tprise:\n");
scanf("%s",lib.prise);
flag=1;break;
}
} /*增加图书*/
if(flag==0)
printf("\t\t没有找到啊!\n");
}
void del(void)
{
int i,j,flag;
char name;
printf("\t\t请输入要删除的书名:\n");
scanf("%s",name);
flag=0;
for(i=0;i《N;i++)
{
if(strcmp(name,lib.book_name)==0)
{
printf("\t\t%d\n",lib.num);
printf("%s\t\t%s\t\t%s\n",lib.sort_num);
printf("%s\t\t%s\t\t%s\n",lib.prise);
for(j=N;j》i;j--)
{
lib.num;
strcpy(lib.book_name);
strcpy(lib.writer);
strcpy(lib.sort_num);
strcpy(lib.pub_company);
strcpy(lib.pub_time);
strcpy(lib.prise);
flag=1;
printf("\t\t已经删除!\n");
break;
}
}
}
if(flag==0)
printf("\t\t没有这本书!\n");
} /*删除图书*/
C语言课程设计
(C语言)职工信息管理
有任何问题可以到这里留言:
***隐藏网址***
【要求】
职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(缺竖职工号不相等)。试设计一职工信息管理系统,使之能够提供下列功能:
(1)系统以菜单方式工作
(2)职工信息录入功能(职工信息用文件保存)
(3)职工信息浏览功能
(4)职工信息查询功能,查询方式:
1)按学历查询
2)按职工号查询
(5)职工信伏镇大息删除,修改功能(可选项)。
#include《string.h》
void menu()
{
int n,w1;
do
{
printf("\t\t************************************************\n\n");
printf("\t\t************************************************\n\n");
printf("\t\t *** choose function ************\n\n");
printf("旅仿\t\t *** 1 Enter new data ************\n\n");
printf("\t\t *** 2 Modify data ************\n\n");
printf("\t\t *** 3 Search by people.xueli and num*****\n\n");
printf("\t\t *** 4 Browse data ************\n\n");
printf("\t\t *** 5 add data ************\n\n");
printf("\t\t *** 6 Exit ************\n\n");
printf("\t\t************************************************\n\n");
printf("\t\t************************************************\n\n");
printf("Choose your number(1-6):\b\b");
scanf("%d",&n);
if(n《1||n》6)
w1=1;
else w1=0;
}
while(w1==1);
switch(n)
{
case 1:enter();break;
case 2:modify();break;
case 3:search();break;
case 4:browse();break;
case 5:add();break;
case 6:exit(0);
}
}
main()
{
system("cls");
menu();
}
#define N 100
struct people
{
char num;
char name;
char sex;
char age;
char xueli;
char gongzhi;
char address;
char telephone;
}people;
# include 《stdio.h》
enter()
{
int i,n;
printf("How many people(0-%d)?:",N-1);
scanf("%d",&n);
printf("\n Enter data now\n\n");
for(i=0;i《n;i++)
{
printf("\n Input %dth people record.\n",i+1);
input(i);
}
if(i!=0)save(n);
printf_back();
}
browse()
{
int i,j,n;
n=load();
printf_face();
for(i=0;i《n;i++)
{
if((i!=0)&&(i%10==0))
{
printf("\n\nPass any key to continue ....");
getch();
puts("\n\n");
}
printf_one(i) ;
}
printf("\tThere are %d record.\n",n);
printf("\nPass any key to back ...");
getch();
menu();
}
add()
{
int i,n,m,k;
FILE*fp;
n=load();
printf("How many people are you want to add(0-%d)?:",N-1-n);
scanf("%d",&m);
k=m+n;
for(i=n;i《k;i++)
{
printf("\nInput %dth people record.\n",i-n+1 );
input(i);
}
if((fp=fopen("Pro.txt","ab"))==NULL)
{
printf("cannot open file\n");
}
for(i=n;i《k;i++)
if(fwrite(&people,sizeof(struct people),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf_back();
}
search()
{
int i,n,k,w1=1,w2,w3,w4,m,a;
struct people p;
n=load();
do
{
printf("\n\nWhich way do you want to choose? \n\t1).By xueli 2).By num \b\b");
scanf("%d",&m);
switch(m)
{
case 1:
do
{ k=-1;
printf("\n\nEnter xeuli that you want to search! xueli.");
scanf("%s",p.xueli);
printf_face();
for(i=0;i《n;i++)
if(strcmp(p.xueli,people.xueli)==0)
{ k=i;
printf_one(k);break;
}
if(k==-1)
{ printf("\n\nNO exist!please");
printf("\n\nAre you again?\n\t1).again 2).NO and back \b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
case 2:
do
{k=-1;
printf("\n\nEnter num that you want to search! num.");
scanf("%s",p.num);
printf_face();
for(i=0;i《n;i++)
if(strcmp(p.num,people.num)==0)
{k=i;
printf_one(k);break;
}
if(k==-1)
{printf("\n\nNO exist!please");
printf("\n\nAre you again?\n\t1).again 2).NO and back \b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
}
w4=0;w3=0;
if(k!=-1)
{printf("\n\nWhat do you want to do?\n\t 1).Search 2).Modify 3).Delete 4).Back menu \b\b");
scanf("%d",&w2);
switch(w2)
{case 2:w3=modify_data(k,n);break;
case 3:{printf("\nAre you sure?\n\t 1).Sure 2).No and back \b\b");
scanf("%d",&w4);
if(w4==1)
for(a=k;a《n;a++)
{strcpy(people.num);
strcpy(people.name);
strcpy(people.sex);
strcpy(people.age);
strcpy(people.xueli);
strcpy(people.gongzhi);
strcpy(people.address);
strcpy(people.telephone);
}
break;
}
}
if(w3==1||w4==1)
{save(n);
printf("\n\nSuccessful.^_^.");
printf("\n\nWhant do you want to do? \n\t 1).Search another 2).Back \b\b" );
scanf("%d",&w2);
}
}
}
while(w2==1);
menu();
}
modify()
{struct people p;
FILE *fp;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i《n;i++)
{if((i!=0)&&(i%10==0))
{printf("\n\nRemember NO.which needed modify.pass any key to contiune ...");
getch();
puts("\n\n");
}
printf_one(i);
}
do
{printf("\n\nEnter NO.that you want to modify! NO.:");
scanf("%s",p.num);
for(i=0;i《n;i++)
if(strcmp(p.num,people.num)==0)
{k=i;
p=people;
}
if(k==-1)printf("\n\nNO exist!please again");
}while(k==-1);
printf_face();
printf_one(k);
w1=modify_data(k,n);
if(w1==1)
{printf("\nSuccessful ^_^.\n\nAre you modify another ?\n\n\t 1).Yes 2).Back with save\t\b\b");
scanf("%d",&w0);
w2=1;
}
else
{w0=0;
if(w2==1)
people=p;
}
if(w0!=1&&w2==1)
save(n);
}while(w0==1);
menu();
}
save(int n)
{FILE *fp;
int i;
if((fp=fopen("Pro.txt","wb"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
for(i=0;i《n;i++)
if(people.num!=0)
if(fwrite(&people,sizeof(struct people),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
load()
{FILE *fp;
int i;
if((fp=fopen("Pro.txt","rb"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
for(i=0;!feof(fp);i++)
fread(&people,sizeof(struct people),1,fp);
fclose(fp);
return(i-1);
}
input(int i)
{
no_input(i,i);
printf("num:");
scanf("%s",people.num);
printf("name:");
scanf("%s", people.name) ;
printf("sex:");
scanf("%s",people.sex);
printf("age:");
scanf("%s",people.age);
printf("xueli:");
scanf("%s",people.xueli);
printf("gongzhi:");
scanf("%s",people.gongzhi);
printf("address:");
scanf("%s",people.address);
printf("telephone:");
scanf("%s",people.telephone);
}
modify_data(int i)
{int c,w1;
do
{puts("\nmodify by=》\n\n 1).num 2).name 3).sex 4).ages 5).xueli 6)gongzhi 7)address 8)telephone ");
printf("Which you needed?:\b\b");
scanf("%d",&c);
if(c》8||c《1)
{puts("\nChoice error!Please again!");
getchar();
}
}while(c》8||c《1);
do
{switch(c)
{
case 1:printf("num:");scanf("%s",people.num);break;
case 2:printf("name:");scanf("%s",people.name);break;
case 3:printf("sex:");scanf("%s",people.sex);break;
case 4:printf("age:");scanf("%s",people.age);break;
case 5:printf("xueli:");scanf("%s",people.xueli);break;
case 6:printf("gongzhi:");scanf("%s",people.gongzhi);break;
case 7:printf("address:");scanf("%s",people.address);break;
case 8:printf("telephone:");scanf("%s",people.telephone);break;
}
puts("\nNow:\n");
printf_face();
printf_one(i);
printf("\nAre you sure?\n\n\t 1).Sure 2).No and remodify 3).Back without save in this time \b\b");
scanf("%d",&w1);
}
while(w1==2);
return(w1);
}
no_input(int i,int n)
{int j,k,w1;
do
{w1=0;
for(j=0;people!=’\0’;j++)
if(people》’9’)
{puts("Input error!Only be made up of(0-9).Please reinput!\n");
w1=1;break;
}
if(w1!=1)
for(k=0;k《n;k++)
if(k!=i&&strcmp(people.num)==0)
{puts("This record is exist.please reinput!\n");
}
}
while(w1==1);
}
printf_face()
{
printf("\nnum name sex ages xueli gongzhi address telephone \n");
}
printf_one(int i)
{
int j;
printf("%7s%7s%7s%7s%7s%7s%10s%12s\n",people.age,people
.telephone);
}
printf_back()
{
int j,w;
printf("\n\n\tSuccessful.^_^\n\n");
printf("What do you want you to do?\n\n\t1).Browse all now\t2).Back: \b\b");
scanf("%d",&w);
if(w==1)
browse();
else menu();
}
***隐藏网址***
C语言课程设计
/*计算上个月每个人每种产品的销售额。
1)按销售额对销售员进行排序,输出排序结果(销售员代号)
2)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
3)输出统计报表如下:*/
#include 《stdio.h》
#include 《string.h》
#include 《conio.h》
#include 《stdlib.h》
#define Z 5
#define R 4 /*定义宏常量便于程序的一般化*/ /*R表示销售员个数*/
typedef struct /*缩短结构体变量名*/
{
int shangpin; /*定义结构体便于信息的存储和读写,辨别*/ /*R是表示商品的种类,最后一个为该销售员商品总和*/
}data;
void menu()
{ printf(" *******************************************************\n");
printf(" 0.结束操作\n");
printf(" 1.计算上个月每个人每种产品的销售额\n");
printf(" 2.按销售额对销售员进行排序,输出排序结果\n");
printf(" 3.统计每种产品的总销售额,输出排序结果\n");
printf(" 4.输出统计报表\n");
printf(" ******************************************************\n");
}
void data_read(data *x) /*读入函数使程序简洁*/
{
FILE *fp;
char fname;
int i;
printf("您想查询哪个月?\n");
printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/
scanf("%s",fname);
strcat(fname,".txt");/*连接文件属性*/
if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i《R;i++) /*读出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("读入信息出错!\n");
}
void data_count(data *x) /*计算上个月每个人每种产品的销售额*/
{
FILE *fp;
char fname;
int j,t; /*用于控制循环*/
int i,k,s; /*用于定义职工序号,产笑明品序号,产品数量*/
system("cls");
printf("您想计算哪个月?\n");
printf("请输入月份:"); /*输入文件名,这样可以进行各个前谨月份信息写入*/
scanf("碰悔告%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"wb"))==NULL) /*打开文件*/
{
printf("can not open the file\n");
exit(0);
}
for(j=0;j《R;j++) /*对商品数量清零*/
for(t=0;t《Z;t++)
(x+j)-》shangpin=0;
printf("please put the information about the 职工编号,产品编号,销售数量\n"); /*写入信息*/
for(j=0;;j++)
{
scanf("%d%d%d",&i,&k,&s);
if(i==0) /*输入职工为0时结束信息输入*/
break;
if(i》R||i《0||k》Z||k《0)
{
printf("the information error!\n"); /*避免输入信息出错*/
continue;
}
else
(x+i-1)-》shangpin+s;/*统计各个人的各种产品的数量,-1为了和数组中的序号相匹配*/
}
for(j=0;j《R;j++)
if(fwrite((x+j),sizeof(data),1,fp)!=1) /*把信息写入文件中便有以后调用*/
printf("write error!\n");
fclose(fp); /*关闭文件避免信息遗漏*/
}
void range_sxy(data *x) /*按销售额对销售员进行排序,输出排序结果*/
{
FILE *fp;
char fname;
int i,k,j,t,bianhao={0},z;
system("cls");
printf("你要哪个月的?\n");
printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i《R;i++) /*读出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("读入信息出错!"); /*读入信息提示*/
for(i=0;i《R;) /*用于存储职工编号*/
bianhao=i++;
printf("请输入按何种产品排序\n");
scanf("%d",&k);
k=k-1; /*便于与结构体中的数组值对应*/
for(i=0;i《R;i++) /*按K种产品对销售员排序,选择法排序*/
{
t=i;
for(j=i+1;j《R;j++)
if((x+bianhao)/*调用职工各自对应的结构体内的产品数量*/
t=j;
if(t!=i)
{
z=bianhao;
bianhao;
bianhao=z;
}
}
printf("按%d产品对销售员排序为:\n",k+1);
for(i=0;i《R;i++)
printf("%5d",bianhao+1);
getch();
fclose(fp);
}
void range_shangpin(data *x) /*统计每种产品的总销售额,输出排序结果*/
{
FILE *fp;
char fname;
int i,j,sum={0},z,t,k;
system("cls");
printf("您想计算哪个月的?\n");
printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i《R;i++) /*读出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("读入信息出错!");
for(i=0;i《Z;i++) /*对各种商品求和*/
for(j=0;j《R;j++)
sum;
for(i=0;i《Z;) /*用于存储商品编号*/
bianhao=i++;
for(i=0;i《Z;i++)
printf("%3d",bianhao);
for(i=0;i《Z;i++) /*对产品从高到低排序,选择法排序*/
{
t=i;
for(j=i+1;j《Z;j++) /*产品变化时,产品编号也随之变化,便于输出*/
if(sum)
t=j;
if(t!=i)
{
k=sum;
sum;
sum=k;
z=bianhao;
bianhao;
bianhao=z;
}
}
printf("输出产品排序\n");
printf("产品编号 数量\n");
for(i=0;i《Z;i++)
printf("%-10d%-10d\n",bianhao);
getch();
fclose(fp);
}
void data_out(data *x) /*输出统计报表*/
{
FILE *fp;
char fname;
int i,j,sum={0};
system("cls");
printf("您想计算哪个月?\n");
printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i《R;i++) /*读出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("读入信息出错!");
for(i=0;i《Z;i++) /*对各种商品求和*/
for(j=0;j《R;j++)
sum;
for(i=0;i《Z;i++) /*求商品总和*/
sum;
printf("输出统计报表如下:\n"); /*按要求输出统计表*/
printf("产品代号 销售之和 销售员代号\n");
for(i=0;i《R;i++)
for(j=0;j《Z;j++)
printf("%-10d%-10d%-10d\n",j+1,(x+i)-》shangpin,i+1);
printf("***********************************\n");
for(i=0;i《Z;i++)
{
if(i==0)
printf("%d产品之和 %-10d 总和 %-10d\n",i+1,sum);
else
printf("%d产品之和 %-10d\n",i+1,sum);
}
getch();
}
void main()
{
int i,choice;
data sxy; /*R表示职工的个数,前面的宏常量*/
for(i=0;;i++)
{
system("cls"); /*清频命令*/
menu(); /*菜单函数提示用户怎样选择*/
printf("你想做什么?\n");
printf("请选择:"); /*输入要进行的操作*/
scanf("%d",&choice);
if(choice==0) /*退出程序*/
break;
else
switch(choice)
{
case 1 : data_count(sxy);break; /*计算上个月每个人每种产品的销售额*/
case 2 : range_sxy(sxy);break; /*按销售额对销售员进行排序,输出排序结果*/
case 3 : range_shangpin(sxy);break; /*统计每种产品的总销售额,输出排序结果*/
case 4 : data_out(sxy);break; /*输出统计报表*/
}
}
}

本文相关文章:
谭浩强c语言跟谁的课(学c语言看过了谭浩强的书后还看谁的好呢)
2025年10月28日 14:00
c语言怎么输入一个字符串(c语言如何只允许用户输入一个字符)
2025年10月25日 05:15
malloc函数的返回值类型(c语言中malloc是什么怎么用)
2025年10月25日 00:30
c语言中的RETURN()返回值是什么意思?sqrt函数奇数返回什么
2025年10月22日 08:00
二维数组4行4列怎么输出(c语言编程 将一个随机输入的4*4二维数组逆时针旋转90度后以4行4列输出)
2025年10月21日 02:30
如何编写程序计算圆的周长和面积(用c语言怎么编写求圆的周长和面积的程序)
2025年10月20日 18:30
c程序设计谭浩强第五版第七章课后答案(疑问:谭浩强c语言习题7.10答案)
2025年10月20日 17:30
更多文章:
数据类型字节(C语言中数据类型所占字节数与它取值范围的关系)
2025年7月9日 22:15
js源码推荐(number-precision 实现js高精度运算 源码)
2025年12月2日 20:30
柠檬班软件测试怎么样(去柠檬班学软件测试就业 前 景怎样能拿到高工资吗)
2026年1月21日 22:15
page对象通过()属性获取向当前页传输控件的页(asp.net后台如何获取当前打开修改后的页面的html源码(急急急 在线等))
2026年8月11日 16:30
为什么nodejs安装不成功(关于nodejs用npm安装weinre报错是什么原因)
2025年7月31日 08:30
12月21日新闻(2022年12月21日有什么新闻,读完这个新闻有什么感想)
2026年4月7日 19:30
ppt背景图片一套(如何将幻灯片所有的背景更换成统一的图片)
2025年8月12日 05:45
电脑的tcpip协议在哪里(请问TCP/IP协议在哪里找呢)
2025年7月31日 07:00
response取值(response.redirect取值问题)
2026年9月7日 13:30
怎么查看sqlserver实例(怎么查看sqlserver实例名)
2025年6月17日 07:45
printf怎么输出数字(printf怎么输出指数形式的数)
2026年4月24日 12:45
python中encoding(pythonutf-8编码怎么设置)
2025年11月27日 22:30
爱心源代码html(html爱心代码用devc++能打出来嘛)
2025年6月12日 15:15
delphi数据库操作(用delphi做的程序如何连接SQL数据库应该怎么操作)
2026年7月25日 22:15







