1. 程序设计题: 学生管理系统
你的分数太少了,不可能有人对这个感兴趣,你可以先回答别人的问题,得了足够的积分,你悬赏200分,可能性就更大了
另外还要说一句,你的要求太具体了,不可能有人会给你专门去做这个题目,或许人家有和你类似的程序可能给你参考下,你还是靠自己吧,你要是能学1个礼拜的编程,弄这个就小菜一碟。
2. C语言程序设计题目:学生信息管理系统设计
已经按你的要求改写并调试通过了。调试环境win-tc和Dev-c++.
这是我在以前帮别人写的学生成绩管理系统的基础上改写的,学生信息用文件保存,从文件读入。同时为了简化起见,没有使用链表,容易理解。程序还具有很强的判断验错功能。对本题算法很简单,就是一个函数strcmp().其中student.dat内容如下,你可以自己用记事本修改并保存文件名为student.dat即可:
100001 周云发 19 男 1985.10 香港秀水街 19944569659 123@163.com
100009 程龙 18 男 1986.11 香港秀水街 19744569659 133@126.com
100003 章自已 18 女 1986.12 香港古装城 19844569659 143@163.com
100004 周讯 17 女 1987.06 香港秀水街 19644569659 153@126.com
100008 李丽珍 19 女 1985.08 香港古装城 19544569659 163@163.com
100007 蔡灼燕 17 女 1987.10 香港靓仔街 19444569659 173@126.com
100012 刘得花 20 男 1984.06 香港古装城 19344569659 183@126.com
100010 李嘉欣 20 女 1984.03 香港秀水街 19244569659 193@163.com
100011 周星星 19 男 1985.07 香港靓仔街 19144569659 223@163.com
100002 梁超伟 20 男 1984.01 香港秀水街 19044569659 233@163.com
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
/* 简易学生信息管理系统 win-tc和Dev-c++下运行良好,注意不是vc++下*/
#include
#include
#include
#define BUFLEN 80 /* 缓冲区最大字符数 */
#define LEN 20 /* 学号和姓名最大字符数,实际请更改 */
#define N 200 /* 最大学生人数,实际请更改*/
struct record
{
char code[LEN+1]; /* 学号 */
char name[LEN+1]; /* 姓名 */
int age; /* 年龄 */
char sex[3]; /* 性别 */
char time[LEN+1]; /* 出生年月 */
char add[30]; /* 家庭地址 */
char tel[LEN+1]; /* 电话号码 */
char mail[30]; /* 电子邮件地址 */
}stu[N];
int k=1,n,m; /* 定义全局变量 */
void readfile();/* 函数声明 */
void seek();
void modify();
void insert();
void del();
void display();
void save();
void menu();
int main()
{ while(k)
menu();
system("pause");
return 0;
}
void readfile()/* 建立信息 */
{
char buf[BUFLEN],*p="student.dat";
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
{ i++;
i=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}
void seek()
{int i,j,item,flag;
char s1[21]; /* 以姓名和学号最长长度+1为准 */
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该学号不存在!\n"); break;
case 2:
printf("请输入要查询的学生的姓名:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].name,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该姓名不存在!\n"); break;
case 3:return;
default:printf("请在1-3之间选择\n");
}
}
}
void modify() /*修改信息*/
{int i,j,item,num;
char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */
printf("请输入要要修改的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
num=i;
printf("------------------\n");
printf("1.修改姓名\n");
printf("2.修改年龄\n");
printf("3.修改性别\n");
printf("4.修改出生年月\n");
printf("5.修改地址\n");
printf("6.修改电话号码\n");
printf("7.修改E-mail地址\n");
printf("8.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
switch(item)
{
case 1:
printf("请输入新的姓名:\n");
scanf("%s",s2);
strcpy(stu[num].name,s2); break;
case 2:
printf("请输入新的年龄:\n");
scanf("%d",&stu[num].age);break;
case 3:
printf("请输入新的性别:\n");
scanf("%s",sex1);
strcpy(stu[num].sex,sex1); break;
case 4:
printf("请输入新的出生年月:\n");
scanf("%s",s2);
strcpy(stu[num].time,s2); break;
case 5:
printf("请输入新的地址:\n");
scanf("%s",s2);
strcpy(stu[num].add,s2); break;
case 6:
printf("请输入新的电话号码:\n");
scanf("%s",s2);
strcpy(stu[num].tel,s2); break;
case 7:
printf("请输入新的E-mail地址:\n");
scanf("%s",s2);
strcpy(stu[num].mail,s2); break;
case 8:return;
default:printf("请在1-8之间选择\n");
}
}
}
void insert()
{ int i=n,j,flag;
printf("请输入待增加的学生数:\n");
scanf("%d",&m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("请输入第 %d 个学生的学号:\n",i+1);
scanf("%s",stu[i].code);
for(j=0;j<i;j++)
if(strcmp(stu[i].code,stu[j].code)==0)
{ printf("已有该学号,请检查后重新录入!\n");
flag=1;
break; /*如有重复立即退出该层循环,提高判断速度*/
}
}
printf("请输入第 %d 个学生的姓名:\n",i+1);
scanf("%s",stu[i].name);
printf("请输入第 %d 个学生的年龄:\n",i+1);
scanf("%d",&stu[i].age);
printf("请输入第 %d 个学生的性别:\n",i+1);
scanf("%s",stu[i].sex);
printf("请输入第 %d 个学生的出生年月:(格式:年.月)\n",i+1);
scanf("%s",stu[i].time);
printf("请输入第 %d 个学生的地址:\n",i+1);
scanf("%s",stu[i].add);
printf("请输入第 %d 个学生的电话:\n",i+1);
scanf("%s",stu[i].tel);
printf("请输入第 %d 个学生的E-mail:\n",i+1);
scanf("%s",stu[i].mail);
if(flag==0)
{ i=i;
i++;
}
}while(i<n+m);
n+=m;
printf("录入完毕!\n\n");
}
void del()
{ int i,j,flag=0;
char s1[LEN+1];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
for(j=i;j<n-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单6\n");
n--;
}
}
void display()
{ int i,j;
printf("所有学生的信息为:\n");
for(i=0;i<n;i++)
{
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
}
void save()
{ int i,j,k,flag=0;
FILE *fp;
fp=fopen("student.dat","w");
for(i=0;i<n;i++)
{ fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
fclose(fp);
}
void menu()/* 界面 */
{ int num;
printf(" \n\n简易学生信息管理系统\n\n");
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.读入学生信息\n");
printf("2.查询学生信息\n");
printf("3.修改学生信息\n");
printf("4.增加学生信息\n");
printf("5.按学号删除信息\n");
printf("6.显示当前信息\n");
printf("7.保存当前学生信息(要把修改保存到文件,退出程序前必须执行本项)\n");
printf("8.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",&num);
switch(num)
{
case 1:readfile();break;
case 2:seek();break;
case 3:modify();break;
case 4:insert();break;
case 5:del();break;
case 6:display();break;
case 7:save();break;
case 8:k=0;break;
default:printf("请在1-8之间选择\n");
}
}
3. 程序设计题目 学生信息管理系统
#include
#include
#include
#include
#include
#define N 5
#define MAXSIZE 100
typedef int keytype;
typedef struct
{
int no;
char name[30];
char sex[4];
int age;
}recordtype;
typedef struct
{
recordtype r[MAXSIZE+1];
int length;
}table;
void input(table *tab)
{
void bubblesort1(table *tab);
int i,j;
int n;
int count=0;
printf("输入录入人数:");
scanf("%d",&n);tab->length=n;
printf("学号 姓名 性别(nv/nan) 年龄\n");
for(i=1;ilength;i++)
{
scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
if(i>=2){
for(j=i-1;j>=1;j--)
if(tab->r[i].no==tab->r[j].no)
{
printf("已有此人请重新输入\n");
scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
}
}
}
bubblesort1(tab);
system("cls");
}
void output(table tab)
{
int i;
int c;
printf("学号 姓名 性别(nv/nan) 年龄\n");
for(i=1;i<=tab.length;i++)
{
printf("%-8d%-8s%-8s%-2d\n",tab.r[i].no,tab.r[i].name,tab.r[i].sex,tab.r[i].age);
}
printf("是否离开");
scanf("%d",&c);
if(c==1)
system("cls");
else{ system("cls");output(tab);}
system("cls");
}
void bubblesort(table *tab)
{
void output(table );
int i,j;
recordtype t;
for(i=1;ilength;i++)
for(j=1;jlength;j++)
if(tab->r[j].age>tab->r[j+1].age||tab->r[j].age==tab->r[j+1].age&&tab->r[j].no>tab->r[j+1].no)
{
t=tab->r[j];tab->r[j]=tab->r[j+1];tab->r[j+1]=t;
}
output(*tab);
system("cls");
}
void bubblesort1(table *tab)
{
int i,j;
recordtype t;
for(i=1;ilength;i++)
for(j=1;jlength;j++)
if(tab->r[j].no>tab->r[j+1].no)
{
t=tab->r[j];tab->r[j]=tab->r[j+1];tab->r[j+1]=t;
}
system("cls");
}
void find(table tab)
{
int i,x;
int sno;
int c;
char ssex[4];
printf("选择您要查询的方式(按学号查询请输入1;按性别查询请输入2:):");
scanf("%d",&x);
switch(x)
{
case 1: {
printf("输入你要查询的学号:");
scanf("%d",&sno);
for(i=1;i<=tab.length;i++)
if(tab.r[i].no==sno)
{ printf("学号 姓名 性别 年龄\n");
printf("%-8d%-8s%-8s%-2d\n",tab.r[i].no,tab.r[i].name,tab.r[i].sex,tab.r[i].age);
break;
}
if(i>tab.length) MessageBox(NULL,"无此人信息","确认",MB_OK);
printf("\n是否确定离开或者继续查询(1/0):") ;
scanf("%d",&c);
if(c==1){system("cls");}
else {system("cls");find(tab);}
};break;
case 2: {
printf("输入你要查询的性别:");
scanf("%s",&ssex);
for(i=1;i<=tab.length;i++)
if(!strcmp(tab.r[i].sex,ssex))
{ printf("学号 姓名 性别 年龄\n");
printf("%-8d%-8s%-8s%-2d\n",tab.r[i].no,tab.r[i].name,tab.r[i].sex,tab.r[i].age);
}
printf("是否离开(1/0)");
scanf("%d",&c);
if(c==1)
system("cls");
else{find(tab); system("cls");}
};break;
default :{ ;find(tab);}
}
}
void inset(table *tab)
{
int i,j,n;
printf("输入你要插入的个数:");
scanf("%d",&n);
printf("学号 姓名 性别 年龄\n");
printf("\n");
if((tab->length+n)>MAXSIZE+1)
;
else
for(i=tab->length+1;ilength+n;i++)
{scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
for(j=1;jlength;j++)
if(tab->r[j].no==tab->r[i].no)
{
printf("此学号已存在\n");
scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
}
}
tab->length=tab->length+n;
bubblesort1(tab) ;
system("cls");
}
void del(table *tab)
{
int i,j;
int num;
int count=tab->length;
printf("你要删除的学号:");
scanf("%d",&num);
for(i=1;ilength;i++)
{
if(tab->r[i].no==num)
{
for(j=i;jlength;j++)
{
tab->r[j]=tab->r[j+1];
}
tab->length=tab->length-1;
}
}
if(count==tab->length)
{
system("cls");
}
else
{
system("cls");
}
}
void mume()
{
printf("\t\t ---------------------------------------------------------\n");
printf("\t\t ---------------------------------------------------------\n");
printf("\t\t 08计算机学生信息管理程序 \n");
printf("\t\t ---------------------------------------------------------\n");
printf("\t\t -----------------------目录------------------------------\n");
printf("\t\t ---------------------------------------------------------\n");
printf("\t\t ~~~ 1 学生信息的录入 *\n");
printf("\t\t ~~~ 2 删除 \n");
printf("\t\t ~~~ 3 查询 *\n");
printf("\t\t ~~~ 4 添加 \n");
printf("\t\t ~~~ 5 排序 *\n");
printf("\t\t ~~~ 6 浏览 \n");
printf("\t\t ~~~ 7 退出系统 *\n");
printf("\t\t ---------------------------------------------------------\n");
printf("\t\t ----------------------------------------------------------\n");
}
int main()
{
int i;
table stu;
while(1){
mume();
printf("请输入你需要进行的操作:");
scanf("%d",&i);
switch(i)
{
case 1:{system("cls"); input(&stu) ;} ;break;
case 2:{system("cls"); del(&stu);} ;break;
case 3:{system("cls"); find(stu);} ;break;
case 4:{system("cls"); inset(&stu) ; } ;break;
case 5:{system("cls"); bubblesort(&stu) ; } ;break;
case 6:{system("cls"); output(stu) ; } ;break;
case 7: return 0;
default :;system("cls");
}
}
return 0;
}
4. C语言程序设计题:职工工资管理系统
你要的是命令行还是图形界面?
如果是命令行可以考虑下
如果是图形界面的话200分少了点,看看吧.
--------------------------------------------
既然不是图形界面,代码就简单.不过也有近300行.可能有些地方不怎么简洁..
你用的时候,把注释"delete this line"那行所在的代码删除或修改就OK了.
如果看不懂请给我留言,我发一份带详细注释的代码给你.
--------------------------------------------
/*
Microsoft Visual C++ .NET编译通过
by 做他@07.12.29
*/
#include "stdafx.h"
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std;
/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金
*/
struct employee{
string m_num;//编号
string m_name;//姓名
string m_dep;//部门
double m_salary;//应付工资
double m_insurance;//保险
double m_tax;//税金
};
/*
(1)录入:输入职工数据,其中“实付工资”通过计算得到;
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/
list emps;
int _tmain(int argc, _TCHAR* argv[])
{
void print(const employee &e);
void input();
void del();
void mod();
void show_all();
void show_name();
void show_dep();
cout<<"简易职工薪水管理程序 by 做他\n";// delete this line
cout<<"版权没有 请随意复制或修改任何代码\n";//delete this line
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
int choose=0;
cin>>choose;
assert(!cin.fail());
while (choose!=6)
{
if (choose==1) input();
if (choose==2) del();
if (choose==3) mod();
if (choose==4)
{
int choice=0;
cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:";
cin>>choice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
}
return 0;
}
void print(const employee &e)
{
cout<<"编号:"<<e.m_num<<endl;
cout<<"姓名:"<<e.m_name<<endl;
cout<<"部门:"<<e.m_dep<<endl;
cout<<"保险:"<<e.m_insurance<<endl;
cout<<"税金:"<<e.m_tax<<endl;
cout<<"应付工资:"<<e.m_salary<<endl;
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}
void input()
{
string num,name,dep;
double salary,ins,tax;
cout<<"请输入员工编号:";
cin>>num;
cout<<"请输入员工姓名:";
cin>>name;
cout<<"请输入员工部门:";
cin>>dep;
cout<<"请输入员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入员工应付工资:";
cin>>salary;
assert(!cin.fail());
employee temp;
temp.m_dep=dep;
temp.m_insurance=ins;
temp.m_name=name;
temp.m_num=num;
temp.m_salary=salary;
temp.m_tax=tax;
emps.push_back(temp);
cout<<"员工录入操作完毕.\n";
}
void del()
{
if (emps.size()==0)
{
cout<<"没有员工记录.\n";
return;
}
string name;
bool isfind=false;
cout<<"请输入要删除的员工姓名:";
cin>>name;
list::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
emps.erase(iter);
cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n";
return;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}
void mod()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要修改的员工姓名:";
cin>>name;
list::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
break;
}
}
if (isfind)
{
string num,name,dep;
double tax,ins,salary;
print(*iter);
cout<<endl;
cout<<"请输入新的员工编号:";
cin>>num;
cout<<"请输入新的员工姓名:";
cin>>name;
cout<<"请输入新的员工部门:";
cin>>dep;
cout<<"请输入新的员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入新的员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入新的员工工资:";
cin>>salary;
assert(!cin.fail());
iter->m_dep=dep;
iter->m_insurance=ins;
iter->m_name=name;
iter->m_num=num;
iter->m_salary=salary;
iter->m_tax=tax;
cout<<"1 员工记录被成功修改.\n";
}
else
{
cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n";
}
}
void show_all()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
cout<<"显示全体员工数据:\n";
cout<<"--------------------\n";
list::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
cout<<endl;
print(*iter);
cout<<endl;
}
cout<<"--------------------\n";
}
void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要查询的员工姓名:";
cin>>name;
list::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
print(*iter);
break;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}
void show_dep()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
double isfind=0.00;
double total_salary=0.00;
string dep;
cout<<"请输入要查询的部门名称:";
cin>>dep;
cout<<"部门["<<dep<<"]的员工信息:\n";
cout<<"--------------------\n\n";
list::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_dep==dep)
{
isfind++;
total_salary+=iter->m_salary;
print(*iter);
cout<<endl;
continue;
}
}
cout<<"--------------------\n";
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门.\n";
}
else
{
cout<<"部门["<<dep<<"]工资统计:\n";
cout<<"工资总额:"<<total_salary<<endl;
cout<<"平均工资:"<<total_salary/isfind<<endl;
}
}
5. 程序设计题:通信录管理系统
# include "stdio.h"
# include "string.h"
# include "malloc.h"
# include "process.h"
# define LEN sizeof (struct snode)
char cfilename[10];
int pd=0;
FILE *Ffp;
struct snode
{char cname [10];
char caddress[28];
char cmobile [15];
char chomephone [16];
char cofficephone [16];
struct snode *pnext;
}*phead;
void titleletters()
{printf("**********************\n");
printf(" ****通迅管理系统****\n");
printf(" *******(四组)*******\n");
printf("**********************\n");}
void helpletters()
{printf("需要帮助,请输入?\n");
printf("建立一个空通迅录,请输入n\n");
printf("打开一个通迅录,请输入0\n");
printf("保存当前通迅录,请输入s\n");
printf("关闭当前通迅录,请输入c\n");
printf("增加一条记录,请输入a\n");
printf("游览当前通迅录,请输入v\n");
printf("编辑一条记录,请输入e\n");
printf("删除一条记录,请输入d\n");
printf("查找一条记录,请输入r\n");
printf("退出,请输入q\n");
}
void panduan()
{printf ("没有打开文件\n");
return;
}
/*新建函数*/
void newlist()
{phead=NULL;
printf("一个新空通迅录已建立\n");}
/*打开函数*/
void openlist()
{struct snode *ppointer,*pinput;
printf("请输入文件名:");
scanf("%s",cfilename);
if((Ffp=fopen(cfilename,"r+"))==NULL)
{printf("不能打开这个文件。\n");
return;
}
rewind(Ffp);
phead=NULL;
if(!feof(Ffp))
{pinput=(struct snode*)malloc(LEN);
fscanf(Ffp,"%s %s %s %s %s\n",pinput->cname,pinput->caddress,pinput->cmobile,pinput->chomephone ,pinput->cofficephone);
pinput->pnext=NULL;
phead=pinput;
ppointer=phead;
}
while(!feof(Ffp))
{
pinput=(struct snode*)malloc(LEN);
fscanf(Ffp,"%s %s %s %s %s\n",pinput->cname,pinput->caddress,pinput->cmobile,pinput->chomephone ,pinput->cofficephone);
pinput->pnext=NULL;
ppointer->pnext=pinput;
ppointer=ppointer->pnext;
}
printf("这个文件已打开.\n");
pd=1;
}
/*保存函数*/
void savelist()
{if (!pd)
{panduan();
return;}
struct snode *ppointer;
if(Ffp==NULL)
{
printf("请输入文件名:");
scanf("%s",cfilename);
if((Ffp=fopen(cfilename,"w"))==NULL)
{
printf("不能保存空文件。\n");
return;
}
}
rewind(Ffp);
ppointer=phead;
while(ppointer!=NULL)
{fprintf(Ffp,"%-8s %-28s %-10s %-16s %-10s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
ppointer=ppointer->pnext;
}
printf("已保存\n");
}
/*关闭函数*/
void closelist()
{if (!pd)
{panduan();
return;}
if(fclose(Ffp)!=0)
{printf("这个文件不能关闭\n");
return;
}
phead=NULL;
printf("这个文件已关闭\n");
}
/*追加函数*/
void appendrecord()
{if (!pd)
{panduan();
return;}
char corder[2];
int iinputcheck;
struct snode *ppointer,*pinput;
re:
printf("请输入新记录:姓名 地址 家庭电话 手机 办公电话\n");
pinput=(struct snode*)malloc(LEN);
iinputcheck=scanf("%s%s%s%s%s",pinput->cname,pinput->caddress,pinput->cmobile,pinput->chomephone,pinput->cofficephone);
if(iinputcheck==0)
{
printf("输入数据错误\n");
return;
}
pinput->pnext=NULL;
if(phead==NULL)
{phead=pinput;
printf("这条记录已追加\n");
}
else
{
ppointer=phead;
while((ppointer->pnext)!=NULL)
ppointer=ppointer->pnext;
ppointer->pnext=pinput;
printf("这条记录已追加\n");
}
printf("想要追加其他记录吗(y/n)?");
scanf("%s",corder);
if(!strcmp(corder,"y"))
goto re;
}
/*浏览记录函数*/
void viewrecord ()
{if (!pd)
{panduan();
return;}
struct snode *ppointer;
if(phead==NULL)
{printf("此通讯录显示为空\n");
return;
}
printf ("%-8s %-28s %-10s %-16s %-10s\n","姓名","地址","家庭电话","手机","办公电话");
ppointer=phead;
while(ppointer!=NULL)
{printf("%-8s,%-28s,%-10s,%-16s,%-10s\n",ppointer->cname,ppointer->caddress,
ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
ppointer=ppointer->pnext;}
}
/*编辑记录函数*/
void editrecord()
{if (!pd)
{panduan();
return;}
char cnamekey[10];
int iinputcheck,ioutputcheck;
struct snode *ppointer;
if (phead==NULL)
{printf("这条记录显示为空\n");
return;
}
printf("请输入姓名\n");
scanf("%s",cnamekey);
ppointer=phead;
while(ppointer!=NULL)
{if (!strcmp(cnamekey,ppointer->cname))
break;
ppointer=ppointer->pnext;
}
if (ppointer!=NULL)
{
printf("这个记录:\n");
ioutputcheck=printf("%-8s %-28 %-10s %-16s %-10s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
if(ioutputcheck<0)
{
printf("输出数据有错\n");
return;
}
printf("请输入新记录\n");
iinputcheck=scanf("%s %s %s %s %s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
if (iinputcheck==0)
{
printf("输出数据有错\n");
return;
}
}
else
printf("这条记录没找到\n");
}
/*删除函数*/
void deleterecord()
{if (!pd)
{panduan();
return;}
char cnamekey[10];
struct snode *ppointer,*pformer;
if(phead==NULL)
{printf("这条记录显示为空\n");
return;
}
ppointer=phead;
pformer=NULL;
printf("请输入姓名: \n");
scanf("%s",cnamekey);
while (strcmp(cnamekey,ppointer->cname)&&((ppointer->pnext)!=NULL))
{
pformer=ppointer;
ppointer=ppointer->pnext;
}
if (!strcmp(cnamekey,ppointer->cname))
{
printf("这条记录已找到\n");
printf("%-10s %-28s %-15s %-16s %-16s\n",ppointer->cname, ppointer->caddress,ppointer->cmobile, ppointer->chomephone, ppointer->cofficephone);
if(ppointer==phead)
phead=ppointer->pnext;
else
pformer->pnext=ppointer->pnext;
printf("这条记录已被删除\n");
}
else
printf("这条记录没找到\n");
}
/*查找函数*/
void searcgrecord ()
{if (!pd)
{panduan();
return;}
char cnamekey [10];
struct snode *ppointer;
if (phead=NULL)
{printf ("这条记录显示为空");
return;
}
printf ("请输入这个名字");
scanf ("%s",cnamekey);
ppointer=phead;
while(ppointer!=NULL)
{if (!strcmp (cnamekey,ppointer->cname))break;
ppointer=ppointer->pnext;}
if (ppointer!=NULL)
{printf ("这条记录已找到\n");
printf ("%-10s %-28s %-15s %-16s %-16s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
}
else
printf ("这条记录没找到\n");
}
/*退出函数*/
void quitsystem()
{closelist();
exit (0);
}
/*主函数*/
main ()
{char a;
titleletters();
helpletters();
while (1)
{scanf("%c",&a);
switch (a)
{case '?':helpletters();break;
case 'n':newlist() ;break;
case 'o':openlist();break;
case 's':savelist();break;
case 'c':closelist();break;
case 'a':appendrecord();break;
case 'v':viewrecord () ;break;
case 'e':editrecord() ;break;
case 'd':deleterecord();break;
case 'r':searcgrecord ();break;
case 'q':quitsystem();break;
}
}
}
6. c语言程序设计题图书管理系统
/* Note:Your choice is C IDE */
#include "stdio.h"
#include
#include "conio.h"
#include
#include
void main()
{void adm1(),adm2(),build(),huan(),borrow(),dele();
adm1();
}
void adm1()
{ FILE *fp,*p ;
char adp[20],password[20];
int i,n=0;
textbackground(2);
clrscr();
gotoxy(25,12);
fp=fopen("pass","r");
if(fp==NULL) { printf("no exit ");getch();exit(0);}
printf("input password:");
for(;;)
{
window(42,12,53,12);
textbackground(0);
clrscr();
gets(adp);
for(i=0;adp[i]!='\0';i++);
fgets(password,i+1,fp);
gotoxy(55,12);
if(strcmp(password,adp)==0) { window(55,12,70,12);clrscr();cprintf("YES");getch();adm2();getch();exit(0);}
else{ n++;
window(55,12,60,12);clrscr();gotoxy(55,12);cprintf("error");
for(i=0;i<30;i++) delay(8000);
if(n==2) { window(55,12,70,12);clrscr();gotoxy(55,12);cprintf("once again");for(i=0;i<=30;i++) delay(8000);}
if(n==3) { window(55,12,70,12);clrscr();gotoxy(55,12);cprintf("3 second out");for(i=0;i<=30;i++) { delay(8000);}
exit(0);
}
}
fclose(fp);clrscr();
}
}
void adm2()
{ char a;
window(1,1,80,25);
clrscr();
for(;;)
{ clrscr();
gotoxy(30,8);printf("built a new user (B)");
gotoxy(30,10);printf("return book (R)");
gotoxy(30,12);printf("borrow books (J)");
gotoxy(30,14);printf("delete user (D)");
a=getch();
if(a=='b') build();
if(a=='r') huan();
if(a=='j') borrow();
if(a=='d') dele();
else continue;
}
}
void build()
{ FILE *f,*p;
char id[20],name[20],sex[2],age[3],grad[50];
window(1,1,80,25);
clrscr();
printf("ID number:");
scanf("%s",id);
printf("name:");
scanf("%s",name);
printf("sex:");
scanf("%s",sex);
printf("grad:");
scanf("%s",grad);
p=fopen(id,"w+");
if(p==NULL) { printf("can't build that user");getch();adm2();}
fprintf(p,"%s ",name);
fprintf(p,"%s ",id);
fprintf(p,"%s ",sex);
fprintf(p,"%s ",grad);
printf("bulid success");
getch();
fclose(p);
}
void huan()
{
FILE *fp,*p,*f;
char id[20],a[5][50],name[20],c;
int i=0,m,k; clrscr();
printf("input ID number:");
scanf("%s",id);
p=fopen(id,"r");
if(p==NULL) { printf("error");getch();fclose(p);exit(0);}
fscanf(p,"%s",name);
fclose(p);
fp=fopen(name,"r");
do{ fscanf(fp,"%s",a[i++]); }while(!feof(fp));
for(k=0;k<i-1;k++) printf("\nbook %d: %s",k+1,a[k]);
fclose(fp);
f=fopen(name,"w+");
for(;;)
{
printf("\n\npress the book number that you want to return. \n\nPress 6 if you want to return all. \n\npress 7 to cancle.\n");
scanf("%d",&m);
if(m==7) { for(k=0;k<i-1;k++)
{
fprintf(f,"%s\n",a[k]);
}
fclose(f);
adm2();
}
if(m==6) remove(name);
if(m<6)
for(k=0;k<i-1;k++)
{ if(k!=m-1)
fprintf(f,"%s\n",a[k]);
}
printf("book %d has returned.",m);
printf("\ncontinue? (Y/N)");
c=getch();
if(c=='y') continue;
if(c=='n') { fclose(f);adm2(); }
}
}
void borrow()
{ FILE *f,*m,*p;
char id[20],book[5][50],name[20],c;
int i=0,n=0,k;
window(1,1,80,25);clrscr();
printf("please input the user's ID:");
scanf("%s",id);
m=fopen(id,"r");
if(m==NULL) { printf("user no exit"); getch();fclose(m);adm2();}
fscanf(m,"%s",name);
fclose(m);
p=fopen(name,"r");
if(p==NULL);
else
{ while(!feof(p))
{
fscanf(p,"%s",book[i]);
i++;
}
i--;
for(k=0;k<i;k++) printf("\nbook %d :%s",k+1,book[k]);
}
fclose(p);
f=fopen(name,"w");
printf("\nhow many book do you want to borrow?:");
do{printf("\ninput:");scanf("%d",&n); }while(i+n>=6);
for(k=i;k<i+n;k++)
{ printf("\nbook %d :",k+1);
scanf("%s",book[k]);
}
for(k=0;k<i+n;k++) fprintf(f,"%s\n",book[k]);
fputc('\0',f);
printf("success");
fclose(f);
}
void dele()
{ FILE *fp,*f;
char id[20],a[4][20],c,b[5][50];
int i=0,j=0,k;
window(1,1,80,25);clrscr();
printf("Input ID number:");
scanf("%s",id);
fp=fopen(id,"r");
if(fp==NULL) { printf("\nuser isn't exit");getch(); fclose(fp);adm2();}
else while(!feof(fp))
{ fscanf(fp,"%s",a[i++]);}
printf("\nname: %s",a[0]);
printf("\nID: %s",a[1]);
printf("\nsex: %s",a[2]);
printf("\ngrad: %s",a[3]);
f=fopen(a[0],"r");
if(f==NULL);
else {
while(!feof(f))
{ fscanf(f,"%s",b[j++]);}
for(k=0;k<j-1;k++) printf("\nbook %d: %s",k+1,b[k]);
}
printf("\nDo you want to delete? (Y/N): ");
c=getch();
fclose(fp);
fclose(f);
if(c=='y') { remove(id);remove(a[0]);printf("\nsuccess");getch();adm2();}
if(c=='n') adm2();
}
先在当前文件夹下新建一个pass.txt文件输入密码,再把.txt去掉运行的程序就可以了。
这是我以前写的一个图书管理系统,可能和你的要求不符,暴怒过参考下也行
呵呵,希望有帮助
7. 求大神写一道程序设计题:药房进销存管理系统
这个程序很简单,是最基本的进销存设计。但是作为学生,还是要扎实学点东西,网上可以买到很多答案,买不到能力。如果这么简单的设计都要别人代劳,建议还是学别的东东吧。
8. c语言程序设计题,设计一个《个人藏书管理系统》
您好,这样的:
已经按你的要求改写并调试通过了。调试环境win-tc和Dev-c++.
这是我在以前帮别人写的学生成绩管理系统的基础上改写的,学生信息用文件保存,从文件读入。同时为了简化起见,没有使用链表,容易理解。程序还具有很强的判断验错功能。对本题算法很简单,就是一个函数strcmp().其中student.dat内容如下,你可以自己用记事本修改并保存文件名为student.dat即可:
100001 周云发 19 男 1985.10 香港秀水街 19944569659 123@163.com
100009 程龙 18 男 1986.11 香港秀水街 19744569659 133@126.com
100003 章自已 18 女 1986.12 香港古装城 19844569659 143@163.com
100004 周讯 17 女 1987.06 香港秀水街 19644569659 153@126.com
100008 李丽珍 19 女 1985.08 香港古装城 19544569659 163@163.com
100007 蔡灼燕 17 女 1987.10 香港靓仔街 19444569659 173@126.com
100012 刘得花 20 男 1984.06 香港古装城 19344569659 183@126.com
100010 李嘉欣 20 女 1984.03 香港秀水街 19244569659 193@163.com
100011 周星星 19 男 1985.07 香港靓仔街 19144569659 223@163.com
100002 梁超伟 20 男 1984.01 香港秀水街 19044569659 233@163.com
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
/* 简易学生信息管理系统 win-tc和Dev-c++下运行良好,注意不是vc++下*/
#include
#include
#include
#define BUFLEN 80 /* 缓冲区最大字符数 */
#define LEN 20 /* 学号和姓名最大字符数,实际请更改 */
#define N 200 /* 最大学生人数,实际请更改*/
struct record
{
char code[LEN+1]; /* 学号 */
char name[LEN+1]; /* 姓名 */
int age; /* 年龄 */
char sex[3]; /* 性别 */
char time[LEN+1]; /* 出生年月 */
char add[30]; /* 家庭地址 */
char tel[LEN+1]; /* 电话号码 */
char mail[30]; /* 电子邮件地址 */
}stu[N];
int k=1,n,m; /* 定义全局变量 */
void readfile();/* 函数声明 */
void seek();
void modify();
void insert();
void del();
void display();
void save();
void menu();
int main()
{ while(k)
menu();
system("pause");
return 0;
}
void readfile()/* 建立信息 */
{
char buf[BUFLEN],*p="student.dat";
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
{ i++;
i=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}
void seek()
{int i,j,item,flag;
char s1[21]; /* 以姓名和学号最长长度+1为准 */
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该学号不存在!\n"); break;
case 2:
printf("请输入要查询的学生的姓名:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].name,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该姓名不存在!\n"); break;
case 3:return;
default:printf("请在1-3之间选择\n");
}
}
}
void modify() /*修改信息*/
{int i,j,item,num;
char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */
printf("请输入要要修改的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
num=i;
printf("------------------\n");
printf("1.修改姓名\n");
printf("2.修改年龄\n");
printf("3.修改性别\n");
printf("4.修改出生年月\n");
printf("5.修改地址\n");
printf("6.修改电话号码\n");
printf("7.修改E-mail地址\n");
printf("8.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
switch(item)
{
case 1:
printf("请输入新的姓名:\n");
scanf("%s",s2);
strcpy(stu[num].name,s2); break;
case 2:
printf("请输入新的年龄:\n");
scanf("%d",&stu[num].age);break;
case 3:
printf("请输入新的性别:\n");
scanf("%s",sex1);
strcpy(stu[num].sex,sex1); break;
case 4:
printf("请输入新的出生年月:\n");
scanf("%s",s2);
strcpy(stu[num].time,s2); break;
case 5:
printf("请输入新的地址:\n");
scanf("%s",s2);
strcpy(stu[num].add,s2); break;
case 6:
printf("请输入新的电话号码:\n");
scanf("%s",s2);
strcpy(stu[num].tel,s2); break;
case 7:
printf("请输入新的E-mail地址:\n");
scanf("%s",s2);
strcpy(stu[num].mail,s2); break;
case 8:return;
default:printf("请在1-8之间选择\n");
}
}
}
void insert()
{ int i=n,j,flag;
printf("请输入待增加的学生数:\n");
scanf("%d",&m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("请输入第 %d 个学生的学号:\n",i+1);
scanf("%s",stu[i].code);
for(j=0;j<i;j++)
if(strcmp(stu[i].code,stu[j].code)==0)
{ printf("已有该学号,请检查后重新录入!\n");
flag=1;
break; /*如有重复立即退出该层循环,提高判断速度*/
}
}
printf("请输入第 %d 个学生的姓名:\n",i+1);
scanf("%s",stu[i].name);
printf("请输入第 %d 个学生的年龄:\n",i+1);
scanf("%d",&stu[i].age);
printf("请输入第 %d 个学生的性别:\n",i+1);
scanf("%s",stu[i].sex);
printf("请输入第 %d 个学生的出生年月:(格式:年.月)\n",i+1);
scanf("%s",stu[i].time);
printf("请输入第 %d 个学生的地址:\n",i+1);
scanf("%s",stu[i].add);
printf("请输入第 %d 个学生的电话:\n",i+1);
scanf("%s",stu[i].tel);
printf("请输入第 %d 个学生的E-mail:\n",i+1);
scanf("%s",stu[i].mail);
if(flag==0)
{ i=i;
i++;
}
}while(i<n+m);
n+=m;
printf("录入完毕!\n\n");
}
void del()
{ int i,j,flag=0;
char s1[LEN+1];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
for(j=i;j<n-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单6\n");
n--;
}
}
void display()
{ int i,j;
printf("所有学生的信息为:\n");
for(i=0;i<n;i++)
{
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
}
void save()
{ int i,j,k,flag=0;
FILE *fp;
fp=fopen("student.dat","w");
for(i=0;i<n;i++)
{ fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
fclose(fp);
}
void menu()/* 界面 */
{ int num;
printf(" \n\n简易学生信息管理系统\n\n");
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.读入学生信息\n");
printf("2.查询学生信息\n");
printf("3.修改学生信息\n");
printf("4.增加学生信息\n");
printf("5.按学号删除信息\n");
printf("6.显示当前信息\n");
printf("7.保存当前学生信息(要把修改保存到文件,退出程序前必须执行本项)\n");
printf("8.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",&num);
switch(num)
{
case 1:readfile();break;
case 2:seek();break;
case 3:modify();break;
case 4:insert();break;
case 5:del();break;
case 6:display();break;
case 7:save();break;
case 8:k=0;break;
default:printf("请在1-8之间选择\n");
}
}